code-auditor-mcp 3.4.1 → 3.4.3
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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +204 -0
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +68 -35
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/orm/drizzleAdapter.d.ts +15 -0
- package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -1
- package/dist/analyzers/orm/drizzleAdapter.js +35 -2
- package/dist/analyzers/orm/drizzleAdapter.js.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +27 -8
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +19 -12
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +55 -53
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +9 -0
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +45 -0
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +23 -0
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +122 -37
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/auditRunner.d.ts +4 -0
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +42 -22
- package/dist/auditRunner.js.map +1 -1
- package/dist/codeIndexDB.d.ts +1 -0
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +18 -4
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +4 -3
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/defaults.d.ts +1 -18
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +10 -21
- package/dist/config/defaults.js.map +1 -1
- package/dist/conventions/conventionMiner.d.ts +12 -0
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +157 -48
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +2 -0
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +7 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +9 -2
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/tree-sitter/converter.d.ts +9 -1
- package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
- package/dist/languages/tree-sitter/converter.js +13 -6
- package/dist/languages/tree-sitter/converter.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +5 -0
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/scripts/runBench.d.ts.map +1 -1
- package/dist/scripts/runBench.js +16 -4
- package/dist/scripts/runBench.js.map +1 -1
- package/dist/styles/styleExtractor.js +6 -3
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.js +9 -3
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindProbe.d.ts +101 -0
- package/dist/styles/tailwindProbe.d.ts.map +1 -0
- package/dist/styles/tailwindProbe.js +637 -0
- package/dist/styles/tailwindProbe.js.map +1 -0
- package/dist/styles/tailwindUtilityExpander.d.ts +140 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -0
- package/dist/styles/tailwindUtilityExpander.js +262 -0
- package/dist/styles/tailwindUtilityExpander.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +3 -2
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +5 -3
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/scripts/hook-audit.sh +2 -2
|
@@ -150,9 +150,15 @@ function extractClassUsage(filePath, sourceCode) {
|
|
|
150
150
|
const value = match[1] ?? match[2] ?? match[4] ?? '';
|
|
151
151
|
const line = sourceCode.slice(0, match.index).split('\n').length;
|
|
152
152
|
const classes = value.split(/\s+/).filter(Boolean);
|
|
153
|
-
//
|
|
153
|
+
// Any className wrapped in {…} is dynamic — the expression can produce
|
|
154
|
+
// arbitrary class names at runtime (variables, ternaries, clsx calls,
|
|
155
|
+
// template literals, etc.). Mark all extracted fragments as unresolvable
|
|
156
|
+
// so the undefined-class detector skips them individually rather than
|
|
157
|
+
// false-flagging runtime values as missing CSS definitions.
|
|
158
|
+
// Spec 22 Task #254 — root cause: the old code only set unresolvable
|
|
159
|
+
// when the expression contained ${} template interpolation, missing
|
|
160
|
+
// simple variable/ternary/function-call expressions.
|
|
154
161
|
const isDynamic = !!(match[4] ?? match[3]);
|
|
155
|
-
const hasDynamicParts = isDynamic && /[\${}]/.test(value);
|
|
156
162
|
for (const className of classes) {
|
|
157
163
|
// Skip obvious static utility fragments from dynamic expressions
|
|
158
164
|
if (!className || className.length === 0)
|
|
@@ -162,7 +168,7 @@ function extractClassUsage(filePath, sourceCode) {
|
|
|
162
168
|
filePath,
|
|
163
169
|
line,
|
|
164
170
|
mechanism,
|
|
165
|
-
unresolvable:
|
|
171
|
+
unresolvable: isDynamic,
|
|
166
172
|
});
|
|
167
173
|
}
|
|
168
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleIndexer.js","sourceRoot":"","sources":["../../src/styles/styleIndexer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"styleIndexer.js","sourceRoot":"","sources":["../../src/styles/styleIndexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tailwind Compile-Probe — Spec 22 R1.2
|
|
3
|
+
*
|
|
4
|
+
* Uses the project's own installed `tailwindcss` package as the oracle for
|
|
5
|
+
* class validation. Zero hand-curated dictionaries — the project's compiler
|
|
6
|
+
* IS the authority on what classes exist.
|
|
7
|
+
*
|
|
8
|
+
* **v4 (PRIMARY):** Uses `compile()` with `@apply` probe stylesheets.
|
|
9
|
+
* Candidate classes are injected into a generated CSS file, compiled, and
|
|
10
|
+
* checked for CSS output. Classes that produce declarations are valid.
|
|
11
|
+
*
|
|
12
|
+
* **v3 (FALLBACK):** Uses `resolveConfig()` to get the fully-resolved theme,
|
|
13
|
+
* then generates utility classes from the config. Theme values come from
|
|
14
|
+
* the project's config — the config IS the oracle.
|
|
15
|
+
*
|
|
16
|
+
* **Fail-open:** If tailwindcss can't be found, loaded, or compiled, the
|
|
17
|
+
* probe returns `ready=false`. The caller MUST disable the undefined-class
|
|
18
|
+
* detector — a claim that a class "does not exist" may not ship on a
|
|
19
|
+
* known-incomplete dictionary.
|
|
20
|
+
*
|
|
21
|
+
* @module tailwindProbe
|
|
22
|
+
*/
|
|
23
|
+
export interface ProbeInitResult {
|
|
24
|
+
/** Whether initialization succeeded. */
|
|
25
|
+
ok: boolean;
|
|
26
|
+
/** Human-readable source description. */
|
|
27
|
+
source?: string;
|
|
28
|
+
/** Error message if init failed. */
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare class TailwindProbe {
|
|
32
|
+
private validClasses;
|
|
33
|
+
private _ready;
|
|
34
|
+
private _failureReason;
|
|
35
|
+
private _source;
|
|
36
|
+
private projectRoot;
|
|
37
|
+
private tailwindPath;
|
|
38
|
+
private version;
|
|
39
|
+
/** Whether the probe successfully initialized and is ready to validate classes. */
|
|
40
|
+
get ready(): boolean;
|
|
41
|
+
/** Why initialization failed, if it did. */
|
|
42
|
+
get failureReason(): string | null;
|
|
43
|
+
/** Human-readable description of the validation source. */
|
|
44
|
+
get source(): string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Initialize the probe by locating and loading the project's tailwindcss
|
|
47
|
+
* package. Tests compilation with a known-good class to verify the
|
|
48
|
+
* pipeline works end-to-end.
|
|
49
|
+
*/
|
|
50
|
+
init(projectRoot: string): Promise<ProbeInitResult>;
|
|
51
|
+
/**
|
|
52
|
+
* Check if a single class is known-valid from the cache only.
|
|
53
|
+
* Does NOT trigger a probe — use validateBatch() for that.
|
|
54
|
+
*/
|
|
55
|
+
isCached(className: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Validate a batch of class names against the project's Tailwind compiler.
|
|
58
|
+
* Classes that produce CSS when @apply'd (v4) or are generated from the
|
|
59
|
+
* resolved config (v3) are considered valid.
|
|
60
|
+
*
|
|
61
|
+
* Returns the full Set of all known-valid classes (including previously
|
|
62
|
+
* cached ones). Unknown classes that don't validate are NOT added to the
|
|
63
|
+
* cache — callers should treat absence from the returned set as "not valid."
|
|
64
|
+
*/
|
|
65
|
+
validateBatch(candidates: string[]): Promise<Set<string>>;
|
|
66
|
+
/**
|
|
67
|
+
* Generate a CSS file with @apply probe selectors, compile it with
|
|
68
|
+
* Tailwind v4, and parse the output to determine which classes are valid.
|
|
69
|
+
*/
|
|
70
|
+
private probeV4Batch;
|
|
71
|
+
/**
|
|
72
|
+
* Parse compiled CSS output to find which probe selectors have actual
|
|
73
|
+
* CSS declarations. A probe selector with no declarations or only empty
|
|
74
|
+
* rules indicates an invalid/unknown class.
|
|
75
|
+
*/
|
|
76
|
+
private parseProbeOutput;
|
|
77
|
+
/**
|
|
78
|
+
* Generate the full set of utility classes from the project's resolved
|
|
79
|
+
* Tailwind v3 config. Uses `resolveConfig()` to merge user config with
|
|
80
|
+
* core plugin defaults, then generates class names from theme scales.
|
|
81
|
+
*
|
|
82
|
+
* This IS oracle-based: the config defines what's valid, and we
|
|
83
|
+
* synthesize class names from it structurally. No hand-curated lists
|
|
84
|
+
* of colors, spacing values, font sizes, or border radii.
|
|
85
|
+
*/
|
|
86
|
+
private generateV3Classes;
|
|
87
|
+
/**
|
|
88
|
+
* Load the fully-resolved Tailwind v3 theme using resolveConfig().
|
|
89
|
+
*/
|
|
90
|
+
private loadV3ResolvedTheme;
|
|
91
|
+
/**
|
|
92
|
+
* Locate tailwindcss in the project's node_modules, walking up directories.
|
|
93
|
+
*/
|
|
94
|
+
private findTailwindcss;
|
|
95
|
+
/**
|
|
96
|
+
* Dynamically import tailwindcss v4 (ESM package).
|
|
97
|
+
* Uses file:// URL for reliable resolution from the project's node_modules.
|
|
98
|
+
*/
|
|
99
|
+
private tryImportV4;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=tailwindProbe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwindProbe.d.ts","sourceRoot":"","sources":["../../src/styles/tailwindProbe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqDD,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAsB;IAErC,mFAAmF;IACnF,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,4CAA4C;IAC5C,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED,2DAA2D;IAC3D,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED;;;;OAIG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2DxD;IAED;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEnC;IAED;;;;;;;;OAQG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAmC9D;IAMD;;;OAGG;YACW,YAAY;IAuB1B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAgFzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;;OAGG;YACW,WAAW;CAoB1B"}
|