code-auditor-mcp 3.4.6 → 3.4.8
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 +151 -0
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +31 -22
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +16 -9
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +1 -3
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +0 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +55 -34
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +36 -2
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +225 -70
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +0 -3
- package/dist/auditRunner.js.map +1 -1
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +73 -4
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/defaults.d.ts +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +3 -2
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts +28 -1
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +244 -0
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/types.d.ts +53 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +31 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +239 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/scripts/runBench.d.ts.map +1 -1
- package/dist/scripts/runBench.js +14 -4
- package/dist/scripts/runBench.js.map +1 -1
- package/dist/styles/tailwindProbe.d.ts +45 -8
- package/dist/styles/tailwindProbe.d.ts.map +1 -1
- package/dist/styles/tailwindProbe.js +160 -47
- package/dist/styles/tailwindProbe.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts +12 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +44 -0
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/astParser.js +1 -1
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +12 -2
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +62 -15
- package/dist/utils/reactDetection.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/code-auditor/SKILL.md +38 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "code-auditor",
|
|
11
11
|
"source": "./plugin",
|
|
12
12
|
"description": "Diff-scoped code quality auditing on every edit. Indexes your codebase, enforces invariants, and feeds violations back to the agent so fixes happen inline.",
|
|
13
|
-
"version": "3.4.
|
|
13
|
+
"version": "3.4.8",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Ben Hammond"
|
|
16
16
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,157 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the Code Auditor MCP project.
|
|
4
4
|
|
|
5
|
+
## [3.4.8] — 2026-07-28
|
|
6
|
+
|
|
7
|
+
### Fix: React Analyzer Bench F1 — Config Merge + Heuristic Fix
|
|
8
|
+
|
|
9
|
+
The React bench corpus dropped to F1 ~0.78 (2 of 6 rules below 1.0) after the expected.json expansion. Three fixes restore all 6 rules to F1 1.0:
|
|
10
|
+
|
|
11
|
+
1. **Config merge**: Added `const cfg = { ...DEFAULT_REACT_CONFIG, ...config }` in `analyze()`. The bench harness passes `expected.json` config directly without merging shipped defaults — missing `requireMemoization: true` and `requirePropTypes: true` caused 9 false negatives (entire `missing-props` and `performance`-memoization rules went silent).
|
|
12
|
+
|
|
13
|
+
2. **Inline-function heuristic FP**: Changed `context.includes('onClick')` to `/\bonClick\s*=\s*\{/.test()`. The old check matched string literals (`'onClick triggered'` in module-level code), producing a false positive on the `InlineClick` component which has no `onClick` handler at all. The regex requires `onClick` as a JSX attribute assignment, combined with the existing `=>` guard.
|
|
14
|
+
|
|
15
|
+
3. **Hook-contract guard**: Added `line: 1` to the `app-level` no-error-boundary violation. The bench harness validates that every violation has a numeric `line` field — the app-level sentinel was missing it, failing the hook-contract regression guard.
|
|
16
|
+
|
|
17
|
+
Also fixed `violationType: 'hooks-violation'` → `'hooks-naming'` so the rule name matches the field in `ruleRegistry.ts`.
|
|
18
|
+
|
|
19
|
+
### Deletion: `direct-sql` Rule + `directAccess` Config
|
|
20
|
+
|
|
21
|
+
Removed the `direct-sql` rule and its escape-hatch config `directAccess` entirely.
|
|
22
|
+
Architecture choices are not violations — dynamic-string SQL risk is
|
|
23
|
+
`sql-injection-risk`'s job, and users who want to ban specific APIs declare
|
|
24
|
+
it as an invariant rule. Ghost-key law: no config key survives the rule it
|
|
25
|
+
existed to escape. `hardcoded-connection` detection runs unconditionally now
|
|
26
|
+
(was also suppressed by `directAccess: 'allow'`).
|
|
27
|
+
|
|
28
|
+
### Fix: `unknown-table` Extraction Gaps — Quoted/Backtick/VIRTUAL Identifiers
|
|
29
|
+
|
|
30
|
+
`processMigrationSource()` and `discoverTablesFromSchemaFiles()` used `\w+` regex to extract table names from SQL migration files. This missed three classes of valid SQL identifier:
|
|
31
|
+
|
|
32
|
+
- **Quoted identifiers** (`"quoted_table"` / `"strategies"`)
|
|
33
|
+
- **Backtick identifiers** (`` `backtick_table` ``)
|
|
34
|
+
- **`CREATE VIRTUAL TABLE`** (FTS tables like `fts_data`)
|
|
35
|
+
|
|
36
|
+
Added `stripIdentifier()` helper to handle delimited identifiers, and updated all `CREATE TABLE` / `DROP TABLE` / `ALTER TABLE RENAME TO` regex patterns to match `[`"](?:[^`"]+)["\`]` in addition to `\w+`. `CREATE VIRTUAL TABLE` is now matched by the same `CREATE (?:VIRTUAL )?TABLE` pattern.
|
|
37
|
+
|
|
38
|
+
### Deletion: `unknown-column` Rule
|
|
39
|
+
|
|
40
|
+
Removed the `unknown-column` rule — a regex-based column-reference detector (`findColumnReferences()`) that used three source-code-text patterns (`table.column =`, `SELECT ... table.column`, `WHERE ... table.column`) on raw source text without AST awareness. Its receipts were JavaScript identifiers interpreted as SQL column references (any `obj.prop` matched the `\p{L}+\p{N}+\\.\p{L}+\p{N}+\\s*[=<>]` pattern). The rule was unauthorized — never registered in `ruleRegistry.ts`, no config key, no test fixtures, no bench entries, no plan or spec. Entry-law violation: unrequested scope arriving in a release is itself a defect.
|
|
41
|
+
|
|
42
|
+
`findColumnReferences()` existed dormant all along — its column check had a silent-skip guard (`columnSet && !columnSet.has(...)`) that returned early when no tables were known, so it never fired. v3.4.7's wrangler migration discovery populated the table catalog for the first time, which armed this downstream code path. Catalog-gated code paths light up when catalogs come alive; a post-fix grep confirmed no other consumers of `allTables` or `tableColumns` remain in `UniversalSchemaAnalyzer.ts` beyond the `unknown-table` detector itself.
|
|
43
|
+
|
|
44
|
+
Same total-deletion checklist as `direct-sql`: emitter, `findColumnReferences()` method, `ColumnReference` interface, `tableColumns` map (only consumer was the column check), `columnReferences` instance field, GROUND-TRUTH entry.
|
|
45
|
+
|
|
46
|
+
### Evidence: Unknown-Table False Positive Audit (51 findings, 0 extraction gaps)
|
|
47
|
+
|
|
48
|
+
Full recall-protocol audit produced 51 `unknown-table` findings across 13 table names. All 51 are expected false positives — zero extraction gaps (Bucket A = 0):
|
|
49
|
+
|
|
50
|
+
- **Bucket B** (43 findings, 12 table names): Durable Object agents that define SQLite schema via in-code DDL. Tables exist only in DO-local SQLite, never in migration files.
|
|
51
|
+
- **Bucket C** (8 findings, 1 table name): `generation_queue` — created in migration 0058, dropped in migration 0198. API route still references it.
|
|
52
|
+
|
|
53
|
+
The existing `findTableReferences()` pipeline handles all gap classes: multi-statement `.sql` files, `CREATE TABLE IF NOT EXISTS`, quoted/backticked identifiers, `CREATE VIRTUAL TABLE` (FTS), and RENAME replay order (sequential state machine applied in Item 1). See `SPEC-ITEM-2-UNKNOWN-TABLE-EVIDENCE.md`.
|
|
54
|
+
|
|
55
|
+
### Evidence: sql-injection-risk False Positive Audit (78 findings, 3 receipt shapes)
|
|
56
|
+
|
|
57
|
+
Full recall-protocol audit produced 78 `sql-injection-risk` findings across 23 files. All 78 are false positives — zero actual SQL injection vulnerabilities. Three receipt shapes:
|
|
58
|
+
|
|
59
|
+
- **Receipt 1 (~30 findings)**: Imported SQL fragment constants (`${OFFICIAL_HEROES_SQL}` = `"user_id IS NULL"`). `resolveLocalConstant()` is local-only; cannot trace cross-file imports.
|
|
60
|
+
- **Receipt 2 (~44 findings)**: Locally-computed constant SQL fragments — file-level string constants, function calls returning constant strings, loop variables from hardcoded arrays.
|
|
61
|
+
- **Receipt 3 (4 findings)**: Durable Object `sql.exec()` with template interpolation. DO SQLite is local-only — no network injection boundary.
|
|
62
|
+
|
|
63
|
+
**Resolution**: Receipted closure — no code fixes. The architectural constraint (`resolveLocalConstant()` is local-only) is intentional: cross-module constant resolution requires full-program type analysis (TS server), out of scope for a tree-sitter structural analyzer. Detection correctly identifies dynamic SQL construction; findings are severity `suggestion` at 1.2% of all violations — correct behavior for this tier. See `SPEC-ITEM-3-SQL-INJECTION-EVIDENCE.md`.
|
|
64
|
+
|
|
65
|
+
### Fix: Line-Number Boundary Sweep
|
|
66
|
+
|
|
67
|
+
Two off-by-one bugs fixed:
|
|
68
|
+
|
|
69
|
+
1. **`adapterBridge.ts` `collectErrors()`**: Used tree-sitter's 0-based `node.startPosition.row` and `.column` directly as display positions — every emitted location was off by one line and one column.
|
|
70
|
+
2. **`UniversalSchemaAnalyzer.ts` `offsetToLocation()`**: Added `base.line + lineOffset`, double-counting the base offset. `lineOffset` is already relative to the start of the source; adding `base.line` pushed every result one line too far.
|
|
71
|
+
|
|
72
|
+
Audited all 38 tree-sitter position consumers across 12 files; only these two sites had the bug.
|
|
73
|
+
|
|
74
|
+
### Fix: React Analyzer raw-element Diagnostic
|
|
75
|
+
|
|
76
|
+
The React analyzer's `detectRawElements()` returned 0 findings against the recall-protocol corpus despite 1,247 JSX files. Investigation confirmed zero `dangerouslySetInnerHTML` or raw `<div>` patterns in the corpus — the corpus uses semantic components exclusively. The detector is working correctly; the zero count is genuine, not a detection failure.
|
|
77
|
+
|
|
78
|
+
### Integrity: TypeScript-Only Syntax Inventory
|
|
79
|
+
|
|
80
|
+
Grep audit across all universal analyzers, invariants engine, and reporting code confirmed zero host-language syntax patterns outside the `LanguageAdapter` interface. Analyzers consume only adapter methods (`getCallGraph()`, `extractFunctions()`, `findImports()`, etc.) — no `require()`, `import`, `export`, `=>` patterns exist in analyzer code. The adapter seam is the single language surface.
|
|
81
|
+
|
|
82
|
+
### Fix: Shadcn/JIT undefined-class Compile-Probe (Two Commits)
|
|
83
|
+
|
|
84
|
+
**Engine (`837063b`)** — Rebuilt `tryImportV4()` in `tailwindProbe.ts` to handle Tailwind v4.3.3's exports map: reads `pkg.exports['.'].import` from the project's installed `tailwindcss/package.json`, with a three-fallback chain (exports map → `createRequire` → bare `import`). Added `compileV4()` using cached `compile()` with `loadStylesheet`/`loadModule` options, `setProjectCss()` for injecting Shadcn `@theme` block custom properties into probe stylesheets, and iterative recompile for batch validation (catches "Cannot apply unknown utility class `X`" errors individually). Replaced the ~4,000-entry hand-curated class-name dictionary with this compile-probe oracle.
|
|
85
|
+
|
|
86
|
+
**Auto-discovery (`8c80429`)** — Added `discoverProjectCss()` to `tailwindUtilityExpander.ts` that scans candidate paths (`app.css`, `globals.css`, `src/app/globals.css`, etc.) for CSS files containing `@theme` blocks, then feeds them via `setProjectCss()` so Shadcn semantic theme classes (`bg-background`, `text-foreground`, `bg-card`, etc.) validate correctly. Added bench `projectRoot` passthrough in `runBench.ts` so the compile-probe initializes during benchmark runs.
|
|
87
|
+
|
|
88
|
+
Validated against `bench/corpus/shadcn-jit/` fixture — all Shadcn theme classes recognized; `not-a-real-class-xyzzy` correctly flagged as unknown.
|
|
89
|
+
|
|
90
|
+
### Maintenance: Skill Staleness Guard
|
|
91
|
+
|
|
92
|
+
Added version stamp to `SKILL.md` and a CLI mismatch warning: when the installed `code-auditor-mcp` version differs from the skill's documented version, `code-audit --version` prints a warning. Prevents stale-skill drift across installs. Note: the 3 SKILL.md copies (repo root, plugin/, user skills dir) are identical and version-stamped, but `hotspots` and `risk` CLI commands are not yet documented in any copy — the sync is correct for what exists, not comprehensive.
|
|
93
|
+
|
|
94
|
+
## [3.4.7] — 2026-07-27
|
|
95
|
+
|
|
96
|
+
### Recall-Protocol Send-Back: Three Fixes + Adapter Architecture Refactor
|
|
97
|
+
|
|
98
|
+
Post-v3.4.6 audit against recall-protocol revealed three classes of false positive in `sql-injection-risk` and `unknown-table`. This release eliminates the root causes, then refactors host-language syntax detection from a static regex list onto the `LanguageAdapter` interface — the single seam for language support.
|
|
99
|
+
|
|
100
|
+
### Architecture Refactor: Delete `sqlInjectionPatterns`
|
|
101
|
+
|
|
102
|
+
**Before**: A string array (`['${', 'concat', "'+", ...]`) in the universal analyzer hardcoded JavaScript-specific patterns for detecting dynamic SQL construction. This was the wrong seam — it couldn't distinguish SQL arithmetic `COALESCE(a + b)` from string concatenation, couldn't resolve local constants to determine if a `${placeholder}` was safe, and had no path to handle Go's `fmt.Sprintf` or other languages' string-building idioms.
|
|
103
|
+
|
|
104
|
+
**After**: Three new `LanguageAdapter` methods, each implemented with tree-sitter node types per grammar:
|
|
105
|
+
|
|
106
|
+
| Method | TypeScript | Go |
|
|
107
|
+
|--------|-----------|-----|
|
|
108
|
+
| `isDynamicStringConstruction(node)` | Template substitution or binary-`+` with string operands | `fmt.Sprintf` call expression |
|
|
109
|
+
| `getDynamicParts(node)` | Extracts `${identifier}` from template literals, inner `identifier` node from tree-sitter `template_substitution` children | Extracts format arguments from `fmt.Sprintf` call |
|
|
110
|
+
| `resolveLocalConstant(scope, name)` | Finds `const`/`let`/`var` declarations in function scope, extracts RHS text, checks for reassignment | Finds `:=` and `var` declarations, same resolution logic |
|
|
111
|
+
|
|
112
|
+
The `sqlInjectionPatterns` list is deleted entirely. The universal analyzer now asks the adapter: "is this node dynamic?" → "what are its dynamic parts?" → "do those parts resolve to safe constants?" Each answer comes from tree-sitter node types, not regex.
|
|
113
|
+
|
|
114
|
+
### Fix 1 — sql-injection-risk on Static SQL (Receipts 2 & 3)
|
|
115
|
+
|
|
116
|
+
**Receipt 2** (pure static `prepare()` string with keyword `TRIM`): The old `checkQuerySecurity()` swept whole-function node text for injection patterns. The new `checkViolations()`, wired through `extractDatabaseCalls()`, inspects only the SQL string argument node — and `isDynamicStringConstruction()` returns `false` for a static `string` literal, so the categorical guard suppresses it immediately. Static literals structurally cannot be injection risks in any language.
|
|
117
|
+
|
|
118
|
+
**Receipt 3** (`+`-bearing `COALESCE(a + b)` query): The SQL `+` arithmetic operator was indistinguishable from JS string concatenation under the old regex approach. Under the adapter approach, `isDynamicStringConstruction()` checks tree-sitter node types — a bare `+` inside a SQL string literal has no `binary_expression` node, so it never matches.
|
|
119
|
+
|
|
120
|
+
**Fix**: Replaced `checkQuerySecurity()` regex-pattern matching with `adapter.isDynamicStringConstruction()` + `adapter.getDynamicParts()` flowing through `checkViolations()`. The categorical guard is structural, not pattern-based.
|
|
121
|
+
|
|
122
|
+
### Fix 2 — Interpolated-Placeholder Suppression (Receipts 1, 4, 5)
|
|
123
|
+
|
|
124
|
+
`${placeholders}` where `placeholders = ids.map(() => "?").join(",")` was flagged because `${` always matched the old injection pattern. The `?` in the map callback isn't in the same tree-sitter node as the template literal, so the parameterized check missed it.
|
|
125
|
+
|
|
126
|
+
**Fix**: Two bugs fixed in tree-sitter node traversal:
|
|
127
|
+
|
|
128
|
+
1. **`getDynamicParts()` inner identifier extraction**: Tree-sitter nests `template_substitution` as `${` → `identifier` → `}`. The old code sliced `${placeholders}` instead of `placeholders`, so `resolveLocalConstant` was searching for a declaration named `${placeholders}` and finding nothing. Fixed by walking into the `identifier` child node and using its range for name extraction.
|
|
129
|
+
|
|
130
|
+
2. **`isStatic` regex arrow-function support**: The regex determining whether a resolved RHS is placeholder-only (`"?"` literals) couldn't match arrow function syntax — the character class was `[\w]` which excludes `=`, `>`, `{`, `}`, `;`. Fixed to `/^["'\s?,\[\]\(\)\.map\(\)\.join\(\)\w=>{};]+$/`.
|
|
131
|
+
|
|
132
|
+
**Tiered outcome**: All interpolations resolve to placeholder-only and no reassignments → suppress. Any unresolved or reassigned → fire at suggestion severity with calibrated message naming the unresolved identifiers.
|
|
133
|
+
|
|
134
|
+
### Fix 3 — unknown-table Dead Discovery (204 migration files → 0 known tables)
|
|
135
|
+
|
|
136
|
+
Two layers: (1) `discoverTablesFromMigrations()` depended on `discoverFiles()` → `ALL_EXTENSIONS`, which excluded `.sql`, making the function dead; (2) for D1/wrangler projects, `wrangler.toml` declares where migrations live but was never parsed.
|
|
137
|
+
|
|
138
|
+
**Fix**: Implemented `discoverTablesFromWrangler()` — parses `wrangler.toml` for `[[d1_databases]]` blocks, reads `migrations_dir`, walks `.sql` files in alphanumeric order (chronological), and processes the migration ledger statefully: `CREATE TABLE` adds, `DROP TABLE` removes, `ALTER TABLE RENAME TO` updates references. Added `schemaFiles` config option for explicit schema file paths. Wire both into the table discovery pipeline: wrangler.toml runs first (highest authority), then explicit `schemaFiles`, then migration glob walk, then ORM extraction.
|
|
139
|
+
|
|
140
|
+
### direct-sql Fix
|
|
141
|
+
|
|
142
|
+
The `directAccess: 'allow'` config (Cloudflare Workers/D1) was dead for the `direct-sql` rule because the guard lived only in `checkGeneralPatterns()` (a file-level regex path), but `direct-sql` detection was moved to `checkViolations()` (per-`DatabaseCall` provenance). Moved the guard to the emission point.
|
|
143
|
+
|
|
144
|
+
### Verification
|
|
145
|
+
|
|
146
|
+
- Recall-shaped fixture audit through installed tarball: `sql-injection-risk: 2` (only the real-danger and reassignment cases fire; static SQL, `+` arithmetic, and placeholder-list all suppressed), `unknown-table: 2` (only genuinely-unrecognized tables; `posts`/`accounts` recognized from wrangler.toml)
|
|
147
|
+
- Go bench corpus: 14/14 passing ^(1) (zero `sql-injection-risk` false positives on `fmt.Sprintf` and static SQL; `direct-sql` suggestion still fires on raw SQL — expected, the Go corpus config doesn't set `directAccess: 'allow'`)
|
|
148
|
+
- TypeScript bench corpus: 65/65 baseline + 4 new `data-access` corpus passing
|
|
149
|
+
- 799/801 unit tests pass, 2 pre-existing timeout flakes (unchanged from v3.4.7)
|
|
150
|
+
- SKILL.md: 3 copies synced to v3.4.8 ^(2)
|
|
151
|
+
- Build: `npm run build` green
|
|
152
|
+
|
|
153
|
+
^(1) 14 corpus/analyzer pairings across all languages (TypeScript + Go), not 14 distinct analyzers. There are 9 distinct analyzers in the system.
|
|
154
|
+
^(2) The SKILL.md copies (repo root, plugin/, user skills dir) are identical and version-stamped to v3.4.8, but the `hotspots` and `risk` CLI commands are not yet documented in any copy — the sync is correct for what exists, not comprehensive.
|
|
155
|
+
|
|
5
156
|
## [3.4.6] — 2026-07-26
|
|
6
157
|
|
|
7
158
|
### Recall-Protocol Send-Back: 4/5 Items Closed + Comment Contamination Fix
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/analyzers/provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAM3E,oCAAoC;AACpC,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAiB1C,CAAC;AAEH,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUjD,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,MAAM,CAWvC,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAY9C,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CA4B1C,CAAC;AAMH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/C,gEAAgE;IAChE,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACtD,4BAA4B;IAC5B,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAwBD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,GACvB,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA6BjC;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,GACvB,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA4BjC;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GACvC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAgJjC;
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/analyzers/provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -499,15 +499,17 @@ function collectChildren(node, adapter, sourceCode, names) {
|
|
|
499
499
|
function getMemberExpressionReceiver(node, adapter, sourceCode) {
|
|
500
500
|
// Walk down the member expression chain to find the root object
|
|
501
501
|
let current = node;
|
|
502
|
-
while (current.type === 'member_expression'
|
|
502
|
+
while (current.type === 'member_expression' ||
|
|
503
|
+
current.type === 'selector_expression') {
|
|
503
504
|
const children = adapter.getChildren(current);
|
|
504
|
-
const object = children.find((c) => c.type !== '.' && c.type !== 'property_identifier');
|
|
505
|
+
const object = children.find((c) => c.type !== '.' && c.type !== 'property_identifier' && c.type !== 'field_identifier');
|
|
505
506
|
// The object of this member expression should be the first child
|
|
506
507
|
const firstChild = children[0];
|
|
507
508
|
if (firstChild &&
|
|
508
509
|
firstChild.type !== '.' &&
|
|
509
|
-
firstChild.type !== 'property_identifier') {
|
|
510
|
-
if (firstChild.type === 'member_expression'
|
|
510
|
+
firstChild.type !== 'property_identifier' && firstChild.type !== 'field_identifier') {
|
|
511
|
+
if (firstChild.type === 'member_expression' ||
|
|
512
|
+
firstChild.type === 'selector_expression') {
|
|
511
513
|
current = firstChild;
|
|
512
514
|
continue;
|
|
513
515
|
}
|
|
@@ -543,6 +545,7 @@ function getCallExpressionCallee(node, adapter) {
|
|
|
543
545
|
}
|
|
544
546
|
if (child.type === 'identifier' ||
|
|
545
547
|
child.type === 'member_expression' ||
|
|
548
|
+
child.type === 'selector_expression' ||
|
|
546
549
|
child.type === 'call_expression') {
|
|
547
550
|
return child;
|
|
548
551
|
}
|
|
@@ -721,7 +724,7 @@ export function isDBProvenanced(node, adapter, sourceCode, context, dbCallMethod
|
|
|
721
724
|
return false;
|
|
722
725
|
}
|
|
723
726
|
// Case 2: Member expression — e.g. db.prepare(...)
|
|
724
|
-
if (calleeNode.type === 'member_expression') {
|
|
727
|
+
if (calleeNode.type === 'member_expression' || calleeNode.type === 'selector_expression') {
|
|
725
728
|
return isMemberExpressionDBProvenanced(calleeNode, adapter, sourceCode, context, methods);
|
|
726
729
|
}
|
|
727
730
|
return false;
|
|
@@ -737,7 +740,7 @@ function isMemberExpressionDBProvenanced(node, adapter, sourceCode, context, met
|
|
|
737
740
|
// Walk the member expression chain to find the root
|
|
738
741
|
let rootReceiver = null;
|
|
739
742
|
let current = node;
|
|
740
|
-
while (current.type === 'member_expression') {
|
|
743
|
+
while (current.type === 'member_expression' || current.type === 'selector_expression') {
|
|
741
744
|
const children = adapter.getChildren(current);
|
|
742
745
|
const firstChild = children[0];
|
|
743
746
|
if (!firstChild)
|
|
@@ -746,7 +749,7 @@ function isMemberExpressionDBProvenanced(node, adapter, sourceCode, context, met
|
|
|
746
749
|
rootReceiver = adapter.getNodeText(firstChild, sourceCode);
|
|
747
750
|
break;
|
|
748
751
|
}
|
|
749
|
-
if (firstChild.type === 'member_expression') {
|
|
752
|
+
if (firstChild.type === 'member_expression' || firstChild.type === 'selector_expression') {
|
|
750
753
|
current = firstChild;
|
|
751
754
|
continue;
|
|
752
755
|
}
|
|
@@ -780,22 +783,24 @@ function isMemberExpressionDBProvenanced(node, adapter, sourceCode, context, met
|
|
|
780
783
|
function isDBMethodCall(node, _adapter, _sourceCode, _context, methods) {
|
|
781
784
|
// Walk the member expression chain and check each property
|
|
782
785
|
let current = node;
|
|
783
|
-
while (current.type === 'member_expression'
|
|
786
|
+
while (current.type === 'member_expression' ||
|
|
787
|
+
current.type === 'selector_expression') {
|
|
784
788
|
const children = current.children ?? [];
|
|
785
789
|
// The property is typically the second or third child
|
|
786
790
|
for (const child of children) {
|
|
787
|
-
if (child.type === 'property_identifier'
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
if (
|
|
791
|
+
if (child.type === 'property_identifier' ||
|
|
792
|
+
child.type === 'field_identifier') {
|
|
793
|
+
const propName = _adapter.getNodeText(child, _sourceCode);
|
|
794
|
+
const lower = propName.toLowerCase();
|
|
795
|
+
if (methods.has(lower) || ORM_METHODS.has(lower)) {
|
|
792
796
|
return true;
|
|
793
797
|
}
|
|
794
798
|
}
|
|
795
799
|
}
|
|
796
|
-
// Go deeper if there's a nested member expression
|
|
800
|
+
// Go deeper if there's a nested member/selector expression
|
|
797
801
|
const firstChild = children[0];
|
|
798
|
-
if (firstChild?.type === 'member_expression'
|
|
802
|
+
if (firstChild?.type === 'member_expression' ||
|
|
803
|
+
firstChild?.type === 'selector_expression') {
|
|
799
804
|
current = firstChild;
|
|
800
805
|
}
|
|
801
806
|
else {
|
|
@@ -811,18 +816,22 @@ function isDBMethodCall(node, _adapter, _sourceCode, _context, methods) {
|
|
|
811
816
|
function isDBMethodOnThis(node, adapter, sourceCode, _context, methods) {
|
|
812
817
|
// Walk the chain: this.db.prepare → check if any property matches DB methods
|
|
813
818
|
let current = node;
|
|
814
|
-
while (current.type === 'member_expression'
|
|
819
|
+
while (current.type === 'member_expression' ||
|
|
820
|
+
current.type === 'selector_expression') {
|
|
815
821
|
const children = adapter.getChildren(current);
|
|
816
822
|
for (const child of children) {
|
|
817
|
-
if (child.type === 'property_identifier'
|
|
823
|
+
if (child.type === 'property_identifier' ||
|
|
824
|
+
child.type === 'field_identifier') {
|
|
818
825
|
const propName = adapter.getNodeText(child, sourceCode);
|
|
819
|
-
|
|
826
|
+
const lower = propName.toLowerCase();
|
|
827
|
+
if (methods.has(lower) || ORM_METHODS.has(lower)) {
|
|
820
828
|
return true;
|
|
821
829
|
}
|
|
822
830
|
}
|
|
823
831
|
}
|
|
824
832
|
const firstChild = children[0];
|
|
825
|
-
if (firstChild?.type === 'member_expression'
|
|
833
|
+
if (firstChild?.type === 'member_expression' ||
|
|
834
|
+
firstChild?.type === 'selector_expression') {
|
|
826
835
|
current = firstChild;
|
|
827
836
|
}
|
|
828
837
|
else {
|
|
@@ -862,11 +871,11 @@ export function inferReceivers(provenancedSet, fileAst, adapter, sourceCode) {
|
|
|
862
871
|
if (node.type !== 'call_expression')
|
|
863
872
|
return;
|
|
864
873
|
const callee = getCallExpressionCallee(node, adapter);
|
|
865
|
-
if (!callee || callee.type !== 'member_expression')
|
|
874
|
+
if (!callee || (callee.type !== 'member_expression' && callee.type !== 'selector_expression'))
|
|
866
875
|
return;
|
|
867
876
|
// Extract method name (the property being called)
|
|
868
877
|
const methodName = extractMemberExpressionProperty(callee, adapter, sourceCode);
|
|
869
|
-
if (!methodName || !DB_CALL_METHODS.has(methodName))
|
|
878
|
+
if (!methodName || !DB_CALL_METHODS.has(methodName.toLowerCase()))
|
|
870
879
|
return;
|
|
871
880
|
// Get the receiver identifier
|
|
872
881
|
const receiver = getMemberExpressionReceiver(callee, adapter, sourceCode);
|
|
@@ -1032,7 +1041,7 @@ function extractMemberExpressionProperty(node, adapter, sourceCode) {
|
|
|
1032
1041
|
// The property is the last non-dot child
|
|
1033
1042
|
for (let i = children.length - 1; i >= 0; i--) {
|
|
1034
1043
|
const child = children[i];
|
|
1035
|
-
if (child.type === 'property_identifier') {
|
|
1044
|
+
if (child.type === 'property_identifier' || child.type === 'field_identifier') {
|
|
1036
1045
|
return adapter.getNodeText(child, sourceCode);
|
|
1037
1046
|
}
|
|
1038
1047
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/analyzers/provenance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/analyzers/provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/reactAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAGlB,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAyBlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"reactAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/reactAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAGlB,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAyBlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,kBA4I3B,CAAC"}
|
|
@@ -38,6 +38,9 @@ export const reactAnalyzer = {
|
|
|
38
38
|
const startTime = Date.now();
|
|
39
39
|
const violations = [];
|
|
40
40
|
const errors = [];
|
|
41
|
+
// Merge with defaults so partial configs (e.g., bench harness) get
|
|
42
|
+
// all required fields with their shipped defaults.
|
|
43
|
+
const cfg = { ...DEFAULT_REACT_CONFIG, ...config };
|
|
41
44
|
try {
|
|
42
45
|
// Filter for React component files
|
|
43
46
|
const reactFiles = files.filter(file => file.endsWith('.tsx') || file.endsWith('.jsx') ||
|
|
@@ -63,7 +66,7 @@ export const reactAnalyzer = {
|
|
|
63
66
|
includeTests: false,
|
|
64
67
|
includeStories: false,
|
|
65
68
|
extractProps: true,
|
|
66
|
-
extractHooks:
|
|
69
|
+
extractHooks: cfg.checkHooksRules,
|
|
67
70
|
extractImports: true,
|
|
68
71
|
detectComplexity: true
|
|
69
72
|
}, (current, total) => {
|
|
@@ -100,7 +103,7 @@ export const reactAnalyzer = {
|
|
|
100
103
|
});
|
|
101
104
|
}
|
|
102
105
|
// Run all checks
|
|
103
|
-
violations.push(...analyzeComponent(component,
|
|
106
|
+
violations.push(...analyzeComponent(component, cfg, scanResult));
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
// Phase 3: Cross-component analysis
|
|
@@ -117,12 +120,12 @@ export const reactAnalyzer = {
|
|
|
117
120
|
// Check for circular dependencies
|
|
118
121
|
violations.push(...checkCircularDependencies(componentTree));
|
|
119
122
|
// Check for missing error boundaries at app level
|
|
120
|
-
if (
|
|
123
|
+
if (cfg.requireErrorBoundaries) {
|
|
121
124
|
violations.push(...checkErrorBoundaryUsage(scanResults));
|
|
122
125
|
}
|
|
123
126
|
// Check for raw element usage (Spec 10 R4)
|
|
124
|
-
if (
|
|
125
|
-
violations.push(...checkRawElements(scanResults,
|
|
127
|
+
if (cfg.rawElementCheck) {
|
|
128
|
+
violations.push(...checkRawElements(scanResults, cfg));
|
|
126
129
|
}
|
|
127
130
|
return {
|
|
128
131
|
violations,
|
|
@@ -237,10 +240,9 @@ function checkHooksRules(component) {
|
|
|
237
240
|
severity: 'warning',
|
|
238
241
|
message: `Custom hook '${hook.name}' should start with 'use'`,
|
|
239
242
|
componentName: component.name,
|
|
240
|
-
violationType: 'hooks-
|
|
243
|
+
violationType: 'hooks-naming',
|
|
241
244
|
details: {
|
|
242
|
-
hookName: hook.name
|
|
243
|
-
rule: 'hooks-naming'
|
|
245
|
+
hookName: hook.name
|
|
244
246
|
},
|
|
245
247
|
suggestion: `Rename to 'use${hook.name.charAt(0).toUpperCase()}${hook.name.slice(1)}'`
|
|
246
248
|
});
|
|
@@ -290,8 +292,12 @@ function checkPerformanceIssues(component, config) {
|
|
|
290
292
|
});
|
|
291
293
|
}
|
|
292
294
|
// Check for inline function props (causes re-renders)
|
|
295
|
+
// Use /\bonClick\s*=\s*\{/ instead of context.includes('onClick') to avoid
|
|
296
|
+
// matching string literals ('onClick triggered') or module-level code.
|
|
297
|
+
// Combined with the '=>' check this catches real inline arrow functions
|
|
298
|
+
// (onClick={() => ...}) without flagging identifier references.
|
|
293
299
|
if (component.jsxElements && component.context?.includes('=>') &&
|
|
294
|
-
component.context
|
|
300
|
+
/\bonClick\s*=\s*\{/.test(component.context ?? '')) {
|
|
295
301
|
violations.push({
|
|
296
302
|
file: component.filePath,
|
|
297
303
|
line: component.lineNumber,
|
|
@@ -429,6 +435,7 @@ function checkErrorBoundaryUsage(scanResults) {
|
|
|
429
435
|
if (totalComponents > 10) { // Only warn for apps with significant components
|
|
430
436
|
violations.push({
|
|
431
437
|
file: 'app-level',
|
|
438
|
+
line: 1,
|
|
432
439
|
severity: 'warning',
|
|
433
440
|
message: 'No error boundaries found in the application',
|
|
434
441
|
violationType: 'no-error-boundary',
|