@m3hti/commit-genie 1.2.5 → 1.2.6

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 (101) hide show
  1. package/dist/commands/config.d.ts +3 -0
  2. package/dist/commands/config.d.ts.map +1 -0
  3. package/dist/commands/config.js +31 -0
  4. package/dist/commands/config.js.map +1 -0
  5. package/dist/commands/generate.d.ts +12 -0
  6. package/dist/commands/generate.d.ts.map +1 -0
  7. package/dist/commands/generate.js +550 -0
  8. package/dist/commands/generate.js.map +1 -0
  9. package/dist/commands/generate.test.d.ts +2 -0
  10. package/dist/commands/generate.test.d.ts.map +1 -0
  11. package/dist/commands/generate.test.js +168 -0
  12. package/dist/commands/generate.test.js.map +1 -0
  13. package/dist/commands/hook.d.ts +4 -0
  14. package/dist/commands/hook.d.ts.map +1 -0
  15. package/dist/commands/hook.js +62 -0
  16. package/dist/commands/hook.js.map +1 -0
  17. package/dist/commands/stats.d.ts +6 -0
  18. package/dist/commands/stats.d.ts.map +1 -0
  19. package/dist/commands/stats.js +39 -0
  20. package/dist/commands/stats.js.map +1 -0
  21. package/dist/data/wordlist.d.ts +11 -0
  22. package/dist/data/wordlist.d.ts.map +1 -0
  23. package/dist/data/wordlist.js +170 -0
  24. package/dist/data/wordlist.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +82 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/services/aiService.d.ts +42 -0
  30. package/dist/services/aiService.d.ts.map +1 -0
  31. package/dist/services/aiService.js +224 -0
  32. package/dist/services/aiService.js.map +1 -0
  33. package/dist/services/analyzerService.d.ts +129 -0
  34. package/dist/services/analyzerService.d.ts.map +1 -0
  35. package/dist/services/analyzerService.js +1662 -0
  36. package/dist/services/analyzerService.js.map +1 -0
  37. package/dist/services/analyzerService.test.d.ts +2 -0
  38. package/dist/services/analyzerService.test.d.ts.map +1 -0
  39. package/dist/services/analyzerService.test.js +516 -0
  40. package/dist/services/analyzerService.test.js.map +1 -0
  41. package/dist/services/configService.d.ts +25 -0
  42. package/dist/services/configService.d.ts.map +1 -0
  43. package/dist/services/configService.js +228 -0
  44. package/dist/services/configService.js.map +1 -0
  45. package/dist/services/configService.test.d.ts +2 -0
  46. package/dist/services/configService.test.d.ts.map +1 -0
  47. package/dist/services/configService.test.js +165 -0
  48. package/dist/services/configService.test.js.map +1 -0
  49. package/dist/services/gitService.d.ts +64 -0
  50. package/dist/services/gitService.d.ts.map +1 -0
  51. package/dist/services/gitService.js +303 -0
  52. package/dist/services/gitService.js.map +1 -0
  53. package/dist/services/gitService.test.d.ts +2 -0
  54. package/dist/services/gitService.test.d.ts.map +1 -0
  55. package/dist/services/gitService.test.js +140 -0
  56. package/dist/services/gitService.test.js.map +1 -0
  57. package/dist/services/historyService.d.ts +39 -0
  58. package/dist/services/historyService.d.ts.map +1 -0
  59. package/dist/services/historyService.js +195 -0
  60. package/dist/services/historyService.js.map +1 -0
  61. package/dist/services/historyService.test.d.ts +2 -0
  62. package/dist/services/historyService.test.d.ts.map +1 -0
  63. package/dist/services/historyService.test.js +157 -0
  64. package/dist/services/historyService.test.js.map +1 -0
  65. package/dist/services/hookService.d.ts +29 -0
  66. package/dist/services/hookService.d.ts.map +1 -0
  67. package/dist/services/hookService.js +164 -0
  68. package/dist/services/hookService.js.map +1 -0
  69. package/dist/services/lintService.d.ts +32 -0
  70. package/dist/services/lintService.d.ts.map +1 -0
  71. package/dist/services/lintService.js +191 -0
  72. package/dist/services/lintService.js.map +1 -0
  73. package/dist/services/spellService.d.ts +42 -0
  74. package/dist/services/spellService.d.ts.map +1 -0
  75. package/dist/services/spellService.js +175 -0
  76. package/dist/services/spellService.js.map +1 -0
  77. package/dist/services/splitService.d.ts +32 -0
  78. package/dist/services/splitService.d.ts.map +1 -0
  79. package/dist/services/splitService.js +184 -0
  80. package/dist/services/splitService.js.map +1 -0
  81. package/dist/services/statsService.d.ts +28 -0
  82. package/dist/services/statsService.d.ts.map +1 -0
  83. package/dist/services/statsService.js +204 -0
  84. package/dist/services/statsService.js.map +1 -0
  85. package/dist/types/index.d.ts +222 -0
  86. package/dist/types/index.d.ts.map +1 -0
  87. package/dist/types/index.js +3 -0
  88. package/dist/types/index.js.map +1 -0
  89. package/dist/utils/filePatterns.d.ts +5 -0
  90. package/dist/utils/filePatterns.d.ts.map +1 -0
  91. package/dist/utils/filePatterns.js +77 -0
  92. package/dist/utils/filePatterns.js.map +1 -0
  93. package/dist/utils/filePatterns.test.d.ts +2 -0
  94. package/dist/utils/filePatterns.test.d.ts.map +1 -0
  95. package/dist/utils/filePatterns.test.js +51 -0
  96. package/dist/utils/filePatterns.test.js.map +1 -0
  97. package/dist/utils/prompt.d.ts +4 -0
  98. package/dist/utils/prompt.d.ts.map +1 -0
  99. package/dist/utils/prompt.js +60 -0
  100. package/dist/utils/prompt.js.map +1 -0
  101. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzerService.test.js","sourceRoot":"","sources":["../../src/services/analyzerService.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { CommitGenieConfig } from '../types';
