code-auditor-mcp 3.4.13 → 3.4.15
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 +96 -0
- package/dist/analyzers/applicability.d.ts +41 -0
- package/dist/analyzers/applicability.d.ts.map +1 -0
- package/dist/analyzers/applicability.js +96 -0
- package/dist/analyzers/applicability.js.map +1 -0
- package/dist/analyzers/ruleRegistry.js +11 -11
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +8 -8
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +2 -2
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +2 -2
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +9 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/migrations.d.ts +11 -0
- package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/migrations.js +127 -4
- package/dist/analyzers/universal/schema/migrations.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +62 -23
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js +393 -1
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB.d.ts +40 -1
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +222 -50
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/pathProfiles.d.ts +7 -0
- package/dist/config/pathProfiles.d.ts.map +1 -1
- package/dist/config/pathProfiles.js +7 -1
- package/dist/config/pathProfiles.js.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/ledger.d.ts +163 -2
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +528 -7
- package/dist/ledger.js.map +1 -1
- package/dist/mcp.js +3 -3
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +24 -2
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +364 -58
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/pipeline.d.ts +9 -2
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +165 -18
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +45 -10
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +6 -1
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/ruleAliases.d.ts.map +1 -1
- package/dist/ruleAliases.js +23 -0
- package/dist/ruleAliases.js.map +1 -1
- package/dist/scripts/benchmarkWorkers.js +1 -1
- package/dist/scripts/benchmarkWorkers.js.map +1 -1
- package/dist/services/auditJobService.d.ts +22 -5
- package/dist/services/auditJobService.d.ts.map +1 -1
- package/dist/services/auditJobService.js +67 -26
- package/dist/services/auditJobService.js.map +1 -1
- package/dist/services/fileAccounting.d.ts +83 -0
- package/dist/services/fileAccounting.d.ts.map +1 -0
- package/dist/services/fileAccounting.js +0 -0
- package/dist/services/fileAccounting.js.map +1 -0
- package/dist/styles/styleExtractor.d.ts +2 -2
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +83 -11
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts +14 -0
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +117 -16
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindProbe.d.ts +31 -0
- package/dist/styles/tailwindProbe.d.ts.map +1 -1
- package/dist/styles/tailwindProbe.js +145 -4
- package/dist/styles/tailwindProbe.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts +3 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +35 -1
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/styles/types.d.ts +11 -0
- package/dist/styles/types.d.ts.map +1 -1
- package/dist/types.d.ts +130 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/fileDiscovery.d.ts +71 -0
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +201 -25
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/workers/auditJobRunner.d.ts +2 -0
- package/dist/workers/auditJobRunner.d.ts.map +1 -0
- package/dist/workers/auditJobRunner.js +37 -0
- package/dist/workers/auditJobRunner.js.map +1 -0
- package/dist/workers/auditWorker.js +26 -0
- package/dist/workers/auditWorker.js.map +1 -1
- package/package.json +2 -2
- package/plugin/.claude-plugin/plugin.json +1 -1
|
@@ -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.15",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Ben Hammond"
|
|
16
16
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,102 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the Code Auditor MCP project.
|
|
4
4
|
|
|
5
|
+
## [3.4.15] — 2026-08-19
|
|
6
|
+
|
|
7
|
+
### Detached runs & a queryable findings store (Spec 41)
|
|
8
|
+
- The findings ledger is now the single queryable findings store. `audit --detach`
|
|
9
|
+
forks a detached run with per-run stderr captured to a log; new `status`,
|
|
10
|
+
`result`, and `jobs` CLI commands read persisted run state and findings.
|
|
11
|
+
- Ledger runs gain lifecycle/provenance columns (`status`, `started_at`,
|
|
12
|
+
`heartbeat_at`, `finished_at`, `error`, `progress_json`, content-hash
|
|
13
|
+
manifest) and a `findings_ledger_coverage` table; coverage rows (fired / clean /
|
|
14
|
+
notApplicable / unassessed per rule) are persisted for the first time.
|
|
15
|
+
- `auditJobService` is DB-backed (no in-memory `Map`); `runAuditJob` is shared by
|
|
16
|
+
the MCP server and the CLI. Concurrency is a heartbeat lease (stale `running`
|
|
17
|
+
rows are reclaimed as `failed`, never wedging the queue); retention is opt-in
|
|
18
|
+
`jobs --prune` only.
|
|
19
|
+
|
|
20
|
+
### Stylesheet-dialect support (Spec 42)
|
|
21
|
+
- Embedded `<style>` blocks in `.astro` / `.vue` / `.svelte` are now read and
|
|
22
|
+
parsed through the single shared rule-set parser (dispatching on `lang`/`type`),
|
|
23
|
+
so those component dialects no longer produce silent zero class-usage counts.
|
|
24
|
+
- Unread style sources (`.sass` / `.less` / `.styl`, and unsupported `<style lang>`)
|
|
25
|
+
are recorded to `style_unread_sources`; `styles/undefined-class` reports
|
|
26
|
+
`notApplicable` naming them instead of asserting a class it cannot see.
|
|
27
|
+
- `styles/missing-org-filter` derives applicability from the schema table catalog
|
|
28
|
+
(Tier 1 named tables / Tier 2 schema columns / Tier 3 DDL columns); no tenant
|
|
29
|
+
column → `notApplicable` without a config flag.
|
|
30
|
+
|
|
31
|
+
### Silent-drop backstop (Spec 42 R2)
|
|
32
|
+
- The style extractor's `default:` branch no longer drops an unhandled file
|
|
33
|
+
extension silently. A genuinely unknown dialect (`.mdx`, `.md`, …) is recorded
|
|
34
|
+
as an unread source so `undefined-class` surfaces the gap; known non-style
|
|
35
|
+
source (JSON/Go/SQL/TOML/Prisma) and `.css`/`.scss` (owned by the AST pipeline)
|
|
36
|
+
stay silent via the shared `KNOWN_SOURCE_EXTENSIONS` set.
|
|
37
|
+
- The last hand-maintained extension lists (markup dispatch + class-usage gate)
|
|
38
|
+
now derive from the `STYLE_MARKUP_EXTENSIONS` discovery constant, so adding a
|
|
39
|
+
dialect to the discovery set flows everywhere at once.
|
|
40
|
+
|
|
41
|
+
### Gate-budget & fallthrough surface (Spec 43)
|
|
42
|
+
- The gate speed budget is now warm-then-measure: a cold run warms the page cache
|
|
43
|
+
and index (reported, never asserted), and the warm run is the asserted figure —
|
|
44
|
+
the budget measures rule latency rather than one-time WASM/index cost.
|
|
45
|
+
- The scoped-DRY `changed` path reads only the narrow columns
|
|
46
|
+
`buildFullFunctionHashmap` needs (`getAllFunctionsForDry`), and `audit.health`
|
|
47
|
+
counts functions with a `COUNT(*)` query — skipping the wide JSON columns and
|
|
48
|
+
their per-row `JSON.parse`.
|
|
49
|
+
- Extensions present on disk but skipped by discovery (`.mdx`, `.md`, …) are now
|
|
50
|
+
surfaced in the CLI so an unlisted extension never vanishes silently, and
|
|
51
|
+
`styles/undefined-class`'s `notApplicable` reason names the per-source
|
|
52
|
+
dialect/extension rather than a bare path list.
|
|
53
|
+
|
|
54
|
+
### File accounting (Spec 44)
|
|
55
|
+
- Every file the walk touches now lands in exactly one terminal state —
|
|
56
|
+
`analyzed`, `partially analyzed`, or `dropped` (one of eight named reasons) —
|
|
57
|
+
and the accounting must balance (`analyzed + partiallyAnalyzed + dropped ===
|
|
58
|
+
touched`), asserted at end-of-run; a leak or double-classification fails the run.
|
|
59
|
+
- `partially analyzed` is keyed on *consumption*, not output: a file dropped at
|
|
60
|
+
stage 2 (`no adapter` / `no visitor matched`) that any later layer read (the
|
|
61
|
+
style indexer, or a stage-3 `readSource`) is reclassified, whether or not it
|
|
62
|
+
produced findings — so a clean file the indexer read is never reported as
|
|
63
|
+
"not analyzed".
|
|
64
|
+
- Infrastructure directories (`node_modules`, `.git`, …) are recorded as an
|
|
65
|
+
aggregate `infraPruned` line, never per-file; content directories (`docs`,
|
|
66
|
+
`specs`, …) are enumerated per-file as `dropped: directory pruned`.
|
|
67
|
+
- `.mjs` / `.cjs` / `.cts` / `.mts` are added to every site that hard-codes the
|
|
68
|
+
JS/TS extension set, so those files are now discovered, parsed, and analyzed.
|
|
69
|
+
- The CLI summary line (`N analyzed · M dropped (R reasons)`) replaces
|
|
70
|
+
`Files analyzed`, and `--explain-skipped` prints a bounded per-reason breakdown;
|
|
71
|
+
the full per-file lists live in the JSON report under `metadata.fileAccounting`.
|
|
72
|
+
|
|
73
|
+
## [3.4.14] — 2026-08-17
|
|
74
|
+
|
|
75
|
+
### SOLID rule-ID namespace normalization (task #5)
|
|
76
|
+
- The five SOLID rules that were still emitting bare IDs — `single-responsibility`,
|
|
77
|
+
`open-closed`, `interface-segregation`, `liskov-substitution`,
|
|
78
|
+
`dependency-inversion` — now emit `solid/`-prefixed IDs, matching the two that
|
|
79
|
+
already did (`solid/class-size`, `solid/method-complexity`). Applied consistently
|
|
80
|
+
across the analyzer, `RULE_REGISTRY`, `defaults.ts`, and `RULE_ALIASES` (with a
|
|
81
|
+
reverse map for the bare forms). `buildFullRuleId` now guards against
|
|
82
|
+
double-prefixing (`solid/solid/class-size`).
|
|
83
|
+
|
|
84
|
+
### Self-scan exclusion (Bug #3)
|
|
85
|
+
- The tool's own on-disk output is no longer re-discovered as source: `.code-index`
|
|
86
|
+
(the CodeIndexDB directory) is added to the excluded-dirs set, and
|
|
87
|
+
`audit-report.{json,html,csv,sarif}` are skipped by basename. A prior audit's
|
|
88
|
+
report embeds raw source snippets (e.g. `error_class = 'zombie-capped'`) that
|
|
89
|
+
otherwise leaked class-usage false positives back into the next run.
|
|
90
|
+
|
|
91
|
+
### Two live false positives fixed (task #4)
|
|
92
|
+
- **Class-usage extraction**: a `\b` word boundary before the `class`/`className`
|
|
93
|
+
attribute name prevents identifier-substring matches (`error_class`,
|
|
94
|
+
`myclassName`) from being read as class attributes, while real
|
|
95
|
+
`className="..."`/`class="..."` attributes still extract.
|
|
96
|
+
- **Tailwind v4 bare-import resolution**: bare package `@import`s (e.g.
|
|
97
|
+
`tw-animate-css`, shadcn utility styles) are now resolved from `node_modules` via
|
|
98
|
+
their package export map, so plugin utilities validate against the project's own
|
|
99
|
+
`tailwindcss`. Fails open when a package or `node_modules` is absent.
|
|
100
|
+
|
|
5
101
|
## [3.4.13] — 2026-08-16
|
|
6
102
|
|
|
7
103
|
### Memory — streaming pipeline + `tree.delete()` (Spec 30/31/32)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived rule applicability (Spec 39).
|
|
3
|
+
*
|
|
4
|
+
* A rule's applicability is a predicate over its declared inputs, evaluated
|
|
5
|
+
* before the rule runs. A rule whose predicate is false reports `notApplicable`
|
|
6
|
+
* with a reason naming the absent input — not silence, and not zero findings.
|
|
7
|
+
*
|
|
8
|
+
* This module is intentionally free of analyzer imports: pipeline.ts imports it
|
|
9
|
+
* statically, and the analyzer classes pull in pipeline.js (via
|
|
10
|
+
* UniversalSchemaAnalyzer.js → makeVisitorStatus), so a static analyzer import
|
|
11
|
+
* here would create a pipeline↔analyzer cycle. The pipeline-side convention is
|
|
12
|
+
* to reach analyzers only through dynamic import() (see pipelineAdapters.ts).
|
|
13
|
+
*/
|
|
14
|
+
export interface RuleApplicability {
|
|
15
|
+
applicable: boolean;
|
|
16
|
+
reason?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A stylesheet source the style indexer could not read (Spec 42 R2). When any
|
|
20
|
+
* exist, styles/undefined-class must not assert a class is undefined because it
|
|
21
|
+
* may be defined in one of these files.
|
|
22
|
+
*/
|
|
23
|
+
export interface UnreadStyleSourceInfo {
|
|
24
|
+
filePath: string;
|
|
25
|
+
reason: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Evaluate whether a rule is applicable to the current codebase, given inputs
|
|
29
|
+
* the pipeline has already computed.
|
|
30
|
+
*
|
|
31
|
+
* Returns null when the rule has no applicability predicate — the rule runs
|
|
32
|
+
* unconditionally and its reporting state remains governed by the Spec 33 item
|
|
33
|
+
* 14 input mapping.
|
|
34
|
+
*
|
|
35
|
+
* @param ruleId The registry rule id.
|
|
36
|
+
* @param dataAccessConfig The namespaced data-access config (may be undefined).
|
|
37
|
+
* @param ddlColumns Aggregated DDL-declared columns from the schema reducer.
|
|
38
|
+
* @param unreadStyleSources Stylesheets the indexer could not read (Spec 42 R2).
|
|
39
|
+
*/
|
|
40
|
+
export declare function evaluateRuleApplicability(ruleId: string, dataAccessConfig: Record<string, unknown> | undefined, ddlColumns: string[] | undefined, unreadStyleSources?: UnreadStyleSourceInfo[]): RuleApplicability | null;
|
|
41
|
+
//# sourceMappingURL=applicability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicability.d.ts","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACrD,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,GAC3C,iBAAiB,GAAG,IAAI,CAQ1B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived rule applicability (Spec 39).
|
|
3
|
+
*
|
|
4
|
+
* A rule's applicability is a predicate over its declared inputs, evaluated
|
|
5
|
+
* before the rule runs. A rule whose predicate is false reports `notApplicable`
|
|
6
|
+
* with a reason naming the absent input — not silence, and not zero findings.
|
|
7
|
+
*
|
|
8
|
+
* This module is intentionally free of analyzer imports: pipeline.ts imports it
|
|
9
|
+
* statically, and the analyzer classes pull in pipeline.js (via
|
|
10
|
+
* UniversalSchemaAnalyzer.js → makeVisitorStatus), so a static analyzer import
|
|
11
|
+
* here would create a pipeline↔analyzer cycle. The pipeline-side convention is
|
|
12
|
+
* to reach analyzers only through dynamic import() (see pipelineAdapters.ts).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Default tenant-scoping column names. The single source of truth is
|
|
16
|
+
* DEFAULT_DATA_ACCESS_CONFIG.orgFilterColumns in UniversalDataAccessAnalyzer.js;
|
|
17
|
+
* this is a local copy because importing that module here would create the cycle
|
|
18
|
+
* described above. Keep in sync with that constant.
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_ORG_FILTER_COLUMNS = ['org_id', 'tenant_id', 'organization_id', 'workspace_id'];
|
|
21
|
+
/**
|
|
22
|
+
* Evaluate whether a rule is applicable to the current codebase, given inputs
|
|
23
|
+
* the pipeline has already computed.
|
|
24
|
+
*
|
|
25
|
+
* Returns null when the rule has no applicability predicate — the rule runs
|
|
26
|
+
* unconditionally and its reporting state remains governed by the Spec 33 item
|
|
27
|
+
* 14 input mapping.
|
|
28
|
+
*
|
|
29
|
+
* @param ruleId The registry rule id.
|
|
30
|
+
* @param dataAccessConfig The namespaced data-access config (may be undefined).
|
|
31
|
+
* @param ddlColumns Aggregated DDL-declared columns from the schema reducer.
|
|
32
|
+
* @param unreadStyleSources Stylesheets the indexer could not read (Spec 42 R2).
|
|
33
|
+
*/
|
|
34
|
+
export function evaluateRuleApplicability(ruleId, dataAccessConfig, ddlColumns, unreadStyleSources) {
|
|
35
|
+
if (ruleId === 'styles/undefined-class') {
|
|
36
|
+
return evaluateUndefinedClassApplicability(unreadStyleSources);
|
|
37
|
+
}
|
|
38
|
+
if (ruleId === 'missing-org-filter') {
|
|
39
|
+
return evaluateMissingOrgFilterApplicability(dataAccessConfig, ddlColumns);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Spec 42 R2 — whole-run scope: if any stylesheet went unread, a class this
|
|
45
|
+
* detector would otherwise flag undefined may in fact be defined there. Report
|
|
46
|
+
* notApplicable naming what was unread rather than assert undefined.
|
|
47
|
+
*/
|
|
48
|
+
function evaluateUndefinedClassApplicability(unreadStyleSources) {
|
|
49
|
+
if (unreadStyleSources && unreadStyleSources.length > 0) {
|
|
50
|
+
// Surface the per-source reason (which encodes the offending extension for
|
|
51
|
+
// the Spec 43 R5 fallthrough, or the unsupported dialect for Spec 42 R2)
|
|
52
|
+
// rather than only the file path, so a "loud" fallthrough stays loud end to
|
|
53
|
+
// end instead of being collapsed back to a bare path list.
|
|
54
|
+
const names = unreadStyleSources
|
|
55
|
+
.map((s) => (s.reason ? `${s.filePath} (${s.reason})` : s.filePath))
|
|
56
|
+
.join(', ');
|
|
57
|
+
return {
|
|
58
|
+
applicable: false,
|
|
59
|
+
reason: `stylesheets were not read: ${names}`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Spec 39/42 R3 — `missing-org-filter` is applicable when the project declares a
|
|
66
|
+
* tenant-scoping column in one of three places: configured tenant tables by name,
|
|
67
|
+
* a configured schema table, or the DDL-derived table catalog.
|
|
68
|
+
*/
|
|
69
|
+
function evaluateMissingOrgFilterApplicability(dataAccessConfig, ddlColumns) {
|
|
70
|
+
// Tier 1 — user declared tenant-scoped tables by name (policy of record).
|
|
71
|
+
const orgFilterTables = dataAccessConfig?.orgFilterTables ?? [];
|
|
72
|
+
if (orgFilterTables.length > 0)
|
|
73
|
+
return { applicable: true };
|
|
74
|
+
const orgFilterColumns = dataAccessConfig?.orgFilterColumns ?? DEFAULT_ORG_FILTER_COLUMNS;
|
|
75
|
+
const schemas = dataAccessConfig?.schemas ?? [];
|
|
76
|
+
const tenantColumns = new Set(orgFilterColumns.map((c) => String(c).toLowerCase()));
|
|
77
|
+
// Tier 2 — a configured schema declares a table carrying a tenant-scoping column.
|
|
78
|
+
for (const schema of schemas) {
|
|
79
|
+
for (const table of schema.tables ?? []) {
|
|
80
|
+
for (const column of table.columns ?? []) {
|
|
81
|
+
if (tenantColumns.has(String(column.name).toLowerCase())) {
|
|
82
|
+
return { applicable: true };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Tier 3 — the table catalog (DDL-derived columns) carries a tenant-scoping column.
|
|
88
|
+
if (ddlColumns?.some((c) => tenantColumns.has(String(c).toLowerCase()))) {
|
|
89
|
+
return { applicable: true };
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
applicable: false,
|
|
93
|
+
reason: 'no tenant-scoping column found in table catalog',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=applicability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAY9F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,gBAAqD,EACrD,UAAgC,EAChC,kBAA4C;IAE5C,IAAI,MAAM,KAAK,wBAAwB,EAAE,CAAC;QACxC,OAAO,mCAAmC,CAAC,kBAAkB,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACpC,OAAO,qCAAqC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,mCAAmC,CAC1C,kBAA4C;IAE5C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,2EAA2E;QAC3E,yEAAyE;QACzE,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,KAAK,GAAG,kBAAkB;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACnE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,8BAA8B,KAAK,EAAE;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,qCAAqC,CAC5C,gBAAqD,EACrD,UAAgC;IAEhC,0EAA0E;IAC1E,MAAM,eAAe,GAAc,gBAAgB,EAAE,eAAwC,IAAI,EAAE,CAAC;IACpG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE5D,MAAM,gBAAgB,GACnB,gBAAgB,EAAE,gBAAyC,IAAI,0BAA0B,CAAC;IAC7F,MAAM,OAAO,GACV,gBAAgB,EAAE,OAAe,IAAI,EAAE,CAAC;IAE3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpF,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,iDAAiD;KAC1D,CAAC;AACJ,CAAC"}
|
|
@@ -46,14 +46,14 @@ export const RULE_REGISTRY = {
|
|
|
46
46
|
],
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
|
-
'open-closed': {
|
|
49
|
+
'solid/open-closed': {
|
|
50
50
|
analyzer: 'solid',
|
|
51
51
|
field: 'rule',
|
|
52
52
|
input: ['files'],
|
|
53
53
|
gating: false,
|
|
54
54
|
resolvable: false,
|
|
55
55
|
message: 'Class "{name}" violates the Open/Closed Principle.',
|
|
56
|
-
docs: 'open-closed',
|
|
56
|
+
docs: 'solid/open-closed',
|
|
57
57
|
thresholds: [],
|
|
58
58
|
samples: {
|
|
59
59
|
valid: [
|
|
@@ -64,14 +64,14 @@ export const RULE_REGISTRY = {
|
|
|
64
64
|
],
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
|
-
'single-responsibility': {
|
|
67
|
+
'solid/single-responsibility': {
|
|
68
68
|
analyzer: 'solid',
|
|
69
69
|
field: 'rule',
|
|
70
70
|
input: ['files'],
|
|
71
71
|
gating: true,
|
|
72
72
|
resolvable: true,
|
|
73
73
|
message: 'Function "{name}" has {count} {metric}, exceeding the maximum of {max}. Break it down.',
|
|
74
|
-
docs: 'single-responsibility',
|
|
74
|
+
docs: 'solid/single-responsibility',
|
|
75
75
|
thresholds: ['maxParametersPerMethod', 'maxLinesPerMethod'],
|
|
76
76
|
samples: {
|
|
77
77
|
valid: [
|
|
@@ -85,14 +85,14 @@ export const RULE_REGISTRY = {
|
|
|
85
85
|
],
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
|
-
'interface-segregation': {
|
|
88
|
+
'solid/interface-segregation': {
|
|
89
89
|
analyzer: 'solid',
|
|
90
90
|
field: 'rule',
|
|
91
91
|
input: ['files'],
|
|
92
92
|
gating: false,
|
|
93
93
|
resolvable: false,
|
|
94
94
|
message: 'Interface "{name}" violates the Interface Segregation Principle.',
|
|
95
|
-
docs: 'interface-segregation',
|
|
95
|
+
docs: 'solid/interface-segregation',
|
|
96
96
|
thresholds: [],
|
|
97
97
|
samples: {
|
|
98
98
|
valid: [
|
|
@@ -103,14 +103,14 @@ export const RULE_REGISTRY = {
|
|
|
103
103
|
],
|
|
104
104
|
},
|
|
105
105
|
},
|
|
106
|
-
'liskov-substitution': {
|
|
106
|
+
'solid/liskov-substitution': {
|
|
107
107
|
analyzer: 'solid',
|
|
108
108
|
field: 'rule',
|
|
109
109
|
input: ['files'],
|
|
110
110
|
gating: false,
|
|
111
111
|
resolvable: false,
|
|
112
112
|
message: 'Class "{name}" violates the Liskov Substitution Principle.',
|
|
113
|
-
docs: 'liskov-substitution',
|
|
113
|
+
docs: 'solid/liskov-substitution',
|
|
114
114
|
thresholds: [],
|
|
115
115
|
samples: {
|
|
116
116
|
valid: [
|
|
@@ -121,14 +121,14 @@ export const RULE_REGISTRY = {
|
|
|
121
121
|
],
|
|
122
122
|
},
|
|
123
123
|
},
|
|
124
|
-
'dependency-inversion': {
|
|
124
|
+
'solid/dependency-inversion': {
|
|
125
125
|
analyzer: 'solid',
|
|
126
126
|
field: 'rule',
|
|
127
127
|
input: ['files'],
|
|
128
128
|
gating: false,
|
|
129
129
|
resolvable: false,
|
|
130
130
|
message: 'Module "{name}" violates the Dependency Inversion Principle.',
|
|
131
|
-
docs: 'dependency-inversion',
|
|
131
|
+
docs: 'solid/dependency-inversion',
|
|
132
132
|
thresholds: [],
|
|
133
133
|
samples: {
|
|
134
134
|
valid: [
|
|
@@ -243,7 +243,7 @@ export const RULE_REGISTRY = {
|
|
|
243
243
|
'missing-org-filter': {
|
|
244
244
|
analyzer: 'data-access',
|
|
245
245
|
field: 'rule',
|
|
246
|
-
input: ['
|
|
246
|
+
input: ['schema'],
|
|
247
247
|
gating: false,
|
|
248
248
|
resolvable: false,
|
|
249
249
|
message: 'Query on {tables} is missing an organization/tenant filter.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruleRegistry.js","sourceRoot":"","sources":["../../src/analyzers/ruleRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ruleRegistry.js","sourceRoot":"","sources":["../../src/analyzers/ruleRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,7 +161,7 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
161
161
|
*/
|
|
162
162
|
checkOpenClosed(cls, ctx, violations) {
|
|
163
163
|
if (this.hasModificationPatterns(cls, ctx.ast, ctx.adapter, ctx.sourceCode)) {
|
|
164
|
-
violations.push(this.createViolation(ctx.ast.filePath, cls.location.start, `Class "${cls.name}" appears to be frequently modified. Consider using composition or inheritance for extension.`, { severity: 'suggestion', rule: 'open-closed', symbol: cls.name }));
|
|
164
|
+
violations.push(this.createViolation(ctx.ast.filePath, cls.location.start, `Class "${cls.name}" appears to be frequently modified. Consider using composition or inheritance for extension.`, { severity: 'suggestion', rule: 'solid/open-closed', symbol: cls.name }));
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
@@ -190,9 +190,9 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
190
190
|
*/
|
|
191
191
|
checkFunctionSize(func, ctx, violations) {
|
|
192
192
|
const { ast, config } = ctx;
|
|
193
|
-
withRuleTiming('single-responsibility', () => {
|
|
193
|
+
withRuleTiming('solid/single-responsibility', () => {
|
|
194
194
|
if (func.parameters.length > (config.maxParametersPerMethod || 4)) {
|
|
195
|
-
violations.push(this.createViolation(ast.filePath, func.location.start, `Function "${func.name}" has ${func.parameters.length} parameters, exceeding the maximum of ${config.maxParametersPerMethod || 4}. Consider using an options object.`, { severity: 'warning', rule: 'single-responsibility', symbol: func.name,
|
|
195
|
+
violations.push(this.createViolation(ast.filePath, func.location.start, `Function "${func.name}" has ${func.parameters.length} parameters, exceeding the maximum of ${config.maxParametersPerMethod || 4}. Consider using an options object.`, { severity: 'warning', rule: 'solid/single-responsibility', symbol: func.name,
|
|
196
196
|
resolution: {
|
|
197
197
|
action: 'bundle-params',
|
|
198
198
|
summary: `Bundle the ${func.parameters.length} parameters of "${func.name}" into an options object.`,
|
|
@@ -202,10 +202,10 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
202
202
|
} }));
|
|
203
203
|
}
|
|
204
204
|
});
|
|
205
|
-
withRuleTiming('single-responsibility', () => {
|
|
205
|
+
withRuleTiming('solid/single-responsibility', () => {
|
|
206
206
|
const lineCount = func.location.end.line - func.location.start.line + 1;
|
|
207
207
|
if (lineCount > (config.maxLinesPerMethod || 50)) {
|
|
208
|
-
violations.push(this.createViolation(ast.filePath, func.location.start, `Function "${func.name}" has ${lineCount} lines, exceeding the maximum of ${config.maxLinesPerMethod || 50}. Consider breaking it down.`, { severity: 'warning', rule: 'single-responsibility', symbol: func.name,
|
|
208
|
+
violations.push(this.createViolation(ast.filePath, func.location.start, `Function "${func.name}" has ${lineCount} lines, exceeding the maximum of ${config.maxLinesPerMethod || 50}. Consider breaking it down.`, { severity: 'warning', rule: 'solid/single-responsibility', symbol: func.name,
|
|
209
209
|
resolution: {
|
|
210
210
|
action: 'break-down-function',
|
|
211
211
|
summary: `Break "${func.name}" (${lineCount} lines) into smaller functions, extracting named helper blocks.`,
|
|
@@ -250,7 +250,7 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
250
250
|
// positive. Only interfaces that expose methods carry the ISP smell.
|
|
251
251
|
const hasMethodMembers = members.some(member => member.type === 'method');
|
|
252
252
|
if (hasMethodMembers && memberCount > maxMembers) {
|
|
253
|
-
violations.push(this.createViolation(ast.filePath, iface.location.start, `Interface "${iface.name}" has ${memberCount} members, exceeding the maximum of ${maxMembers}. Consider splitting into smaller interfaces.`, { severity: 'warning', rule: 'interface-segregation', symbol: iface.name }));
|
|
253
|
+
violations.push(this.createViolation(ast.filePath, iface.location.start, `Interface "${iface.name}" has ${memberCount} members, exceeding the maximum of ${maxMembers}. Consider splitting into smaller interfaces.`, { severity: 'warning', rule: 'solid/interface-segregation', symbol: iface.name }));
|
|
254
254
|
}
|
|
255
255
|
return violations;
|
|
256
256
|
}
|
|
@@ -304,7 +304,7 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
304
304
|
}
|
|
305
305
|
});
|
|
306
306
|
if (hasThrow) {
|
|
307
|
-
violations.push(this.createViolation(ast.filePath, method.location.start, `Method "${cls.name}.${method.name}" throws exceptions. Ensure this doesn't violate parent class contract.`, { severity: 'suggestion', rule: 'liskov-substitution', symbol: `${cls.name}.${method.name}` }));
|
|
307
|
+
violations.push(this.createViolation(ast.filePath, method.location.start, `Method "${cls.name}.${method.name}" throws exceptions. Ensure this doesn't violate parent class contract.`, { severity: 'suggestion', rule: 'solid/liskov-substitution', symbol: `${cls.name}.${method.name}` }));
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
310
|
}
|
|
@@ -319,7 +319,7 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
319
319
|
return;
|
|
320
320
|
}
|
|
321
321
|
if (this.hasDirectInstantiation(cls, classNode, ctx)) {
|
|
322
|
-
violations.push(this.createViolation(ctx.ast.filePath, cls.location.start, `Class "${cls.name}" directly instantiates a concrete dependency. Consider depending on abstractions.`, { severity: 'suggestion', rule: 'dependency-inversion', symbol: cls.name }));
|
|
322
|
+
violations.push(this.createViolation(ctx.ast.filePath, cls.location.start, `Class "${cls.name}" directly instantiates a concrete dependency. Consider depending on abstractions.`, { severity: 'suggestion', rule: 'solid/dependency-inversion', symbol: cls.name }));
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
/**
|