@vibe-validate/extractors 0.16.0 → 0.17.0-rc.10

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 (167) hide show
  1. package/dist/extractor-registry.d.ts +103 -0
  2. package/dist/extractor-registry.d.ts.map +1 -0
  3. package/dist/extractor-registry.js +278 -0
  4. package/dist/extractor-registry.js.map +1 -0
  5. package/dist/extractors/ava/index.d.ts +23 -0
  6. package/dist/extractors/ava/index.d.ts.map +1 -0
  7. package/dist/extractors/ava/index.js +507 -0
  8. package/dist/extractors/ava/index.js.map +1 -0
  9. package/dist/extractors/ava/index.test.d.ts +7 -0
  10. package/dist/extractors/ava/index.test.d.ts.map +1 -0
  11. package/dist/extractors/ava/index.test.js +408 -0
  12. package/dist/extractors/ava/index.test.js.map +1 -0
  13. package/dist/extractors/eslint/index.d.ts +18 -0
  14. package/dist/extractors/eslint/index.d.ts.map +1 -0
  15. package/dist/extractors/eslint/index.js +206 -0
  16. package/dist/extractors/eslint/index.js.map +1 -0
  17. package/dist/extractors/eslint/index.test.d.ts +9 -0
  18. package/dist/extractors/eslint/index.test.d.ts.map +1 -0
  19. package/dist/extractors/eslint/index.test.js +191 -0
  20. package/dist/extractors/eslint/index.test.js.map +1 -0
  21. package/dist/extractors/generic/index.d.ts +30 -0
  22. package/dist/extractors/generic/index.d.ts.map +1 -0
  23. package/dist/extractors/generic/index.js +140 -0
  24. package/dist/extractors/generic/index.js.map +1 -0
  25. package/dist/extractors/generic/index.test.d.ts +7 -0
  26. package/dist/extractors/generic/index.test.d.ts.map +1 -0
  27. package/dist/extractors/generic/index.test.js +61 -0
  28. package/dist/extractors/generic/index.test.js.map +1 -0
  29. package/dist/extractors/jasmine/index.d.ts +17 -0
  30. package/dist/extractors/jasmine/index.d.ts.map +1 -0
  31. package/dist/extractors/jasmine/index.js +254 -0
  32. package/dist/extractors/jasmine/index.js.map +1 -0
  33. package/dist/extractors/jasmine/index.test.d.ts +7 -0
  34. package/dist/extractors/jasmine/index.test.d.ts.map +1 -0
  35. package/dist/extractors/jasmine/index.test.js +345 -0
  36. package/dist/extractors/jasmine/index.test.js.map +1 -0
  37. package/dist/extractors/jest/index.d.ts +17 -0
  38. package/dist/extractors/jest/index.d.ts.map +1 -0
  39. package/dist/extractors/jest/index.js +278 -0
  40. package/dist/extractors/jest/index.js.map +1 -0
  41. package/dist/extractors/jest/index.test.d.ts +9 -0
  42. package/dist/extractors/jest/index.test.d.ts.map +1 -0
  43. package/dist/extractors/jest/index.test.js +353 -0
  44. package/dist/extractors/jest/index.test.js.map +1 -0
  45. package/dist/extractors/junit/index.d.ts +18 -0
  46. package/dist/extractors/junit/index.d.ts.map +1 -0
  47. package/dist/extractors/junit/index.js +259 -0
  48. package/dist/extractors/junit/index.js.map +1 -0
  49. package/dist/extractors/junit/index.test.d.ts +7 -0
  50. package/dist/extractors/junit/index.test.d.ts.map +1 -0
  51. package/dist/extractors/junit/index.test.js +341 -0
  52. package/dist/extractors/junit/index.test.js.map +1 -0
  53. package/dist/extractors/maven-checkstyle/index.d.ts +23 -0
  54. package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -0
  55. package/dist/extractors/maven-checkstyle/index.js +263 -0
  56. package/dist/extractors/maven-checkstyle/index.js.map +1 -0
  57. package/dist/extractors/maven-checkstyle/index.test.d.ts +2 -0
  58. package/dist/extractors/maven-checkstyle/index.test.d.ts.map +1 -0
  59. package/dist/extractors/maven-checkstyle/index.test.js +197 -0
  60. package/dist/extractors/maven-checkstyle/index.test.js.map +1 -0
  61. package/dist/extractors/maven-compiler/index.d.ts +23 -0
  62. package/dist/extractors/maven-compiler/index.d.ts.map +1 -0
  63. package/dist/extractors/maven-compiler/index.js +271 -0
  64. package/dist/extractors/maven-compiler/index.js.map +1 -0
  65. package/dist/extractors/maven-compiler/index.test.d.ts +2 -0
  66. package/dist/extractors/maven-compiler/index.test.d.ts.map +1 -0
  67. package/dist/extractors/maven-compiler/index.test.js +189 -0
  68. package/dist/extractors/maven-compiler/index.test.js.map +1 -0
  69. package/dist/extractors/maven-surefire/index.d.ts +23 -0
  70. package/dist/extractors/maven-surefire/index.d.ts.map +1 -0
  71. package/dist/extractors/maven-surefire/index.js +292 -0
  72. package/dist/extractors/maven-surefire/index.js.map +1 -0
  73. package/dist/extractors/maven-surefire/index.test.d.ts +2 -0
  74. package/dist/extractors/maven-surefire/index.test.d.ts.map +1 -0
  75. package/dist/extractors/maven-surefire/index.test.js +169 -0
  76. package/dist/extractors/maven-surefire/index.test.js.map +1 -0
  77. package/dist/extractors/mocha/index.d.ts +17 -0
  78. package/dist/extractors/mocha/index.d.ts.map +1 -0
  79. package/dist/extractors/mocha/index.js +241 -0
  80. package/dist/extractors/mocha/index.js.map +1 -0
  81. package/dist/extractors/mocha/index.test.d.ts +7 -0
  82. package/dist/extractors/mocha/index.test.d.ts.map +1 -0
  83. package/dist/extractors/mocha/index.test.js +300 -0
  84. package/dist/extractors/mocha/index.test.js.map +1 -0
  85. package/dist/extractors/playwright/index.d.ts +17 -0
  86. package/dist/extractors/playwright/index.d.ts.map +1 -0
  87. package/dist/extractors/playwright/index.js +320 -0
  88. package/dist/extractors/playwright/index.js.map +1 -0
  89. package/dist/extractors/playwright/index.test.d.ts +7 -0
  90. package/dist/extractors/playwright/index.test.d.ts.map +1 -0
  91. package/dist/extractors/playwright/index.test.js +274 -0
  92. package/dist/extractors/playwright/index.test.js.map +1 -0
  93. package/dist/extractors/tap/index.d.ts +23 -0
  94. package/dist/extractors/tap/index.d.ts.map +1 -0
  95. package/dist/extractors/tap/index.js +352 -0
  96. package/dist/extractors/tap/index.js.map +1 -0
  97. package/dist/extractors/tap/index.test.d.ts +7 -0
  98. package/dist/extractors/tap/index.test.d.ts.map +1 -0
  99. package/dist/extractors/tap/index.test.js +100 -0
  100. package/dist/extractors/tap/index.test.js.map +1 -0
  101. package/dist/extractors/typescript/index.d.ts +17 -0
  102. package/dist/extractors/typescript/index.d.ts.map +1 -0
  103. package/dist/extractors/typescript/index.js +150 -0
  104. package/dist/extractors/typescript/index.js.map +1 -0
  105. package/dist/extractors/typescript/index.test.d.ts +9 -0
  106. package/dist/extractors/typescript/index.test.d.ts.map +1 -0
  107. package/dist/extractors/typescript/index.test.js +177 -0
  108. package/dist/extractors/typescript/index.test.js.map +1 -0
  109. package/dist/extractors/vitest/index.d.ts +17 -0
  110. package/dist/extractors/vitest/index.d.ts.map +1 -0
  111. package/dist/extractors/vitest/index.js +564 -0
  112. package/dist/extractors/vitest/index.js.map +1 -0
  113. package/dist/extractors/vitest/index.test.d.ts +9 -0
  114. package/dist/extractors/vitest/index.test.d.ts.map +1 -0
  115. package/dist/extractors/vitest/index.test.js +373 -0
  116. package/dist/extractors/vitest/index.test.js.map +1 -0
  117. package/dist/index.d.ts +27 -11
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +27 -11
  120. package/dist/index.js.map +1 -1
  121. package/dist/maven-checkstyle-extractor.d.ts +20 -0
  122. package/dist/maven-checkstyle-extractor.d.ts.map +1 -0
  123. package/dist/maven-checkstyle-extractor.js +208 -0
  124. package/dist/maven-checkstyle-extractor.js.map +1 -0
  125. package/dist/maven-compiler-extractor.d.ts +20 -0
  126. package/dist/maven-compiler-extractor.d.ts.map +1 -0
  127. package/dist/maven-compiler-extractor.js +218 -0
  128. package/dist/maven-compiler-extractor.js.map +1 -0
  129. package/dist/maven-surefire-extractor.d.ts +20 -0
  130. package/dist/maven-surefire-extractor.d.ts.map +1 -0
  131. package/dist/maven-surefire-extractor.js +228 -0
  132. package/dist/maven-surefire-extractor.js.map +1 -0
  133. package/dist/maven-utils.d.ts +24 -0
  134. package/dist/maven-utils.d.ts.map +1 -0
  135. package/dist/maven-utils.js +36 -0
  136. package/dist/maven-utils.js.map +1 -0
  137. package/dist/plugin-loader.d.ts +82 -0
  138. package/dist/plugin-loader.d.ts.map +1 -0
  139. package/dist/plugin-loader.js +201 -0
  140. package/dist/plugin-loader.js.map +1 -0
  141. package/dist/result-schema.d.ts +59 -9
  142. package/dist/result-schema.d.ts.map +1 -1
  143. package/dist/result-schema.js +3 -19
  144. package/dist/result-schema.js.map +1 -1
  145. package/dist/sandbox.d.ts +161 -0
  146. package/dist/sandbox.d.ts.map +1 -0
  147. package/dist/sandbox.js +254 -0
  148. package/dist/sandbox.js.map +1 -0
  149. package/dist/sandbox.test.d.ts +8 -0
  150. package/dist/sandbox.test.d.ts.map +1 -0
  151. package/dist/sandbox.test.js +395 -0
  152. package/dist/sandbox.test.js.map +1 -0
  153. package/dist/sandboxed-extractor.d.ts +46 -0
  154. package/dist/sandboxed-extractor.d.ts.map +1 -0
  155. package/dist/sandboxed-extractor.js +172 -0
  156. package/dist/sandboxed-extractor.js.map +1 -0
  157. package/dist/sandboxed-extractor.test.d.ts +5 -0
  158. package/dist/sandboxed-extractor.test.d.ts.map +1 -0
  159. package/dist/sandboxed-extractor.test.js +346 -0
  160. package/dist/sandboxed-extractor.test.js.map +1 -0
  161. package/dist/smart-extractor.d.ts +22 -10
  162. package/dist/smart-extractor.d.ts.map +1 -1
  163. package/dist/smart-extractor.js +116 -163
  164. package/dist/smart-extractor.js.map +1 -1
  165. package/dist/types.d.ts +94 -0
  166. package/dist/types.d.ts.map +1 -1
  167. package/package.json +3 -2
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Maven Checkstyle error extractor
3
+ *
4
+ * Extracts errors from Maven Checkstyle plugin output.
5
+ * Supports both output formats generated by maven-checkstyle-plugin.
6
+ */
7
+ import { MAX_ERRORS_IN_ARRAY } from './result-schema.js';
8
+ const CHECKSTYLE_PATTERNS = {
9
+ // Format 1: [WARN] /absolute/path:line:col: message [Rule]
10
+ // eslint-disable-next-line sonarjs/slow-regex -- Safe: Maven Checkstyle output is structured, limited line length
11
+ warnFormat: /^\[WARN\]\s+([^:]+):(\d+):(\d+):\s+(.+?)\s+\[(\w+)\]$/,
12
+ // Format 2: [WARNING] relative/path:[line,col] (category) Rule: message
13
+ // eslint-disable-next-line sonarjs/slow-regex -- Safe: Maven Checkstyle output is structured, limited line length
14
+ warningFormat: /^\[WARNING\]\s+([^:]+):\[(\d+)(?:,(\d+))?\]\s+\((\w+)\)\s+(\w+):\s+(.+)$/,
15
+ // Summary line: "You have N Checkstyle violations"
16
+ summary: /You have (\d+) Checkstyle violations/,
17
+ };
18
+ /**
19
+ * Detects if output is from Maven Checkstyle
20
+ */
21
+ export function detectMavenCheckstyle(output) {
22
+ const lines = output.split('\n');
23
+ let score = 0;
24
+ const foundPatterns = [];
25
+ // Look for Checkstyle-specific markers
26
+ let hasViolationFormat = false;
27
+ for (const line of lines) {
28
+ if (line.includes('maven-checkstyle-plugin')) {
29
+ score += 40;
30
+ foundPatterns.push('maven-checkstyle-plugin reference');
31
+ }
32
+ if (line.includes('Starting audit')) {
33
+ score += 20;
34
+ foundPatterns.push('Checkstyle audit start marker');
35
+ }
36
+ if (line.includes('Audit done')) {
37
+ score += 20;
38
+ foundPatterns.push('Checkstyle audit complete marker');
39
+ }
40
+ if (CHECKSTYLE_PATTERNS.summary.test(line)) {
41
+ score += 30;
42
+ foundPatterns.push('Checkstyle violation summary');
43
+ }
44
+ if (!hasViolationFormat && (CHECKSTYLE_PATTERNS.warnFormat.test(line) || CHECKSTYLE_PATTERNS.warningFormat.test(line))) {
45
+ score += 10;
46
+ foundPatterns.push('Checkstyle violation format');
47
+ hasViolationFormat = true; // Only count once, but don't break - keep looking for other markers
48
+ }
49
+ }
50
+ // Determine reason based on score
51
+ let reason;
52
+ if (score >= 70) {
53
+ reason = 'Maven Checkstyle plugin output detected';
54
+ }
55
+ else if (score >= 40) {
56
+ reason = 'Possible Maven Checkstyle output';
57
+ }
58
+ else {
59
+ reason = 'Not Maven Checkstyle output';
60
+ }
61
+ return {
62
+ confidence: Math.min(score, 100),
63
+ patterns: foundPatterns,
64
+ reason,
65
+ };
66
+ }
67
+ /**
68
+ * Extracts Checkstyle violations from Maven output
69
+ */
70
+ export function extractMavenCheckstyle(output, command) {
71
+ const detection = detectMavenCheckstyle(output);
72
+ if (detection.confidence < 40) {
73
+ return {
74
+ summary: 'Not Maven Checkstyle output',
75
+ totalErrors: 0,
76
+ errors: [],
77
+ metadata: {
78
+ detection: {
79
+ extractor: 'maven-checkstyle',
80
+ confidence: detection.confidence,
81
+ patterns: detection.patterns,
82
+ reason: detection.reason,
83
+ },
84
+ confidence: detection.confidence,
85
+ completeness: 100,
86
+ issues: [],
87
+ },
88
+ };
89
+ }
90
+ const violations = [];
91
+ const lines = output.split('\n');
92
+ for (const line of lines) {
93
+ // Try Format 1: [WARN] /path:line:col: message [Rule]
94
+ const warnMatch = CHECKSTYLE_PATTERNS.warnFormat.exec(line);
95
+ if (warnMatch) {
96
+ const [, filePath, lineStr, colStr, message, rule] = warnMatch;
97
+ violations.push({
98
+ file: extractRelativePath(filePath),
99
+ line: Number.parseInt(lineStr, 10),
100
+ column: Number.parseInt(colStr, 10),
101
+ message: message.trim(),
102
+ rule: rule.trim(),
103
+ });
104
+ continue;
105
+ }
106
+ // Try Format 2: [WARNING] path:[line,col] (category) Rule: message
107
+ const warningMatch = CHECKSTYLE_PATTERNS.warningFormat.exec(line);
108
+ if (warningMatch) {
109
+ const [, filePath, lineStr, colStr, category, rule, message] = warningMatch;
110
+ violations.push({
111
+ file: filePath.trim(),
112
+ line: Number.parseInt(lineStr, 10),
113
+ column: colStr ? Number.parseInt(colStr, 10) : undefined,
114
+ message: message.trim(),
115
+ rule: rule.trim(),
116
+ category: category.trim(),
117
+ });
118
+ }
119
+ }
120
+ // Remove duplicates (both formats report same violations)
121
+ const uniqueViolations = deduplicateViolations(violations);
122
+ // Convert to FormattedError format
123
+ const errors = uniqueViolations.slice(0, MAX_ERRORS_IN_ARRAY).map((v) => ({
124
+ file: v.file,
125
+ line: v.line,
126
+ column: v.column,
127
+ message: `${v.message} [${v.rule}]`,
128
+ }));
129
+ // Group by file for summary
130
+ const fileGroups = groupByFile(uniqueViolations);
131
+ const summary = `${uniqueViolations.length} Checkstyle violation(s) in ${fileGroups.size} file(s)`;
132
+ // Generate guidance
133
+ const guidance = uniqueViolations.length > 0
134
+ ? `Fix Checkstyle violations. Run ${command ?? 'mvn checkstyle:check'} to see all details.`
135
+ : undefined;
136
+ // Create error summary
137
+ const errorSummary = errors.length > 0
138
+ ? errors.map((e, i) => `[Error ${i + 1}/${errors.length}] ${e.file}:${e.line}\n${e.message}`).join('\n\n')
139
+ : undefined;
140
+ return {
141
+ summary,
142
+ totalErrors: uniqueViolations.length,
143
+ errors,
144
+ guidance,
145
+ errorSummary,
146
+ metadata: {
147
+ detection: {
148
+ extractor: 'maven-checkstyle',
149
+ confidence: detection.confidence,
150
+ patterns: detection.patterns,
151
+ reason: detection.reason,
152
+ },
153
+ confidence: 100,
154
+ completeness: 100,
155
+ issues: [],
156
+ },
157
+ };
158
+ }
159
+ /**
160
+ * Extract relative path from absolute path
161
+ * /Users/name/project/src/main/java/Foo.java -> src/main/java/Foo.java
162
+ */
163
+ function extractRelativePath(absolutePath) {
164
+ // Common Java source roots
165
+ const sourceRoots = ['src/main/java', 'src/test/java', 'src/main/kotlin', 'src/test/kotlin'];
166
+ for (const root of sourceRoots) {
167
+ const index = absolutePath.indexOf(root);
168
+ if (index !== -1) {
169
+ return absolutePath.slice(index);
170
+ }
171
+ }
172
+ // Fallback: return last 3 path segments
173
+ const segments = absolutePath.split('/');
174
+ return segments.slice(-3).join('/');
175
+ }
176
+ /**
177
+ * Deduplicate violations (both formats report same violations)
178
+ */
179
+ function deduplicateViolations(violations) {
180
+ const seen = new Set();
181
+ const unique = [];
182
+ for (const v of violations) {
183
+ const key = `${v.file}:${v.line}:${v.column}:${v.rule}`;
184
+ if (!seen.has(key)) {
185
+ seen.add(key);
186
+ unique.push(v);
187
+ }
188
+ }
189
+ return unique;
190
+ }
191
+ /**
192
+ * Group violations by file
193
+ */
194
+ function groupByFile(violations) {
195
+ const groups = new Map();
196
+ for (const violation of violations) {
197
+ const file = violation.file || 'unknown';
198
+ if (!groups.has(file)) {
199
+ groups.set(file, []);
200
+ }
201
+ const group = groups.get(file);
202
+ if (group) {
203
+ group.push(violation);
204
+ }
205
+ }
206
+ return groups;
207
+ }
208
+ //# sourceMappingURL=maven-checkstyle-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maven-checkstyle-extractor.js","sourceRoot":"","sources":["../src/maven-checkstyle-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Maven Compiler error extractor
3
+ *
4
+ * Extracts Java compilation errors from Maven compiler plugin output.
5
+ * Supports output from `mvn compile` and `mvn test` when compilation fails.
6
+ */
7
+ import type { ErrorExtractorResult } from './types.js';
8
+ /**
9
+ * Detects if output is from Maven compiler plugin
10
+ */
11
+ export declare function detectMavenCompiler(output: string): {
12
+ confidence: number;
13
+ patterns: string[];
14
+ reason: string;
15
+ };
16
+ /**
17
+ * Extracts compilation errors from Maven compiler output
18
+ */
19
+ export declare function extractMavenCompiler(output: string, command?: string): ErrorExtractorResult;
20
+ //# sourceMappingURL=maven-compiler-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maven-compiler-extractor.d.ts","sourceRoot":"","sources":["../src/maven-compiler-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,YAAY,CAAC;AA6CvE;;GAEG;AAEH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CA2DA;AAED;;GAEG;AAEH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,oBAAoB,CAyGtB"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Maven Compiler error extractor
3
+ *
4
+ * Extracts Java compilation errors from Maven compiler plugin output.
5
+ * Supports output from `mvn compile` and `mvn test` when compilation fails.
6
+ */
7
+ import { MAX_ERRORS_IN_ARRAY } from './result-schema.js';
8
+ import { extractRelativePath } from './maven-utils.js';
9
+ const COMPILER_PATTERNS = {
10
+ // [ERROR] /path/to/File.java:[line,column] error message
11
+ // eslint-disable-next-line sonarjs/slow-regex -- Safe: Maven compiler output is structured, limited line length
12
+ errorLine: /^\[ERROR\]\s+([^:]+):\[(\d+)(?:,(\d+))?\]\s+(.+)$/,
13
+ // Markers for high-confidence detection
14
+ compilationErrorMarker: /^\[ERROR\]\s+COMPILATION ERROR\s*:/,
15
+ compilerPluginMarker: /maven-compiler-plugin/,
16
+ errorCountMarker: /^\[INFO\]\s+(\d+)\s+errors?\s*$/,
17
+ // Common Java compiler error patterns
18
+ compilerErrorPatterns: [
19
+ 'cannot find symbol',
20
+ 'incompatible types',
21
+ 'class, interface, or enum expected',
22
+ 'illegal start of expression',
23
+ 'reached end of file while parsing',
24
+ 'package .* does not exist',
25
+ 'method .* cannot be applied',
26
+ ],
27
+ };
28
+ /**
29
+ * Detects if output is from Maven compiler plugin
30
+ */
31
+ // eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 22 acceptable for detection (sequentially checks 5 distinct Maven compiler output patterns for accurate detection)
32
+ export function detectMavenCompiler(output) {
33
+ const lines = output.split('\n');
34
+ let score = 0;
35
+ const foundPatterns = [];
36
+ // Look for compilation error markers
37
+ let hasErrorLineFormat = false;
38
+ let hasCompilerErrorPattern = false;
39
+ for (const line of lines) {
40
+ // High-value markers (30 points each)
41
+ if (COMPILER_PATTERNS.compilationErrorMarker.test(line)) {
42
+ score += 30;
43
+ foundPatterns.push('[ERROR] COMPILATION ERROR marker');
44
+ }
45
+ if (COMPILER_PATTERNS.compilerPluginMarker.test(line)) {
46
+ score += 30;
47
+ foundPatterns.push('maven-compiler-plugin reference');
48
+ }
49
+ // Medium-value markers (20 points)
50
+ if (COMPILER_PATTERNS.errorCountMarker.test(line)) {
51
+ score += 20;
52
+ foundPatterns.push('error count summary');
53
+ }
54
+ if (!hasErrorLineFormat && COMPILER_PATTERNS.errorLine.test(line)) {
55
+ score += 20;
56
+ foundPatterns.push('file:[line,column] format');
57
+ hasErrorLineFormat = true;
58
+ }
59
+ // Low-value markers (10 points for first match)
60
+ if (!hasCompilerErrorPattern) {
61
+ for (const pattern of COMPILER_PATTERNS.compilerErrorPatterns) {
62
+ if (line.includes(pattern)) {
63
+ score += 10;
64
+ foundPatterns.push('Java compiler error pattern');
65
+ hasCompilerErrorPattern = true;
66
+ break;
67
+ }
68
+ }
69
+ }
70
+ }
71
+ // Determine reason based on score
72
+ let reason;
73
+ if (score >= 70) {
74
+ reason = 'Maven compiler plugin output detected';
75
+ }
76
+ else if (score >= 40) {
77
+ reason = 'Possible Maven compiler output';
78
+ }
79
+ else {
80
+ reason = 'Not Maven compiler output';
81
+ }
82
+ return {
83
+ confidence: Math.min(score, 100),
84
+ patterns: foundPatterns,
85
+ reason,
86
+ };
87
+ }
88
+ /**
89
+ * Extracts compilation errors from Maven compiler output
90
+ */
91
+ // eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 21 acceptable for extraction (parses Maven compiler output with context lines, deduplication, and error formatting)
92
+ export function extractMavenCompiler(output, command) {
93
+ const detection = detectMavenCompiler(output);
94
+ if (detection.confidence < 40) {
95
+ return {
96
+ summary: 'Not Maven compiler output',
97
+ totalErrors: 0,
98
+ errors: [],
99
+ metadata: {
100
+ detection: {
101
+ extractor: 'maven-compiler',
102
+ confidence: detection.confidence,
103
+ patterns: detection.patterns,
104
+ reason: detection.reason,
105
+ },
106
+ confidence: detection.confidence,
107
+ completeness: 100,
108
+ issues: [],
109
+ },
110
+ };
111
+ }
112
+ const compilationErrors = [];
113
+ const lines = output.split('\n');
114
+ // Parse error lines
115
+ for (let i = 0; i < lines.length; i++) {
116
+ const line = lines[i];
117
+ const match = COMPILER_PATTERNS.errorLine.exec(line);
118
+ if (match) {
119
+ const [, filePath, lineStr, colStr, message] = match;
120
+ // Collect additional context (symbol, location) from next lines
121
+ const contextLines = [];
122
+ for (let j = i + 1; j < Math.min(i + 5, lines.length); j++) {
123
+ const nextLine = lines[j]?.trim();
124
+ if (nextLine && !nextLine.startsWith('[') && (nextLine.startsWith('symbol:') || nextLine.startsWith('location:'))) {
125
+ contextLines.push(nextLine);
126
+ }
127
+ else if (nextLine?.startsWith('[')) {
128
+ // Hit next Maven log line
129
+ break;
130
+ }
131
+ }
132
+ const fullMessage = contextLines.length > 0
133
+ ? `${message}\n${contextLines.join('\n')}`
134
+ : message;
135
+ compilationErrors.push({
136
+ file: extractRelativePath(filePath),
137
+ line: Number.parseInt(lineStr, 10),
138
+ column: colStr ? Number.parseInt(colStr, 10) : undefined,
139
+ message: fullMessage.trim(),
140
+ });
141
+ }
142
+ }
143
+ // Remove duplicates (Maven sometimes reports errors twice)
144
+ const uniqueErrors = deduplicateErrors(compilationErrors);
145
+ // Convert to FormattedError format
146
+ const errors = uniqueErrors.slice(0, MAX_ERRORS_IN_ARRAY).map((e) => ({
147
+ file: e.file,
148
+ line: e.line,
149
+ column: e.column,
150
+ message: e.message,
151
+ }));
152
+ // Group by file for summary
153
+ const fileGroups = groupByFile(uniqueErrors);
154
+ const summary = `${uniqueErrors.length} compilation error(s) in ${fileGroups.size} file(s)`;
155
+ // Generate guidance
156
+ const guidance = uniqueErrors.length > 0
157
+ ? `Fix Java compilation errors. Run ${command ?? 'mvn compile'} to see all details.`
158
+ : undefined;
159
+ // Create error summary
160
+ const errorSummary = errors.length > 0
161
+ ? errors.map((e, i) => {
162
+ const location = e.column ? `${e.file}:${e.line}:${e.column}` : `${e.file}:${e.line}`;
163
+ return `[Error ${i + 1}/${errors.length}] ${location}\n${e.message}`;
164
+ }).join('\n\n')
165
+ : undefined;
166
+ return {
167
+ summary,
168
+ totalErrors: uniqueErrors.length,
169
+ errors,
170
+ guidance,
171
+ errorSummary,
172
+ metadata: {
173
+ detection: {
174
+ extractor: 'maven-compiler',
175
+ confidence: detection.confidence,
176
+ patterns: detection.patterns,
177
+ reason: detection.reason,
178
+ },
179
+ confidence: 100,
180
+ completeness: 100,
181
+ issues: [],
182
+ },
183
+ };
184
+ }
185
+ // Relative path extraction moved to maven-utils.ts (shared with maven-checkstyle-extractor)
186
+ /**
187
+ * Deduplicate compilation errors
188
+ */
189
+ function deduplicateErrors(errors) {
190
+ const seen = new Set();
191
+ const unique = [];
192
+ for (const e of errors) {
193
+ const key = `${e.file}:${e.line}:${e.column}:${e.message.split('\n')[0]}`;
194
+ if (!seen.has(key)) {
195
+ seen.add(key);
196
+ unique.push(e);
197
+ }
198
+ }
199
+ return unique;
200
+ }
201
+ /**
202
+ * Group errors by file
203
+ */
204
+ function groupByFile(errors) {
205
+ const groups = new Map();
206
+ for (const error of errors) {
207
+ const file = error.file || 'unknown';
208
+ if (!groups.has(file)) {
209
+ groups.set(file, []);
210
+ }
211
+ const group = groups.get(file);
212
+ if (group) {
213
+ group.push(error);
214
+ }
215
+ }
216
+ return groups;
217
+ }
218
+ //# sourceMappingURL=maven-compiler-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maven-compiler-extractor.js","sourceRoot":"","sources":["../src/maven-compiler-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Maven Surefire/Failsafe (JUnit) error extractor
3
+ *
4
+ * Extracts test failures from Maven Surefire and Failsafe plugin output.
5
+ * Supports JUnit 4, JUnit 5, and AssertJ assertion failures.
6
+ */
7
+ import type { ErrorExtractorResult } from './types.js';
8
+ /**
9
+ * Detects if output is from Maven Surefire/Failsafe
10
+ */
11
+ export declare function detectMavenSurefire(output: string): {
12
+ confidence: number;
13
+ patterns: string[];
14
+ reason: string;
15
+ };
16
+ /**
17
+ * Extracts test failures from Maven Surefire/Failsafe output
18
+ */
19
+ export declare function extractMavenSurefire(output: string, command?: string): ErrorExtractorResult;
20
+ //# sourceMappingURL=maven-surefire-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maven-surefire-extractor.d.ts","sourceRoot":"","sources":["../src/maven-surefire-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,YAAY,CAAC;AAkCvE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CA2CA;AAED;;GAEG;AAEH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,oBAAoB,CAsLtB"}