code-auditor-mcp 3.4.10 → 3.4.12
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 +10 -3
- package/CHANGELOG.md +141 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +11 -59
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.js +10 -3
- package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +10 -0
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +41 -11
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts +8 -0
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +28 -5
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +9 -7
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +85 -0
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +422 -2
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +2 -0
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +3 -0
- 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/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +30 -30
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js +33 -0
- package/dist/cli.js.map +1 -1
- package/dist/conventions/conventionMiner.d.ts +5 -4
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +37 -17
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/grammars/tree-sitter-scss.wasm +0 -0
- package/dist/invariants/ruleEngine.d.ts +23 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +11 -115
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +5 -5
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +11 -9
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
- package/dist/languages/tree-sitter/parser.js +2 -0
- package/dist/languages/tree-sitter/parser.js.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +13 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +242 -24
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +1 -1
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +1 -0
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +1 -0
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/pipeline.d.ts +22 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +157 -14
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +10 -0
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +277 -48
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/styles/cssAstExtractor.d.ts +61 -0
- package/dist/styles/cssAstExtractor.d.ts.map +1 -0
- package/dist/styles/cssAstExtractor.js +617 -0
- package/dist/styles/cssAstExtractor.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 +69 -16
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +4 -0
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
- package/plugin/.claude-plugin/plugin.json +1 -1
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,10 +52,20 @@ export interface ReactVisitorBundle {
|
|
|
52
52
|
finalizeCrossComponent: (config: any) => Promise<Violation[]>;
|
|
53
53
|
}
|
|
54
54
|
export declare function createReactVisitor(): ReactVisitorBundle;
|
|
55
|
+
/**
|
|
56
|
+
* Styles CSS visitor — extracts declarations, tokens, and class usage from
|
|
57
|
+
* tree-sitter-css and tree-sitter-scss parsed ASTs. Replaces the regex-based
|
|
58
|
+
* CSS/SCSS extraction in styleExtractor.ts for .css and .scss files.
|
|
59
|
+
*/
|
|
60
|
+
export declare function createStylesCssVisitor(): Stage2Visitor;
|
|
55
61
|
/**
|
|
56
62
|
* Styles reducer — runs all style detectors on existing style_* tables.
|
|
57
63
|
* Uses the analyzer.analyze([]) pattern: passes an empty file list so the
|
|
58
64
|
* analyzer skips file iteration and only queries the DB.
|
|
65
|
+
*
|
|
66
|
+
* Spec 26 Phase 2: CSS facts from the styles-css visitor are inserted into
|
|
67
|
+
* the DB before the analyzer runs. For .css files, the AST extraction replaces
|
|
68
|
+
* the regex-based styleIndexer path (which now skips .css files).
|
|
59
69
|
*/
|
|
60
70
|
export declare function createStylesReducer(): Stage3Reducer;
|
|
61
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelineAdapters.d.ts","sourceRoot":"","sources":["../src/pipelineAdapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"pipelineAdapters.d.ts","sourceRoot":"","sources":["../src/pipelineAdapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EACb,aAAa,EACb,SAAS,EAGV,MAAM,YAAY,CAAC;AA0CpB;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAgBxD;AAID,wBAAgB,kBAAkB,IAAI,aAAa,CAyBlD;AAID,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAC/B,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QACpE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QACpE,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,CAAC;CACL;AAED,wBAAgB,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAqC5E;AAID,wBAAgB,uBAAuB,IAAI,aAAa,CAsBvD;AAID,wBAAgB,0BAA0B,IAAI,aAAa,CAsB1D;AAiCD,wBAAgB,0BAA0B,IAAI,aAAa,CAmU1D;AAID,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB;;;OAGG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC/D;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,CAgFvD;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,aAAa,CA6BtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAqFnD;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CA0CxD;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CA6BxD;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,CAwFvD;AAaD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,aAAa,CAgBtD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,CAyIvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,aAAa,CAsBzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,CAsBvD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CA+KnD"}
|
package/dist/pipelineAdapters.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* - Invariants: Stage 3 reducer — receives full file list, runs rule engine
|
|
17
17
|
*/
|
|
18
18
|
import { createHash } from 'crypto';
|
|
19
|
+
import path from 'path';
|
|
19
20
|
import { RULE_REGISTRY } from './analyzers/ruleRegistry.js';
|
|
20
21
|
import { walkAST, isExported, getLineAndColumn, calculateComplexity, getFunctionBody, } from './languages/adapterBridge.js';
|
|
21
22
|
import { buildImportMap, extractFunctionCalls, } from './utils/dependencyExtractor.js';
|
|
@@ -379,10 +380,70 @@ export function createFunctionIndexVisitor() {
|
|
|
379
380
|
conflictKey: 'name, file_path, line_number',
|
|
380
381
|
});
|
|
381
382
|
}
|
|
382
|
-
|
|
383
|
+
// ── Extract imports and exports from AST for downstream consumers ──
|
|
384
|
+
// B1: Replaces regex-based extractImports()/extractExportedSymbols() in
|
|
385
|
+
// ruleEngine.ts. Also consumed by conventions (B2: detectExportForm).
|
|
386
|
+
const langAdapter = _adapter;
|
|
387
|
+
const langAst = ast;
|
|
388
|
+
// Static imports via the adapter's canonical extractImports()
|
|
389
|
+
const staticImportInfos = langAdapter.extractImports(langAst);
|
|
390
|
+
const staticImports = staticImportInfos.map((imp) => ({
|
|
391
|
+
moduleSpecifier: imp.source,
|
|
392
|
+
isStatic: true,
|
|
393
|
+
isDynamic: false,
|
|
394
|
+
isRequire: false,
|
|
395
|
+
line: imp.location.start.line,
|
|
396
|
+
}));
|
|
397
|
+
// Dynamic import() and require() — first attempt with pure NodePattern
|
|
398
|
+
// Plan note: import keyword is an anonymous tree-sitter node, so
|
|
399
|
+
// hasChild cannot see it. We use `custom` with raw node access.
|
|
400
|
+
const dynamicCallNodes = langAdapter.findNodes(langAst, {
|
|
401
|
+
type: 'call_expression',
|
|
402
|
+
custom: (node) => {
|
|
403
|
+
const raw = node.raw;
|
|
404
|
+
const fn = raw?.firstChild;
|
|
405
|
+
return (fn?.type === 'import') ||
|
|
406
|
+
(fn?.type === 'identifier' && fn.text === 'require');
|
|
407
|
+
},
|
|
408
|
+
});
|
|
409
|
+
const dynamicImports = [];
|
|
410
|
+
for (const node of dynamicCallNodes) {
|
|
411
|
+
const raw = node.raw;
|
|
412
|
+
const fn = raw?.firstChild;
|
|
413
|
+
const isImport = fn?.type === 'import';
|
|
414
|
+
const isRequire = !isImport && (fn?.type === 'identifier' && fn.text === 'require');
|
|
415
|
+
// Walk the raw tree to find the string argument
|
|
416
|
+
const argsNode = raw?.children?.find((c) => c.type === 'arguments');
|
|
417
|
+
const stringNode = argsNode?.children?.find((c) => c.type === 'string');
|
|
418
|
+
if (stringNode) {
|
|
419
|
+
const text = stringNode.text;
|
|
420
|
+
if (text.length >= 2) {
|
|
421
|
+
dynamicImports.push({
|
|
422
|
+
moduleSpecifier: text.slice(1, -1), // strip quotes
|
|
423
|
+
isStatic: false,
|
|
424
|
+
isDynamic: isImport,
|
|
425
|
+
isRequire,
|
|
426
|
+
line: node.location.start.line,
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
// Exports via the adapter's canonical extractExports()
|
|
432
|
+
// Returns ExportInfo[] with isDefault — used by both invariants and conventions (B2)
|
|
433
|
+
const exportInfos = langAdapter.extractExports(langAst);
|
|
434
|
+
return {
|
|
435
|
+
violations: [],
|
|
436
|
+
facts: {
|
|
437
|
+
[filePath]: {
|
|
438
|
+
imports: [...staticImports, ...dynamicImports],
|
|
439
|
+
exports: exportInfos,
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
indexFacts,
|
|
443
|
+
};
|
|
383
444
|
},
|
|
384
445
|
defaultConfig: {},
|
|
385
|
-
description: 'Indexes function definitions
|
|
446
|
+
description: 'Indexes function definitions and extracts imports/exports for downstream analyzers',
|
|
386
447
|
category: 'infrastructure',
|
|
387
448
|
};
|
|
388
449
|
}
|
|
@@ -457,10 +518,48 @@ export function createReactVisitor() {
|
|
|
457
518
|
};
|
|
458
519
|
}
|
|
459
520
|
// ── Styles reducer (stage 3) ─────────────────────────────────────────────────
|
|
521
|
+
// ── Styles CSS visitor (Spec 26 Phase 2) ───────────────────────────────────────
|
|
522
|
+
/**
|
|
523
|
+
* Styles CSS visitor — extracts declarations, tokens, and class usage from
|
|
524
|
+
* tree-sitter-css and tree-sitter-scss parsed ASTs. Replaces the regex-based
|
|
525
|
+
* CSS/SCSS extraction in styleExtractor.ts for .css and .scss files.
|
|
526
|
+
*/
|
|
527
|
+
export function createStylesCssVisitor() {
|
|
528
|
+
return {
|
|
529
|
+
name: 'styles-css',
|
|
530
|
+
stage: 'visitor',
|
|
531
|
+
extensions: ['.css', '.scss'],
|
|
532
|
+
getRuleIds: () => [],
|
|
533
|
+
async visit(ast, adapter, context, sourceCode) {
|
|
534
|
+
// Lazy-load to avoid circular dependency issues at module load time
|
|
535
|
+
const { extractDeclarationsFromCSSAst, extractTokensFromCSSAst, extractClassUsageFromCSSAst } = await import('./styles/cssAstExtractor.js');
|
|
536
|
+
const cssAst = ast;
|
|
537
|
+
const cssAdapter = adapter;
|
|
538
|
+
const filePath = context.filePath;
|
|
539
|
+
return {
|
|
540
|
+
violations: [],
|
|
541
|
+
facts: {
|
|
542
|
+
[filePath]: {
|
|
543
|
+
declarations: extractDeclarationsFromCSSAst(cssAst, cssAdapter, filePath, sourceCode),
|
|
544
|
+
tokens: extractTokensFromCSSAst(cssAst, cssAdapter, filePath),
|
|
545
|
+
classUsage: extractClassUsageFromCSSAst(cssAst, cssAdapter, filePath),
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
};
|
|
549
|
+
},
|
|
550
|
+
defaultConfig: {},
|
|
551
|
+
description: 'Extracts CSS declarations from tree-sitter ASTs (.css and .scss)',
|
|
552
|
+
category: 'style',
|
|
553
|
+
};
|
|
554
|
+
}
|
|
460
555
|
/**
|
|
461
556
|
* Styles reducer — runs all style detectors on existing style_* tables.
|
|
462
557
|
* Uses the analyzer.analyze([]) pattern: passes an empty file list so the
|
|
463
558
|
* analyzer skips file iteration and only queries the DB.
|
|
559
|
+
*
|
|
560
|
+
* Spec 26 Phase 2: CSS facts from the styles-css visitor are inserted into
|
|
561
|
+
* the DB before the analyzer runs. For .css files, the AST extraction replaces
|
|
562
|
+
* the regex-based styleIndexer path (which now skips .css files).
|
|
464
563
|
*/
|
|
465
564
|
export function createStylesReducer() {
|
|
466
565
|
return {
|
|
@@ -472,6 +571,33 @@ export function createStylesReducer() {
|
|
|
472
571
|
if (!context.indexHandle)
|
|
473
572
|
return { violations: [], facts: {} };
|
|
474
573
|
try {
|
|
574
|
+
// ── Insert CSS visitor facts into style_* tables ──────────────────────
|
|
575
|
+
const cssFacts = _allFacts['styles-css'];
|
|
576
|
+
if (cssFacts) {
|
|
577
|
+
const run = context.indexHandle.run.bind(context.indexHandle);
|
|
578
|
+
for (const [filePath, facts] of Object.entries(cssFacts)) {
|
|
579
|
+
// Delete old entries for this file (replaces the styleIndexer path)
|
|
580
|
+
run('DELETE FROM style_declarations WHERE file_path = ?', [filePath]);
|
|
581
|
+
run('DELETE FROM style_tokens WHERE file_path = ?', [filePath]);
|
|
582
|
+
run('DELETE FROM style_class_usage WHERE file_path = ?', [filePath]);
|
|
583
|
+
// Compute content hash for the file
|
|
584
|
+
const contentStr = JSON.stringify({ declarations: facts.declarations.length, tokens: facts.tokens.length, classUsage: facts.classUsage.length });
|
|
585
|
+
const contentHash = createHash('sha256').update(contentStr).digest('hex').slice(0, 16);
|
|
586
|
+
// Insert declarations
|
|
587
|
+
for (const decl of facts.declarations) {
|
|
588
|
+
run('INSERT INTO style_declarations (property, raw_value, normalized_value, mechanism, file_path, line, context, variant_context, token_ref, content_hash) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [decl.property, decl.rawValue, JSON.stringify(decl.normalizedValue), decl.mechanism, decl.filePath, decl.line, decl.context, decl.variantContext, decl.tokenRef, contentHash]);
|
|
589
|
+
}
|
|
590
|
+
// Insert tokens
|
|
591
|
+
for (const tok of facts.tokens) {
|
|
592
|
+
run('INSERT INTO style_tokens (name, value, file_path, mechanism) VALUES (?, ?, ?, ?)', [tok.name, tok.value, tok.filePath, tok.mechanism]);
|
|
593
|
+
}
|
|
594
|
+
// Insert class usage
|
|
595
|
+
for (const cu of facts.classUsage) {
|
|
596
|
+
run('INSERT INTO style_class_usage (class_name, file_path, line, mechanism, unresolvable) VALUES (?, ?, ?, ?, ?)', [cu.className, cu.filePath, cu.line, cu.mechanism, cu.unresolvable ? 1 : 0]);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
// ── Run the analyzer (queries the now-populated style_* tables) ───────
|
|
475
601
|
const { UniversalStylesAnalyzer } = await import('./analyzers/universal/UniversalStylesAnalyzer.js');
|
|
476
602
|
const analyzer = new UniversalStylesAnalyzer();
|
|
477
603
|
const result = await analyzer.analyze([], { ...context.config, indexHandle: context.indexHandle });
|
|
@@ -512,7 +638,14 @@ export function createConventionsReducer() {
|
|
|
512
638
|
const sourceMap = fileSources
|
|
513
639
|
? new Map(Object.entries(fileSources))
|
|
514
640
|
: undefined;
|
|
515
|
-
|
|
641
|
+
// B2: Build exports map from function-index visitor facts (AST-extracted)
|
|
642
|
+
const functionIndexFacts = _allFacts['function-index'];
|
|
643
|
+
const exportsMap = functionIndexFacts
|
|
644
|
+
? new Map(Object.entries(functionIndexFacts)
|
|
645
|
+
.filter(([, data]) => data?.exports?.length)
|
|
646
|
+
.map(([filePath, data]) => [filePath, data.exports]))
|
|
647
|
+
: undefined;
|
|
648
|
+
const config = { ...context.config, indexHandle: context.indexHandle, projectRoot: context.projectRoot, sourceMap, exportsMap };
|
|
516
649
|
const result = await analyzer.analyze([], config);
|
|
517
650
|
const factsConsumed = context.indexHandle.count('conventions');
|
|
518
651
|
return { violations: result.violations ?? [], facts: {}, factsConsumed };
|
|
@@ -582,6 +715,17 @@ export function createInvariantsReducer() {
|
|
|
582
715
|
getRuleIds: () => getRuleIdsFor('invariants'),
|
|
583
716
|
async reduce(_allFacts, context) {
|
|
584
717
|
try {
|
|
718
|
+
// Auto-disable when no rules are configured — signal notRun to the
|
|
719
|
+
// pipeline so coverage reports invariants rules as notApplicable with
|
|
720
|
+
// an accurate reason (Spec 05 R3.1, Spec 27 criterion 5).
|
|
721
|
+
const rules = context.config.rules;
|
|
722
|
+
if (!rules || (Array.isArray(rules) && rules.length === 0)) {
|
|
723
|
+
return {
|
|
724
|
+
violations: [],
|
|
725
|
+
facts: {},
|
|
726
|
+
notRunReason: 'invariants disabled — no rules configured',
|
|
727
|
+
};
|
|
728
|
+
}
|
|
585
729
|
const { analyzeInvariants } = await import('./analyzers/invariantsAnalyzer.js');
|
|
586
730
|
// Full file list is in _infra.files (merged into context.config via pipeline)
|
|
587
731
|
const files = context.config.files ?? [];
|
|
@@ -593,7 +737,36 @@ export function createInvariantsReducer() {
|
|
|
593
737
|
const knownFiles = sourceMap
|
|
594
738
|
? new Set(sourceMap.keys())
|
|
595
739
|
: undefined;
|
|
596
|
-
|
|
740
|
+
// B1: Build fileData from the function-index visitor's AST-extracted
|
|
741
|
+
// imports/exports — replaces regex-based extractImports/extractExportedSymbols
|
|
742
|
+
const functionIndexFacts = _allFacts['function-index'];
|
|
743
|
+
let fileData;
|
|
744
|
+
if (functionIndexFacts) {
|
|
745
|
+
fileData = new Map();
|
|
746
|
+
const projectRoot = context.projectRoot;
|
|
747
|
+
for (const [filePath, data] of Object.entries(functionIndexFacts)) {
|
|
748
|
+
if (data && (data.imports || data.exports)) {
|
|
749
|
+
// Normalize absolute paths to project-relative (matching checkRules normalization)
|
|
750
|
+
const normalized = path.isAbsolute(filePath)
|
|
751
|
+
? path.relative(projectRoot, filePath)
|
|
752
|
+
: filePath;
|
|
753
|
+
fileData.set(normalized, {
|
|
754
|
+
imports: (data.imports || []).map((imp) => ({
|
|
755
|
+
moduleSpecifier: imp.moduleSpecifier,
|
|
756
|
+
isStatic: imp.isStatic,
|
|
757
|
+
isDynamic: imp.isDynamic,
|
|
758
|
+
isRequire: imp.isRequire,
|
|
759
|
+
line: imp.line,
|
|
760
|
+
})),
|
|
761
|
+
exports: (data.exports || []).map((exp) => ({
|
|
762
|
+
name: exp.name,
|
|
763
|
+
line: exp.location?.start?.line ?? 0,
|
|
764
|
+
})),
|
|
765
|
+
});
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
const result = await analyzeInvariants(files, { ...context.config, sourceMap, knownFiles, fileData }, { projectRoot: context.projectRoot, indexHandle: context.indexHandle });
|
|
597
770
|
return {
|
|
598
771
|
violations: result.violations ?? [],
|
|
599
772
|
facts: {},
|
|
@@ -665,6 +838,24 @@ export function createSchemaCodeVisitor() {
|
|
|
665
838
|
while ((dm = drizzleRe.exec(sourceCode)) !== null) {
|
|
666
839
|
ormTables.push(dm[1]);
|
|
667
840
|
}
|
|
841
|
+
// Extract DDL from sql.exec(...) string literals inside Durable Object classes.
|
|
842
|
+
// These are CREATE TABLE / DROP TABLE statements at runtime that migration
|
|
843
|
+
// discovery never sees. Extracting them completes the authoritative catalog
|
|
844
|
+
// so unknown-table doesn't false-positive on DO-local tables.
|
|
845
|
+
const doDDL = [];
|
|
846
|
+
const doTemplateDDL = /`([^`]*(?:CREATE|DROP|ALTER)\s+(?:TABLE|VIRTUAL\s+TABLE)\s+[^`]+)`/gis;
|
|
847
|
+
const doStringDDL = /(["'])((?:\s*(?:CREATE|DROP|ALTER)\s+(?:TABLE|VIRTUAL\s+TABLE)\s+[^"']+))\1/gis;
|
|
848
|
+
let ddlMatch;
|
|
849
|
+
while ((ddlMatch = doTemplateDDL.exec(sourceCode)) !== null) {
|
|
850
|
+
const sql = ddlMatch[1].trim();
|
|
851
|
+
if (sql)
|
|
852
|
+
doDDL.push(sql);
|
|
853
|
+
}
|
|
854
|
+
while ((ddlMatch = doStringDDL.exec(sourceCode)) !== null) {
|
|
855
|
+
const sql = ddlMatch[2].trim();
|
|
856
|
+
if (sql)
|
|
857
|
+
doDDL.push(sql);
|
|
858
|
+
}
|
|
668
859
|
// Build provenance context for this file — defaults from DEFAULT_SCHEMA_CONFIG
|
|
669
860
|
const schemaConfig = (context.config ?? {});
|
|
670
861
|
const detectionMode = schemaConfig.detection?.mode ?? 'hybrid';
|
|
@@ -673,13 +864,14 @@ export function createSchemaCodeVisitor() {
|
|
|
673
864
|
dbReceiverNames: schemaConfig.dbReceiverNames ?? defaults.dbReceiverNames,
|
|
674
865
|
dbBindingNames: schemaConfig.dbBindingNames ?? defaults.dbBindingNames,
|
|
675
866
|
dbCallMethods: schemaConfig.dbCallMethods ?? defaults.dbCallMethods,
|
|
867
|
+
dbWrapperNames: schemaConfig.dbWrapperNames ?? defaults.dbWrapperNames,
|
|
676
868
|
});
|
|
677
869
|
// File gate — skip files without DB usage
|
|
678
870
|
if (!a.passesFileGate(context.filePath, sourceCode, schemaConfig, provenanceContext)) {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
facts
|
|
682
|
-
};
|
|
871
|
+
const facts = { [context.filePath]: { tableRefs: [], ormTables } };
|
|
872
|
+
if (doDDL.length > 0)
|
|
873
|
+
facts[context.filePath].ddlSource = doDDL.join(';\n');
|
|
874
|
+
return { violations: [], facts };
|
|
683
875
|
}
|
|
684
876
|
// Build known-tables set from schemas config (pre-pipeline + DB-loaded schemas)
|
|
685
877
|
const schemas = schemaConfig.schemas ?? [];
|
|
@@ -728,20 +920,21 @@ export function createSchemaCodeVisitor() {
|
|
|
728
920
|
// Check SQL injection
|
|
729
921
|
violations.push(...a.checkSQLInjection(ast, adapter, sourceCode));
|
|
730
922
|
// Emit facts for the Stage 3 reducer
|
|
923
|
+
const fileFacts = {
|
|
924
|
+
tableRefs: tableRefs.map((r) => ({
|
|
925
|
+
table: r.table,
|
|
926
|
+
type: r.type,
|
|
927
|
+
line: r.location.line,
|
|
928
|
+
column: r.location.column,
|
|
929
|
+
context: r.context,
|
|
930
|
+
})),
|
|
931
|
+
ormTables,
|
|
932
|
+
};
|
|
933
|
+
if (doDDL.length > 0)
|
|
934
|
+
fileFacts.ddlSource = doDDL.join(';\n');
|
|
731
935
|
return {
|
|
732
936
|
violations,
|
|
733
|
-
facts: {
|
|
734
|
-
[context.filePath]: {
|
|
735
|
-
tableRefs: tableRefs.map((r) => ({
|
|
736
|
-
table: r.table,
|
|
737
|
-
type: r.type,
|
|
738
|
-
line: r.location.line,
|
|
739
|
-
column: r.location.column,
|
|
740
|
-
context: r.context,
|
|
741
|
-
})),
|
|
742
|
-
ormTables,
|
|
743
|
-
},
|
|
744
|
-
},
|
|
937
|
+
facts: { [context.filePath]: fileFacts },
|
|
745
938
|
indexFacts: indexFacts.length > 0 ? indexFacts : undefined,
|
|
746
939
|
};
|
|
747
940
|
},
|
|
@@ -795,7 +988,7 @@ export function createSchemaJsonVisitor() {
|
|
|
795
988
|
}
|
|
796
989
|
return {
|
|
797
990
|
violations: [],
|
|
798
|
-
facts: { [context.filePath]: { jsonParsed: parsed
|
|
991
|
+
facts: { [context.filePath]: { jsonParsed: parsed, jsonRaw: sourceCode } },
|
|
799
992
|
};
|
|
800
993
|
},
|
|
801
994
|
defaultConfig: {},
|
|
@@ -875,32 +1068,62 @@ export function createSchemaReducer() {
|
|
|
875
1068
|
knownTables.add(m);
|
|
876
1069
|
}
|
|
877
1070
|
// ── 2. Unknown-table detection ────────────────────────────────────────
|
|
878
|
-
//
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
1071
|
+
//
|
|
1072
|
+
// Fail-open guardrail: we can only accuse when the table catalog is
|
|
1073
|
+
// built from authoritative sources. Empty catalog → cannot accuse.
|
|
1074
|
+
//
|
|
1075
|
+
// Authoritative sources (independent of query sites, not circular):
|
|
1076
|
+
// • SQL migration files via schema-sql (step 1a)
|
|
1077
|
+
// • ORM model definitions via schema-code (step 1b)
|
|
1078
|
+
// • Prisma schemas via schema-prisma (step 1c)
|
|
1079
|
+
//
|
|
1080
|
+
// External config tables (schemas from CodeIndexDB, wrangler.toml
|
|
1081
|
+
// pre-discovered tables) are added as a bonus but are not required.
|
|
1082
|
+
//
|
|
1083
|
+
// NOT authoritative: tables inferred from query-text alone. Those
|
|
1084
|
+
// never enter the catalog (table refs are for checking, not building).
|
|
1085
|
+
// Merge external tables from config (bonus, not required).
|
|
1086
|
+
const externalKnownTables = schemaConfig.knownTables ?? [];
|
|
1087
|
+
for (const t of externalKnownTables)
|
|
1088
|
+
knownTables.add(t);
|
|
1089
|
+
// Also read the documented schemas config (structured {name, tables} objects).
|
|
1090
|
+
// The standalone UniversalSchemaAnalyzer.analyze() path reads schemas; the
|
|
1091
|
+
// pipeline reducer must read it too, otherwise configuring only schemas
|
|
1092
|
+
// silently triggers fail-open (knownTables.size === 0).
|
|
1093
|
+
const externalSchemas = schemaConfig.schemas ?? [];
|
|
1094
|
+
for (const schema of externalSchemas) {
|
|
1095
|
+
for (const table of schema.tables) {
|
|
1096
|
+
knownTables.add(table.name);
|
|
884
1097
|
}
|
|
885
1098
|
}
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
for (const
|
|
890
|
-
const
|
|
891
|
-
const
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
1099
|
+
if (knownTables.size > 0) {
|
|
1100
|
+
// Collect all table references across all files
|
|
1101
|
+
const allTableRefs = [];
|
|
1102
|
+
for (const [filePath, fact] of perFile()) {
|
|
1103
|
+
const refs = fact.tableRefs ?? [];
|
|
1104
|
+
for (const ref of refs) {
|
|
1105
|
+
allTableRefs.push({ file: filePath, ...ref });
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
// 10:1 fail-open ratio guard
|
|
1109
|
+
const unknownRefs = allTableRefs.filter(ref => !knownTables.has(ref.table));
|
|
1110
|
+
if (unknownRefs.length / Math.max(knownTables.size, 1) <= 10) {
|
|
1111
|
+
for (const ref of unknownRefs) {
|
|
1112
|
+
const suggestions = a.getNearestTableSuggestions(ref.table, knownTables, 2);
|
|
1113
|
+
const msg = suggestions.length > 0
|
|
1114
|
+
? `Reference to unknown table '${ref.table}' (${ref.type}). Did you mean: ${suggestions.join(', ')}?`
|
|
1115
|
+
: `Reference to unknown table '${ref.table}' (${ref.type})`;
|
|
1116
|
+
violations.push({
|
|
1117
|
+
file: ref.file,
|
|
1118
|
+
line: ref.line,
|
|
1119
|
+
column: ref.column,
|
|
1120
|
+
severity: 'suggestion',
|
|
1121
|
+
message: msg,
|
|
1122
|
+
rule: 'unknown-table',
|
|
1123
|
+
analyzer: 'schema',
|
|
1124
|
+
symbol: ref.table,
|
|
1125
|
+
});
|
|
1126
|
+
}
|
|
904
1127
|
}
|
|
905
1128
|
}
|
|
906
1129
|
// ── 3. JSON schema validation ──────────────────────────────────────────
|
|
@@ -908,10 +1131,16 @@ export function createSchemaReducer() {
|
|
|
908
1131
|
try {
|
|
909
1132
|
// Build content Map from json facts for the refactored analyzeJsonSchemas
|
|
910
1133
|
const jsonContents = new Map();
|
|
1134
|
+
let jsonFactCount = 0;
|
|
911
1135
|
for (const [filePath, fact] of perFile()) {
|
|
912
1136
|
if ('jsonParsed' in fact) {
|
|
1137
|
+
jsonFactCount++;
|
|
1138
|
+
const raw = (fact.jsonParsed ?? null);
|
|
1139
|
+
// parsed is the result of JSON.parse: null on failure, or the
|
|
1140
|
+
// deserialized value. Only accept objects as usable parsed content.
|
|
1141
|
+
const parsed = raw !== null && typeof raw === 'object' ? raw : null;
|
|
913
1142
|
jsonContents.set(filePath, {
|
|
914
|
-
parsed
|
|
1143
|
+
parsed,
|
|
915
1144
|
raw: (fact.jsonRaw ?? fact.sourceCode ?? ''),
|
|
916
1145
|
});
|
|
917
1146
|
}
|
|
@@ -919,8 +1148,8 @@ export function createSchemaReducer() {
|
|
|
919
1148
|
const jsonResult = a.analyzeJsonSchemas(jsonContents, schemaConfig);
|
|
920
1149
|
violations.push(...(jsonResult?.violations ?? []));
|
|
921
1150
|
}
|
|
922
|
-
catch {
|
|
923
|
-
// JSON schema validation is best-effort
|
|
1151
|
+
catch (e) {
|
|
1152
|
+
// JSON schema validation is best-effort (non-fatal)
|
|
924
1153
|
}
|
|
925
1154
|
}
|
|
926
1155
|
return {
|