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
|
@@ -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.3",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Ben Hammond"
|
|
16
16
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,73 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the Code Auditor MCP project.
|
|
4
4
|
|
|
5
|
+
## [3.4.3] — 2026-07-26
|
|
6
|
+
|
|
7
|
+
### R12: Tailwind Compile-Probe Migration — Zero Hand-Curated Dictionaries
|
|
8
|
+
|
|
9
|
+
Replaced the ~4,000-entry hand-curated Tailwind class-name dictionary with a compile-probe oracle (`tailwindProbe.ts`) that validates classes against the audited project's own installed `tailwindcss` package. The project's compiler IS the authority on what classes exist — no maintained replica.
|
|
10
|
+
|
|
11
|
+
**Rationale**: The external-authority-as-oracle law (see GROUND-TRUTH.md) holds that when an external system defines what's valid, that system is the oracle — not our maintained replica of it. Hand-curating a Tailwind class dictionary is a losing game: the dictionary drifts from the actual Tailwind version, misses plugin classes, and requires maintenance on every Tailwind release.
|
|
12
|
+
|
|
13
|
+
#### Architecture
|
|
14
|
+
|
|
15
|
+
- **Primary (v4)**: Uses `compile()` with `@apply` probe stylesheets to validate classes
|
|
16
|
+
- **Fallback (v3)**: Uses `resolveConfig()` + theme generation
|
|
17
|
+
- **Structural parsing**: Arbitrary values (`prefix-[...]`), variant prefixes (`hover:`, `md:`, etc.), opacity modifiers (`utility/N`), and negative utilities (`-utility`) are parsed via regex patterns — never enumerated
|
|
18
|
+
- **Fail-open rule**: If the probe can't initialize (no tailwindcss found), `configFailed` is true and the `styles/undefined-class` detector emits a visible warning and returns early
|
|
19
|
+
|
|
20
|
+
#### New Module
|
|
21
|
+
|
|
22
|
+
- **`src/styles/tailwindProbe.ts`**: Compile-probe module. Dynamically loads the audited project's `tailwindcss`, validates class-name batches via `@apply` probe stylesheets (v4) or config theme generation (v3). Gracefully handles missing tailwindcss with `configFailed` flag.
|
|
23
|
+
|
|
24
|
+
#### Refactored Modules
|
|
25
|
+
|
|
26
|
+
- **`src/styles/tailwindUtilityExpander.ts`**: Removed all hand-curated class-name dictionaries (~800 lines deleted). `init()` only creates a probe when both `useProjectConfig === true` AND `projectRoot` is truthy. `resolve()` pipeline: probe cache → customClasses → opacity modifier → arbitrary-value → negative utility → variant prefix strip + retry.
|
|
27
|
+
- **`src/analyzers/universal/UniversalStylesAnalyzer.ts`**: `detectUndefinedClasses` now calls `await expander.init()` before resolution. When `configFailed`: emits `styles/undefined-class-disabled` warning and returns early. When probeReady: batch-probes unknown classes, then resolves each from cache. Added `tailwindClasses` config field for test-environment seeding.
|
|
28
|
+
- **`src/types.ts`**: Added `tailwindClasses?: string[]` to `StylesAnalyzerConfig` for test-environment seeding.
|
|
29
|
+
|
|
30
|
+
### Changed Files
|
|
31
|
+
|
|
32
|
+
| File | Change |
|
|
33
|
+
|------|--------|
|
|
34
|
+
| `src/styles/tailwindProbe.ts` | **New** — compile-probe module (v4 compile + v3 resolveConfig fallback) |
|
|
35
|
+
| `src/styles/tailwindUtilityExpander.ts` | Removed all hand-curated dictionaries; structural-only + probe validation |
|
|
36
|
+
| `src/analyzers/universal/UniversalStylesAnalyzer.ts` | Async init + batch-probe in detectUndefinedClasses |
|
|
37
|
+
| `src/analyzers/universal/UniversalStylesAnalyzer.spec.ts` | KNOWN_TAILWIND fixture (2 test classes); resetTailwindExpander in afterAll |
|
|
38
|
+
| `src/types.ts` | `tailwindClasses?: string[]` on StylesAnalyzerConfig |
|
|
39
|
+
|
|
40
|
+
### R13: Default-Analyzer Ghost Fix — Schema, Documentation, Component
|
|
41
|
+
|
|
42
|
+
**Discovery**: Git archaeology (`git log -p -G enabledAnalyzers`) revealed that `defaults.ts` has never included `schema` in `enabledAnalyzers` on the main branch — not since the schema analyzer was registered in 3.0.0. The July diagnostic's 6,770 schema findings ran through a non-default path (CLI override or bench harness). Default-config users never had the schema analyzer.
|
|
43
|
+
|
|
44
|
+
**Two ghost names** also sat in the defaults list since initial commit `02f3fe8`:
|
|
45
|
+
- `security` — never existed as a registered analyzer. The category tag on `data-access` is `category: 'security'`, not a standalone analyzer.
|
|
46
|
+
- `component` — renamed to `react` at some point; the registry key is `react`, and `component` never matched.
|
|
47
|
+
|
|
48
|
+
**Two more absentees** found during cross-reference:
|
|
49
|
+
- `react` — registered since inception, never in the defaults list (users who wanted React analysis had to explicitly enable it)
|
|
50
|
+
- `documentation` — same class of bug as `schema`: registered but never enabled by default
|
|
51
|
+
|
|
52
|
+
**Fix**: Corrected the defaults list to match the registry's non-experimental set:
|
|
53
|
+
- `security` → removed (ghost), `component` → `react` (actual key)
|
|
54
|
+
- `documentation` and `react` added to defaults (same bug class as `schema`)
|
|
55
|
+
|
|
56
|
+
**Guard test** (`src/__tests__/defaultsRegistry.test.ts`): Import-time test asserting:
|
|
57
|
+
1. No ghost analyzer names in defaults (present in defaults, missing from registry)
|
|
58
|
+
2. No duplicate entries
|
|
59
|
+
3. Every non-conditional registry key present in defaults (`invariants` is conditional — Spec 05 R3.1)
|
|
60
|
+
4. Canonical order matches
|
|
61
|
+
|
|
62
|
+
This is a **behavior change for every user**: `schema` and `documentation` are now enabled by default for the first time. Expect new suggestion-tier findings (`unknown-table`, `missing-function-docs`, etc.) that were always meant to ship but never did.
|
|
63
|
+
|
|
64
|
+
#### Changed Files
|
|
65
|
+
|
|
66
|
+
| File | Change |
|
|
67
|
+
|------|--------|
|
|
68
|
+
| `src/config/defaults.ts` | Corrected enabledAnalyzers: security→removed, component→react, +documentation |
|
|
69
|
+
| `src/auditRunner.ts` | Export DEFAULT_ANALYZERS for the guard test |
|
|
70
|
+
| `src/__tests__/defaultsRegistry.test.ts` | **New** — guard: defaults ≡ registry (no ghosts, no absentees) |
|
|
71
|
+
|
|
5
72
|
## [3.4.1] — 2026-07-24
|
|
6
73
|
|
|
7
74
|
### Patch Release — Production Bug Fixes
|
|
@@ -61,6 +128,143 @@ The Style Intelligence analyzer's file discovery didn't include `.css`/`.scss` e
|
|
|
61
128
|
| `src/cli-integration.spec.ts` | A2 gate expansion — doc-CLI parity tests (16 pass, 6 skip) |
|
|
62
129
|
| `GROUND-TRUTH.md` | §9: Known Issues — SDK/Integration Surface |
|
|
63
130
|
|
|
131
|
+
## [3.4.2] — 2026-07-26
|
|
132
|
+
|
|
133
|
+
### R4: SQL Extraction Regression Fix
|
|
134
|
+
|
|
135
|
+
Post-release dogfood triage surfaced false positives from three sources in the SQL extraction pipeline. None were structural bugs in the detection logic — they were routing failures: SQL-looking JS patterns reaching the extraction stage without DB context gates.
|
|
136
|
+
|
|
137
|
+
**The root cause was a one-emitter-law violation**: Spec 15's ORM extraction path introduced a **second emitter** — `DrizzleAdapter.extractTableReferences()` — that scanned every `call_expression` in every `.ts` file for `.from()`/`.insert()`/`.delete()` patterns. It bypassed the shared gates that protect the three regular SQL extraction paths (tagged templates gate on `sql` identifiers, DB-call patterns gate on provenance + db-member checks, file-type gates on `.sql`/migration directories). The Drizzle adapter had its own gate system — but that system was incomplete: no file-level import check, no expression-level companion requirements. Generic method calls like `Array.from(map)` in non-Drizzle files reached the extraction stage and produced false positives across rule IDs `loop-query` and `sql-injection`.
|
|
138
|
+
|
|
139
|
+
**Registry accounting** (rule IDs affected by the Drizzle emitter, confirmed by Spec 22 fixture coverage):
|
|
140
|
+
| Rule ID | Affected? | Rationale |
|
|
141
|
+
|---------|-----------|-----------|
|
|
142
|
+
| `schema/loop-query` | Yes | Drizzle emitted table refs → N+1 detection in loop context |
|
|
143
|
+
| `schema/sql-injection` | Yes | Drizzle emitted raw refs → injection check on unescaped inputs |
|
|
144
|
+
| `data-access/loop-query` | Yes | Same Drizzle-emitted refs, data-access analyzer path |
|
|
145
|
+
| `data-access/sql-injection` | Yes | Same Drizzle-emitted refs, data-access analyzer path |
|
|
146
|
+
| `schema/unknown-table` | Yes | Drizzle emitted table names → unknown-table validation |
|
|
147
|
+
| `schema/missing-schemas` | Indirect | Depends on table references from the same pipeline |
|
|
148
|
+
| All other rule IDs | No | No Drizzle-origin data reaches these detection chains |
|
|
149
|
+
|
|
150
|
+
The Prisma adapter was **not a rogue path**: `prisma.modelName.op()` syntax requires the `prisma.` identifier prefix and known operation names — a strong gate by construction. Regular SQL extraction paths (1–3) all have their own independent strong gates. Drizzle was the **only** gate-incomplete emitter.
|
|
151
|
+
|
|
152
|
+
**Post-verification** (2026-07-20): Re-ran the registry accounting across all four SQL extraction paths (tagged-template, DB-call, .sql/migration, ORM adapters). Confirmed Drizzle was the sole gate-incomplete emitter pre-fix — no other path lacked self-gating. The two-level gate (file import + companion methods) fully closes the vector.
|
|
153
|
+
|
|
154
|
+
#### R4.2: Routing Gates (Drizzle Adapter)
|
|
155
|
+
|
|
156
|
+
**File-level gate** (`DrizzleAdapter.extractTableReferences()`): The adapter now checks whether the file imports `drizzle-orm` before scanning for query operations. Without this gate, `Array.from(map)` in any `.ts` file produces a false `select` finding — the `.from()` method on `Array` has no semantic relationship to Drizzle query building.
|
|
157
|
+
|
|
158
|
+
**Expression-level gates**: Each extraction pattern now requires companion Drizzle methods to confirm DB context:
|
|
159
|
+
- `.from(identifier)` requires `.select()` in the same expression
|
|
160
|
+
- `.insert(identifier)` requires `.values()` in the same expression
|
|
161
|
+
- `.delete(identifier)` requires `.where()` in the same expression
|
|
162
|
+
|
|
163
|
+
These gates prevent generic `.from()`, `.insert()`, `.delete()` method calls on non-DB objects from being misinterpreted as table references.
|
|
164
|
+
|
|
165
|
+
#### R4.2: Routing Gates (Data-Access Shared Gate)
|
|
166
|
+
|
|
167
|
+
**Variable-assignment gate** (`containsSQLStructure()`): Raised the SQL keyword threshold from 1 to 2 for variable-assignment detection. A single `FROM` substring match (e.g., inside `Array.from()`) produced ~120 false positives on the recall corpus. Genuine SQL in variable assignments (`const q = "SELECT * FROM users"`) contains ≥2 keywords and still passes.
|
|
168
|
+
|
|
169
|
+
#### R4.3: SQL Alias Filtering
|
|
170
|
+
|
|
171
|
+
The SQL table-reference regex captures table names after `FROM`/`JOIN` keywords by matching `[\p{L}\p{N}_]+` followed by a word boundary. In `JOIN u.posts`, the `.` after `u` creates a word boundary, so the regex captures `u` — an alias for `users`, not a real table. Without filtering, every `JOIN alias.column` pattern produces a false `unknown-table` violation for the alias.
|
|
172
|
+
|
|
173
|
+
**Fix**: `extractAliasIdentifiers()` scans the SQL text for two alias patterns:
|
|
174
|
+
1. **Explicit**: `FROM x AS t` / `JOIN x AS t` — `AS` keyword
|
|
175
|
+
2. **Bare**: `FROM x t` / `JOIN x t` — no `AS` keyword, guarded by after-match dot check and `isSqlKeyword()` filtering
|
|
176
|
+
|
|
177
|
+
Extracted alias identifiers are subtracted from the table-reference list in `parseSqlTables()` before the list is returned.
|
|
178
|
+
|
|
179
|
+
#### R4.4: Bench Fixtures
|
|
180
|
+
|
|
181
|
+
- `src/no-sql-signal.ts` (both `data-access` and `schema` corpora): `Array.map`, `.toLowerCase`, `.insert()`, `.delete()`, `.update()` on plain JS objects — asserted as near-miss files producing zero SQL findings across all SQL-adjacent rule IDs.
|
|
182
|
+
- `src/aliased-queries.ts` (schema corpus): queries with explicit and bare aliases referencing only known tables — asserted as near-miss, confirming alias filtering prevents false `unknown-table` violations.
|
|
183
|
+
|
|
184
|
+
### R1–R3 (Completed Previously)
|
|
185
|
+
|
|
186
|
+
- **R1**: `styles/undefined-class` — generated Tailwind utility dictionary; undefined-class detection now distinguishes "unknown in Tailwind" from "class from a different framework"
|
|
187
|
+
- **R2**: `styles/token-bypass` — CSS custom property definitions (`--color:`) and `var()` references are no longer flagged as token bypasses
|
|
188
|
+
- **R3**: `styles/value-drift` — categorical CSS properties (`display`, `position`, `overflow`, etc.) excluded from value-drift detection; their values are enumerations, not magnitudes
|
|
189
|
+
|
|
190
|
+
### R5: Conventions — Naming Partitioning and Usage-Pair Noise Reduction
|
|
191
|
+
|
|
192
|
+
Post-release triage surfaced ~200 false positives in the conventions analyzer, concentrated in two areas: misleading naming conventions from mixed populations, and usage-pair correlation on built-in/stdlib methods where co-occurrence is arithmetic, not project convention.
|
|
193
|
+
|
|
194
|
+
#### R5.1: Naming Conventions Partitioned by Export Kind
|
|
195
|
+
|
|
196
|
+
Before this fix, the convention miner computed a single dominant casing mode per directory across all exported symbols. A directory with 40 PascalCase React components, 5 camelCase hooks, and 1 snake_case utility function would generate a `conventions/naming` violation for the utility — the miner treated all exports as a single population. With this fix, exports are partitioned into four populations before computing a mode:
|
|
197
|
+
|
|
198
|
+
- **React components** — JSX-returning / `.tsx` PascalCase entities
|
|
199
|
+
- **Hooks** — `use`-prefixed functions
|
|
200
|
+
- **Functions** — all other exported functions
|
|
201
|
+
- **Constants** — top-level literal-initialized exports
|
|
202
|
+
|
|
203
|
+
Each population must meet `minCorpus` independently; sub-threshold populations produce no conventions and no violations. Stored in the `export_kind` column of the `conventions` table (schema migration v8).
|
|
204
|
+
|
|
205
|
+
**Impact**: Eliminates false naming violations where legitimate convention in one population (e.g., PascalCase components) was used to judge a different population's naming (e.g., `use`-prefixed hooks or single utility functions).
|
|
206
|
+
|
|
207
|
+
#### R5.2: Built-in/Stdlib Excluded from Usage-Pair Mining
|
|
208
|
+
|
|
209
|
+
Usage-pair mining detects co-occurring function calls — "functions that call `A` also call `B`" — and flags deviations. Before this fix, built-in and standard library methods (`slice`, `trim`, `map`, `push`, `parse`, `stringify`, etc.) were treated as antecedents and consequents. Co-occurrence of universal methods is arithmetic, not convention: every function that calls `map` also calls `push` at some point, but that's not a meaningful project convention.
|
|
210
|
+
|
|
211
|
+
**Fix**: A comprehensive exclusion set (~80 identifiers covering Array, String, Object, Math, JSON, Promise, Console, and timer methods) is filtered from both antecedent and consequent positions. Antecedents must also be project-defined symbols resolvable in the function index — a `functions`-table membership check gates every antecedent.
|
|
212
|
+
|
|
213
|
+
**Threshold changes**: `pairConfidence` floor rises from 0.9 → 0.95 and `minCorpus` from 20 → 30. These are interim values, sweepable in the next recalibration pass.
|
|
214
|
+
|
|
215
|
+
### R6: Evidence Bundle
|
|
216
|
+
|
|
217
|
+
All six defect classes are covered by bench fixtures in `bench/corpus/`:
|
|
218
|
+
- **styles**: `undefined-class`, `token-bypass`, `value-drift` fixtures with positive and near-miss files
|
|
219
|
+
- **data-access/schema**: `no-sql-signal.ts` near-miss (JS identifiers as SQL), `aliased-queries.ts` near-miss (alias filtering)
|
|
220
|
+
- **conventions**: all five rule domains (`usage-pair`, `import-form`, `error-handling`, `export-shape`, `naming`) at F1=1.0 with updated mining logic
|
|
221
|
+
|
|
222
|
+
Every touched rule remains at `suggestion` severity. The hook path is byte-identical to v3.4.1 on hook-contract fixtures. Evidence bundle at `specs/evidence/spec-22/`.
|
|
223
|
+
|
|
224
|
+
### R7: JSON-Purity Contamination Fix
|
|
225
|
+
|
|
226
|
+
The `codeIndexDB.ts:1233` migration log path wrote to stdout via `console.log`. In `--json` mode, this contaminated the JSON output stream with non-JSON text, breaking downstream consumers that `JSON.parse()` the stdout. Switched to `console.error` (stderr) to keep migration notices off the JSON stream. Three purity tests added to `baseline.test.ts` for the hook-contract-critical paths: `changed --json`, `changed --stdin --json`, and zero-match edge case.
|
|
227
|
+
|
|
228
|
+
### R8: isDynamic Extraction False Positives
|
|
229
|
+
|
|
230
|
+
`extractClassUsage()` only marked template-literal dynamic expressions as unresolvable; simple variables and ternaries passed through. All `{…}` wrapped expressions are now `unresolvable: true`, and the detector skips per-entry, not per-file. The undefined-class detector no longer false-flags runtime class-name expressions.
|
|
231
|
+
|
|
232
|
+
### R9: Line-Number Conversion Sweep
|
|
233
|
+
|
|
234
|
+
**Root cause**: `toSourceLocation()` in `converter.ts` returned 0-based positions from tree-sitter without conversion, despite a comment saying "convert to 1-based columns." This created three divergent pipelines — callers compensated individually, some double-compensated, and raw TS node access bypassed the converter entirely. The sweep fixed 6 files at 6 edit locations:
|
|
235
|
+
|
|
236
|
+
- **`converter.ts`**: Single conversion point — all four position fields (line/column, start/end) now `+ 1`
|
|
237
|
+
- **`adapterBridge.ts`**: Removed internal `+ 1` compensation (now identity over `toSourceLocation()`)
|
|
238
|
+
- **`UniversalAnalyzer.ts`**: Removed scattered `+ 1` compensation in `createViolation()`
|
|
239
|
+
- **`astParser.ts`**: Removed `+ 1` compensation on parse error positions
|
|
240
|
+
- **`componentScanner.ts`**: Removed DOUBLE compensation (was 2-based)
|
|
241
|
+
- **`dependencyExtractor.ts`**: Removed DOUBLE compensation on call graph edges and usage records
|
|
242
|
+
|
|
243
|
+
**Secondary effects**: Mixed-basis DB spans resolved (some records had 1-based start + 0-based end), churn attribution off-by-one resolved, `validateHookContract` guard behavior preserved.
|
|
244
|
+
|
|
245
|
+
**Invariant**: All positions returned by `toSourceLocation()` are now 1-based. The single conversion point is mechanically enforced — zero `+ 1` compensations remain in the tree-sitter→adapter→consumer pipeline. Full sweep report at `specs/evidence/spec-22/line-number-sweep.md`.
|
|
246
|
+
|
|
247
|
+
### R10: JSON Purity Test Expansion
|
|
248
|
+
|
|
249
|
+
Extended JSON purity tests from 3 to 17, covering all major `--json` CLI commands: `index status`, `config rules-list`, `config profiles`, `config detection`, `search`, `tasks list`, `tasks from-audit`, `hotspots`, `ledger stats`, `ledger list`, `risk`, `baseline`, `conventions list`, and `architecture`. Every test verifies `JSON.parse(stdout)` succeeds with zero non-JSON text.
|
|
250
|
+
|
|
251
|
+
### R11: Hook-Path Diagnostic
|
|
252
|
+
|
|
253
|
+
Traced a stale footer error to the published plugin's hook script (`hook-audit.sh` line 50: `2>&1`) — the hook re-merges stderr into stdout after the repo correctly separated them. The repo is fixed; the hook script fix ships with the next plugin version. Diagnostic at `specs/evidence/spec-22/verify-close.md`.
|
|
254
|
+
|
|
255
|
+
### Changed Files
|
|
256
|
+
|
|
257
|
+
| File | Change |
|
|
258
|
+
|------|--------|
|
|
259
|
+
| `src/languages/tree-sitter/converter.ts` | Add `+ 1` to all position fields; invariant JSDoc |
|
|
260
|
+
| `src/languages/adapterBridge.ts` | Remove internal `+ 1` compensation |
|
|
261
|
+
| `src/languages/UniversalAnalyzer.ts` | Remove scattered `+ 1` in `createViolation()` |
|
|
262
|
+
| `src/utils/astParser.ts` | Remove `+ 1` on parse error positions |
|
|
263
|
+
| `src/componentScanner.ts` | Remove double compensation (2-based → 1-based) |
|
|
264
|
+
| `src/utils/dependencyExtractor.ts` | Remove double compensation on call graph edges |
|
|
265
|
+
| `src/codeIndexDB.ts` | `console.log` → `console.error` for migration notices |
|
|
266
|
+
| `src/__tests__/baseline.test.ts` | 14 new JSON purity tests (3→17 total) |
|
|
267
|
+
|
|
64
268
|
## [3.3.0] — 2026-07-20
|
|
65
269
|
|
|
66
270
|
### Spec-10: Style Intelligence — Distribution-Aware Style Analysis
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossDomainAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/crossDomain/CrossDomainAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAoD,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"CrossDomainAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/crossDomain/CrossDomainAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAoD,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AA0BzE,qBAAa,mBAAoB,SAAQ,iBAAiB;IACxD,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,sFACiE;IACrF,QAAQ,CAAC,QAAQ,kBAAkB;IAEnC;;;;OAIG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,GAAE,GAAQ,EAChB,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,cAAc,CAAC,CA0EzB;IAED,yCAAyC;IACnC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAEjC;IAID;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA0C9B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAyC9B;;;;;;;OAOG;IACH,OAAO,CAAC,6BAA6B;IAuJrC;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAwL9B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAwL3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CA2C5B"}
|
|
@@ -66,8 +66,9 @@ export class CrossDomainAnalyzer extends UniversalAnalyzer {
|
|
|
66
66
|
// is shared across tests, so schema_usage entries from previous test
|
|
67
67
|
// cases leak into subsequent queries. Filter to the current project root.
|
|
68
68
|
const projectRoot = config.projectRoot;
|
|
69
|
-
const
|
|
70
|
-
|
|
69
|
+
const resolvedRoot = projectRoot ? path.resolve(projectRoot) : undefined;
|
|
70
|
+
const filePathClause = resolvedRoot
|
|
71
|
+
? { prefix: resolvedRoot, clause: 'AND file_path LIKE ?', param: `${resolvedRoot}%` }
|
|
71
72
|
: undefined;
|
|
72
73
|
// R1 — Schema lifecycle detectors
|
|
73
74
|
const lifecycle = config.schemaLifecycle ?? {};
|
|
@@ -194,20 +195,20 @@ export class CrossDomainAnalyzer extends UniversalAnalyzer {
|
|
|
194
195
|
*/
|
|
195
196
|
detectTransactionBoundaryRisk(rawDb, txnTableMax, filePath) {
|
|
196
197
|
const violations = [];
|
|
197
|
-
const
|
|
198
|
-
const
|
|
199
|
-
//
|
|
200
|
-
//
|
|
198
|
+
const fpWhere = filePath ? filePath.clause : '';
|
|
199
|
+
const fpParams = filePath ? [filePath.param] : [];
|
|
200
|
+
// ── 1. Group writes by (function_name, file_path) — no JOIN on functions.
|
|
201
|
+
// The functions table is only populated during deepSync (code-audit index
|
|
202
|
+
// sync), not during normal audit. We query schema_usage directly so this
|
|
203
|
+
// detector works in both modes.
|
|
201
204
|
const writerRows = rawDb
|
|
202
|
-
.prepare(`SELECT
|
|
203
|
-
f.id as function_id
|
|
205
|
+
.prepare(`SELECT su.function_name, su.file_path, su.table_name, MIN(su.line) as line
|
|
204
206
|
FROM schema_usage su
|
|
205
|
-
JOIN functions f ON f.name = su.function_name
|
|
206
|
-
AND f.file_path = su.file_path
|
|
207
207
|
WHERE su.usage_type IN ('insert', 'update', 'delete', 'create')
|
|
208
|
-
${
|
|
208
|
+
${fpWhere}
|
|
209
|
+
GROUP BY su.function_name, su.file_path, su.table_name
|
|
209
210
|
ORDER BY su.function_name, su.file_path`)
|
|
210
|
-
.all(...
|
|
211
|
+
.all(...fpParams);
|
|
211
212
|
if (writerRows.length === 0)
|
|
212
213
|
return violations;
|
|
213
214
|
const funcWrites = new Map();
|
|
@@ -221,34 +222,66 @@ export class CrossDomainAnalyzer extends UniversalAnalyzer {
|
|
|
221
222
|
funcWrites.set(key, {
|
|
222
223
|
filePath: row.file_path,
|
|
223
224
|
line: row.line,
|
|
224
|
-
functionId: row.function_id,
|
|
225
225
|
tables: new Set([row.table_name]),
|
|
226
226
|
});
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
//
|
|
230
|
-
//
|
|
229
|
+
// ── 2. Attempt callee expansion via graph_cache when the infrastructure
|
|
230
|
+
// is populated (requires code-audit index sync). When the functions or
|
|
231
|
+
// graph_cache tables are empty/missing, we fall back to reporting on
|
|
232
|
+
// direct writes only — the basic signal is still useful without the
|
|
233
|
+
// call-graph context.
|
|
234
|
+
const hasGraphData = (() => {
|
|
235
|
+
try {
|
|
236
|
+
const cnt = rawDb.prepare("SELECT COUNT(*) AS n FROM graph_cache WHERE graph_type = 'call'").get();
|
|
237
|
+
return (cnt?.n ?? 0) > 0;
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
})();
|
|
243
|
+
// Build a lookup of function IDs from the functions table (only if it
|
|
244
|
+
// has data — i.e., deepSync has been run).
|
|
245
|
+
let fnIdLookup = null;
|
|
246
|
+
if (hasGraphData) {
|
|
247
|
+
try {
|
|
248
|
+
const fnRows = rawDb.prepare('SELECT id, name, file_path FROM functions').all();
|
|
249
|
+
if (fnRows.length > 0) {
|
|
250
|
+
fnIdLookup = new Map();
|
|
251
|
+
for (const r of fnRows) {
|
|
252
|
+
fnIdLookup.set(`${r.file_path}::${r.name}`, r.id);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// functions table might not exist or be unpopulated
|
|
258
|
+
}
|
|
259
|
+
}
|
|
231
260
|
for (const [key, funcData] of funcWrites) {
|
|
232
261
|
const allTables = new Set(funcData.tables);
|
|
233
|
-
// Depth-1
|
|
234
|
-
//
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
262
|
+
// Depth-1 callee expansion: only when graph_cache and functions tables
|
|
263
|
+
// are both populated. Without deepSync, this is skipped gracefully.
|
|
264
|
+
if (fnIdLookup && hasGraphData) {
|
|
265
|
+
const funcId = fnIdLookup.get(key);
|
|
266
|
+
if (funcId !== undefined) {
|
|
267
|
+
const calleeRows = rawDb
|
|
268
|
+
.prepare(`SELECT neighbor_key FROM graph_cache
|
|
269
|
+
WHERE graph_type = 'call' AND node_key = ?`)
|
|
270
|
+
.all(String(funcId));
|
|
271
|
+
for (const callee of calleeRows) {
|
|
272
|
+
const calleeFuncs = rawDb
|
|
273
|
+
.prepare(`SELECT name, file_path FROM functions WHERE id = ?`)
|
|
274
|
+
.all(parseInt(callee.neighbor_key, 10));
|
|
275
|
+
for (const cf of calleeFuncs) {
|
|
276
|
+
const calleeTables = rawDb
|
|
277
|
+
.prepare(`SELECT DISTINCT table_name FROM schema_usage
|
|
278
|
+
WHERE usage_type IN ('insert', 'update', 'delete', 'create')
|
|
279
|
+
AND function_name = ? AND file_path = ?`)
|
|
280
|
+
.all(cf.name, cf.file_path);
|
|
281
|
+
for (const ct of calleeTables) {
|
|
282
|
+
allTables.add(ct.table_name);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
252
285
|
}
|
|
253
286
|
}
|
|
254
287
|
}
|
|
@@ -451,7 +484,7 @@ export class CrossDomainAnalyzer extends UniversalAnalyzer {
|
|
|
451
484
|
for (const fn of untested) {
|
|
452
485
|
violations.push({
|
|
453
486
|
file: fn.filePath,
|
|
454
|
-
line:
|
|
487
|
+
line: fn.lineNumber ?? 1,
|
|
455
488
|
column: 0,
|
|
456
489
|
severity: 'suggestion',
|
|
457
490
|
message: `Exported function '${fn.functionName}' (risk ${fn.riskScore.toFixed(3)}) has no measured test coverage. ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossDomainAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/crossDomain/CrossDomainAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CrossDomainAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/crossDomain/CrossDomainAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,27 @@ export declare class DrizzleAdapter implements OrmAdapter {
|
|
|
14
14
|
readonly fileExtensions: string[];
|
|
15
15
|
supportsFile(filePath: string): boolean;
|
|
16
16
|
extractTableReferences(ast: AST, adapter: LanguageAdapter, sourceCode: string): OrmTableReference[];
|
|
17
|
+
/**
|
|
18
|
+
* Spec 22 R4.2: Check whether the file imports from drizzle-orm.
|
|
19
|
+
*
|
|
20
|
+
* Scans import statement text for "drizzle-orm" — faster and more
|
|
21
|
+
* reliable than AST traversal across language adapters.
|
|
22
|
+
*/
|
|
23
|
+
private fileImportsDrizzleOrm;
|
|
17
24
|
/**
|
|
18
25
|
* Try to extract a table reference from a Drizzle query chain.
|
|
19
26
|
*
|
|
20
27
|
* Pattern: db.select().from(users) or db.insert(users).values(...)
|
|
21
28
|
* The table identifier is the argument to .from(), or the argument to
|
|
22
29
|
* insert()/update()/delete() when they take a table directly.
|
|
30
|
+
*
|
|
31
|
+
* Spec 22 R4.2: Each pattern requires companion Drizzle methods in the
|
|
32
|
+
* same expression to avoid matching generic .from()/.insert()/.delete()
|
|
33
|
+
* calls (e.g. Array.from(map), .insert(record), .delete(id)).
|
|
34
|
+
* - .from(identifier) requires .select() in the expression
|
|
35
|
+
* - .insert(identifier) requires .values() in the expression
|
|
36
|
+
* - .update(identifier) already requires .set() — no change needed
|
|
37
|
+
* - .delete(identifier) requires .where() in the expression
|
|
23
38
|
*/
|
|
24
39
|
private extractQueryTable;
|
|
25
40
|
extractSchemaDefinitions(ast: AST, adapter: LanguageAdapter, sourceCode: string): OrmSchemaDefinition[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzleAdapter.d.ts","sourceRoot":"","sources":["../../../src/analyzers/orm/drizzleAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,GAAG,EAAW,eAAe,EAAE,MAAM,0BAA0B,CAAC;AA2B9E,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,cAAc,WAAkC;IAEzD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtC;IAID,sBAAsB,CACpB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"drizzleAdapter.d.ts","sourceRoot":"","sources":["../../../src/analyzers/orm/drizzleAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,GAAG,EAAW,eAAe,EAAE,MAAM,0BAA0B,CAAC;AA2B9E,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,cAAc,WAAkC;IAEzD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtC;IAID,sBAAsB,CACpB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,iBAAiB,EAAE,CAkBrB;IAED;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IA4DzB,wBAAwB,CACtB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,mBAAmB,EAAE,CAWvB;IAED;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CA6B/B"}
|
|
@@ -36,6 +36,12 @@ export class DrizzleAdapter {
|
|
|
36
36
|
}
|
|
37
37
|
// ── Table references from query operations ──────────────────────────────
|
|
38
38
|
extractTableReferences(ast, adapter, sourceCode) {
|
|
39
|
+
// Spec 22 R4.2: File-level gate — only scan files that import drizzle-orm.
|
|
40
|
+
// Prevents false positives from generic .from()/.insert()/.delete() calls
|
|
41
|
+
// in non-Drizzle files (e.g. Array.from(map) → map flagged as a table).
|
|
42
|
+
if (!this.fileImportsDrizzleOrm(ast, adapter, sourceCode)) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
39
45
|
const references = [];
|
|
40
46
|
// Find all call_expression nodes
|
|
41
47
|
const calls = adapter.findNodes(ast, { type: 'call_expression' });
|
|
@@ -46,18 +52,42 @@ export class DrizzleAdapter {
|
|
|
46
52
|
}
|
|
47
53
|
return references;
|
|
48
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Spec 22 R4.2: Check whether the file imports from drizzle-orm.
|
|
57
|
+
*
|
|
58
|
+
* Scans import statement text for "drizzle-orm" — faster and more
|
|
59
|
+
* reliable than AST traversal across language adapters.
|
|
60
|
+
*/
|
|
61
|
+
fileImportsDrizzleOrm(ast, adapter, sourceCode) {
|
|
62
|
+
const importNodes = adapter.findNodes(ast, { type: 'import_statement' });
|
|
63
|
+
for (const node of importNodes) {
|
|
64
|
+
const text = adapter.getNodeText(node, sourceCode);
|
|
65
|
+
if (text.includes('drizzle-orm'))
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
49
70
|
/**
|
|
50
71
|
* Try to extract a table reference from a Drizzle query chain.
|
|
51
72
|
*
|
|
52
73
|
* Pattern: db.select().from(users) or db.insert(users).values(...)
|
|
53
74
|
* The table identifier is the argument to .from(), or the argument to
|
|
54
75
|
* insert()/update()/delete() when they take a table directly.
|
|
76
|
+
*
|
|
77
|
+
* Spec 22 R4.2: Each pattern requires companion Drizzle methods in the
|
|
78
|
+
* same expression to avoid matching generic .from()/.insert()/.delete()
|
|
79
|
+
* calls (e.g. Array.from(map), .insert(record), .delete(id)).
|
|
80
|
+
* - .from(identifier) requires .select() in the expression
|
|
81
|
+
* - .insert(identifier) requires .values() in the expression
|
|
82
|
+
* - .update(identifier) already requires .set() — no change needed
|
|
83
|
+
* - .delete(identifier) requires .where() in the expression
|
|
55
84
|
*/
|
|
56
85
|
extractQueryTable(node, adapter, sourceCode) {
|
|
57
86
|
const text = adapter.getNodeText(node, sourceCode);
|
|
58
87
|
// db.select().from(tableName)
|
|
88
|
+
// Spec 22 R4.2: Require .select() companion — prevents Array.from(map) false positives.
|
|
59
89
|
const fromMatch = text.match(/\.from\s*\(\s*(\w+)\s*\)/);
|
|
60
|
-
if (fromMatch) {
|
|
90
|
+
if (fromMatch && /\.select\s*\(/.test(text)) {
|
|
61
91
|
return {
|
|
62
92
|
table: fromMatch[1],
|
|
63
93
|
type: 'select',
|
|
@@ -66,6 +96,7 @@ export class DrizzleAdapter {
|
|
|
66
96
|
};
|
|
67
97
|
}
|
|
68
98
|
// db.insert(tableName).values(...) → insert
|
|
99
|
+
// Spec 22 R4.2: Requires .values() companion — prevents generic .insert(record) false positives.
|
|
69
100
|
const insertMatch = text.match(/\.insert\s*\(\s*(\w+)\s*\)/);
|
|
70
101
|
if (insertMatch && /\.values\s*\(/.test(text)) {
|
|
71
102
|
return {
|
|
@@ -76,6 +107,7 @@ export class DrizzleAdapter {
|
|
|
76
107
|
};
|
|
77
108
|
}
|
|
78
109
|
// db.update(tableName).set(...) → update
|
|
110
|
+
// Already gated by .set() — no Spec 22 change needed.
|
|
79
111
|
const updateMatch = text.match(/\.update\s*\(\s*(\w+)\s*\)/);
|
|
80
112
|
if (updateMatch && /\.set\s*\(/.test(text)) {
|
|
81
113
|
return {
|
|
@@ -86,8 +118,9 @@ export class DrizzleAdapter {
|
|
|
86
118
|
};
|
|
87
119
|
}
|
|
88
120
|
// db.delete(tableName).where(...) → delete
|
|
121
|
+
// Spec 22 R4.2: Require .where() companion — prevents generic .delete(id) false positives.
|
|
89
122
|
const deleteMatch = text.match(/\.delete\s*\(\s*(\w+)\s*\)/);
|
|
90
|
-
if (deleteMatch) {
|
|
123
|
+
if (deleteMatch && /\.where\s*\(/.test(text)) {
|
|
91
124
|
return {
|
|
92
125
|
table: deleteMatch[1],
|
|
93
126
|
type: 'delete',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzleAdapter.js","sourceRoot":"","sources":["../../../src/analyzers/orm/drizzleAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,SAAS;IACT,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAEH,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,MAAM,aAAa,GAA8C;IAC/D,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,SAAS,CAAC;IACjB,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAEzD,YAAY,CAAC,QAAgB;QAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,2EAA2E;IAE3E,sBAAsB,CACpB,GAAQ,EACR,OAAwB,EACxB,UAAkB;QAElB,MAAM,UAAU,GAAwB,EAAE,CAAC;QAE3C,iCAAiC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9D,IAAI,GAAG;gBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"drizzleAdapter.js","sourceRoot":"","sources":["../../../src/analyzers/orm/drizzleAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalConventionsAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalConventionsAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAa,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAc3F,eAAO,MAAM,0BAA0B,EAAE,yBAKxC,CAAC;AAyCF,qBAAa,4BAA6B,SAAQ,iBAAiB;IACjE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,4EACuD;IAC3E,QAAQ,CAAC,QAAQ,WAAW;IAE5B;;;OAGG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,GAAE,GAAQ,EAChB,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,cAAc,CAAC,CA+FzB;IAED,yCAAyC;IACnC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAEjC;IAID;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA+EjC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAkGlC;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAuErC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAgEnC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"UniversalConventionsAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalConventionsAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAa,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAc3F,eAAO,MAAM,0BAA0B,EAAE,yBAKxC,CAAC;AAyCF,qBAAa,4BAA6B,SAAQ,iBAAiB;IACjE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,4EACuD;IAC3E,QAAQ,CAAC,QAAQ,WAAW;IAE5B;;;OAGG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,GAAE,GAAQ,EAChB,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,cAAc,CAAC,CA+FzB;IAED,yCAAyC;IACnC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAEjC;IAID;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA+EjC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAkGlC;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAuErC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAgEnC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAgG/B"}
|