code-auditor-mcp 3.0.7 → 3.1.1
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 +245 -0
- package/README.md +24 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts +21 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js +21 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts +13 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js +12 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts +11 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js +22 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts +9 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js +13 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts +13 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js +18 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts +10 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js +16 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts +14 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js +18 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts +13 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js +22 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts +10 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js +20 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts +18 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js +28 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts +11 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js +31 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts +11 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js +18 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts +13 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js +61 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts +10 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js +15 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts +11 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js +49 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts +10 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js +19 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts +37 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js +73 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts +12 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js +82 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts +10 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts.map +1 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js +15 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js.map +1 -0
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +3 -5
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +1 -3
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +2 -5
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +2 -5
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +7 -22
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +40 -2
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +186 -29
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +30 -0
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +164 -61
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +51 -7
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +354 -48
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +8 -4
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +51 -38
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +59 -39
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +412 -153
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +26 -2
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config/defaults.d.ts +32 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +62 -4
- package/dist/config/defaults.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts +7 -0
- package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +16 -23
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +1 -1
- package/package.json +2 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
|
@@ -7,8 +7,13 @@ export const DEFAULT_SOLID_CONFIG = {
|
|
|
7
7
|
maxMethodsPerClass: 15,
|
|
8
8
|
maxLinesPerMethod: 50,
|
|
9
9
|
maxParametersPerMethod: 4,
|
|
10
|
-
maxClassComplexity: 50,
|
|
10
|
+
maxClassComplexity: 50, // DEPRECATED — kept for back-compat
|
|
11
11
|
maxInterfaceMembers: 20,
|
|
12
|
+
// R5.1: Per-method cyclomatic complexity (true McCC)
|
|
13
|
+
maxMethodComplexity: 50,
|
|
14
|
+
// R5.2: Class-level aggregation
|
|
15
|
+
classMethodsThreshold: 15,
|
|
16
|
+
classAggregateComplexity: 100,
|
|
12
17
|
checkDependencyInversion: true,
|
|
13
18
|
checkInterfaceSegregation: true,
|
|
14
19
|
checkLiskovSubstitution: true,
|
|
@@ -51,19 +56,37 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
51
56
|
*/
|
|
52
57
|
analyzeClass(cls, ast, adapter, sourceCode, config) {
|
|
53
58
|
const violations = [];
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
// ── R5.2: Class size (suggestion) ──────────────────────────────────
|
|
60
|
+
const methodsThreshold = config.classMethodsThreshold ?? config.maxMethodsPerClass ?? 15;
|
|
61
|
+
if (cls.methods.length > methodsThreshold) {
|
|
62
|
+
violations.push(this.createViolation(ast.filePath, cls.location.start, `Class "${cls.name}" has ${cls.methods.length} methods, exceeding the maximum of ${methodsThreshold}. Consider splitting responsibilities.`, 'suggestion', // R7: class-size → suggestion
|
|
63
|
+
'solid/class-size'));
|
|
57
64
|
}
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
if (complexity > (config.maxClassComplexity || 50)) {
|
|
61
|
-
violations.push(this.createViolation(ast.filePath, cls.location.start, `Class "${cls.name}" has a complexity of ${complexity}, exceeding the maximum of ${config.maxClassComplexity || 50}. Consider refactoring.`, 'critical', 'single-responsibility'));
|
|
62
|
-
}
|
|
63
|
-
// Analyze each method
|
|
65
|
+
// Analyze each method for complexity + standard size checks
|
|
66
|
+
let aggregateComplexity = 0;
|
|
64
67
|
for (const method of cls.methods) {
|
|
68
|
+
// R5.1: Per-method cyclomatic complexity (warning)
|
|
69
|
+
const methodNode = this.findNodeByLocation(ast.root, method.location.start);
|
|
70
|
+
if (methodNode) {
|
|
71
|
+
const methodComplexity = adapter.getComplexity(methodNode);
|
|
72
|
+
aggregateComplexity += methodComplexity;
|
|
73
|
+
const maxMethod = config.maxMethodComplexity ?? 50;
|
|
74
|
+
if (methodComplexity > maxMethod) {
|
|
75
|
+
violations.push(this.createViolation(ast.filePath, method.location.start, `Method "${cls.name}.${method.name}" has cyclomatic complexity ${methodComplexity}, ` +
|
|
76
|
+
`exceeding the maximum of ${maxMethod}. Consider breaking it into smaller methods.`, 'warning', // R7: method-complexity → warning
|
|
77
|
+
'solid/method-complexity'));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Standard function checks (params, line count)
|
|
65
81
|
violations.push(...this.analyzeFunction(method, ast, adapter, sourceCode, config));
|
|
66
82
|
}
|
|
83
|
+
// R5.2: Class aggregate complexity (suggestion)
|
|
84
|
+
const maxAggregate = config.classAggregateComplexity ?? 100;
|
|
85
|
+
if (aggregateComplexity > maxAggregate) {
|
|
86
|
+
violations.push(this.createViolation(ast.filePath, cls.location.start, `Class "${cls.name}" has aggregate cyclomatic complexity ${aggregateComplexity}, ` +
|
|
87
|
+
`exceeding the maximum of ${maxAggregate}. Consider splitting the class.`, 'suggestion', // R7: class-size → suggestion
|
|
88
|
+
'solid/class-size'));
|
|
89
|
+
}
|
|
67
90
|
// Open/Closed Principle - check for modification patterns
|
|
68
91
|
if (this.hasModificationPatterns(cls, ast, adapter, sourceCode)) {
|
|
69
92
|
violations.push(this.createViolation(ast.filePath, cls.location.start, `Class "${cls.name}" appears to be frequently modified. Consider using composition or inheritance for extension.`, 'suggestion', 'open-closed'));
|
|
@@ -94,6 +117,20 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
94
117
|
if (lineCount > (config.maxLinesPerMethod || 50)) {
|
|
95
118
|
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.`, 'warning', 'single-responsibility'));
|
|
96
119
|
}
|
|
120
|
+
// R5.1: Cyclomatic complexity for standalone functions (not methods — those are
|
|
121
|
+
// already checked in analyzeClass). Skip methods to avoid double-reporting.
|
|
122
|
+
if (!func.isMethod) {
|
|
123
|
+
const funcNode = this.findNodeByLocation(ast.root, func.location.start);
|
|
124
|
+
if (funcNode) {
|
|
125
|
+
const cyclomaticComplexity = adapter.getComplexity(funcNode);
|
|
126
|
+
const maxMethod = config.maxMethodComplexity ?? 50;
|
|
127
|
+
if (cyclomaticComplexity > maxMethod) {
|
|
128
|
+
violations.push(this.createViolation(ast.filePath, func.location.start, `Function "${func.name}" has cyclomatic complexity ${cyclomaticComplexity}, ` +
|
|
129
|
+
`exceeding the maximum of ${maxMethod}. Consider breaking it into smaller functions.`, 'warning', // R7: method-complexity → warning
|
|
130
|
+
'solid/method-complexity'));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
97
134
|
return violations;
|
|
98
135
|
}
|
|
99
136
|
/**
|
|
@@ -111,30 +148,6 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
111
148
|
}
|
|
112
149
|
return violations;
|
|
113
150
|
}
|
|
114
|
-
/**
|
|
115
|
-
* Calculate class complexity
|
|
116
|
-
*/
|
|
117
|
-
calculateClassComplexity(cls, ast, adapter, sourceCode) {
|
|
118
|
-
let complexity = 0;
|
|
119
|
-
// Base complexity for the class itself
|
|
120
|
-
complexity += 1;
|
|
121
|
-
// Add complexity for each method
|
|
122
|
-
complexity += cls.methods.length * 2;
|
|
123
|
-
// Add complexity for properties
|
|
124
|
-
complexity += cls.properties.length;
|
|
125
|
-
// Add complexity for inheritance
|
|
126
|
-
if (cls.extends)
|
|
127
|
-
complexity += 5;
|
|
128
|
-
if (cls.implements && cls.implements.length > 0) {
|
|
129
|
-
complexity += cls.implements.length * 2;
|
|
130
|
-
}
|
|
131
|
-
// Add complexity based on method sizes
|
|
132
|
-
for (const method of cls.methods) {
|
|
133
|
-
const lineCount = method.location.end.line - method.location.start.line + 1;
|
|
134
|
-
complexity += Math.floor(lineCount / 10);
|
|
135
|
-
}
|
|
136
|
-
return complexity;
|
|
137
|
-
}
|
|
138
151
|
/**
|
|
139
152
|
* Check for modification patterns (Open/Closed Principle)
|
|
140
153
|
*/
|
|
@@ -146,11 +159,11 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
146
159
|
let hasTypeChecking = false;
|
|
147
160
|
this.walkAST(classNode, node => {
|
|
148
161
|
// Check for switch statements
|
|
149
|
-
if (node.type
|
|
162
|
+
if (node.type === 'switch_statement') {
|
|
150
163
|
hasTypeChecking = true;
|
|
151
164
|
}
|
|
152
165
|
// Check for instanceof chains
|
|
153
|
-
if (node.type
|
|
166
|
+
if (node.type === 'binary_expression' && adapter.getNodeText(node, sourceCode).includes('instanceof')) {
|
|
154
167
|
hasTypeChecking = true;
|
|
155
168
|
}
|
|
156
169
|
});
|
|
@@ -172,7 +185,7 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
172
185
|
if (methodNode) {
|
|
173
186
|
let hasThrow = false;
|
|
174
187
|
this.walkAST(methodNode, node => {
|
|
175
|
-
if (node.type
|
|
188
|
+
if (node.type === 'throw_statement') {
|
|
176
189
|
hasThrow = true;
|
|
177
190
|
}
|
|
178
191
|
});
|
|
@@ -204,7 +217,7 @@ export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
|
|
|
204
217
|
}
|
|
205
218
|
this.walkAST(classNode, node => {
|
|
206
219
|
// Check for 'new' expressions
|
|
207
|
-
if (node.type
|
|
220
|
+
if (node.type === 'new_expression') {
|
|
208
221
|
const text = adapter.getNodeText(node, sourceCode);
|
|
209
222
|
// Ignore primitive constructors like Date, Array, etc.
|
|
210
223
|
if (!this.isPrimitiveConstructor(text)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalSOLIDAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSOLIDAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UniversalSOLIDAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSOLIDAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Universal Schema Analyzer
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Universal Schema Analyzer — Spec 17 R2
|
|
3
|
+
*
|
|
4
|
+
* R2.1: SQL-context-only extraction (AST-based, not regex scan-all-strings).
|
|
5
|
+
* R2.2: File gate — only analyze files with DB usage indicators.
|
|
6
|
+
* R2.3: Template expressions resolve to wildcards for known-table matching.
|
|
7
|
+
* R2.4: Unknown-table findings include SQL kind, line, and Levenshtein suggestions.
|
|
8
|
+
* R2.5: Legacy scan-all-strings path DELETED.
|
|
9
|
+
* R7: schema/unknown-table severity is "suggestion".
|
|
5
10
|
*/
|
|
6
11
|
import { UniversalAnalyzer } from '../../languages/UniversalAnalyzer.js';
|
|
7
12
|
import type { Violation } from '../../types.js';
|
|
@@ -38,6 +43,11 @@ export interface SchemaAnalyzerConfig {
|
|
|
38
43
|
}>;
|
|
39
44
|
strictMode?: boolean;
|
|
40
45
|
allowAdditionalProperties?: boolean;
|
|
46
|
+
sqlTagNames?: string[];
|
|
47
|
+
dbReceiverNames?: string[];
|
|
48
|
+
dbCallMethods?: string[];
|
|
49
|
+
dbBindingNames?: string[];
|
|
50
|
+
fileGateGlobs?: string[];
|
|
41
51
|
}
|
|
42
52
|
export declare const DEFAULT_SCHEMA_CONFIG: SchemaAnalyzerConfig;
|
|
43
53
|
import type { AnalyzerResult } from '../../types.js';
|
|
@@ -47,73 +57,83 @@ export declare class UniversalSchemaAnalyzer extends UniversalAnalyzer {
|
|
|
47
57
|
readonly category = "database";
|
|
48
58
|
private tableReferences;
|
|
49
59
|
private columnReferences;
|
|
50
|
-
/**
|
|
51
|
-
* Override analyze to handle both TypeScript files and JSON files
|
|
52
|
-
*/
|
|
53
60
|
analyze(files: string[], config: any): Promise<AnalyzerResult>;
|
|
54
61
|
protected analyzeAST(ast: AST, adapter: LanguageAdapter, config: SchemaAnalyzerConfig, sourceCode: string): Promise<Violation[]>;
|
|
55
62
|
/**
|
|
56
|
-
*
|
|
63
|
+
* Pre-filter: only analyze files that show DB usage.
|
|
64
|
+
* Checks: .sql/migration glob, D1/SQL imports, env-binding patterns, DB calls.
|
|
57
65
|
*/
|
|
58
|
-
private
|
|
66
|
+
private passesFileGate;
|
|
59
67
|
/**
|
|
60
|
-
*
|
|
68
|
+
* Extract table references exclusively from SQL contexts in the AST.
|
|
69
|
+
* R2.1: Only tagged template SQL and DB-call patterns produce candidates.
|
|
70
|
+
* R2.3: Template expressions (${var}) resolved to wildcards.
|
|
61
71
|
*/
|
|
62
|
-
private
|
|
72
|
+
private findTableReferences;
|
|
63
73
|
/**
|
|
64
|
-
*
|
|
74
|
+
* Parse SQL table names from a SQL text string.
|
|
75
|
+
* R2.3: Template expressions (${...}) resolve portions to wildcards.
|
|
65
76
|
*/
|
|
66
|
-
private
|
|
77
|
+
private parseSqlTables;
|
|
67
78
|
/**
|
|
68
|
-
*
|
|
79
|
+
* R2.3: Resolve template expressions in SQL text.
|
|
80
|
+
* `${prefix}_builds` → `_builds` (dynamic prefix removed, suffix kept).
|
|
81
|
+
* `${identifier}` (fully dynamic) → empty string (no finding produced).
|
|
69
82
|
*/
|
|
70
|
-
private
|
|
83
|
+
private resolveTemplateExpressions;
|
|
71
84
|
/**
|
|
72
|
-
*
|
|
85
|
+
* Return known table names within edit distance ≤ maxDist.
|
|
73
86
|
*/
|
|
87
|
+
private getNearestTableSuggestions;
|
|
88
|
+
private levenshteinDistance;
|
|
89
|
+
private findColumnReferences;
|
|
90
|
+
private checkNamingConventions;
|
|
91
|
+
private checkQueryPatterns;
|
|
74
92
|
private checkSQLInjection;
|
|
75
93
|
/**
|
|
76
|
-
*
|
|
94
|
+
* Extract the callee text from a call_expression node.
|
|
77
95
|
*/
|
|
78
|
-
private
|
|
79
|
-
private isSystemTable;
|
|
80
|
-
private countQueries;
|
|
81
|
-
private findNodeByLocation;
|
|
96
|
+
private getCallee;
|
|
82
97
|
/**
|
|
83
|
-
*
|
|
98
|
+
* Check if call_expression has a template string argument.
|
|
84
99
|
*/
|
|
85
|
-
private
|
|
100
|
+
private hasTemplateArgument;
|
|
86
101
|
/**
|
|
87
|
-
*
|
|
102
|
+
* Get the text of the first template string argument.
|
|
88
103
|
*/
|
|
89
|
-
private
|
|
104
|
+
private getTemplateText;
|
|
90
105
|
/**
|
|
91
|
-
*
|
|
106
|
+
* Get the first string/template argument from a call expression.
|
|
92
107
|
*/
|
|
93
|
-
private
|
|
108
|
+
private getFirstStringArgument;
|
|
94
109
|
/**
|
|
95
|
-
*
|
|
110
|
+
* Check if a callee is a DB member call like db.exec, database.query, etc.
|
|
96
111
|
*/
|
|
97
|
-
private
|
|
112
|
+
private isDbMemberCall;
|
|
98
113
|
/**
|
|
99
|
-
*
|
|
114
|
+
* Get the line/column location of the call expression.
|
|
100
115
|
*/
|
|
101
|
-
private
|
|
116
|
+
private getCallLocation;
|
|
102
117
|
/**
|
|
103
|
-
*
|
|
118
|
+
* Convert a character offset to a line/column location.
|
|
104
119
|
*/
|
|
105
|
-
private
|
|
120
|
+
private offsetToLocation;
|
|
121
|
+
private isSystemTable;
|
|
106
122
|
/**
|
|
107
|
-
*
|
|
123
|
+
* Common SQL keywords and identifiers that are not real table names.
|
|
108
124
|
*/
|
|
125
|
+
private isSqlKeyword;
|
|
126
|
+
private getQueryType;
|
|
127
|
+
private countQueries;
|
|
128
|
+
private findNodeByLocation;
|
|
129
|
+
private analyzeJsonSchemas;
|
|
130
|
+
private validateJsonSchema;
|
|
131
|
+
private validateSchemaTypes;
|
|
132
|
+
private identifySchemaFiles;
|
|
133
|
+
private identifyDataFiles;
|
|
134
|
+
private loadSchema;
|
|
109
135
|
private findMatchingSchema;
|
|
110
|
-
/**
|
|
111
|
-
* Validate data against a JSON Schema
|
|
112
|
-
*/
|
|
113
136
|
private validateDataAgainstSchema;
|
|
114
|
-
/**
|
|
115
|
-
* Validate data against schema recursively
|
|
116
|
-
*/
|
|
117
137
|
private validateAgainstSchema;
|
|
118
138
|
}
|
|
119
139
|
//# sourceMappingURL=UniversalSchemaAnalyzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalSchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSchemaAnalyzer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"UniversalSchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSchemaAnalyzer.ts"],"names":[],"mappings":"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"}
|