@vibe-validate/extractors 0.17.3 → 0.17.5-rc.1
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/extractor-registry.d.ts.map +1 -1
- package/dist/extractor-registry.js +8 -8
- package/dist/extractor-registry.js.map +1 -1
- package/dist/extractors/ava/index.d.ts.map +1 -1
- package/dist/extractors/ava/index.js +15 -14
- package/dist/extractors/ava/index.js.map +1 -1
- package/dist/extractors/ava/index.test.js +30 -20
- package/dist/extractors/ava/index.test.js.map +1 -1
- package/dist/extractors/eslint/index.d.ts.map +1 -1
- package/dist/extractors/eslint/index.js +1 -1
- package/dist/extractors/eslint/index.js.map +1 -1
- package/dist/extractors/eslint/index.test.js.map +1 -1
- package/dist/extractors/generic/index.test.js.map +1 -1
- package/dist/extractors/jasmine/index.test.js.map +1 -1
- package/dist/extractors/jest/index.d.ts.map +1 -1
- package/dist/extractors/jest/index.js.map +1 -1
- package/dist/extractors/jest/index.test.js.map +1 -1
- package/dist/extractors/junit/index.d.ts.map +1 -1
- package/dist/extractors/junit/index.js +5 -5
- package/dist/extractors/junit/index.js.map +1 -1
- package/dist/extractors/junit/index.test.js.map +1 -1
- package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -1
- package/dist/extractors/maven-checkstyle/index.js +1 -1
- package/dist/extractors/maven-checkstyle/index.js.map +1 -1
- package/dist/extractors/maven-checkstyle/index.test.js +2 -2
- package/dist/extractors/maven-checkstyle/index.test.js.map +1 -1
- package/dist/extractors/maven-compiler/index.d.ts.map +1 -1
- package/dist/extractors/maven-compiler/index.js +1 -1
- package/dist/extractors/maven-compiler/index.js.map +1 -1
- package/dist/extractors/maven-compiler/index.test.js +1 -1
- package/dist/extractors/maven-compiler/index.test.js.map +1 -1
- package/dist/extractors/maven-surefire/index.d.ts.map +1 -1
- package/dist/extractors/maven-surefire/index.js.map +1 -1
- package/dist/extractors/maven-surefire/index.test.js.map +1 -1
- package/dist/extractors/mocha/index.test.js.map +1 -1
- package/dist/extractors/playwright/index.test.js.map +1 -1
- package/dist/extractors/tap/index.test.js +2 -2
- package/dist/extractors/tap/index.test.js.map +1 -1
- package/dist/extractors/typescript/index.d.ts.map +1 -1
- package/dist/extractors/typescript/index.js +16 -19
- package/dist/extractors/typescript/index.js.map +1 -1
- package/dist/extractors/typescript/index.test.js.map +1 -1
- package/dist/extractors/vitest/index.d.ts.map +1 -1
- package/dist/extractors/vitest/index.js +16 -7
- package/dist/extractors/vitest/index.js.map +1 -1
- package/dist/extractors/vitest/index.test.js +38 -0
- package/dist/extractors/vitest/index.test.js.map +1 -1
- package/dist/plugin-loader.d.ts.map +1 -1
- package/dist/plugin-loader.js +1 -1
- package/dist/plugin-loader.js.map +1 -1
- package/dist/result-schema-export.d.ts.map +1 -1
- package/dist/result-schema-export.js.map +1 -1
- package/dist/result-schema.d.ts.map +1 -1
- package/dist/result-schema.js +1 -1
- package/dist/result-schema.js.map +1 -1
- package/dist/sandboxed-extractor.d.ts +1 -1
- package/dist/sandboxed-extractor.d.ts.map +1 -1
- package/dist/sandboxed-extractor.js.map +1 -1
- package/dist/scripts/generate-result-schema.js +1 -1
- package/dist/scripts/generate-result-schema.js.map +1 -1
- package/dist/smart-extractor.d.ts.map +1 -1
- package/dist/smart-extractor.js.map +1 -1
- package/dist/utils/guidance-generator.d.ts.map +1 -1
- package/dist/utils/guidance-generator.js +4 -7
- package/dist/utils/guidance-generator.js.map +1 -1
- package/dist/utils/test-framework-utils.d.ts.map +1 -1
- package/dist/utils/test-framework-utils.js.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +8 -8
- package/dist/ava-extractor.d.ts +0 -24
- package/dist/ava-extractor.d.ts.map +0 -1
- package/dist/ava-extractor.js +0 -343
- package/dist/ava-extractor.js.map +0 -1
- package/dist/eslint-extractor.d.ts +0 -25
- package/dist/eslint-extractor.d.ts.map +0 -1
- package/dist/eslint-extractor.js +0 -145
- package/dist/eslint-extractor.js.map +0 -1
- package/dist/generic-extractor.d.ts +0 -35
- package/dist/generic-extractor.d.ts.map +0 -1
- package/dist/generic-extractor.js +0 -128
- package/dist/generic-extractor.js.map +0 -1
- package/dist/jasmine-extractor.d.ts +0 -23
- package/dist/jasmine-extractor.d.ts.map +0 -1
- package/dist/jasmine-extractor.js +0 -151
- package/dist/jasmine-extractor.js.map +0 -1
- package/dist/jest-extractor.d.ts +0 -29
- package/dist/jest-extractor.d.ts.map +0 -1
- package/dist/jest-extractor.js +0 -174
- package/dist/jest-extractor.js.map +0 -1
- package/dist/junit-extractor.d.ts +0 -24
- package/dist/junit-extractor.d.ts.map +0 -1
- package/dist/junit-extractor.js +0 -193
- package/dist/junit-extractor.js.map +0 -1
- package/dist/maven-checkstyle-extractor.d.ts +0 -20
- package/dist/maven-checkstyle-extractor.d.ts.map +0 -1
- package/dist/maven-checkstyle-extractor.js +0 -208
- package/dist/maven-checkstyle-extractor.js.map +0 -1
- package/dist/maven-compiler-extractor.d.ts +0 -20
- package/dist/maven-compiler-extractor.d.ts.map +0 -1
- package/dist/maven-compiler-extractor.js +0 -218
- package/dist/maven-compiler-extractor.js.map +0 -1
- package/dist/maven-surefire-extractor.d.ts +0 -20
- package/dist/maven-surefire-extractor.d.ts.map +0 -1
- package/dist/maven-surefire-extractor.js +0 -228
- package/dist/maven-surefire-extractor.js.map +0 -1
- package/dist/mocha-extractor.d.ts +0 -23
- package/dist/mocha-extractor.d.ts.map +0 -1
- package/dist/mocha-extractor.js +0 -160
- package/dist/mocha-extractor.js.map +0 -1
- package/dist/playwright-extractor.d.ts +0 -38
- package/dist/playwright-extractor.d.ts.map +0 -1
- package/dist/playwright-extractor.js +0 -239
- package/dist/playwright-extractor.js.map +0 -1
- package/dist/sandbox.test.d.ts +0 -8
- package/dist/sandbox.test.d.ts.map +0 -1
- package/dist/sandbox.test.js +0 -395
- package/dist/sandbox.test.js.map +0 -1
- package/dist/sandboxed-extractor.test.d.ts +0 -5
- package/dist/sandboxed-extractor.test.d.ts.map +0 -1
- package/dist/sandboxed-extractor.test.js +0 -346
- package/dist/sandboxed-extractor.test.js.map +0 -1
- package/dist/tap-extractor.d.ts +0 -24
- package/dist/tap-extractor.d.ts.map +0 -1
- package/dist/tap-extractor.js +0 -217
- package/dist/tap-extractor.js.map +0 -1
- package/dist/typescript-extractor.d.ts +0 -25
- package/dist/typescript-extractor.d.ts.map +0 -1
- package/dist/typescript-extractor.js +0 -96
- package/dist/typescript-extractor.js.map +0 -1
- package/dist/vitest-extractor.d.ts +0 -38
- package/dist/vitest-extractor.d.ts.map +0 -1
- package/dist/vitest-extractor.js +0 -540
- package/dist/vitest-extractor.js.map +0 -1
package/dist/junit-extractor.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JUnit XML Error Extractor
|
|
3
|
-
*
|
|
4
|
-
* Parses JUnit XML test reports and formats failures for LLM consumption.
|
|
5
|
-
* Supports Vitest, Jest, and other test frameworks that output JUnit XML.
|
|
6
|
-
*
|
|
7
|
-
* @package @vibe-validate/extractors
|
|
8
|
-
*/
|
|
9
|
-
import { formatCleanOutput } from './utils/formatter-utils.js';
|
|
10
|
-
import { generateGuidanceFromPatterns } from './utils/guidance-generator.js';
|
|
11
|
-
/**
|
|
12
|
-
* Extract errors from JUnit XML test output
|
|
13
|
-
*
|
|
14
|
-
* @param output - JUnit XML string
|
|
15
|
-
* @returns Structured error information
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const junitXml = fs.readFileSync('junit.xml', 'utf-8');
|
|
20
|
-
* const result = extractJUnitErrors(junitXml);
|
|
21
|
-
* console.log(result.summary); // "5 test(s) failed"
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export function extractJUnitErrors(output) {
|
|
25
|
-
// Note: ANSI codes are stripped centrally in smart-extractor.ts
|
|
26
|
-
// Try to parse XML
|
|
27
|
-
let isValidXml = false;
|
|
28
|
-
try {
|
|
29
|
-
// Simple XML parsing - look for <testsuite> and <testcase> elements
|
|
30
|
-
isValidXml = parseSimpleXML(output);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
34
|
-
return {
|
|
35
|
-
summary: `Unable to parse JUnit XML - invalid format: ${errorMsg}`,
|
|
36
|
-
errors: [],
|
|
37
|
-
totalErrors: 0,
|
|
38
|
-
errorSummary: output.trim(),
|
|
39
|
-
guidance: 'Ensure the input is valid JUnit XML format',
|
|
40
|
-
metadata: {
|
|
41
|
-
confidence: 0,
|
|
42
|
-
completeness: 0,
|
|
43
|
-
issues: ['Failed to parse XML']
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (!isValidXml) {
|
|
48
|
-
return {
|
|
49
|
-
summary: '0 test(s) failed',
|
|
50
|
-
errors: [],
|
|
51
|
-
totalErrors: 0,
|
|
52
|
-
errorSummary: '',
|
|
53
|
-
guidance: '',
|
|
54
|
-
metadata: {
|
|
55
|
-
confidence: 100,
|
|
56
|
-
completeness: 100,
|
|
57
|
-
issues: []
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
// Extract all failure elements
|
|
62
|
-
const failures = extractFailures(output);
|
|
63
|
-
const errors = [];
|
|
64
|
-
let completeCount = 0;
|
|
65
|
-
for (const failure of failures) {
|
|
66
|
-
const file = failure.file ?? 'unknown';
|
|
67
|
-
const location = failure.location ?? `${file}:0`;
|
|
68
|
-
const message = failure.message ?? 'Test failed';
|
|
69
|
-
const context = failure.testName ?? '';
|
|
70
|
-
const isComplete = file !== 'unknown' && failure.location && message;
|
|
71
|
-
if (isComplete) {
|
|
72
|
-
completeCount++;
|
|
73
|
-
}
|
|
74
|
-
// Parse location to get line/column (only if location exists)
|
|
75
|
-
let line;
|
|
76
|
-
if (location) {
|
|
77
|
-
const locationParts = location.split(':');
|
|
78
|
-
line = locationParts[1] ? Number.parseInt(locationParts[1], 10) : undefined;
|
|
79
|
-
}
|
|
80
|
-
errors.push({
|
|
81
|
-
file,
|
|
82
|
-
line,
|
|
83
|
-
message: decodeHtmlEntities(message),
|
|
84
|
-
context: decodeHtmlEntities(context)
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
// Generate summary
|
|
88
|
-
const failureCount = failures.length;
|
|
89
|
-
const summary = `${failureCount} test(s) failed`;
|
|
90
|
-
// Generate guidance based on error types
|
|
91
|
-
const guidance = generateGuidanceFromPatterns(failures);
|
|
92
|
-
// Calculate quality metadata
|
|
93
|
-
const completeness = failures.length > 0 ? (completeCount / failures.length) * 100 : 100;
|
|
94
|
-
const confidence = failures.length > 0 ? 95 : 100; // High confidence for JUnit XML
|
|
95
|
-
const metadata = {
|
|
96
|
-
confidence,
|
|
97
|
-
completeness,
|
|
98
|
-
issues: []
|
|
99
|
-
};
|
|
100
|
-
return {
|
|
101
|
-
summary,
|
|
102
|
-
errors,
|
|
103
|
-
totalErrors: failures.length,
|
|
104
|
-
errorSummary: formatCleanOutput(errors),
|
|
105
|
-
guidance,
|
|
106
|
-
metadata
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Simple XML parser for JUnit format
|
|
111
|
-
* (We avoid full XML parsers to minimize dependencies)
|
|
112
|
-
*/
|
|
113
|
-
function parseSimpleXML(xml) {
|
|
114
|
-
// Check if it contains testsuite elements
|
|
115
|
-
if (!xml.includes('<testsuite') && !xml.includes('<testsuites')) {
|
|
116
|
-
throw new Error('Not JUnit XML format');
|
|
117
|
-
}
|
|
118
|
-
// Validate basic XML structure
|
|
119
|
-
if (!xml.includes('<?xml') && !xml.includes('<testsuite')) {
|
|
120
|
-
throw new Error('Invalid XML structure');
|
|
121
|
-
}
|
|
122
|
-
// Return that XML is valid
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Extract attribute value from XML tag
|
|
127
|
-
*/
|
|
128
|
-
function extractXmlAttribute(tag, attrName) {
|
|
129
|
-
const idx = tag.indexOf(`${attrName}="`);
|
|
130
|
-
if (idx === -1)
|
|
131
|
-
return undefined;
|
|
132
|
-
const start = idx + `${attrName}="`.length;
|
|
133
|
-
const end = tag.indexOf('"', start);
|
|
134
|
-
return tag.substring(start, end);
|
|
135
|
-
}
|
|
136
|
-
function extractFailures(xml) {
|
|
137
|
-
const failures = [];
|
|
138
|
-
const testcasePattern = /<testcase[^>]*>([\s\S]*?)<\/testcase>/g;
|
|
139
|
-
let testcaseMatch;
|
|
140
|
-
while ((testcaseMatch = testcasePattern.exec(xml)) !== null) {
|
|
141
|
-
const testcaseContent = testcaseMatch[0];
|
|
142
|
-
const testcaseInner = testcaseMatch[1];
|
|
143
|
-
// Skip passing tests
|
|
144
|
-
if (!testcaseInner.includes('<failure')) {
|
|
145
|
-
continue;
|
|
146
|
-
}
|
|
147
|
-
// Extract testcase tag attributes
|
|
148
|
-
const testcaseTagMatch = /<testcase([^>]*)>/.exec(testcaseContent);
|
|
149
|
-
const testcaseTag = testcaseTagMatch ? testcaseTagMatch[1] : '';
|
|
150
|
-
const file = extractXmlAttribute(testcaseTag, 'classname');
|
|
151
|
-
const testName = extractXmlAttribute(testcaseTag, 'name');
|
|
152
|
-
// Extract failure element
|
|
153
|
-
const failurePattern = /<failure[^>]*>([\s\S]*?)<\/failure>/;
|
|
154
|
-
const failureMatch = failurePattern.exec(testcaseInner);
|
|
155
|
-
if (!failureMatch) {
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
const failureContent = failureMatch[0];
|
|
159
|
-
const failureText = failureMatch[1];
|
|
160
|
-
// Extract failure attributes
|
|
161
|
-
const message = extractXmlAttribute(failureContent, 'message');
|
|
162
|
-
const errorType = extractXmlAttribute(failureContent, 'type');
|
|
163
|
-
// Extract location from failure text (❯ file:line:column)
|
|
164
|
-
const locationPattern = /❯\s+([\w/.-]+):(\d+)(?::\d+)?/;
|
|
165
|
-
const locationMatch = locationPattern.exec(failureText);
|
|
166
|
-
let location;
|
|
167
|
-
let extractedFile;
|
|
168
|
-
if (locationMatch) {
|
|
169
|
-
extractedFile = locationMatch[1];
|
|
170
|
-
location = `${extractedFile}:${locationMatch[2]}`;
|
|
171
|
-
}
|
|
172
|
-
failures.push({
|
|
173
|
-
file: extractedFile ?? file,
|
|
174
|
-
location,
|
|
175
|
-
message,
|
|
176
|
-
testName,
|
|
177
|
-
errorType
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
return failures;
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Decode HTML entities in XML content
|
|
184
|
-
*/
|
|
185
|
-
function decodeHtmlEntities(text) {
|
|
186
|
-
return text
|
|
187
|
-
.replace(/>/g, '>')
|
|
188
|
-
.replace(/</g, '<')
|
|
189
|
-
.replace(/"/g, '"')
|
|
190
|
-
.replace(/'/g, "'")
|
|
191
|
-
.replace(/&/g, '&'); // Must be last to avoid double-decoding
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=junit-extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"junit-extractor.js","sourceRoot":"","sources":["../src/junit-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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 type { ErrorExtractorResult } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Detects if output is from Maven Checkstyle
|
|
10
|
-
*/
|
|
11
|
-
export declare function detectMavenCheckstyle(output: string): {
|
|
12
|
-
confidence: number;
|
|
13
|
-
patterns: string[];
|
|
14
|
-
reason: string;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Extracts Checkstyle violations from Maven output
|
|
18
|
-
*/
|
|
19
|
-
export declare function extractMavenCheckstyle(output: string, command?: string): ErrorExtractorResult;
|
|
20
|
-
//# sourceMappingURL=maven-checkstyle-extractor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"maven-checkstyle-extractor.d.ts","sourceRoot":"","sources":["../src/maven-checkstyle-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,YAAY,CAAC;AAmCvE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CA+CA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,oBAAoB,CAmGtB"}
|
|
@@ -1,208 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"maven-checkstyle-extractor.js","sourceRoot":"","sources":["../src/maven-checkstyle-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|