2
+ export declare class ConfigService {
3
+ private static cachedConfig;
4
+ /**
5
+ * Find and load the config file
6
+ */
7
+ static loadConfig(): CommitGenieConfig;
8
+ /**
9
+ * Get the current config
10
+ */
11
+ static getConfig(): CommitGenieConfig;
12
+ /**
13
+ * Clear the cached config (useful for testing)
14
+ */
15
+ static clearCache(): void;
16
+ /**
17
+ * Create a default config file
18
+ */
19
+ static initConfig(): {
20
+ success: boolean;
21
+ message: string;
22
+ path?: string;
23
+ };
24
+ }
25
+ //# sourceMappingURL=configService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configService.d.ts","sourceRoot":"","sources":["../../src/services/configService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA4D7C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkC;IAE7D;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,iBAAiB;IAiDtC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,iBAAiB;IAIrC;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;IAIzB;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;CAqE1E"}
@@ -0,0 +1,228 @@
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.ConfigService = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const gitService_1 = require("./gitService");
40
+ const CONFIG_FILES = [
41
+ '.commitgenierc.json',
42
+ '.commitgenierc',
43
+ 'commitgenie.config.json',
44
+ ];
45
+ const DEFAULT_CONFIG = {
46
+ scopes: [],
47
+ defaultType: 'feat',
48
+ includeEmoji: undefined, // Let history learning decide
49
+ maxMessageLength: 72,
50
+ customPatterns: [],
51
+ ticketLinking: {
52
+ enabled: true,
53
+ prefix: 'Refs:',
54
+ },
55
+ learnFromHistory: {
56
+ enabled: true,
57
+ commitCount: 50,
58
+ },
59
+ breakingChangeDetection: {
60
+ enabled: true,
61
+ includeFooter: true,
62
+ },
63
+ templates: {
64
+ default: '{emoji} {type}({scope}): {description}',
65
+ noScope: '{emoji} {type}: {description}',
66
+ withBody: '{emoji} {type}({scope}): {description}\n\n{body}',
67
+ },
68
+ ai: {
69
+ enabled: false,
70
+ provider: 'openai',
71
+ model: 'gpt-4o-mini',
72
+ },
73
+ linting: {
74
+ enabled: true,
75
+ blockOnError: true,
76
+ rules: {
77
+ subjectMaxLength: { enabled: true, maxLength: 72 },
78
+ typeRequired: { enabled: true },
79
+ scopeFormat: { enabled: true },
80
+ imperativeMood: { enabled: true },
81
+ },
82
+ },
83
+ splitting: {
84
+ enabled: true,
85
+ minFilesForSuggestion: 2,
86
+ groupByScope: true,
87
+ groupByType: true,
88
+ },
89
+ spellCheck: {
90
+ enabled: true,
91
+ customDictionary: [],
92
+ ignorePatterns: [],
93
+ },
94
+ };
95
+ class ConfigService {
96
+ /**
97
+ * Find and load the config file
98
+ */
99
+ static loadConfig() {
100
+ if (this.cachedConfig) {
101
+ return this.cachedConfig;
102
+ }
103
+ let configPath = null;
104
+ // Try to find config in git root first
105
+ try {
106
+ const gitRoot = gitService_1.GitService.getGitRoot();
107
+ for (const filename of CONFIG_FILES) {
108
+ const fullPath = path.join(gitRoot, filename);
109
+ if (fs.existsSync(fullPath)) {
110
+ configPath = fullPath;
111
+ break;
112
+ }
113
+ }
114
+ }
115
+ catch {
116
+ // Not in a git repo, try current directory
117
+ }
118
+ // Fallback to current directory
119
+ if (!configPath) {
120
+ for (const filename of CONFIG_FILES) {
121
+ const fullPath = path.join(process.cwd(), filename);
122
+ if (fs.existsSync(fullPath)) {
123
+ configPath = fullPath;
124
+ break;
125
+ }
126
+ }
127
+ }
128
+ if (!configPath) {
129
+ this.cachedConfig = DEFAULT_CONFIG;
130
+ return DEFAULT_CONFIG;
131
+ }
132
+ try {
133
+ const content = fs.readFileSync(configPath, 'utf-8');
134
+ const userConfig = JSON.parse(content);
135
+ this.cachedConfig = { ...DEFAULT_CONFIG, ...userConfig };
136
+ return this.cachedConfig;
137
+ }
138
+ catch (error) {
139
+ console.warn(`Warning: Failed to parse config file: ${configPath}`);
140
+ this.cachedConfig = DEFAULT_CONFIG;
141
+ return DEFAULT_CONFIG;
142
+ }
143
+ }
144
+ /**
145
+ * Get the current config
146
+ */
147
+ static getConfig() {
148
+ return this.loadConfig();
149
+ }
150
+ /**
151
+ * Clear the cached config (useful for testing)
152
+ */
153
+ static clearCache() {
154
+ this.cachedConfig = null;
155
+ }
156
+ /**
157
+ * Create a default config file
158
+ */
159
+ static initConfig() {
160
+ try {
161
+ let targetDir;
162
+ try {
163
+ targetDir = gitService_1.GitService.getGitRoot();
164
+ }
165
+ catch {
166
+ targetDir = process.cwd();
167
+ }
168
+ const configPath = path.join(targetDir, '.commitgenierc.json');
169
+ if (fs.existsSync(configPath)) {
170
+ return {
171
+ success: false,
172
+ message: 'Config file already exists',
173
+ path: configPath,
174
+ };
175
+ }
176
+ const sampleConfig = {
177
+ scopes: [
178
+ { pattern: 'src/api', scope: 'api' },
179
+ { pattern: 'src/components', scope: 'ui' },
180
+ { pattern: 'src/utils', scope: 'utils' },
181
+ ],
182
+ defaultType: 'feat',
183
+ includeEmoji: true,
184
+ maxMessageLength: 72,
185
+ customPatterns: [],
186
+ ticketLinking: {
187
+ enabled: true,
188
+ patterns: ['[A-Z]{2,10}-\\d+', '#\\d+'],
189
+ prefix: 'Refs:',
190
+ },
191
+ learnFromHistory: {
192
+ enabled: true,
193
+ commitCount: 50,
194
+ },
195
+ breakingChangeDetection: {
196
+ enabled: true,
197
+ keywords: ['breaking', 'removed', 'deleted', 'deprecated'],
198
+ includeFooter: true,
199
+ },
200
+ templates: {
201
+ default: '{emoji} {type}({scope}): {description}',
202
+ noScope: '{emoji} {type}: {description}',
203
+ withBody: '{emoji} {type}({scope}): {description}\n\n{body}',
204
+ },
205
+ ai: {
206
+ enabled: false,
207
+ provider: 'openai',
208
+ model: 'gpt-4o-mini',
209
+ },
210
+ };
211
+ fs.writeFileSync(configPath, JSON.stringify(sampleConfig, null, 2));
212
+ return {
213
+ success: true,
214
+ message: 'Config file created',
215
+ path: configPath,
216
+ };
217
+ }
218
+ catch (error) {
219
+ return {
220
+ success: false,
221
+ message: `Failed to create config: ${error instanceof Error ? error.message : error}`,
222
+ };
223
+ }
224
+ }
225
+ }
226
+ exports.ConfigService = ConfigService;
227
+ ConfigService.cachedConfig = null;
228
+ //# sourceMappingURL=configService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configService.js","sourceRoot":"","sources":["../../src/services/configService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,6CAA0C;AAE1C,MAAM,YAAY,GAAG;IACnB,qBAAqB;IACrB,gBAAgB;IAChB,yBAAyB;CAC1B,CAAC;AAEF,MAAM,cAAc,GAAsB;IACxC,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,SAAS,EAAE,8BAA8B;IACvD,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE;QACb,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO;KAChB;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,EAAE;KAChB;IACD,uBAAuB,EAAE;QACvB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI;KACpB;IACD,SAAS,EAAE;QACT,OAAO,EAAE,wCAAwC;QACjD,OAAO,EAAE,+BAA+B;QACxC,QAAQ,EAAE,kDAAkD;KAC7D;IACD,EAAE,EAAE;QACF,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,aAAa;KACrB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE;YACL,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;YAClD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/B,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC9B,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAClC;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,qBAAqB,EAAE,CAAC;QACxB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KAClB;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,EAAE;QACpB,cAAc,EAAE,EAAE;KACnB;CACF,CAAC;AAEF,MAAa,aAAa;IAGxB;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,uCAAuC;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,uBAAU,CAAC,UAAU,EAAE,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,UAAU,GAAG,QAAQ,CAAC;oBACtB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACpD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,UAAU,GAAG,QAAQ,CAAC;oBACtB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC;YACnC,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA+B,CAAC;YACrE,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC;YACnC,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS;QACd,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC;YACH,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,uBAAU,CAAC,UAAU,EAAE,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;YAE/D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,4BAA4B;oBACrC,IAAI,EAAE,UAAU;iBACjB,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAsB;gBACtC,MAAM,EAAE;oBACN,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;oBACpC,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;oBAC1C,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;iBACzC;gBACD,WAAW,EAAE,MAAM;gBACnB,YAAY,EAAE,IAAI;gBAClB,gBAAgB,EAAE,EAAE;gBACpB,cAAc,EAAE,EAAE;gBAClB,aAAa,EAAE;oBACb,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC;oBACvC,MAAM,EAAE,OAAO;iBAChB;gBACD,gBAAgB,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,EAAE;iBAChB;gBACD,uBAAuB,EAAE;oBACvB,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;oBAC1D,aAAa,EAAE,IAAI;iBACpB;gBACD,SAAS,EAAE;oBACT,OAAO,EAAE,wCAAwC;oBACjD,OAAO,EAAE,+BAA+B;oBACxC,QAAQ,EAAE,kDAAkD;iBAC7D;gBACD,EAAE,EAAE;oBACF,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,aAAa;iBACrB;aACF,CAAC;YAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEpE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;aACtF,CAAC;QACJ,CAAC;IACH,CAAC;;AA5IH,sCA6IC;AA5IgB,0BAAY,GAA6B,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=configService.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configService.test.d.ts","sourceRoot":"","sources":["../../src/services/configService.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
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
+ const fs = __importStar(require("fs"));
37
+ const configService_1 = require("./configService");
38
+ const gitService_1 = require("./gitService");
39
+ // Mock dependencies
40
+ jest.mock('fs');
41
+ jest.mock('./gitService');
42
+ const mockedFs = fs;
43
+ const mockedGitService = gitService_1.GitService;
44
+ describe('ConfigService', () => {
45
+ beforeEach(() => {
46
+ jest.clearAllMocks();
47
+ configService_1.ConfigService.clearCache();
48
+ });
49
+ describe('loadConfig', () => {
50
+ it('should return default config when no config file exists', () => {
51
+ mockedGitService.getGitRoot.mockReturnValue('/project');
52
+ mockedFs.existsSync.mockReturnValue(false);
53
+ const config = configService_1.ConfigService.loadConfig();
54
+ expect(config.defaultType).toBe('feat');
55
+ expect(config.maxMessageLength).toBe(72);
56
+ expect(config.includeEmoji).toBeUndefined(); // Let history learning decide
57
+ expect(config.scopes).toEqual([]);
58
+ expect(config.ticketLinking?.enabled).toBe(true);
59
+ expect(config.learnFromHistory?.enabled).toBe(true);
60
+ expect(config.breakingChangeDetection?.enabled).toBe(true);
61
+ expect(config.breakingChangeDetection?.includeFooter).toBe(true);
62
+ });
63
+ it('should load config from .commitgenierc.json', () => {
64
+ mockedGitService.getGitRoot.mockReturnValue('/project');
65
+ mockedFs.existsSync.mockImplementation((filePath) => {
66
+ return String(filePath).includes('.commitgenierc.json');
67
+ });
68
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({
69
+ scopes: [{ pattern: 'src/api', scope: 'api' }],
70
+ defaultType: 'fix',
71
+ }));
72
+ const config = configService_1.ConfigService.loadConfig();
73
+ expect(config.defaultType).toBe('fix');
74
+ expect(config.scopes).toHaveLength(1);
75
+ expect(config.scopes[0].scope).toBe('api');
76
+ });
77
+ it('should merge user config with defaults', () => {
78
+ mockedGitService.getGitRoot.mockReturnValue('/project');
79
+ mockedFs.existsSync.mockImplementation((filePath) => {
80
+ return String(filePath).includes('.commitgenierc.json');
81
+ });
82
+ mockedFs.readFileSync.mockReturnValue(JSON.stringify({
83
+ defaultType: 'chore',
84
+ }));
85
+ const config = configService_1.ConfigService.loadConfig();
86
+ expect(config.defaultType).toBe('chore');
87
+ expect(config.maxMessageLength).toBe(72); // Default preserved
88
+ });
89
+ it('should cache config after first load', () => {
90
+ mockedGitService.getGitRoot.mockReturnValue('/project');
91
+ mockedFs.existsSync.mockReturnValue(false);
92
+ configService_1.ConfigService.loadConfig();
93
+ configService_1.ConfigService.loadConfig();
94
+ configService_1.ConfigService.loadConfig();
95
+ // getGitRoot should only be called once due to caching
96
+ expect(mockedGitService.getGitRoot).toHaveBeenCalledTimes(1);
97
+ });
98
+ it('should handle invalid JSON gracefully', () => {
99
+ mockedGitService.getGitRoot.mockReturnValue('/project');
100
+ mockedFs.existsSync.mockImplementation((filePath) => {
101
+ return String(filePath).includes('.commitgenierc.json');
102
+ });
103
+ mockedFs.readFileSync.mockReturnValue('{ invalid json }');
104
+ // Should not throw, should return defaults
105
+ const config = configService_1.ConfigService.loadConfig();
106
+ expect(config.defaultType).toBe('feat');
107
+ });
108
+ it('should fallback to cwd when not in git repo', () => {
109
+ mockedGitService.getGitRoot.mockImplementation(() => {
110
+ throw new Error('Not a git repo');
111
+ });
112
+ mockedFs.existsSync.mockReturnValue(false);
113
+ const config = configService_1.ConfigService.loadConfig();
114
+ expect(config).toBeDefined();
115
+ });
116
+ });
117
+ describe('getConfig', () => {
118
+ it('should return loaded config', () => {
119
+ mockedGitService.getGitRoot.mockReturnValue('/project');
120
+ mockedFs.existsSync.mockReturnValue(false);
121
+ const config = configService_1.ConfigService.getConfig();
122
+ expect(config).toBeDefined();
123
+ expect(config.defaultType).toBe('feat');
124
+ });
125
+ });
126
+ describe('clearCache', () => {
127
+ it('should clear the cached config', () => {
128
+ mockedGitService.getGitRoot.mockReturnValue('/project');
129
+ mockedFs.existsSync.mockReturnValue(false);
130
+ configService_1.ConfigService.loadConfig();
131
+ configService_1.ConfigService.clearCache();
132
+ configService_1.ConfigService.loadConfig();
133
+ expect(mockedGitService.getGitRoot).toHaveBeenCalledTimes(2);
134
+ });
135
+ });
136
+ describe('initConfig', () => {
137
+ it('should create config file successfully', () => {
138
+ mockedGitService.getGitRoot.mockReturnValue('/project');
139
+ mockedFs.existsSync.mockReturnValue(false);
140
+ mockedFs.writeFileSync.mockImplementation(() => { });
141
+ const result = configService_1.ConfigService.initConfig();
142
+ expect(result.success).toBe(true);
143
+ expect(result.message).toBe('Config file created');
144
+ expect(mockedFs.writeFileSync).toHaveBeenCalled();
145
+ });
146
+ it('should fail if config already exists', () => {
147
+ mockedGitService.getGitRoot.mockReturnValue('/project');
148
+ mockedFs.existsSync.mockReturnValue(true);
149
+ const result = configService_1.ConfigService.initConfig();
150
+ expect(result.success).toBe(false);
151
+ expect(result.message).toBe('Config file already exists');
152
+ });
153
+ it('should handle write errors', () => {
154
+ mockedGitService.getGitRoot.mockReturnValue('/project');
155
+ mockedFs.existsSync.mockReturnValue(false);
156
+ mockedFs.writeFileSync.mockImplementation(() => {
157
+ throw new Error('Permission denied');
158
+ });
159
+ const result = configService_1.ConfigService.initConfig();
160
+ expect(result.success).toBe(false);
161
+ expect(result.message).toContain('Failed to create config');
162
+ });
163
+ });
164
+ });
165
+ //# sourceMappingURL=configService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configService.test.js","sourceRoot":"","sources":["../../src/services/configService.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AAEzB,mDAAgD;AAChD,6CAA0C;AAE1C,oBAAoB;AACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAE1B,MAAM,QAAQ,GAAG,EAA4B,CAAC;AAC9C,MAAM,gBAAgB,GAAG,uBAA4C,CAAC;AAEtE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,6BAAa,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,8BAA8B;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBAC9C,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnD,WAAW,EAAE,OAAO;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE3C,6BAAa,CAAC,UAAU,EAAE,CAAC;YAC3B,6BAAa,CAAC,UAAU,EAAE,CAAC;YAC3B,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE3B,uDAAuD;YACvD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAE1D,2CAA2C;YAC3C,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,gBAAgB,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAClD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,6BAAa,CAAC,SAAS,EAAE,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE3C,6BAAa,CAAC,UAAU,EAAE,CAAC;YAC3B,6BAAa,CAAC,UAAU,EAAE,CAAC;YAC3B,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE3B,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,6BAAa,CAAC,UAAU,EAAE,CAAC;YAE1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { GitStatus, FileChange, DiffStats, HistoricalCommit } from '../types';
2
+ export declare class GitService {
3
+ /**
4
+ * Check if current directory is a git repository
5
+ */
6
+ static isGitRepository(): boolean;
7
+ /**
8
+ * Get current git status with staged and unstaged files
9
+ */
10
+ static getStatus(): GitStatus;
11
+ /**
12
+ * Get diff statistics for staged changes
13
+ */
14
+ static getDiffStats(): DiffStats;
15
+ /**
16
+ * Get the actual diff content for staged changes
17
+ */
18
+ static getDiff(): string;
19
+ /**
20
+ * Get list of staged files with their status
21
+ */
22
+ static getStagedFiles(): FileChange[];
23
+ /**
24
+ * Commit staged changes with the given message (supports multi-line)
25
+ */
26
+ static commit(message: string): void;
27
+ /**
28
+ * Amend the last commit with a new message
29
+ */
30
+ static amendCommit(message: string): void;
31
+ /**
32
+ * Get the last commit's message
33
+ */
34
+ static getLastCommitMessage(): string | null;
35
+ /**
36
+ * Get files changed in the last commit
37
+ */
38
+ static getLastCommitFiles(): FileChange[];
39
+ /**
40
+ * Get diff of the last commit
41
+ */
42
+ static getLastCommitDiff(): string;
43
+ /**
44
+ * Check if there are any commits in the repository
45
+ */
46
+ static hasCommits(): boolean;
47
+ /**
48
+ * Get the root directory of the git repository
49
+ */
50
+ static getGitRoot(): string;
51
+ /**
52
+ * Get the .git directory path (works reliably on Windows)
53
+ */
54
+ static getGitDir(): string;
55
+ /**
56
+ * Get the current branch name
57
+ */
58
+ static getCurrentBranch(): string | null;
59
+ /**
60
+ * Get recent commit history
61
+ */
62
+ static getCommitHistory(count?: number): HistoricalCommit[];
63
+ }
64
+ //# sourceMappingURL=gitService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitService.d.ts","sourceRoot":"","sources":["../../src/services/gitService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9E,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,OAAO;IASjC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,SAAS;IAuC7B;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,SAAS;IA0BhC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM;IAYxB;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,UAAU,EAAE;IAKrC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAqBpC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAoBzC;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAW5C;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,UAAU,EAAE;IAwBzC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAWlC;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,OAAO;IAS5B;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM;IAW3B;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,MAAM;IAqB1B;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAYxC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;CAsChE"}