@m3hti/commit-genie 1.2.5 → 1.2.7

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 +139 -0
  34. package/dist/services/analyzerService.d.ts.map +1 -0
  35. package/dist/services/analyzerService.js +1811 -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 +577 -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,28 @@
1
+ import { CommitStats } from '../types';
2
+ export declare class StatsService {
3
+ /**
4
+ * Get commit statistics for the repository
5
+ */
6
+ static getCommitStats(commitCount?: number): CommitStats;
7
+ /**
8
+ * Get commits from git history
9
+ */
10
+ private static getCommits;
11
+ /**
12
+ * Get recent activity for the last 7 days
13
+ */
14
+ private static getRecentActivity;
15
+ /**
16
+ * Get empty stats object
17
+ */
18
+ private static getEmptyStats;
19
+ /**
20
+ * Format stats for display
21
+ */
22
+ static formatStats(stats: CommitStats): string;
23
+ /**
24
+ * Create a visual bar for charts
25
+ */
26
+ private static createBar;
27
+ }
28
+ //# sourceMappingURL=statsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsService.d.ts","sourceRoot":"","sources":["../../src/services/statsService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAKnD,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,GAAE,MAAY,GAAG,WAAW;IAsE7D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAmF9C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;CAIzB"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatsService = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const CONVENTIONAL_COMMIT_REGEX = /^(feat|fix|docs|style|refactor|test|chore|perf)(\(.+\))?!?:/;
6
+ const EMOJI_REGEX = /[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]/u;
7
+ class StatsService {
8
+ /**
9
+ * Get commit statistics for the repository
10
+ */
11
+ static getCommitStats(commitCount = 100) {
12
+ const commits = this.getCommits(commitCount);
13
+ if (commits.length === 0) {
14
+ return this.getEmptyStats();
15
+ }
16
+ const commitsByType = {};
17
+ const commitsByScope = {};
18
+ const commitsByAuthor = {};
19
+ const commitsByMonth = {};
20
+ let totalLength = 0;
21
+ let emojiCount = 0;
22
+ let conventionalCount = 0;
23
+ for (const commit of commits) {
24
+ // Parse commit type
25
+ const typeMatch = commit.subject.match(CONVENTIONAL_COMMIT_REGEX);
26
+ if (typeMatch) {
27
+ conventionalCount++;
28
+ const type = typeMatch[1];
29
+ commitsByType[type] = (commitsByType[type] || 0) + 1;
30
+ // Extract scope if present
31
+ if (typeMatch[2]) {
32
+ const scope = typeMatch[2].replace(/[()]/g, '');
33
+ commitsByScope[scope] = (commitsByScope[scope] || 0) + 1;
34
+ }
35
+ }
36
+ // Check for emoji
37
+ if (EMOJI_REGEX.test(commit.subject)) {
38
+ emojiCount++;
39
+ }
40
+ // Count by author
41
+ commitsByAuthor[commit.author] = (commitsByAuthor[commit.author] || 0) + 1;
42
+ // Count by month (YYYY-MM format)
43
+ const month = commit.date.substring(0, 7);
44
+ commitsByMonth[month] = (commitsByMonth[month] || 0) + 1;
45
+ // Track message length
46
+ totalLength += commit.subject.length;
47
+ }
48
+ // Calculate top contributors
49
+ const topContributors = Object.entries(commitsByAuthor)
50
+ .map(([name, count]) => ({ name, count }))
51
+ .sort((a, b) => b.count - a.count)
52
+ .slice(0, 5);
53
+ // Calculate recent activity (last 7 days)
54
+ const recentActivity = this.getRecentActivity(commits);
55
+ return {
56
+ totalCommits: commits.length,
57
+ commitsByType,
58
+ commitsByScope,
59
+ commitsByAuthor,
60
+ commitsByMonth,
61
+ averageMessageLength: Math.round(totalLength / commits.length),
62
+ emojiUsagePercent: Math.round((emojiCount / commits.length) * 100),
63
+ conventionalCommitsPercent: Math.round((conventionalCount / commits.length) * 100),
64
+ topContributors,
65
+ recentActivity,
66
+ };
67
+ }
68
+ /**
69
+ * Get commits from git history
70
+ */
71
+ static getCommits(count) {
72
+ try {
73
+ const output = (0, child_process_1.execSync)(`git log --format="%s|||%an|||%aI" -n ${count}`, { encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });
74
+ return output
75
+ .trim()
76
+ .split('\n')
77
+ .filter(line => line.length > 0)
78
+ .map(line => {
79
+ const [subject, author, date] = line.split('|||');
80
+ return { subject: subject || '', author: author || 'Unknown', date: date || '' };
81
+ });
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ }
87
+ /**
88
+ * Get recent activity for the last 7 days
89
+ */
90
+ static getRecentActivity(commits) {
91
+ const today = new Date();
92
+ const activity = [];
93
+ for (let i = 6; i >= 0; i--) {
94
+ const date = new Date(today);
95
+ date.setDate(date.getDate() - i);
96
+ const dateStr = date.toISOString().substring(0, 10);
97
+ const count = commits.filter(c => c.date.startsWith(dateStr)).length;
98
+ activity.push({ date: dateStr, count });
99
+ }
100
+ return activity;
101
+ }
102
+ /**
103
+ * Get empty stats object
104
+ */
105
+ static getEmptyStats() {
106
+ return {
107
+ totalCommits: 0,
108
+ commitsByType: {},
109
+ commitsByScope: {},
110
+ commitsByAuthor: {},
111
+ commitsByMonth: {},
112
+ averageMessageLength: 0,
113
+ emojiUsagePercent: 0,
114
+ conventionalCommitsPercent: 0,
115
+ topContributors: [],
116
+ recentActivity: [],
117
+ };
118
+ }
119
+ /**
120
+ * Format stats for display
121
+ */
122
+ static formatStats(stats) {
123
+ const lines = [];
124
+ lines.push('\n' + '═'.repeat(60));
125
+ lines.push(' COMMIT STATISTICS');
126
+ lines.push('═'.repeat(60));
127
+ // Overview
128
+ lines.push('\n📊 Overview:');
129
+ lines.push('─'.repeat(40));
130
+ lines.push(` Total commits analyzed: ${stats.totalCommits}`);
131
+ lines.push(` Average message length: ${stats.averageMessageLength} chars`);
132
+ lines.push(` Conventional commits: ${stats.conventionalCommitsPercent}%`);
133
+ lines.push(` Emoji usage: ${stats.emojiUsagePercent}%`);
134
+ // Commits by type
135
+ if (Object.keys(stats.commitsByType).length > 0) {
136
+ lines.push('\n📝 Commits by Type:');
137
+ lines.push('─'.repeat(40));
138
+ const sortedTypes = Object.entries(stats.commitsByType)
139
+ .sort((a, b) => b[1] - a[1]);
140
+ const maxCount = Math.max(...sortedTypes.map(([, count]) => count));
141
+ for (const [type, count] of sortedTypes) {
142
+ const bar = this.createBar(count, maxCount, 20);
143
+ const percent = Math.round((count / stats.totalCommits) * 100);
144
+ lines.push(` ${type.padEnd(10)} ${bar} ${count} (${percent}%)`);
145
+ }
146
+ }
147
+ // Top scopes
148
+ if (Object.keys(stats.commitsByScope).length > 0) {
149
+ lines.push('\n🏷️ Top Scopes:');
150
+ lines.push('─'.repeat(40));
151
+ const sortedScopes = Object.entries(stats.commitsByScope)
152
+ .sort((a, b) => b[1] - a[1])
153
+ .slice(0, 5);
154
+ for (const [scope, count] of sortedScopes) {
155
+ lines.push(` ${scope.padEnd(15)} ${count} commits`);
156
+ }
157
+ }
158
+ // Top contributors
159
+ if (stats.topContributors.length > 0) {
160
+ lines.push('\n👥 Top Contributors:');
161
+ lines.push('─'.repeat(40));
162
+ for (let i = 0; i < stats.topContributors.length; i++) {
163
+ const { name, count } = stats.topContributors[i];
164
+ const medal = i === 0 ? '🥇' : i === 1 ? '🥈' : i === 2 ? '🥉' : ' ';
165
+ lines.push(` ${medal} ${name.padEnd(20)} ${count} commits`);
166
+ }
167
+ }
168
+ // Recent activity
169
+ if (stats.recentActivity.length > 0) {
170
+ lines.push('\n📈 Recent Activity (Last 7 Days):');
171
+ lines.push('─'.repeat(40));
172
+ const maxActivity = Math.max(...stats.recentActivity.map(a => a.count), 1);
173
+ for (const { date, count } of stats.recentActivity) {
174
+ const dayName = new Date(date).toLocaleDateString('en-US', { weekday: 'short' });
175
+ const bar = this.createBar(count, maxActivity, 15);
176
+ lines.push(` ${dayName} ${date.substring(5)} ${bar} ${count}`);
177
+ }
178
+ }
179
+ // Monthly trend
180
+ if (Object.keys(stats.commitsByMonth).length > 0) {
181
+ lines.push('\n📅 Monthly Commits:');
182
+ lines.push('─'.repeat(40));
183
+ const sortedMonths = Object.entries(stats.commitsByMonth)
184
+ .sort((a, b) => b[0].localeCompare(a[0]))
185
+ .slice(0, 6);
186
+ const maxMonthly = Math.max(...sortedMonths.map(([, count]) => count));
187
+ for (const [month, count] of sortedMonths) {
188
+ const bar = this.createBar(count, maxMonthly, 15);
189
+ lines.push(` ${month} ${bar} ${count}`);
190
+ }
191
+ }
192
+ lines.push('\n' + '═'.repeat(60) + '\n');
193
+ return lines.join('\n');
194
+ }
195
+ /**
196
+ * Create a visual bar for charts
197
+ */
198
+ static createBar(value, max, width) {
199
+ const filled = Math.round((value / max) * width);
200
+ return '█'.repeat(filled) + '░'.repeat(width - filled);
201
+ }
202
+ }
203
+ exports.StatsService = StatsService;
204
+ //# sourceMappingURL=statsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsService.js","sourceRoot":"","sources":["../../src/services/statsService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ export interface FileChange {
2
+ status: string;
3
+ path: string;
4
+ }
5
+ export interface GitStatus {
6
+ staged: FileChange[];
7
+ unstaged: FileChange[];
8
+ hasStagedChanges: boolean;
9
+ }
10
+ export interface DiffStats {
11
+ filesChanged: number;
12
+ insertions: number;
13
+ deletions: number;
14
+ }
15
+ export interface ChangeAnalysis {
16
+ commitType: CommitType;
17
+ scope?: string;
18
+ description: string;
19
+ filesAffected: {
20
+ test: number;
21
+ docs: number;
22
+ config: number;
23
+ source: number;
24
+ };
25
+ fileChanges: {
26
+ added: string[];
27
+ modified: string[];
28
+ deleted: string[];
29
+ renamed: string[];
30
+ };
31
+ isLargeChange: boolean;
32
+ isBreakingChange: boolean;
33
+ breakingChangeReasons: string[];
34
+ semanticAnalysis?: SemanticAnalysis;
35
+ }
36
+ export type CommitType = 'feat' | 'fix' | 'docs' | 'style' | 'refactor' | 'test' | 'chore' | 'perf';
37
+ export interface CommitMessage {
38
+ type: CommitType;
39
+ scope?: string;
40
+ description: string;
41
+ body?: string;
42
+ full: string;
43
+ isBreaking?: boolean;
44
+ }
45
+ export interface MessageSuggestion {
46
+ id: number;
47
+ message: CommitMessage;
48
+ label: string;
49
+ }
50
+ export interface FilePattern {
51
+ pattern: RegExp;
52
+ type: 'test' | 'docs' | 'config' | 'source';
53
+ commitType: CommitType;
54
+ }
55
+ export interface ScopeMapping {
56
+ pattern: string;
57
+ scope: string;
58
+ }
59
+ export interface CommitGenieConfig {
60
+ scopes?: ScopeMapping[];
61
+ defaultType?: CommitType;
62
+ includeEmoji?: boolean;
63
+ maxMessageLength?: number;
64
+ customPatterns?: {
65
+ pattern: string;
66
+ type: 'test' | 'docs' | 'config' | 'source';
67
+ commitType: CommitType;
68
+ }[];
69
+ ticketLinking?: {
70
+ enabled?: boolean;
71
+ patterns?: string[];
72
+ prefix?: string;
73
+ };
74
+ learnFromHistory?: {
75
+ enabled?: boolean;
76
+ commitCount?: number;
77
+ };
78
+ breakingChangeDetection?: {
79
+ enabled?: boolean;
80
+ keywords?: string[];
81
+ includeFooter?: boolean;
82
+ };
83
+ templates?: {
84
+ default?: string;
85
+ noScope?: string;
86
+ withBody?: string;
87
+ };
88
+ ai?: {
89
+ enabled?: boolean;
90
+ provider?: 'openai' | 'anthropic' | 'google' | 'openrouter';
91
+ apiKey?: string;
92
+ model?: string;
93
+ };
94
+ linting?: {
95
+ enabled?: boolean;
96
+ blockOnError?: boolean;
97
+ rules?: LintRuleConfig;
98
+ };
99
+ splitting?: {
100
+ enabled?: boolean;
101
+ minFilesForSuggestion?: number;
102
+ groupByScope?: boolean;
103
+ groupByType?: boolean;
104
+ };
105
+ spellCheck?: {
106
+ enabled?: boolean;
107
+ customDictionary?: string[];
108
+ ignorePatterns?: string[];
109
+ };
110
+ }
111
+ export interface TicketInfo {
112
+ id: string;
113
+ source: 'branch' | 'custom';
114
+ prefix?: string;
115
+ }
116
+ export interface CommitHistoryAnalysis {
117
+ usesEmojis: boolean;
118
+ usesConventionalCommits: boolean;
119
+ commonScopes: string[];
120
+ commonVerbs: string[];
121
+ averageLength: number;
122
+ emojiFrequency: Record<string, number>;
123
+ typeFrequency: Record<string, number>;
124
+ }
125
+ export interface HistoricalCommit {
126
+ hash: string;
127
+ message: string;
128
+ subject: string;
129
+ body?: string;
130
+ author?: string;
131
+ date?: string;
132
+ }
133
+ export interface CommitStats {
134
+ totalCommits: number;
135
+ commitsByType: Record<string, number>;
136
+ commitsByScope: Record<string, number>;
137
+ commitsByAuthor: Record<string, number>;
138
+ commitsByMonth: Record<string, number>;
139
+ averageMessageLength: number;
140
+ emojiUsagePercent: number;
141
+ conventionalCommitsPercent: number;
142
+ topContributors: {
143
+ name: string;
144
+ count: number;
145
+ }[];
146
+ recentActivity: {
147
+ date: string;
148
+ count: number;
149
+ }[];
150
+ }
151
+ export interface LintRuleConfig {
152
+ subjectMaxLength?: {
153
+ enabled?: boolean;
154
+ maxLength?: number;
155
+ };
156
+ typeRequired?: {
157
+ enabled?: boolean;
158
+ allowedTypes?: CommitType[];
159
+ };
160
+ scopeFormat?: {
161
+ enabled?: boolean;
162
+ pattern?: string;
163
+ };
164
+ imperativeMood?: {
165
+ enabled?: boolean;
166
+ forbiddenPrefixes?: string[];
167
+ };
168
+ }
169
+ export interface RuleViolation {
170
+ ruleId: string;
171
+ ruleName: string;
172
+ message: string;
173
+ severity: 'error' | 'warning';
174
+ suggestion?: string;
175
+ }
176
+ export interface LintResult {
177
+ valid: boolean;
178
+ violations: RuleViolation[];
179
+ }
180
+ export interface SplitGroup {
181
+ type: CommitType;
182
+ scope?: string;
183
+ files: FileChange[];
184
+ suggestedMessage: string;
185
+ }
186
+ export interface SplitSuggestion {
187
+ shouldSplit: boolean;
188
+ reason: string;
189
+ groups: SplitGroup[];
190
+ }
191
+ export interface SpellSuggestion {
192
+ word: string;
193
+ suggestions: string[];
194
+ position: number;
195
+ }
196
+ export interface SpellCheckResult {
197
+ valid: boolean;
198
+ errors: SpellSuggestion[];
199
+ }
200
+ export type ChangeRole = 'ui' | 'logic' | 'data' | 'style' | 'api' | 'config' | 'test' | 'unknown';
201
+ export type SemanticIntent = 'add' | 'modify' | 'fix' | 'remove' | 'refactor' | 'enhance' | 'rename';
202
+ export interface RoleChange {
203
+ role: ChangeRole;
204
+ intent: SemanticIntent;
205
+ significance: number;
206
+ summary: string;
207
+ affectedElements: string[];
208
+ }
209
+ export interface SemanticAnalysis {
210
+ primaryRole: ChangeRole;
211
+ primaryIntent: SemanticIntent;
212
+ roleChanges: RoleChange[];
213
+ intentDescription: string;
214
+ whatChanged: string;
215
+ hasMultipleRoles: boolean;
216
+ renames?: Array<{
217
+ oldName: string;
218
+ newName: string;
219
+ type: string;
220
+ }>;
221
+ }
222
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { FilePattern } from '../types';
2
+ export declare const filePatterns: FilePattern[];
3
+ export declare function detectFileType(filePath: string): 'test' | 'docs' | 'config' | 'source';
4
+ export declare function getCommitTypeForFile(filePath: string): string;
5
+ //# sourceMappingURL=filePatterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filePatterns.d.ts","sourceRoot":"","sources":["../../src/utils/filePatterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,YAAY,EAAE,WAAW,EAwDrC,CAAC;AAEF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAOvC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO7D"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filePatterns = void 0;
4
+ exports.detectFileType = detectFileType;
5
+ exports.getCommitTypeForFile = getCommitTypeForFile;
6
+ exports.filePatterns = [
7
+ // Test files
8
+ {
9
+ pattern: /\.(test|spec)\.(ts|js|tsx|jsx)$/,
10
+ type: 'test',
11
+ commitType: 'test',
12
+ },
13
+ {
14
+ pattern: /\/__tests__\//,
15
+ type: 'test',
16
+ commitType: 'test',
17
+ },
18
+ {
19
+ pattern: /\/tests?\//,
20
+ type: 'test',
21
+ commitType: 'test',
22
+ },
23
+ // Documentation
24
+ {
25
+ pattern: /\.(md|mdx)$/,
26
+ type: 'docs',
27
+ commitType: 'docs',
28
+ },
29
+ {
30
+ pattern: /\/docs?\//,
31
+ type: 'docs',
32
+ commitType: 'docs',
33
+ },
34
+ {
35
+ pattern: /^README/i,
36
+ type: 'docs',
37
+ commitType: 'docs',
38
+ },
39
+ // Configuration files
40
+ {
41
+ pattern: /\.(json|ya?ml|toml|ini|config\.js)$/,
42
+ type: 'config',
43
+ commitType: 'chore',
44
+ },
45
+ {
46
+ pattern: /\.(eslintrc|prettierrc|babelrc|gitignore|dockerignore)/,
47
+ type: 'config',
48
+ commitType: 'chore',
49
+ },
50
+ {
51
+ pattern: /^(package\.json|tsconfig\.json|webpack\.config|vite\.config)/,
52
+ type: 'config',
53
+ commitType: 'chore',
54
+ },
55
+ {
56
+ pattern: /Dockerfile/,
57
+ type: 'config',
58
+ commitType: 'chore',
59
+ },
60
+ ];
61
+ function detectFileType(filePath) {
62
+ for (const pattern of exports.filePatterns) {
63
+ if (pattern.pattern.test(filePath)) {
64
+ return pattern.type;
65
+ }
66
+ }
67
+ return 'source';
68
+ }
69
+ function getCommitTypeForFile(filePath) {
70
+ for (const pattern of exports.filePatterns) {
71
+ if (pattern.pattern.test(filePath)) {
72
+ return pattern.commitType;
73
+ }
74
+ }
75
+ return 'feat'; // Default for source files
76
+ }
77
+ //# sourceMappingURL=filePatterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filePatterns.js","sourceRoot":"","sources":["../../src/utils/filePatterns.ts"],"names":[],"mappings":";;;AA4DA,wCASC;AAED,oDAOC;AA5EY,QAAA,YAAY,GAAkB;IACzC,aAAa;IACb;QACE,OAAO,EAAE,iCAAiC;QAC1C,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;KACnB;IACD;QACE,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;KACnB;IACD;QACE,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;KACnB;IAED,gBAAgB;IAChB;QACE,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;KACnB;IACD;QACE,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;KACnB;IACD;QACE,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;KACnB;IAED,sBAAsB;IACtB;QACE,OAAO,EAAE,qCAAqC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,OAAO;KACpB;IACD;QACE,OAAO,EAAE,wDAAwD;QACjE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,OAAO;KACpB;IACD;QACE,OAAO,EAAE,8DAA8D;QACvE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,OAAO;KACpB;IACD;QACE,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,OAAO;KACpB;CACF,CAAC;AAEF,SAAgB,cAAc,CAC5B,QAAgB;IAEhB,KAAK,MAAM,OAAO,IAAI,oBAAY,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,KAAK,MAAM,OAAO,IAAI,oBAAY,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,2BAA2B;AAC5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filePatterns.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filePatterns.test.d.ts","sourceRoot":"","sources":["../../src/utils/filePatterns.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const filePatterns_1 = require("./filePatterns");
4
+ describe('filePatterns', () => {
5
+ describe('detectFileType', () => {
6
+ it('should detect test files by extension', () => {
7
+ expect((0, filePatterns_1.detectFileType)('src/utils/helper.test.ts')).toBe('test');
8
+ expect((0, filePatterns_1.detectFileType)('src/utils/helper.spec.js')).toBe('test');
9
+ expect((0, filePatterns_1.detectFileType)('components/Button.test.tsx')).toBe('test');
10
+ });
11
+ it('should detect test files by directory', () => {
12
+ expect((0, filePatterns_1.detectFileType)('src/__tests__/helper.ts')).toBe('test');
13
+ expect((0, filePatterns_1.detectFileType)('src/__tests__/service.ts')).toBe('test');
14
+ expect((0, filePatterns_1.detectFileType)('src/tests/integration.ts')).toBe('test');
15
+ expect((0, filePatterns_1.detectFileType)('src/test/unit.ts')).toBe('test');
16
+ });
17
+ it('should detect documentation files', () => {
18
+ expect((0, filePatterns_1.detectFileType)('README.md')).toBe('docs');
19
+ expect((0, filePatterns_1.detectFileType)('docs/guide.md')).toBe('docs');
20
+ expect((0, filePatterns_1.detectFileType)('CONTRIBUTING.mdx')).toBe('docs');
21
+ });
22
+ it('should detect config files', () => {
23
+ expect((0, filePatterns_1.detectFileType)('package.json')).toBe('config');
24
+ expect((0, filePatterns_1.detectFileType)('tsconfig.json')).toBe('config');
25
+ expect((0, filePatterns_1.detectFileType)('.eslintrc')).toBe('config');
26
+ expect((0, filePatterns_1.detectFileType)('.prettierrc')).toBe('config');
27
+ expect((0, filePatterns_1.detectFileType)('webpack.config.js')).toBe('config');
28
+ expect((0, filePatterns_1.detectFileType)('Dockerfile')).toBe('config');
29
+ });
30
+ it('should detect source files as default', () => {
31
+ expect((0, filePatterns_1.detectFileType)('src/index.ts')).toBe('source');
32
+ expect((0, filePatterns_1.detectFileType)('src/services/api.ts')).toBe('source');
33
+ expect((0, filePatterns_1.detectFileType)('lib/utils.js')).toBe('source');
34
+ });
35
+ });
36
+ describe('getCommitTypeForFile', () => {
37
+ it('should return test for test files', () => {
38
+ expect((0, filePatterns_1.getCommitTypeForFile)('src/helper.test.ts')).toBe('test');
39
+ });
40
+ it('should return docs for documentation files', () => {
41
+ expect((0, filePatterns_1.getCommitTypeForFile)('README.md')).toBe('docs');
42
+ });
43
+ it('should return chore for config files', () => {
44
+ expect((0, filePatterns_1.getCommitTypeForFile)('package.json')).toBe('chore');
45
+ });
46
+ it('should return feat for source files', () => {
47
+ expect((0, filePatterns_1.getCommitTypeForFile)('src/index.ts')).toBe('feat');
48
+ });
49
+ });
50
+ });
51
+ //# sourceMappingURL=filePatterns.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filePatterns.test.js","sourceRoot":"","sources":["../../src/utils/filePatterns.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function prompt(question: string): Promise<string>;
2
+ export declare function confirm(question: string): Promise<boolean>;
3
+ export declare function promptWithDefault(question: string, defaultValue: string): Promise<string>;
4
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYxD;AAED,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAGjB"}