@vibe-validate/extractors 0.17.0-rc3 → 0.17.0-rc4
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 +72 -0
- package/dist/extractor-registry.d.ts.map +1 -0
- package/dist/extractor-registry.js +243 -0
- package/dist/extractor-registry.js.map +1 -0
- package/dist/extractors/ava/index.d.ts +23 -0
- package/dist/extractors/ava/index.d.ts.map +1 -0
- package/dist/extractors/ava/index.js +507 -0
- package/dist/extractors/ava/index.js.map +1 -0
- package/dist/extractors/ava/index.test.d.ts +7 -0
- package/dist/extractors/ava/index.test.d.ts.map +1 -0
- package/dist/extractors/ava/index.test.js +408 -0
- package/dist/extractors/ava/index.test.js.map +1 -0
- package/dist/extractors/eslint/index.d.ts +18 -0
- package/dist/extractors/eslint/index.d.ts.map +1 -0
- package/dist/extractors/eslint/index.js +206 -0
- package/dist/extractors/eslint/index.js.map +1 -0
- package/dist/extractors/eslint/index.test.d.ts +9 -0
- package/dist/extractors/eslint/index.test.d.ts.map +1 -0
- package/dist/extractors/eslint/index.test.js +191 -0
- package/dist/extractors/eslint/index.test.js.map +1 -0
- package/dist/extractors/generic/index.d.ts +30 -0
- package/dist/extractors/generic/index.d.ts.map +1 -0
- package/dist/extractors/generic/index.js +140 -0
- package/dist/extractors/generic/index.js.map +1 -0
- package/dist/extractors/generic/index.test.d.ts +7 -0
- package/dist/extractors/generic/index.test.d.ts.map +1 -0
- package/dist/extractors/generic/index.test.js +61 -0
- package/dist/extractors/generic/index.test.js.map +1 -0
- package/dist/extractors/jasmine/index.d.ts +17 -0
- package/dist/extractors/jasmine/index.d.ts.map +1 -0
- package/dist/extractors/jasmine/index.js +242 -0
- package/dist/extractors/jasmine/index.js.map +1 -0
- package/dist/extractors/jasmine/index.test.d.ts +7 -0
- package/dist/extractors/jasmine/index.test.d.ts.map +1 -0
- package/dist/extractors/jasmine/index.test.js +318 -0
- package/dist/extractors/jasmine/index.test.js.map +1 -0
- package/dist/extractors/jest/index.d.ts +17 -0
- package/dist/extractors/jest/index.d.ts.map +1 -0
- package/dist/extractors/jest/index.js +273 -0
- package/dist/extractors/jest/index.js.map +1 -0
- package/dist/extractors/jest/index.test.d.ts +9 -0
- package/dist/extractors/jest/index.test.d.ts.map +1 -0
- package/dist/extractors/jest/index.test.js +338 -0
- package/dist/extractors/jest/index.test.js.map +1 -0
- package/dist/extractors/junit/index.d.ts +18 -0
- package/dist/extractors/junit/index.d.ts.map +1 -0
- package/dist/extractors/junit/index.js +259 -0
- package/dist/extractors/junit/index.js.map +1 -0
- package/dist/extractors/junit/index.test.d.ts +7 -0
- package/dist/extractors/junit/index.test.d.ts.map +1 -0
- package/dist/extractors/junit/index.test.js +341 -0
- package/dist/extractors/junit/index.test.js.map +1 -0
- package/dist/extractors/maven-checkstyle/index.d.ts +23 -0
- package/dist/extractors/maven-checkstyle/index.d.ts.map +1 -0
- package/dist/extractors/maven-checkstyle/index.js +263 -0
- package/dist/extractors/maven-checkstyle/index.js.map +1 -0
- package/dist/extractors/maven-checkstyle/index.test.d.ts +2 -0
- package/dist/extractors/maven-checkstyle/index.test.d.ts.map +1 -0
- package/dist/extractors/maven-checkstyle/index.test.js +197 -0
- package/dist/extractors/maven-checkstyle/index.test.js.map +1 -0
- package/dist/extractors/maven-compiler/index.d.ts +23 -0
- package/dist/extractors/maven-compiler/index.d.ts.map +1 -0
- package/dist/extractors/maven-compiler/index.js +271 -0
- package/dist/extractors/maven-compiler/index.js.map +1 -0
- package/dist/extractors/maven-compiler/index.test.d.ts +2 -0
- package/dist/extractors/maven-compiler/index.test.d.ts.map +1 -0
- package/dist/extractors/maven-compiler/index.test.js +189 -0
- package/dist/extractors/maven-compiler/index.test.js.map +1 -0
- package/dist/extractors/maven-surefire/index.d.ts +23 -0
- package/dist/extractors/maven-surefire/index.d.ts.map +1 -0
- package/dist/extractors/maven-surefire/index.js +292 -0
- package/dist/extractors/maven-surefire/index.js.map +1 -0
- package/dist/extractors/maven-surefire/index.test.d.ts +2 -0
- package/dist/extractors/maven-surefire/index.test.d.ts.map +1 -0
- package/dist/extractors/maven-surefire/index.test.js +163 -0
- package/dist/extractors/maven-surefire/index.test.js.map +1 -0
- package/dist/extractors/mocha/index.d.ts +17 -0
- package/dist/extractors/mocha/index.d.ts.map +1 -0
- package/dist/extractors/mocha/index.js +241 -0
- package/dist/extractors/mocha/index.js.map +1 -0
- package/dist/extractors/mocha/index.test.d.ts +7 -0
- package/dist/extractors/mocha/index.test.d.ts.map +1 -0
- package/dist/extractors/mocha/index.test.js +300 -0
- package/dist/extractors/mocha/index.test.js.map +1 -0
- package/dist/extractors/playwright/index.d.ts +17 -0
- package/dist/extractors/playwright/index.d.ts.map +1 -0
- package/dist/extractors/playwright/index.js +320 -0
- package/dist/extractors/playwright/index.js.map +1 -0
- package/dist/extractors/playwright/index.test.d.ts +7 -0
- package/dist/extractors/playwright/index.test.d.ts.map +1 -0
- package/dist/extractors/playwright/index.test.js +274 -0
- package/dist/extractors/playwright/index.test.js.map +1 -0
- package/dist/extractors/tap/index.d.ts +23 -0
- package/dist/extractors/tap/index.d.ts.map +1 -0
- package/dist/extractors/tap/index.js +352 -0
- package/dist/extractors/tap/index.js.map +1 -0
- package/dist/extractors/tap/index.test.d.ts +7 -0
- package/dist/extractors/tap/index.test.d.ts.map +1 -0
- package/dist/extractors/tap/index.test.js +100 -0
- package/dist/extractors/tap/index.test.js.map +1 -0
- package/dist/extractors/typescript/index.d.ts +17 -0
- package/dist/extractors/typescript/index.d.ts.map +1 -0
- package/dist/extractors/typescript/index.js +150 -0
- package/dist/extractors/typescript/index.js.map +1 -0
- package/dist/extractors/typescript/index.test.d.ts +9 -0
- package/dist/extractors/typescript/index.test.d.ts.map +1 -0
- package/dist/extractors/typescript/index.test.js +177 -0
- package/dist/extractors/typescript/index.test.js.map +1 -0
- package/dist/extractors/vitest/index.d.ts +17 -0
- package/dist/extractors/vitest/index.d.ts.map +1 -0
- package/dist/extractors/vitest/index.js +564 -0
- package/dist/extractors/vitest/index.js.map +1 -0
- package/dist/extractors/vitest/index.test.d.ts +9 -0
- package/dist/extractors/vitest/index.test.d.ts.map +1 -0
- package/dist/extractors/vitest/index.test.js +373 -0
- package/dist/extractors/vitest/index.test.js.map +1 -0
- package/dist/index.d.ts +27 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -13
- package/dist/index.js.map +1 -1
- package/dist/maven-checkstyle-extractor.d.ts.map +1 -1
- package/dist/maven-checkstyle-extractor.js +2 -17
- package/dist/maven-checkstyle-extractor.js.map +1 -1
- package/dist/maven-compiler-extractor.d.ts +20 -0
- package/dist/maven-compiler-extractor.d.ts.map +1 -0
- package/dist/maven-compiler-extractor.js +218 -0
- package/dist/maven-compiler-extractor.js.map +1 -0
- package/dist/maven-utils.d.ts +24 -0
- package/dist/maven-utils.d.ts.map +1 -0
- package/dist/maven-utils.js +36 -0
- package/dist/maven-utils.js.map +1 -0
- package/dist/plugin-loader.d.ts +82 -0
- package/dist/plugin-loader.d.ts.map +1 -0
- package/dist/plugin-loader.js +200 -0
- package/dist/plugin-loader.js.map +1 -0
- package/dist/sandbox.d.ts +161 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +254 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/sandbox.test.d.ts +8 -0
- package/dist/sandbox.test.d.ts.map +1 -0
- package/dist/sandbox.test.js +395 -0
- package/dist/sandbox.test.js.map +1 -0
- package/dist/sandboxed-extractor.d.ts +51 -0
- package/dist/sandboxed-extractor.d.ts.map +1 -0
- package/dist/sandboxed-extractor.js +172 -0
- package/dist/sandboxed-extractor.js.map +1 -0
- package/dist/sandboxed-extractor.test.d.ts +5 -0
- package/dist/sandboxed-extractor.test.d.ts.map +1 -0
- package/dist/sandboxed-extractor.test.js +346 -0
- package/dist/sandboxed-extractor.test.js.map +1 -0
- package/dist/smart-extractor.d.ts +22 -10
- package/dist/smart-extractor.d.ts.map +1 -1
- package/dist/smart-extractor.js +116 -186
- package/dist/smart-extractor.js.map +1 -1
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maven Checkstyle Extractor Plugin
|
|
3
|
+
*
|
|
4
|
+
* Extracts style violations from Maven Checkstyle plugin output.
|
|
5
|
+
* Supports both output formats generated by maven-checkstyle-plugin.
|
|
6
|
+
*
|
|
7
|
+
* @package @vibe-validate/extractors
|
|
8
|
+
*/
|
|
9
|
+
import type { ExtractorPlugin, DetectionResult, ErrorExtractorResult } from '../../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Detects if output is from Maven Checkstyle
|
|
12
|
+
*/
|
|
13
|
+
export declare function detectMavenCheckstyle(output: string): DetectionResult;
|
|
14
|
+
/**
|
|
15
|
+
* Extracts Checkstyle violations from Maven output
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractMavenCheckstyle(output: string, command?: string): ErrorExtractorResult;
|
|
18
|
+
/**
|
|
19
|
+
* Maven Checkstyle Extractor Plugin
|
|
20
|
+
*/
|
|
21
|
+
declare const mavenCheckstyleExtractor: ExtractorPlugin;
|
|
22
|
+
export default mavenCheckstyleExtractor;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extractors/maven-checkstyle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EAErB,MAAM,gBAAgB,CAAC;AAoCxB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA+CrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,oBAAoB,CAmGtB;AAwCD;;GAEG;AACH,QAAA,MAAM,wBAAwB,EAAE,eAoE/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maven Checkstyle Extractor Plugin
|
|
3
|
+
*
|
|
4
|
+
* Extracts style violations from Maven Checkstyle plugin output.
|
|
5
|
+
* Supports both output formats generated by maven-checkstyle-plugin.
|
|
6
|
+
*
|
|
7
|
+
* @package @vibe-validate/extractors
|
|
8
|
+
*/
|
|
9
|
+
import { MAX_ERRORS_IN_ARRAY } from '../../result-schema.js';
|
|
10
|
+
import { extractRelativePath } from '../../maven-utils.js';
|
|
11
|
+
const CHECKSTYLE_PATTERNS = {
|
|
12
|
+
// Format 1: [WARN] /absolute/path:line:col: message [Rule]
|
|
13
|
+
// eslint-disable-next-line sonarjs/slow-regex -- Safe: Maven Checkstyle output is structured, limited line length
|
|
14
|
+
warnFormat: /^\[WARN\]\s+([^:]+):(\d+):(\d+):\s+(.+?)\s+\[(\w+)\]$/,
|
|
15
|
+
// Format 2: [WARNING] relative/path:[line,col] (category) Rule: message
|
|
16
|
+
// eslint-disable-next-line sonarjs/slow-regex -- Safe: Maven Checkstyle output is structured, limited line length
|
|
17
|
+
warningFormat: /^\[WARNING\]\s+([^:]+):\[(\d+)(?:,(\d+))?\]\s+\((\w+)\)\s+(\w+):\s+(.+)$/,
|
|
18
|
+
// Summary line: "You have N Checkstyle violations"
|
|
19
|
+
summary: /You have (\d+) Checkstyle violations/,
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Detects if output is from Maven Checkstyle
|
|
23
|
+
*/
|
|
24
|
+
export function detectMavenCheckstyle(output) {
|
|
25
|
+
const lines = output.split('\n');
|
|
26
|
+
let score = 0;
|
|
27
|
+
const foundPatterns = [];
|
|
28
|
+
// Look for Checkstyle-specific markers
|
|
29
|
+
let hasViolationFormat = false;
|
|
30
|
+
for (const line of lines) {
|
|
31
|
+
if (line.includes('maven-checkstyle-plugin')) {
|
|
32
|
+
score += 40;
|
|
33
|
+
foundPatterns.push('maven-checkstyle-plugin reference');
|
|
34
|
+
}
|
|
35
|
+
if (line.includes('Starting audit')) {
|
|
36
|
+
score += 20;
|
|
37
|
+
foundPatterns.push('Checkstyle audit start marker');
|
|
38
|
+
}
|
|
39
|
+
if (line.includes('Audit done')) {
|
|
40
|
+
score += 20;
|
|
41
|
+
foundPatterns.push('Checkstyle audit complete marker');
|
|
42
|
+
}
|
|
43
|
+
if (CHECKSTYLE_PATTERNS.summary.test(line)) {
|
|
44
|
+
score += 30;
|
|
45
|
+
foundPatterns.push('Checkstyle violation summary');
|
|
46
|
+
}
|
|
47
|
+
if (!hasViolationFormat && (CHECKSTYLE_PATTERNS.warnFormat.test(line) || CHECKSTYLE_PATTERNS.warningFormat.test(line))) {
|
|
48
|
+
score += 10;
|
|
49
|
+
foundPatterns.push('Checkstyle violation format');
|
|
50
|
+
hasViolationFormat = true; // Only count once, but don't break - keep looking for other markers
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Determine reason based on score
|
|
54
|
+
let reason;
|
|
55
|
+
if (score >= 70) {
|
|
56
|
+
reason = 'Maven Checkstyle plugin output detected';
|
|
57
|
+
}
|
|
58
|
+
else if (score >= 40) {
|
|
59
|
+
reason = 'Possible Maven Checkstyle output';
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
reason = 'Not Maven Checkstyle output';
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
confidence: Math.min(score, 100),
|
|
66
|
+
patterns: foundPatterns,
|
|
67
|
+
reason,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Extracts Checkstyle violations from Maven output
|
|
72
|
+
*/
|
|
73
|
+
export function extractMavenCheckstyle(output, command) {
|
|
74
|
+
const detection = detectMavenCheckstyle(output);
|
|
75
|
+
if (detection.confidence < 40) {
|
|
76
|
+
return {
|
|
77
|
+
summary: 'Not Maven Checkstyle output',
|
|
78
|
+
totalErrors: 0,
|
|
79
|
+
errors: [],
|
|
80
|
+
metadata: {
|
|
81
|
+
detection: {
|
|
82
|
+
extractor: 'maven-checkstyle',
|
|
83
|
+
confidence: detection.confidence,
|
|
84
|
+
patterns: detection.patterns,
|
|
85
|
+
reason: detection.reason,
|
|
86
|
+
},
|
|
87
|
+
confidence: detection.confidence,
|
|
88
|
+
completeness: 100,
|
|
89
|
+
issues: [],
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const violations = [];
|
|
94
|
+
const lines = output.split('\n');
|
|
95
|
+
for (const line of lines) {
|
|
96
|
+
// Try Format 1: [WARN] /path:line:col: message [Rule]
|
|
97
|
+
const warnMatch = CHECKSTYLE_PATTERNS.warnFormat.exec(line);
|
|
98
|
+
if (warnMatch) {
|
|
99
|
+
const [, filePath, lineStr, colStr, message, rule] = warnMatch;
|
|
100
|
+
violations.push({
|
|
101
|
+
file: extractRelativePath(filePath),
|
|
102
|
+
line: Number.parseInt(lineStr, 10),
|
|
103
|
+
column: Number.parseInt(colStr, 10),
|
|
104
|
+
message: message.trim(),
|
|
105
|
+
rule: rule.trim(),
|
|
106
|
+
});
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
// Try Format 2: [WARNING] path:[line,col] (category) Rule: message
|
|
110
|
+
const warningMatch = CHECKSTYLE_PATTERNS.warningFormat.exec(line);
|
|
111
|
+
if (warningMatch) {
|
|
112
|
+
const [, filePath, lineStr, colStr, category, rule, message] = warningMatch;
|
|
113
|
+
violations.push({
|
|
114
|
+
file: filePath.trim(),
|
|
115
|
+
line: Number.parseInt(lineStr, 10),
|
|
116
|
+
column: colStr ? Number.parseInt(colStr, 10) : undefined,
|
|
117
|
+
message: message.trim(),
|
|
118
|
+
rule: rule.trim(),
|
|
119
|
+
category: category.trim(),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Remove duplicates (both formats report same violations)
|
|
124
|
+
const uniqueViolations = deduplicateViolations(violations);
|
|
125
|
+
// Convert to FormattedError format
|
|
126
|
+
const errors = uniqueViolations.slice(0, MAX_ERRORS_IN_ARRAY).map((v) => ({
|
|
127
|
+
file: v.file,
|
|
128
|
+
line: v.line,
|
|
129
|
+
column: v.column,
|
|
130
|
+
message: `${v.message} [${v.rule}]`,
|
|
131
|
+
}));
|
|
132
|
+
// Group by file for summary
|
|
133
|
+
const fileGroups = groupByFile(uniqueViolations);
|
|
134
|
+
const summary = `${uniqueViolations.length} Checkstyle violation(s) in ${fileGroups.size} file(s)`;
|
|
135
|
+
// Generate guidance
|
|
136
|
+
const guidance = uniqueViolations.length > 0
|
|
137
|
+
? `Fix Checkstyle violations. Run ${command ?? 'mvn checkstyle:check'} to see all details.`
|
|
138
|
+
: undefined;
|
|
139
|
+
// Create error summary
|
|
140
|
+
const errorSummary = errors.length > 0
|
|
141
|
+
? errors.map((e, i) => `[Error ${i + 1}/${errors.length}] ${e.file}:${e.line}\n${e.message}`).join('\n\n')
|
|
142
|
+
: undefined;
|
|
143
|
+
return {
|
|
144
|
+
summary,
|
|
145
|
+
totalErrors: uniqueViolations.length,
|
|
146
|
+
errors,
|
|
147
|
+
guidance,
|
|
148
|
+
errorSummary,
|
|
149
|
+
metadata: {
|
|
150
|
+
detection: {
|
|
151
|
+
extractor: 'maven-checkstyle',
|
|
152
|
+
confidence: detection.confidence,
|
|
153
|
+
patterns: detection.patterns,
|
|
154
|
+
reason: detection.reason,
|
|
155
|
+
},
|
|
156
|
+
confidence: 100,
|
|
157
|
+
completeness: 100,
|
|
158
|
+
issues: [],
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Deduplicate violations (both formats report same violations)
|
|
164
|
+
*/
|
|
165
|
+
function deduplicateViolations(violations) {
|
|
166
|
+
const seen = new Set();
|
|
167
|
+
const unique = [];
|
|
168
|
+
for (const v of violations) {
|
|
169
|
+
const key = `${v.file}:${v.line}:${v.column}:${v.rule}`;
|
|
170
|
+
if (!seen.has(key)) {
|
|
171
|
+
seen.add(key);
|
|
172
|
+
unique.push(v);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return unique;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Group violations by file
|
|
179
|
+
*/
|
|
180
|
+
function groupByFile(violations) {
|
|
181
|
+
const groups = new Map();
|
|
182
|
+
for (const violation of violations) {
|
|
183
|
+
const file = violation.file || 'unknown';
|
|
184
|
+
if (!groups.has(file)) {
|
|
185
|
+
groups.set(file, []);
|
|
186
|
+
}
|
|
187
|
+
const group = groups.get(file);
|
|
188
|
+
if (group) {
|
|
189
|
+
group.push(violation);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return groups;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Maven Checkstyle Extractor Plugin
|
|
196
|
+
*/
|
|
197
|
+
const mavenCheckstyleExtractor = {
|
|
198
|
+
metadata: {
|
|
199
|
+
name: 'maven-checkstyle',
|
|
200
|
+
version: '1.0.0',
|
|
201
|
+
author: 'Jeff Dutton <jeff@duckcreek.com>',
|
|
202
|
+
description: 'Extracts style violations from Maven Checkstyle plugin output',
|
|
203
|
+
repository: 'https://github.com/jdutton/vibe-validate',
|
|
204
|
+
tags: ['maven', 'java', 'checkstyle', 'style', 'linting'],
|
|
205
|
+
},
|
|
206
|
+
hints: {
|
|
207
|
+
required: ['[WARN]', '[INFO]'],
|
|
208
|
+
anyOf: ['maven-checkstyle-plugin', 'Starting audit', 'Checkstyle violations'],
|
|
209
|
+
},
|
|
210
|
+
priority: 60,
|
|
211
|
+
detect: detectMavenCheckstyle,
|
|
212
|
+
extract: extractMavenCheckstyle,
|
|
213
|
+
samples: [
|
|
214
|
+
{
|
|
215
|
+
name: 'basic-warn-format',
|
|
216
|
+
description: 'Format 1 violations with absolute paths',
|
|
217
|
+
input: `[INFO] Starting audit...
|
|
218
|
+
[WARN] /project/src/main/java/com/example/Foo.java:10:5: Missing Javadoc comment. [JavadocVariable]
|
|
219
|
+
[WARN] /project/src/main/java/com/example/Foo.java:15:1: '{' should be on previous line. [LeftCurly]
|
|
220
|
+
Audit done.`,
|
|
221
|
+
expected: {
|
|
222
|
+
totalErrors: 2,
|
|
223
|
+
errors: [
|
|
224
|
+
{
|
|
225
|
+
file: 'src/main/java/com/example/Foo.java',
|
|
226
|
+
line: 10,
|
|
227
|
+
column: 5,
|
|
228
|
+
message: 'Missing Javadoc comment. [JavadocVariable]',
|
|
229
|
+
},
|
|
230
|
+
],
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
name: 'basic-warning-format',
|
|
235
|
+
description: 'Format 2 violations with relative paths',
|
|
236
|
+
input: `[INFO] Starting audit...
|
|
237
|
+
[WARNING] src/main/java/com/example/Foo.java:[10,5] (javadoc) JavadocVariable: Missing a Javadoc comment.
|
|
238
|
+
[WARNING] src/main/java/com/example/Foo.java:[15,1] (blocks) LeftCurly: '{' at column 1 should be on the previous line.
|
|
239
|
+
Audit done.`,
|
|
240
|
+
expected: {
|
|
241
|
+
totalErrors: 2,
|
|
242
|
+
errors: [
|
|
243
|
+
{
|
|
244
|
+
message: 'Missing a Javadoc comment. [JavadocVariable]',
|
|
245
|
+
file: 'src/main/java/com/example/Foo.java',
|
|
246
|
+
line: 10,
|
|
247
|
+
column: 5,
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: 'real-world-output',
|
|
254
|
+
description: 'Real Maven Checkstyle output from test data',
|
|
255
|
+
inputFile: './samples/maven-checkstyle-violations.txt',
|
|
256
|
+
expected: {
|
|
257
|
+
totalErrors: 16,
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
};
|
|
262
|
+
export default mavenCheckstyleExtractor;
|
|
263
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extractors/maven-checkstyle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAqB3D,MAAM,mBAAmB,GAAG;IAC1B,2DAA2D;IAC3D,kHAAkH;IAClH,UAAU,EAAE,uDAAuD;IAEnE,wEAAwE;IACxE,kHAAkH;IAClH,aAAa,EAAE,0EAA0E;IAEzF,mDAAmD;IACnD,OAAO,EAAE,sCAAsC;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,uCAAuC;IACvC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC7C,KAAK,IAAI,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,KAAK,IAAI,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,KAAK,IAAI,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,KAAK,IAAI,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACvH,KAAK,IAAI,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAClD,kBAAkB,GAAG,IAAI,CAAC,CAAC,oEAAoE;QACjG,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,MAAc,CAAC;IACnB,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,yCAAyC,CAAC;IACrD,CAAC;SAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QACvB,MAAM,GAAG,kCAAkC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,6BAA6B,CAAC;IACzC,CAAC;IAED,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;QAChC,QAAQ,EAAE,aAAa;QACvB,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,OAAgB;IAEhB,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,SAAS,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,6BAA6B;YACtC,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,SAAS,EAAE,kBAAkB;oBAC7B,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;iBACzB;gBACD,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,YAAY,EAAE,GAAG;gBACjB,MAAM,EAAE,EAAE;aACX;SACF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,sDAAsD;QACtD,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;YAC/D,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC;gBACnC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;aAClB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,mEAAmE;QACnE,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC;YAC5E,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;gBACrB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxD,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAE3D,mCAAmC;IACnC,MAAM,MAAM,GAAqB,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG;KACpC,CAAC,CAAC,CAAC;IAEJ,4BAA4B;IAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,GAAG,gBAAgB,CAAC,MAAM,+BAA+B,UAAU,CAAC,IAAI,UAAU,CAAC;IAEnG,oBAAoB;IACpB,MAAM,QAAQ,GACZ,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,kCAAkC,OAAO,IAAI,sBAAsB,sBAAsB;QAC3F,CAAC,CAAC,SAAS,CAAC;IAEhB,uBAAuB;IACvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1G,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,OAAO;QACP,WAAW,EAAE,gBAAgB,CAAC,MAAM;QACpC,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,QAAQ,EAAE;YACR,SAAS,EAAE;gBACT,SAAS,EAAE,kBAAkB;gBAC7B,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB;YACD,UAAU,EAAE,GAAG;YACf,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,EAAE;SACX;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,UAAiC;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,UAAiC;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IAExD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,wBAAwB,GAAoB;IAChD,QAAQ,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,kCAAkC;QAC1C,WAAW,EAAE,+DAA+D;QAC5E,UAAU,EAAE,0CAA0C;QACtD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC;KAC1D;IAED,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9B,KAAK,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,uBAAuB,CAAC;KAC9E;IAED,QAAQ,EAAE,EAAE;IAEZ,MAAM,EAAE,qBAAqB;IAC7B,OAAO,EAAE,sBAAsB;IAE/B,OAAO,EAAE;QACP;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,yCAAyC;YACtD,KAAK,EAAE;;;YAGD;YACN,QAAQ,EAAE;gBACR,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,oCAAoC;wBAC1C,IAAI,EAAE,EAAE;wBACR,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,4CAA4C;qBACtD;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,yCAAyC;YACtD,KAAK,EAAE;;;YAGD;YACN,QAAQ,EAAE;gBACR,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,8CAA8C;wBACvD,IAAI,EAAE,oCAAoC;wBAC1C,IAAI,EAAE,EAAE;wBACR,MAAM,EAAE,CAAC;qBACV;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,6CAA6C;YAC1D,SAAS,EAAE,2CAA2C;YACtD,QAAQ,EAAE;gBACR,WAAW,EAAE,EAAE;aAChB;SACF;KACF;CACF,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/extractors/maven-checkstyle/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import mavenCheckstyleExtractor, { detectMavenCheckstyle, extractMavenCheckstyle } from './index.js';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import { join, dirname } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
describe('Maven Checkstyle Extractor Plugin', () => {
|
|
8
|
+
describe('plugin metadata', () => {
|
|
9
|
+
it('should have correct metadata', () => {
|
|
10
|
+
expect(mavenCheckstyleExtractor.metadata.name).toBe('maven-checkstyle');
|
|
11
|
+
expect(mavenCheckstyleExtractor.metadata.version).toBe('1.0.0');
|
|
12
|
+
expect(mavenCheckstyleExtractor.metadata.tags).toContain('maven');
|
|
13
|
+
expect(mavenCheckstyleExtractor.metadata.tags).toContain('checkstyle');
|
|
14
|
+
});
|
|
15
|
+
it('should have hints for fast filtering', () => {
|
|
16
|
+
expect(mavenCheckstyleExtractor.hints.required).toContain('[WARN]');
|
|
17
|
+
expect(mavenCheckstyleExtractor.hints.required).toContain('[INFO]');
|
|
18
|
+
expect(mavenCheckstyleExtractor.hints.anyOf).toBeDefined();
|
|
19
|
+
});
|
|
20
|
+
it('should have priority defined', () => {
|
|
21
|
+
expect(mavenCheckstyleExtractor.priority).toBe(60);
|
|
22
|
+
});
|
|
23
|
+
it('should have samples', () => {
|
|
24
|
+
expect(mavenCheckstyleExtractor.samples).toBeDefined();
|
|
25
|
+
expect(mavenCheckstyleExtractor.samples.length).toBeGreaterThan(0);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('detectMavenCheckstyle', () => {
|
|
29
|
+
it('should detect Maven Checkstyle output with high confidence', () => {
|
|
30
|
+
const output = `[INFO] Starting audit...
|
|
31
|
+
[WARN] /path/to/File.java:10:5: Missing Javadoc comment. [JavadocVariable]
|
|
32
|
+
Audit done.
|
|
33
|
+
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.3.1:check: You have 5 Checkstyle violations.`;
|
|
34
|
+
const result = detectMavenCheckstyle(output);
|
|
35
|
+
expect(result.confidence).toBeGreaterThanOrEqual(100);
|
|
36
|
+
expect(result.patterns).toContain('maven-checkstyle-plugin reference');
|
|
37
|
+
expect(result.patterns).toContain('Checkstyle audit start marker');
|
|
38
|
+
expect(result.patterns).toContain('Checkstyle audit complete marker');
|
|
39
|
+
expect(result.patterns).toContain('Checkstyle violation summary');
|
|
40
|
+
expect(result.reason).toBe('Maven Checkstyle plugin output detected');
|
|
41
|
+
});
|
|
42
|
+
it('should have low confidence for non-Checkstyle output', () => {
|
|
43
|
+
const output = `Some random build output
|
|
44
|
+
No Checkstyle markers here
|
|
45
|
+
Just normal text`;
|
|
46
|
+
const result = detectMavenCheckstyle(output);
|
|
47
|
+
expect(result.confidence).toBeLessThan(40);
|
|
48
|
+
});
|
|
49
|
+
it('should detect plugin reference for medium confidence', () => {
|
|
50
|
+
const output = `[INFO] Running maven-checkstyle-plugin`;
|
|
51
|
+
const result = detectMavenCheckstyle(output);
|
|
52
|
+
expect(result.confidence).toBeGreaterThanOrEqual(40);
|
|
53
|
+
expect(result.patterns).toContain('maven-checkstyle-plugin reference');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('extractMavenCheckstyle', () => {
|
|
57
|
+
it('should extract errors from [WARN] format', () => {
|
|
58
|
+
const output = `[INFO] Starting audit...
|
|
59
|
+
[WARN] /project/src/main/java/com/example/Foo.java:10:5: Missing Javadoc comment. [JavadocVariable]
|
|
60
|
+
[WARN] /project/src/main/java/com/example/Foo.java:15:1: '{' should be on previous line. [LeftCurly]
|
|
61
|
+
Audit done.`;
|
|
62
|
+
const result = extractMavenCheckstyle(output);
|
|
63
|
+
expect(result.totalErrors).toBe(2);
|
|
64
|
+
expect(result.errors).toHaveLength(2);
|
|
65
|
+
expect(result.errors[0]).toMatchObject({
|
|
66
|
+
file: 'src/main/java/com/example/Foo.java',
|
|
67
|
+
line: 10,
|
|
68
|
+
column: 5,
|
|
69
|
+
message: expect.stringContaining('Missing Javadoc'),
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
it('should extract errors from [WARNING] format', () => {
|
|
73
|
+
const output = `[INFO] Starting audit...
|
|
74
|
+
[WARNING] src/main/java/com/example/Foo.java:[10,5] (javadoc) JavadocVariable: Missing a Javadoc comment.
|
|
75
|
+
[WARNING] src/main/java/com/example/Foo.java:[15,1] (blocks) LeftCurly: '{' at column 1 should be on the previous line.
|
|
76
|
+
Audit done.`;
|
|
77
|
+
const result = extractMavenCheckstyle(output);
|
|
78
|
+
expect(result.totalErrors).toBe(2);
|
|
79
|
+
expect(result.errors[0]).toMatchObject({
|
|
80
|
+
file: 'src/main/java/com/example/Foo.java',
|
|
81
|
+
line: 10,
|
|
82
|
+
column: 5,
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
it('should deduplicate violations from both formats', () => {
|
|
86
|
+
const output = `[INFO] Starting audit...
|
|
87
|
+
[WARN] /project/src/main/java/Foo.java:10:5: Missing Javadoc. [JavadocVariable]
|
|
88
|
+
Audit done.
|
|
89
|
+
[WARNING] src/main/java/Foo.java:[10,5] (javadoc) JavadocVariable: Missing Javadoc.`;
|
|
90
|
+
const result = extractMavenCheckstyle(output);
|
|
91
|
+
// Should only report once, not twice
|
|
92
|
+
expect(result.totalErrors).toBe(1);
|
|
93
|
+
});
|
|
94
|
+
it('should limit errors to MAX_ERRORS_IN_ARRAY', () => {
|
|
95
|
+
// Create 20 violations
|
|
96
|
+
const violations = Array.from({ length: 20 }, (_, i) => `[WARN] /path/File.java:${i}:5: Error ${i}. [Rule${i}]`).join('\n');
|
|
97
|
+
const output = `[INFO] Starting audit...\n${violations}\nAudit done.`;
|
|
98
|
+
const result = extractMavenCheckstyle(output);
|
|
99
|
+
expect(result.totalErrors).toBe(20); // All counted
|
|
100
|
+
expect(result.errors.length).toBeLessThanOrEqual(10); // But array limited
|
|
101
|
+
});
|
|
102
|
+
it('should provide guidance', () => {
|
|
103
|
+
const output = `[INFO] Starting audit...
|
|
104
|
+
[WARN] /path/Foo.java:1:1: Error. [Rule]
|
|
105
|
+
Audit done.`;
|
|
106
|
+
const result = extractMavenCheckstyle(output);
|
|
107
|
+
expect(result.guidance).toContain('Fix Checkstyle violations');
|
|
108
|
+
expect(result.guidance).toContain('mvn checkstyle:check');
|
|
109
|
+
});
|
|
110
|
+
it('should include custom command in guidance', () => {
|
|
111
|
+
const output = `[INFO] Starting audit...
|
|
112
|
+
[WARN] /path/Foo.java:1:1: Error. [Rule]
|
|
113
|
+
Audit done.`;
|
|
114
|
+
const result = extractMavenCheckstyle(output, 'mvn verify');
|
|
115
|
+
expect(result.guidance).toContain('mvn verify');
|
|
116
|
+
});
|
|
117
|
+
it('should return low-confidence result for non-Checkstyle output', () => {
|
|
118
|
+
const output = `Random text without Checkstyle markers`;
|
|
119
|
+
const result = extractMavenCheckstyle(output);
|
|
120
|
+
expect(result.totalErrors).toBe(0);
|
|
121
|
+
expect(result.errors).toHaveLength(0);
|
|
122
|
+
expect(result.summary).toBe('Not Maven Checkstyle output');
|
|
123
|
+
expect(result.metadata?.detection?.confidence).toBeLessThan(40);
|
|
124
|
+
});
|
|
125
|
+
it('should handle real anonymized output', () => {
|
|
126
|
+
const testFile = join(__dirname, 'samples/maven-checkstyle-violations.txt');
|
|
127
|
+
try {
|
|
128
|
+
const output = readFileSync(testFile, 'utf-8');
|
|
129
|
+
const result = extractMavenCheckstyle(output);
|
|
130
|
+
// Should extract all violations
|
|
131
|
+
expect(result.totalErrors).toBeGreaterThan(15);
|
|
132
|
+
expect(result.errors).toHaveLength(10); // Capped at MAX_ERRORS_IN_ARRAY
|
|
133
|
+
expect(result.summary).toContain('Checkstyle violation');
|
|
134
|
+
expect(result.metadata?.detection?.confidence).toBe(100);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// File doesn't exist yet - skip test
|
|
138
|
+
expect(true).toBe(true);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
it('should include errorSummary when errors exist', () => {
|
|
142
|
+
const output = `[INFO] Starting audit...
|
|
143
|
+
[WARN] /path/Foo.java:10:5: Missing Javadoc. [JavadocVariable]
|
|
144
|
+
Audit done.`;
|
|
145
|
+
const result = extractMavenCheckstyle(output);
|
|
146
|
+
expect(result.errorSummary).toBeDefined();
|
|
147
|
+
expect(result.errorSummary).toContain('[Error 1/1]');
|
|
148
|
+
expect(result.errorSummary).toContain('Foo.java:10');
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
describe('plugin samples', () => {
|
|
152
|
+
it('should validate basic-warn-format sample', () => {
|
|
153
|
+
const sample = mavenCheckstyleExtractor.samples.find(s => s.name === 'basic-warn-format');
|
|
154
|
+
expect(sample).toBeDefined();
|
|
155
|
+
if (sample && 'input' in sample) {
|
|
156
|
+
const result = extractMavenCheckstyle(sample.input);
|
|
157
|
+
expect(result.totalErrors).toBe(sample.expected.totalErrors);
|
|
158
|
+
if (sample.expected.errors) {
|
|
159
|
+
expect(result.errors[0]).toMatchObject(sample.expected.errors[0]);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
it('should validate basic-warning-format sample', () => {
|
|
164
|
+
const sample = mavenCheckstyleExtractor.samples.find(s => s.name === 'basic-warning-format');
|
|
165
|
+
expect(sample).toBeDefined();
|
|
166
|
+
if (sample && 'input' in sample) {
|
|
167
|
+
const result = extractMavenCheckstyle(sample.input);
|
|
168
|
+
expect(result.totalErrors).toBe(sample.expected.totalErrors);
|
|
169
|
+
if (sample.expected.errors) {
|
|
170
|
+
expect(result.errors[0]).toMatchObject(sample.expected.errors[0]);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
describe('metadata fields', () => {
|
|
176
|
+
it('should include detection metadata', () => {
|
|
177
|
+
const output = `[INFO] Starting audit...
|
|
178
|
+
[WARN] /path/Foo.java:1:1: Error. [Rule]
|
|
179
|
+
Audit done.`;
|
|
180
|
+
const result = extractMavenCheckstyle(output);
|
|
181
|
+
expect(result.metadata?.detection).toBeDefined();
|
|
182
|
+
expect(result.metadata?.detection?.extractor).toBe('maven-checkstyle');
|
|
183
|
+
expect(result.metadata?.detection?.confidence).toBeGreaterThan(0);
|
|
184
|
+
expect(result.metadata?.detection?.patterns).toBeDefined();
|
|
185
|
+
expect(result.metadata?.detection?.reason).toBeDefined();
|
|
186
|
+
});
|
|
187
|
+
it('should include confidence and completeness', () => {
|
|
188
|
+
const output = `[INFO] Starting audit...
|
|
189
|
+
[WARN] /path/Foo.java:1:1: Error. [Rule]
|
|
190
|
+
Audit done.`;
|
|
191
|
+
const result = extractMavenCheckstyle(output);
|
|
192
|
+
expect(result.metadata?.confidence).toBe(100);
|
|
193
|
+
expect(result.metadata?.completeness).toBe(100);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/extractors/maven-checkstyle/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maven Compiler Error Extractor Plugin
|
|
3
|
+
*
|
|
4
|
+
* Extracts Java compilation errors from Maven compiler plugin output.
|
|
5
|
+
* Supports output from `mvn compile` and `mvn test-compile` commands.
|
|
6
|
+
*
|
|
7
|
+
* @package @vibe-validate/extractors
|
|
8
|
+
*/
|
|
9
|
+
import type { ExtractorPlugin, DetectionResult, ErrorExtractorResult } from '../../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Detects if output is from Maven compiler plugin
|
|
12
|
+
*/
|
|
13
|
+
export declare function detectMavenCompiler(output: string): DetectionResult;
|
|
14
|
+
/**
|
|
15
|
+
* Extracts compilation errors from Maven compiler output
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractMavenCompiler(output: string, command?: string): ErrorExtractorResult;
|
|
18
|
+
/**
|
|
19
|
+
* Maven Compiler Extractor Plugin
|
|
20
|
+
*/
|
|
21
|
+
declare const mavenCompilerExtractor: ExtractorPlugin;
|
|
22
|
+
export default mavenCompilerExtractor;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extractors/maven-compiler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EAErB,MAAM,gBAAgB,CAAC;AA6CxB;;GAEG;AAEH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA2DnE;AAED;;GAEG;AAEH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,oBAAoB,CAyGtB;AAwCD;;GAEG;AACH,QAAA,MAAM,sBAAsB,EAAE,eAmD7B,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|