code-auditor-mcp 3.4.11 → 3.4.13
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 +2 -2
- package/CHANGELOG.md +119 -1
- package/dist/analyzers/__verify_self_probe.d.ts +2 -0
- package/dist/analyzers/__verify_self_probe.d.ts.map +1 -0
- package/dist/analyzers/__verify_self_probe.js +5 -0
- package/dist/analyzers/__verify_self_probe.js.map +1 -0
- package/dist/analyzers/analyzerUtils.d.ts +34 -1
- package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
- package/dist/analyzers/analyzerUtils.js +61 -22
- package/dist/analyzers/analyzerUtils.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +18 -23
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +198 -186
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +78 -55
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +244 -243
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +27 -37
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +314 -275
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +17 -46
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +620 -523
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts +7 -2
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +259 -198
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.js +59 -46
- package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
- package/dist/analyzers/orm/adapterRegistry.d.ts +10 -0
- package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -1
- package/dist/analyzers/orm/adapterRegistry.js +10 -0
- package/dist/analyzers/orm/adapterRegistry.js.map +1 -1
- package/dist/analyzers/orm/drizzleAdapter.d.ts +22 -0
- package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -1
- package/dist/analyzers/orm/drizzleAdapter.js +42 -44
- package/dist/analyzers/orm/drizzleAdapter.js.map +1 -1
- package/dist/analyzers/orm/prismaAdapter.d.ts +30 -0
- package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -1
- package/dist/analyzers/orm/prismaAdapter.js +30 -0
- package/dist/analyzers/orm/prismaAdapter.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +72 -2
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +462 -338
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts +11 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +188 -125
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts +118 -1
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +1717 -104
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +54 -0
- package/dist/analyzers/ruleTiming.d.ts.map +1 -0
- package/dist/analyzers/ruleTiming.js +71 -0
- package/dist/analyzers/ruleTiming.js.map +1 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +13 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +362 -283
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +26 -68
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +430 -391
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +24 -186
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +1081 -1061
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +3 -49
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +414 -340
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +48 -5
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +262 -134
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +23 -212
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +139 -1518
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +78 -79
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +613 -472
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts +307 -0
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/codeAnalysis.js +965 -0
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -0
- package/dist/analyzers/universal/schema/config.d.ts +31 -0
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/config.js +57 -0
- package/dist/analyzers/universal/schema/config.js.map +1 -0
- package/dist/analyzers/universal/schema/discovery.d.ts +167 -0
- package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/discovery.js +616 -0
- package/dist/analyzers/universal/schema/discovery.js.map +1 -0
- package/dist/analyzers/universal/schema/jsonSchema.d.ts +27 -0
- package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/jsonSchema.js +368 -0
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -0
- package/dist/analyzers/universal/schema/migrations.d.ts +90 -0
- package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/migrations.js +238 -0
- package/dist/analyzers/universal/schema/migrations.js.map +1 -0
- package/dist/analyzers/universal/schema/types.d.ts +131 -0
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/types.js +10 -0
- package/dist/analyzers/universal/schema/types.js.map +1 -0
- package/dist/analyzers/universal/schema/violations.d.ts +44 -0
- package/dist/analyzers/universal/schema/violations.d.ts.map +1 -0
- package/dist/analyzers/universal/schema/violations.js +54 -0
- package/dist/analyzers/universal/schema/violations.js.map +1 -0
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +101 -39
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js +348 -40
- package/dist/cli.js.map +1 -1
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +9 -7
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +12 -3
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +15 -5
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts +75 -0
- package/dist/config/effectiveConfig.d.ts.map +1 -0
- package/dist/config/effectiveConfig.js +213 -0
- package/dist/config/effectiveConfig.js.map +1 -0
- package/dist/config/pathProfiles.d.ts +7 -4
- package/dist/config/pathProfiles.d.ts.map +1 -1
- package/dist/config/pathProfiles.js +8 -10
- package/dist/config/pathProfiles.js.map +1 -1
- package/dist/config/thresholdRationales.d.ts +45 -0
- package/dist/config/thresholdRationales.d.ts.map +1 -0
- package/dist/config/thresholdRationales.js +67 -0
- package/dist/config/thresholdRationales.js.map +1 -0
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +6 -2
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/enforcement/diffGate.d.ts +55 -0
- package/dist/enforcement/diffGate.d.ts.map +1 -0
- package/dist/enforcement/diffGate.js +136 -0
- package/dist/enforcement/diffGate.js.map +1 -0
- package/dist/enforcement/gate.d.ts +36 -0
- package/dist/enforcement/gate.d.ts.map +1 -0
- package/dist/enforcement/gate.js +72 -0
- package/dist/enforcement/gate.js.map +1 -0
- package/dist/enforcement/suppressions.d.ts +41 -0
- package/dist/enforcement/suppressions.d.ts.map +1 -0
- package/dist/enforcement/suppressions.js +170 -0
- package/dist/enforcement/suppressions.js.map +1 -0
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +4 -1
- package/dist/fingerprint.js.map +1 -1
- package/dist/grammars/tree-sitter-scss.wasm +0 -0
- package/dist/invariants/ruleEngine.d.ts +3 -4
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +2 -2
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/languages/LanguageOrchestrator.d.ts +14 -0
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +93 -55
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/LanguageRegistry.d.ts +8 -0
- package/dist/languages/LanguageRegistry.d.ts.map +1 -1
- package/dist/languages/LanguageRegistry.js +8 -0
- package/dist/languages/LanguageRegistry.js.map +1 -1
- package/dist/languages/RuntimeManager.d.ts +82 -60
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +404 -349
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts +51 -6
- package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +127 -88
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +36 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +89 -35
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts +66 -23
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +553 -474
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +38 -9
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +111 -74
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/converter.d.ts +18 -0
- package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
- package/dist/languages/tree-sitter/converter.js +18 -0
- package/dist/languages/tree-sitter/converter.js.map +1 -1
- package/dist/languages/tree-sitter/parser.d.ts +39 -2
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
- package/dist/languages/tree-sitter/parser.js +95 -12
- package/dist/languages/tree-sitter/parser.js.map +1 -1
- package/dist/languages/types.d.ts +67 -2
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +253 -62
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +1461 -791
- 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 +30 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +527 -203
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +5 -12
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +175 -100
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/presets/presets.d.ts +54 -0
- package/dist/presets/presets.d.ts.map +1 -0
- package/dist/presets/presets.js +181 -0
- package/dist/presets/presets.js.map +1 -0
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +0 -2
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/ruleAliases.d.ts +67 -0
- package/dist/ruleAliases.d.ts.map +1 -0
- package/dist/ruleAliases.js +79 -0
- package/dist/ruleAliases.js.map +1 -0
- package/dist/styles/cssAstExtractor.d.ts +20 -5
- package/dist/styles/cssAstExtractor.d.ts.map +1 -1
- package/dist/styles/cssAstExtractor.js +247 -9
- package/dist/styles/cssAstExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.js +13 -4
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindConfigLoader.d.ts +8 -6
- package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
- package/dist/styles/tailwindConfigLoader.js +61 -15
- package/dist/styles/tailwindConfigLoader.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +13 -1
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/types.d.ts +201 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/package.json +7 -4
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +1 -1
- package/plugin/scripts/hook-audit.sh +25 -7
- package/plugin/skills/code-auditor/SKILL.md +5 -5
|
@@ -9,120 +9,32 @@
|
|
|
9
9
|
* R7: schema/unknown-table severity is "suggestion".
|
|
10
10
|
*/
|
|
11
11
|
import { UniversalAnalyzer } from '../../languages/UniversalAnalyzer.js';
|
|
12
|
-
import type { Violation } from '../../types.js';
|
|
13
|
-
import type { AST, LanguageAdapter
|
|
14
|
-
import {
|
|
12
|
+
import type { Violation, AnalyzerResult, SchemaUsage } from '../../types.js';
|
|
13
|
+
import type { AST, LanguageAdapter } from '../../languages/types.js';
|
|
14
|
+
import { parseMigrationOps, extractReExports, sqlFileHasDdl, extractMigrationOpsFromFile } from './schema/migrations.js';
|
|
15
|
+
import { DB_RECEIVER_NAMES, DB_CALL_METHOD_NAMES, DB_BINDING_NAMES, DB_WRAPPER_NAMES, SQL_TAG_NAMES, DEFAULT_SCHEMA_CONFIG } from './schema/config.js';
|
|
16
|
+
import type { SchemaAnalyzerConfig, TableReference, TableSourceEntry, TableProvenance, TableCatalogEntry, RegistryExtractionContext, MigrationOp, ReExport } from './schema/types.js';
|
|
17
|
+
export { parseMigrationOps, extractReExports, sqlFileHasDdl, extractMigrationOpsFromFile, DB_RECEIVER_NAMES, DB_CALL_METHOD_NAMES, DB_BINDING_NAMES, DB_WRAPPER_NAMES, SQL_TAG_NAMES, DEFAULT_SCHEMA_CONFIG, };
|
|
18
|
+
export type { SchemaAnalyzerConfig, TableReference, TableSourceEntry, TableProvenance, TableCatalogEntry, RegistryExtractionContext, MigrationOp, ReExport, };
|
|
15
19
|
/**
|
|
16
|
-
*
|
|
20
|
+
* Universal schema analyzer.
|
|
17
21
|
*/
|
|
18
|
-
export interface SchemaAnalyzerConfig {
|
|
19
|
-
enableTableUsageTracking?: boolean;
|
|
20
|
-
checkMissingReferences?: boolean;
|
|
21
|
-
checkNamingConventions?: boolean;
|
|
22
|
-
detectUnusedTables?: boolean;
|
|
23
|
-
validateQueryPatterns?: boolean;
|
|
24
|
-
maxQueriesPerFunction?: number;
|
|
25
|
-
requiredSchemas?: string[];
|
|
26
|
-
schemas?: Array<{
|
|
27
|
-
name: string;
|
|
28
|
-
tables: Array<{
|
|
29
|
-
name: string;
|
|
30
|
-
columns: Array<{
|
|
31
|
-
name: string;
|
|
32
|
-
type: string;
|
|
33
|
-
}>;
|
|
34
|
-
}>;
|
|
35
|
-
}>;
|
|
36
|
-
validateJsonSchemas?: boolean;
|
|
37
|
-
jsonSchemaVersion?: 'draft-04' | 'draft-06' | 'draft-07' | '2019-09' | '2020-12';
|
|
38
|
-
allowedJsonTypes?: string[];
|
|
39
|
-
schemaFilePatterns?: string[];
|
|
40
|
-
dataFilePatterns?: string[];
|
|
41
|
-
schemaDataPairs?: Array<{
|
|
42
|
-
schema: string;
|
|
43
|
-
data: string | string[];
|
|
44
|
-
}>;
|
|
45
|
-
strictMode?: boolean;
|
|
46
|
-
allowAdditionalProperties?: boolean;
|
|
47
|
-
sqlTagNames?: string[];
|
|
48
|
-
dbReceiverNames?: string[];
|
|
49
|
-
dbCallMethods?: string[];
|
|
50
|
-
dbBindingNames?: string[];
|
|
51
|
-
fileGateGlobs?: string[];
|
|
52
|
-
schemaFiles?: string[];
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Single-source constants for SQL context detection.
|
|
56
|
-
*
|
|
57
|
-
* These are the ground-truth defaults. DEFAULT_SCHEMA_CONFIG references them,
|
|
58
|
-
* and every inline fallback dereferences them directly — so ?? narrowing works
|
|
59
|
-
* (TypeScript infers `string[]`, not `string[] | undefined` from the optional
|
|
60
|
-
* SchemaAnalyzerConfig fields).
|
|
61
|
-
*
|
|
62
|
-
* Trimmed to D1/Workers DB patterns only (4 receivers, 6 methods).
|
|
63
|
-
* Broader entries like 'connection'/'client'/'query'/'get'/'each' matched
|
|
64
|
-
* non-DB code (WebSocket, Map, jQuery, vector stores), causing phantom
|
|
65
|
-
* cross-domain lifecycle violations. See CHANGELOG 3.4.9 accuracy fix.
|
|
66
|
-
*/
|
|
67
|
-
export declare const DB_RECEIVER_NAMES: readonly ['db', 'database', 'sql', 'stmt'];
|
|
68
|
-
export declare const DB_CALL_METHOD_NAMES: readonly ['exec', 'prepare', 'batch', 'run', 'all', 'first'];
|
|
69
|
-
export declare const DB_BINDING_NAMES: readonly ['env.DB'];
|
|
70
|
-
export declare const SQL_TAG_NAMES: readonly ['sql', 'db'];
|
|
71
|
-
export declare const DEFAULT_SCHEMA_CONFIG: SchemaAnalyzerConfig;
|
|
72
|
-
export interface TableReference {
|
|
73
|
-
table: string;
|
|
74
|
-
type: 'select' | 'insert' | 'update' | 'delete' | 'create' | 'reference';
|
|
75
|
-
location: {
|
|
76
|
-
line: number;
|
|
77
|
-
column: number;
|
|
78
|
-
};
|
|
79
|
-
context: string;
|
|
80
|
-
}
|
|
81
|
-
import type { AnalyzerResult, SchemaUsage } from '../../types.js';
|
|
82
22
|
export declare class UniversalSchemaAnalyzer extends UniversalAnalyzer {
|
|
83
23
|
readonly name = "schema";
|
|
84
24
|
readonly description = "Analyzes code against database schemas and validates JSON schemas";
|
|
85
25
|
readonly category = "database";
|
|
86
|
-
private tableReferences;
|
|
87
26
|
private _pendingSchemaRecords;
|
|
88
|
-
private projectRoot?;
|
|
89
|
-
/**
|
|
90
|
-
* Strip SQL identifier delimiters: backticks or double-quotes.
|
|
91
|
-
*/
|
|
92
|
-
stripIdentifier(name: string): string;
|
|
93
|
-
/**
|
|
94
|
-
* Parse a migration SQL source and apply stateful CREATE/DROP/RENAME
|
|
95
|
-
* operations to the given table set in migration order.
|
|
96
|
-
*/
|
|
97
|
-
processMigrationSource(source: string, tables: Set<string>): void;
|
|
98
27
|
/**
|
|
99
28
|
* Standalone analyze() override for backward compatibility with direct analyzer
|
|
100
29
|
* calls (e.g., tests and non-pipeline audit paths). All production analysis now
|
|
101
30
|
* flows through the pipeline visitors, but this method is preserved so tests
|
|
102
31
|
* that call analyzer.analyze([file], config) continue to work.
|
|
32
|
+
* @param config
|
|
33
|
+
* @param files
|
|
34
|
+
* @returns
|
|
103
35
|
*/
|
|
104
36
|
analyze(files: string[], config: any): Promise<AnalyzerResult>;
|
|
105
37
|
protected analyzeAST(ast: AST, adapter: LanguageAdapter, config: SchemaAnalyzerConfig, sourceCode: string): Promise<Violation[]>;
|
|
106
|
-
/**
|
|
107
|
-
* Walk project root recursively, returning files matching any of the given
|
|
108
|
-
* picomatch globs. Skips node_modules and dot-directories.
|
|
109
|
-
*/
|
|
110
|
-
private _walkFiles;
|
|
111
|
-
private _discoverTablesFromMigrations;
|
|
112
|
-
private _discoverTablesFromWrangler;
|
|
113
|
-
private _discoverTablesFromSchemaFiles;
|
|
114
|
-
private _discoverTablesFromOrmSchemas;
|
|
115
|
-
/**
|
|
116
|
-
* Pre-filter: only analyze files that show DB usage.
|
|
117
|
-
* Checks: .sql/migration glob, D1/SQL imports, env-binding patterns, DB calls.
|
|
118
|
-
*/
|
|
119
|
-
passesFileGate(filePath: string, sourceCode: string, config: SchemaAnalyzerConfig, provenanceContext?: ProvenanceContext): boolean;
|
|
120
|
-
/**
|
|
121
|
-
* Extract table references exclusively from SQL contexts in the AST.
|
|
122
|
-
* R2.1: Only tagged template SQL and DB-call patterns produce candidates.
|
|
123
|
-
* R2.3: Template expressions (${var}) resolved to wildcards.
|
|
124
|
-
*/
|
|
125
|
-
findTableReferences(ast: AST, adapter: LanguageAdapter, sourceCode: string, config: SchemaAnalyzerConfig, provenanceContext?: ProvenanceContext, allTables?: Set<string>): TableReference[];
|
|
126
38
|
/**
|
|
127
39
|
* Spec 15 R1 — Record extracted table references to schema_usage for
|
|
128
40
|
* cross-domain lifecycle analysis (written-never-read, read-never-written,
|
|
@@ -131,124 +43,23 @@ export declare class UniversalSchemaAnalyzer extends UniversalAnalyzer {
|
|
|
131
43
|
* Idempotent per-file: stale entries are cleared before fresh references
|
|
132
44
|
* are inserted. For .sql/migration files, uses "schema-file" as the
|
|
133
45
|
* function name since there's no AST function context.
|
|
46
|
+
* @returns
|
|
47
|
+
* @param adapter
|
|
48
|
+
* @param ast
|
|
49
|
+
* @param filePath
|
|
50
|
+
* @param references
|
|
51
|
+
* @returns
|
|
134
52
|
*/
|
|
135
53
|
recordTableUsage(ast: AST, adapter: LanguageAdapter, filePath: string, references: TableReference[]): void;
|
|
136
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Spec 25 B4 — Drain pending schema records for the pipeline to write.
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
137
58
|
getPendingSchemaRecords(): {
|
|
138
59
|
clearFiles: string[];
|
|
139
60
|
usages: SchemaUsage[];
|
|
140
61
|
};
|
|
141
|
-
/**
|
|
142
|
-
* Parse SQL table names from a SQL text string.
|
|
143
|
-
* R2.3: Template expressions (${...}) resolve portions to wildcards.
|
|
144
|
-
*/
|
|
145
|
-
parseSqlTables(sqlText: string, baseLocation: {
|
|
146
|
-
line: number;
|
|
147
|
-
column: number;
|
|
148
|
-
}, sourceCode: string, allTables?: Set<string>): TableReference[];
|
|
149
|
-
/**
|
|
150
|
-
* Spec 22 R4.3: Extract alias identifiers from SQL text.
|
|
151
|
-
*
|
|
152
|
-
* Detects both explicit (`FROM x AS t`) and bare (`FROM x t`) aliases
|
|
153
|
-
* so they can be filtered from table-references in parseSqlTables().
|
|
154
|
-
* Without this, "JOIN t.posts" captures t via the JOIN regex when t is
|
|
155
|
-
* an alias for the real table x.
|
|
156
|
-
*/
|
|
157
|
-
private extractAliasIdentifiers;
|
|
158
|
-
/**
|
|
159
|
-
* R2.3: Resolve template expressions in SQL text.
|
|
160
|
-
*
|
|
161
|
-
* Uses the sentinel `__TMPL__` instead of an empty string. An empty
|
|
162
|
-
* replacement produces whitespace artifacts (e.g. `FROM t WHERE`
|
|
163
|
-
* when `${tableName}` is stripped), which causes the bare-alias regex
|
|
164
|
-
* in extractAliasIdentifiers() to misalign: `t` lands in the table-name
|
|
165
|
-
* capture group instead of the alias group, and is never denylisted.
|
|
166
|
-
*
|
|
167
|
-
* `__TMPL__` keeps the token boundaries intact so alias extraction
|
|
168
|
-
* correctly identifies `t` as the alias. `__TMPL__` table references
|
|
169
|
-
* are filtered in parseSqlTables().
|
|
170
|
-
*/
|
|
171
|
-
private resolveTemplateExpressions;
|
|
172
|
-
/**
|
|
173
|
-
* Return known table names within edit distance ≤ maxDist.
|
|
174
|
-
*/
|
|
175
|
-
getNearestTableSuggestions(name: string, knownTables: Set<string>, maxDist: number): string[];
|
|
176
|
-
levenshteinDistance(a: string, b: string): number;
|
|
177
|
-
checkNamingConventions(references: TableReference[], filePath: string): Violation[];
|
|
178
|
-
checkQueryPatterns(ast: AST, adapter: LanguageAdapter, sourceCode: string, config: SchemaAnalyzerConfig): Violation[];
|
|
179
|
-
checkSQLInjection(ast: AST, adapter: LanguageAdapter, sourceCode: string): Violation[];
|
|
180
|
-
/**
|
|
181
|
-
* Extract the callee text from a call_expression node.
|
|
182
|
-
*/
|
|
183
|
-
private getCallee;
|
|
184
|
-
/**
|
|
185
|
-
* Check if call_expression has a template string argument.
|
|
186
|
-
*/
|
|
187
|
-
private hasTemplateArgument;
|
|
188
|
-
/**
|
|
189
|
-
* Get the text of the first template string argument.
|
|
190
|
-
*/
|
|
191
|
-
private getTemplateText;
|
|
192
|
-
/**
|
|
193
|
-
* Get the first string/template argument from a call expression.
|
|
194
|
-
*/
|
|
195
|
-
private getFirstStringArgument;
|
|
196
|
-
/**
|
|
197
|
-
* Check if a callee is a DB member call like db.exec, database.query, etc.
|
|
198
|
-
*/
|
|
199
|
-
private isDbMemberCall;
|
|
200
|
-
/**
|
|
201
|
-
* Get the line/column location of the call expression.
|
|
202
|
-
*/
|
|
203
|
-
private getCallLocation;
|
|
204
|
-
/**
|
|
205
|
-
* Convert a character offset to a line/column location.
|
|
206
|
-
*/
|
|
207
|
-
private offsetToLocation;
|
|
208
|
-
private isSystemTable;
|
|
209
|
-
/**
|
|
210
|
-
* Common SQL keywords and identifiers that are not real table names.
|
|
211
|
-
*/
|
|
212
|
-
private isSqlKeyword;
|
|
213
|
-
private getQueryType;
|
|
214
|
-
private countQueries;
|
|
215
|
-
private findNodeByLocation;
|
|
216
|
-
/**
|
|
217
|
-
* Find the nearest AST node at a source location — walks the tree looking
|
|
218
|
-
* for the deepest node that contains the given line/column.
|
|
219
|
-
*/
|
|
220
|
-
findClosestNodeAt(root: ASTNode, location: {
|
|
221
|
-
line: number;
|
|
222
|
-
column: number;
|
|
223
|
-
}, adapter: LanguageAdapter): ASTNode | null;
|
|
224
|
-
/**
|
|
225
|
-
* Walk up the AST from a node to find the enclosing function or method name.
|
|
226
|
-
* Matches the same scheme as UniversalDataAccessAnalyzer.findEnclosingFunctionName.
|
|
227
|
-
*/
|
|
228
|
-
findEnclosingFunctionName(node: ASTNode, adapter: LanguageAdapter): string;
|
|
229
|
-
/**
|
|
230
|
-
* Extract a human-readable name from an AST node.
|
|
231
|
-
* Matches the same scheme as UniversalDataAccessAnalyzer.getNodeName.
|
|
232
|
-
*/
|
|
233
|
-
private getNodeName;
|
|
234
|
-
/**
|
|
235
|
-
* Analyze JSON schemas and validate data files against them.
|
|
236
|
-
*
|
|
237
|
-
* Pipeline-refactored: accepts a Map of pre-loaded JSON contents instead of
|
|
238
|
-
* reading from the filesystem, so this can run inside a Stage 3 reducer.
|
|
239
|
-
*
|
|
240
|
-
* @param jsonContents Map from filePath → { parsed: pre-parsed object or null, raw: string }
|
|
241
|
-
* @param config Schema analyzer configuration
|
|
242
|
-
*/
|
|
243
|
-
analyzeJsonSchemas(jsonContents: Map<string, {
|
|
244
|
-
parsed: object | null;
|
|
245
|
-
raw: string;
|
|
246
|
-
}>, config: SchemaAnalyzerConfig): AnalyzerResult;
|
|
247
|
-
private validateJsonSchema;
|
|
248
|
-
private validateSchemaTypes;
|
|
249
|
-
private identifySchemaFiles;
|
|
250
|
-
private identifyDataFiles;
|
|
251
|
-
private findMatchingSchema;
|
|
252
|
-
private validateAgainstSchema;
|
|
253
62
|
}
|
|
63
|
+
import { analyzeJsonSchemas } from './schema/jsonSchema.js';
|
|
64
|
+
export { analyzeJsonSchemas };
|
|
254
65
|
//# sourceMappingURL=UniversalSchemaAnalyzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalSchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSchemaAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"UniversalSchemaAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSchemaAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAA8B,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAW,MAAM,0BAA0B,CAAC;AAa9E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAmB3B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,GACtB,CAAC;AACF,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,EACX,QAAQ,GACT,CAAC;AAEF;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,uEAAuE;IAC3F,QAAQ,CAAC,QAAQ,cAAc;IAI/B,OAAO,CAAC,qBAAqB,CAAmF;IAEhH;;;;;;;;OAQG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAoBnE;IAKD,UAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAyCtB;IAED;;;;;;;;;;;;;;OAcG;IACI,gBAAgB,CACrB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc,EAAE,GAC3B,IAAI,CA0BN;IAED;;;OAGG;IACH,uBAAuB,IAAI;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,WAAW,EAAE,CAAA;KAAE,CAIzE;CAEF;AA6HD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|