code-auditor-mcp 4.1.1 → 5.0.2
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 +381 -0
- package/README.md +4 -4
- package/configs/hhra-compat.json +0 -8
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +7 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +2 -8
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +4 -4
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +2 -2
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +1 -1
- package/dist/analyzers/applicability.d.ts +42 -0
- package/dist/analyzers/applicability.d.ts.map +1 -1
- package/dist/analyzers/applicability.js +74 -0
- package/dist/analyzers/applicability.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +18 -24
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +30 -23
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +113 -76
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +2 -0
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +8 -3
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +210 -148
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +23 -28
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/handleIdentification.d.ts +356 -0
- package/dist/analyzers/handleIdentification.d.ts.map +1 -0
- package/dist/analyzers/handleIdentification.js +427 -0
- package/dist/analyzers/handleIdentification.js.map +1 -0
- package/dist/analyzers/manifestStaleness.d.ts +64 -0
- package/dist/analyzers/manifestStaleness.d.ts.map +1 -0
- package/dist/analyzers/manifestStaleness.js +115 -0
- package/dist/analyzers/manifestStaleness.js.map +1 -0
- package/dist/analyzers/orgFilterTiers.d.ts +73 -1
- package/dist/analyzers/orgFilterTiers.d.ts.map +1 -1
- package/dist/analyzers/orgFilterTiers.js +166 -1
- package/dist/analyzers/orgFilterTiers.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +251 -57
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +1109 -429
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts +2 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +2 -0
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/receiverResolution.d.ts +183 -0
- package/dist/analyzers/receiverResolution.d.ts.map +1 -0
- package/dist/analyzers/receiverResolution.js +540 -0
- package/dist/analyzers/receiverResolution.js.map +1 -0
- package/dist/analyzers/receiverRoot.d.ts +348 -0
- package/dist/analyzers/receiverRoot.d.ts.map +1 -0
- package/dist/analyzers/receiverRoot.js +1032 -0
- package/dist/analyzers/receiverRoot.js.map +1 -0
- package/dist/analyzers/ruleRegistry.d.ts +12 -68
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +32 -342
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +10 -0
- package/dist/analyzers/ruleTiming.d.ts.map +1 -1
- package/dist/analyzers/ruleTiming.js +20 -0
- package/dist/analyzers/ruleTiming.js.map +1 -1
- package/dist/analyzers/sqlLiteral.d.ts +76 -0
- package/dist/analyzers/sqlLiteral.d.ts.map +1 -0
- package/dist/analyzers/sqlLiteral.js +419 -0
- package/dist/analyzers/sqlLiteral.js.map +1 -0
- package/dist/analyzers/tsEcosystem.d.ts +115 -0
- package/dist/analyzers/tsEcosystem.d.ts.map +1 -0
- package/dist/analyzers/tsEcosystem.js +241 -0
- package/dist/analyzers/tsEcosystem.js.map +1 -0
- package/dist/analyzers/tsExpressionDescriptor.d.ts +156 -0
- package/dist/analyzers/tsExpressionDescriptor.d.ts.map +1 -0
- package/dist/analyzers/tsExpressionDescriptor.js +374 -0
- package/dist/analyzers/tsExpressionDescriptor.js.map +1 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +6 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +107 -44
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +23 -35
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +287 -49
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +2130 -512
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +2 -18
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -33
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +20 -143
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +4 -3
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +36 -13
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +6 -0
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +15 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +25 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +21 -32
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +166 -196
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/functionConcerns.d.ts +3 -0
- package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
- package/dist/analyzers/universal/functionConcerns.js +4 -1
- package/dist/analyzers/universal/functionConcerns.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts +310 -69
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +709 -383
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/config.d.ts +3 -14
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/config.js +3 -16
- package/dist/analyzers/universal/schema/config.js.map +1 -1
- package/dist/analyzers/universal/schema/discovery.d.ts +22 -1
- package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/discovery.js +36 -20
- package/dist/analyzers/universal/schema/discovery.js.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js +13 -3
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
- package/dist/analyzers/universal/schema/migrations.d.ts +187 -27
- package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/migrations.js +443 -186
- package/dist/analyzers/universal/schema/migrations.js.map +1 -1
- package/dist/analyzers/universal/schema/types.d.ts +17 -3
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/violations.js +1 -1
- package/dist/analyzers/universal/schema/violations.js.map +1 -1
- package/dist/analyzers/universal/styleScale.d.ts +52 -0
- package/dist/analyzers/universal/styleScale.d.ts.map +1 -0
- package/dist/analyzers/universal/styleScale.js +95 -0
- package/dist/analyzers/universal/styleScale.js.map +1 -0
- package/dist/applyDataDirEnv.js +1 -1
- package/dist/applyDataDirEnv.js.map +1 -1
- package/dist/auditRouter.d.ts +26 -30
- package/dist/auditRouter.d.ts.map +1 -1
- package/dist/auditRouter.js +373 -143
- package/dist/auditRouter.js.map +1 -1
- package/dist/auditRunner.d.ts +66 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +1544 -1034
- package/dist/auditRunner.js.map +1 -1
- package/dist/baseline.d.ts +30 -3
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +70 -9
- package/dist/baseline.js.map +1 -1
- package/dist/cli.js +983 -821
- package/dist/cli.js.map +1 -1
- package/dist/codeIndex/analyzerConfig.d.ts +60 -0
- package/dist/codeIndex/analyzerConfig.d.ts.map +1 -0
- package/dist/codeIndex/analyzerConfig.js +98 -0
- package/dist/codeIndex/analyzerConfig.js.map +1 -0
- package/dist/codeIndex/auditResults.d.ts +39 -0
- package/dist/codeIndex/auditResults.d.ts.map +1 -0
- package/dist/codeIndex/auditResults.js +99 -0
- package/dist/codeIndex/auditResults.js.map +1 -0
- package/dist/codeIndex/codeMap.d.ts +59 -0
- package/dist/codeIndex/codeMap.d.ts.map +1 -0
- package/dist/codeIndex/codeMap.js +72 -0
- package/dist/codeIndex/codeMap.js.map +1 -0
- package/dist/codeIndex/conventions.d.ts +33 -0
- package/dist/codeIndex/conventions.d.ts.map +1 -0
- package/dist/codeIndex/conventions.js +84 -0
- package/dist/codeIndex/conventions.js.map +1 -0
- package/dist/codeIndex/coverage.d.ts +78 -0
- package/dist/codeIndex/coverage.d.ts.map +1 -0
- package/dist/codeIndex/coverage.js +164 -0
- package/dist/codeIndex/coverage.js.map +1 -0
- package/dist/codeIndex/dependencyGraph.d.ts +97 -0
- package/dist/codeIndex/dependencyGraph.d.ts.map +1 -0
- package/dist/codeIndex/dependencyGraph.js +241 -0
- package/dist/codeIndex/dependencyGraph.js.map +1 -0
- package/dist/codeIndex/functionIndex.d.ts +111 -0
- package/dist/codeIndex/functionIndex.d.ts.map +1 -0
- package/dist/codeIndex/functionIndex.js +306 -0
- package/dist/codeIndex/functionIndex.js.map +1 -0
- package/dist/codeIndex/inferredReceivers.d.ts +32 -0
- package/dist/codeIndex/inferredReceivers.d.ts.map +1 -0
- package/dist/codeIndex/inferredReceivers.js +41 -0
- package/dist/codeIndex/inferredReceivers.js.map +1 -0
- package/dist/codeIndex/meta.d.ts +30 -0
- package/dist/codeIndex/meta.d.ts.map +1 -0
- package/dist/codeIndex/meta.js +37 -0
- package/dist/codeIndex/meta.js.map +1 -0
- package/dist/codeIndex/migrations.d.ts +96 -0
- package/dist/codeIndex/migrations.d.ts.map +1 -0
- package/dist/codeIndex/migrations.js +1302 -0
- package/dist/codeIndex/migrations.js.map +1 -0
- package/dist/codeIndex/projectTasks.d.ts +54 -0
- package/dist/codeIndex/projectTasks.d.ts.map +1 -0
- package/dist/codeIndex/projectTasks.js +81 -0
- package/dist/codeIndex/projectTasks.js.map +1 -0
- package/dist/codeIndex/provenance.d.ts +47 -0
- package/dist/codeIndex/provenance.d.ts.map +1 -0
- package/dist/codeIndex/provenance.js +48 -0
- package/dist/codeIndex/provenance.js.map +1 -0
- package/dist/codeIndex/rawSql.d.ts +54 -0
- package/dist/codeIndex/rawSql.d.ts.map +1 -0
- package/dist/codeIndex/rawSql.js +71 -0
- package/dist/codeIndex/rawSql.js.map +1 -0
- package/dist/codeIndex/schema.d.ts +99 -0
- package/dist/codeIndex/schema.d.ts.map +1 -0
- package/dist/codeIndex/schema.js +174 -0
- package/dist/codeIndex/schema.js.map +1 -0
- package/dist/codeIndex/search.d.ts +40 -0
- package/dist/codeIndex/search.d.ts.map +1 -0
- package/dist/codeIndex/search.js +316 -0
- package/dist/codeIndex/search.js.map +1 -0
- package/dist/codeIndex/shared.d.ts +27 -0
- package/dist/codeIndex/shared.d.ts.map +1 -0
- package/dist/codeIndex/shared.js +46 -0
- package/dist/codeIndex/shared.js.map +1 -0
- package/dist/codeIndex/sqliteCollection.d.ts +81 -0
- package/dist/codeIndex/sqliteCollection.d.ts.map +1 -0
- package/dist/codeIndex/sqliteCollection.js +250 -0
- package/dist/codeIndex/sqliteCollection.js.map +1 -0
- package/dist/codeIndex/whitelist.d.ts +59 -0
- package/dist/codeIndex/whitelist.d.ts.map +1 -0
- package/dist/codeIndex/whitelist.js +188 -0
- package/dist/codeIndex/whitelist.js.map +1 -0
- package/dist/codeIndexDB.d.ts +132 -271
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +365 -2729
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/codeIndexService.d.ts +87 -12
- package/dist/codeIndexService.d.ts.map +1 -1
- package/dist/codeIndexService.js +110 -34
- package/dist/codeIndexService.js.map +1 -1
- package/dist/componentScanner.d.ts +35 -0
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +114 -80
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configGeneratePath.d.ts +4 -0
- package/dist/config/configGeneratePath.d.ts.map +1 -1
- package/dist/config/configGeneratePath.js +4 -0
- package/dist/config/configGeneratePath.js.map +1 -1
- package/dist/config/configLoader.d.ts +15 -0
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +15 -16
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +11 -7
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +16 -14
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts +17 -2
- package/dist/config/effectiveConfig.d.ts.map +1 -1
- package/dist/config/effectiveConfig.js +32 -25
- package/dist/config/effectiveConfig.js.map +1 -1
- package/dist/config/lintConfigReader.d.ts +6 -0
- package/dist/config/lintConfigReader.d.ts.map +1 -1
- package/dist/config/lintConfigReader.js +6 -0
- package/dist/config/lintConfigReader.js.map +1 -1
- package/dist/config/staticObjectExtract.d.ts +4 -0
- package/dist/config/staticObjectExtract.d.ts.map +1 -1
- package/dist/config/staticObjectExtract.js +7 -3
- package/dist/config/staticObjectExtract.js.map +1 -1
- package/dist/config/thresholdRationales.d.ts +2 -0
- package/dist/config/thresholdRationales.d.ts.map +1 -1
- package/dist/config/thresholdRationales.js +5 -2
- package/dist/config/thresholdRationales.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/conventions/conventionMiner.d.ts +105 -2
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +334 -259
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/coverage/coverageService.js +4 -4
- package/dist/coverage/coverageService.js.map +1 -1
- package/dist/daemon/args.d.ts +3 -0
- package/dist/daemon/args.d.ts.map +1 -1
- package/dist/daemon/args.js +3 -0
- package/dist/daemon/args.js.map +1 -1
- package/dist/daemon/core.d.ts +33 -27
- package/dist/daemon/core.d.ts.map +1 -1
- package/dist/daemon/core.js +198 -162
- package/dist/daemon/core.js.map +1 -1
- package/dist/daemon/lspServer.d.ts +8 -0
- package/dist/daemon/lspServer.d.ts.map +1 -1
- package/dist/daemon/lspServer.js +8 -0
- package/dist/daemon/lspServer.js.map +1 -1
- package/dist/daemon/main.d.ts +2 -0
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +22 -4
- package/dist/daemon/main.js.map +1 -1
- package/dist/daemon/resolve.d.ts +18 -3
- package/dist/daemon/resolve.d.ts.map +1 -1
- package/dist/daemon/resolve.js +25 -4
- package/dist/daemon/resolve.js.map +1 -1
- package/dist/daemon/socketClient.d.ts +10 -1
- package/dist/daemon/socketClient.d.ts.map +1 -1
- package/dist/daemon/socketClient.js +10 -1
- package/dist/daemon/socketClient.js.map +1 -1
- package/dist/daemon/socketServer.d.ts +13 -0
- package/dist/daemon/socketServer.d.ts.map +1 -1
- package/dist/daemon/socketServer.js +13 -0
- package/dist/daemon/socketServer.js.map +1 -1
- package/dist/dataPaths.d.ts +17 -8
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +16 -44
- package/dist/dataPaths.js.map +1 -1
- package/dist/dismissals.d.ts +22 -1
- package/dist/dismissals.d.ts.map +1 -1
- package/dist/dismissals.js +22 -1
- package/dist/dismissals.js.map +1 -1
- package/dist/enforcement/gate.d.ts +1 -0
- package/dist/enforcement/gate.d.ts.map +1 -1
- package/dist/enforcement/gate.js +1 -0
- package/dist/enforcement/gate.js.map +1 -1
- package/dist/fingerprint.d.ts +6 -0
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +46 -1
- package/dist/fingerprint.js.map +1 -1
- package/dist/functionScanner.d.ts +30 -1
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +258 -256
- package/dist/functionScanner.js.map +1 -1
- package/dist/generators/AWSQConfigGenerator.d.ts +23 -0
- package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
- package/dist/generators/AWSQConfigGenerator.js +23 -0
- package/dist/generators/AWSQConfigGenerator.js.map +1 -1
- package/dist/generators/BaseConfigGenerator.d.ts +7 -0
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.js +7 -0
- package/dist/generators/BaseConfigGenerator.js.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.d.ts +23 -0
- package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.js +23 -0
- package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
- package/dist/generators/ClineConfigGenerator.d.ts +23 -0
- package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClineConfigGenerator.js +23 -0
- package/dist/generators/ClineConfigGenerator.js.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.d.ts +23 -0
- package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.js +23 -0
- package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
- package/dist/generators/CodexConfigGenerator.d.ts +23 -0
- package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodexConfigGenerator.js +23 -0
- package/dist/generators/CodexConfigGenerator.js.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.d.ts +9 -0
- package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.js +9 -0
- package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
- package/dist/generators/ContinueConfigGenerator.d.ts +23 -0
- package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ContinueConfigGenerator.js +23 -0
- package/dist/generators/ContinueConfigGenerator.js.map +1 -1
- package/dist/generators/CopilotConfigGenerator.d.ts +23 -0
- package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CopilotConfigGenerator.js +23 -0
- package/dist/generators/CopilotConfigGenerator.js.map +1 -1
- package/dist/generators/CursorConfigGenerator.d.ts +23 -0
- package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CursorConfigGenerator.js +23 -0
- package/dist/generators/CursorConfigGenerator.js.map +1 -1
- package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
- package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
- package/dist/generators/GeminiConfigGenerator.js +23 -0
- package/dist/generators/GeminiConfigGenerator.js.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.d.ts +23 -0
- package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.js +23 -0
- package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
- package/dist/generators/ZCodeConfigGenerator.d.ts +23 -0
- package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ZCodeConfigGenerator.js +23 -0
- package/dist/generators/ZCodeConfigGenerator.js.map +1 -1
- package/dist/graph/blastRadius.d.ts.map +1 -1
- package/dist/graph/blastRadius.js +12 -7
- package/dist/graph/blastRadius.js.map +1 -1
- package/dist/graph/callGraph.d.ts +31 -0
- package/dist/graph/callGraph.d.ts.map +1 -1
- package/dist/graph/callGraph.js +62 -32
- package/dist/graph/callGraph.js.map +1 -1
- package/dist/graph/importClassification.d.ts +28 -0
- package/dist/graph/importClassification.d.ts.map +1 -1
- package/dist/graph/importClassification.js +57 -0
- package/dist/graph/importClassification.js.map +1 -1
- package/dist/graph/importGraph.d.ts +38 -0
- package/dist/graph/importGraph.d.ts.map +1 -1
- package/dist/graph/importGraph.js +38 -0
- package/dist/graph/importGraph.js.map +1 -1
- package/dist/graph/outputFormatter.d.ts +12 -4
- package/dist/graph/outputFormatter.d.ts.map +1 -1
- package/dist/graph/outputFormatter.js +12 -62
- package/dist/graph/outputFormatter.js.map +1 -1
- package/dist/graph/resolutionEnvironment.d.ts +61 -0
- package/dist/graph/resolutionEnvironment.d.ts.map +1 -0
- package/dist/graph/resolutionEnvironment.js +57 -0
- package/dist/graph/resolutionEnvironment.js.map +1 -0
- package/dist/hooks/codex.d.ts +8 -1
- package/dist/hooks/codex.d.ts.map +1 -1
- package/dist/hooks/codex.js +7 -0
- package/dist/hooks/codex.js.map +1 -1
- package/dist/hooks/core.d.ts +6 -0
- package/dist/hooks/core.d.ts.map +1 -1
- package/dist/hooks/core.js +6 -1
- package/dist/hooks/core.js.map +1 -1
- package/dist/hooks/cursor.d.ts +11 -1
- package/dist/hooks/cursor.d.ts.map +1 -1
- package/dist/hooks/cursor.js +10 -0
- package/dist/hooks/cursor.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/installConfig.d.ts +23 -5
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +23 -5
- package/dist/installConfig.js.map +1 -1
- package/dist/installer.d.ts +6 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +6 -0
- package/dist/installer.js.map +1 -1
- package/dist/invariants/ruleEngine.d.ts +3 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +156 -119
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/invariants/ruleValidator.d.ts +3 -0
- package/dist/invariants/ruleValidator.d.ts.map +1 -1
- package/dist/invariants/ruleValidator.js +185 -178
- package/dist/invariants/ruleValidator.js.map +1 -1
- package/dist/languages/LanguageOrchestrator.d.ts +4 -1
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +8 -19
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/RuntimeManager.d.ts +8 -0
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +55 -5
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +1 -1
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +4 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +37 -3
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +11 -14
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/go/analyzer-darwin-amd64 +0 -0
- package/dist/languages/go/analyzer-darwin-arm64 +0 -0
- package/dist/languages/go/analyzer-linux-amd64 +0 -0
- package/dist/languages/go/analyzer-linux-arm64 +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +2 -0
- package/dist/languages/go/analyzer-src/dataaccess.go +388 -0
- package/dist/languages/go/analyzer-src/types.go +8 -0
- package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
- package/dist/languages/go/database-packages.json +8 -0
- package/dist/languages/go/goResolution.d.ts +229 -0
- package/dist/languages/go/goResolution.d.ts.map +1 -0
- package/dist/languages/go/goResolution.js +799 -0
- package/dist/languages/go/goResolution.js.map +1 -0
- package/dist/languages/go/stdlib-packages.json +353 -0
- package/dist/languages/go/tenantInputs.d.ts +37 -0
- package/dist/languages/go/tenantInputs.d.ts.map +1 -0
- package/dist/languages/go/tenantInputs.js +121 -0
- package/dist/languages/go/tenantInputs.js.map +1 -0
- package/dist/languages/index.d.ts +1 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +5 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/json/JsonAdapter.d.ts +177 -0
- package/dist/languages/json/JsonAdapter.d.ts.map +1 -0
- package/dist/languages/json/JsonAdapter.js +531 -0
- package/dist/languages/json/JsonAdapter.js.map +1 -0
- package/dist/languages/locationIndex.d.ts +41 -0
- package/dist/languages/locationIndex.d.ts.map +1 -0
- package/dist/languages/locationIndex.js +42 -0
- package/dist/languages/locationIndex.js.map +1 -0
- package/dist/languages/sql/dialectDetection.d.ts +57 -0
- package/dist/languages/sql/dialectDetection.d.ts.map +1 -0
- package/dist/languages/sql/dialectDetection.js +135 -0
- package/dist/languages/sql/dialectDetection.js.map +1 -0
- package/dist/languages/sql/sqlAst.d.ts +494 -0
- package/dist/languages/sql/sqlAst.d.ts.map +1 -0
- package/dist/languages/sql/sqlAst.js +1817 -0
- package/dist/languages/sql/sqlAst.js.map +1 -0
- package/dist/languages/testConventions.d.ts +12 -1
- package/dist/languages/testConventions.d.ts.map +1 -1
- package/dist/languages/testConventions.js +13 -1
- package/dist/languages/testConventions.js.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/converter.js +2 -2
- package/dist/languages/tree-sitter/converter.js.map +1 -1
- package/dist/languages/tree-sitter/parser.d.ts +3 -4
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
- package/dist/languages/tree-sitter/parser.js +10 -4
- package/dist/languages/tree-sitter/parser.js.map +1 -1
- package/dist/languages/tree-sitter/rawNode.d.ts +3 -0
- package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -1
- package/dist/languages/tree-sitter/rawNode.js +3 -0
- package/dist/languages/tree-sitter/rawNode.js.map +1 -1
- package/dist/languages/types.d.ts +7 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +36 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +168 -45
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/languages/typescript/database-packages.json +19 -0
- package/dist/ledger.d.ts +118 -2
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +167 -45
- package/dist/ledger.js.map +1 -1
- package/dist/legacyIndexNotice.d.ts +32 -0
- package/dist/legacyIndexNotice.d.ts.map +1 -0
- package/dist/legacyIndexNotice.js +89 -0
- package/dist/legacyIndexNotice.js.map +1 -0
- package/dist/mcp-tools/discoveryQueries.d.ts +55 -0
- package/dist/mcp-tools/discoveryQueries.d.ts.map +1 -0
- package/dist/mcp-tools/discoveryQueries.js +157 -0
- package/dist/mcp-tools/discoveryQueries.js.map +1 -0
- package/dist/mcp-tools/projectTasks.d.ts +9 -123
- package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
- package/dist/mcp-tools/projectTasks.js +180 -170
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +20 -0
- package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
- package/dist/mcp-tools/whitelistTools.js +20 -0
- package/dist/mcp-tools/whitelistTools.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.d.ts +9 -0
- package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +13 -5
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts +78 -0
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +203 -340
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +2 -0
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +12 -5
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +6 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +827 -850
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +29 -33
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +102 -791
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.d.ts +5 -0
- package/dist/mcpAutoIndex.d.ts.map +1 -1
- package/dist/mcpAutoIndex.js +7 -2
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/mcpDiagnostics.d.ts +7 -0
- package/dist/mcpDiagnostics.d.ts.map +1 -1
- package/dist/mcpDiagnostics.js +34 -9
- package/dist/mcpDiagnostics.js.map +1 -1
- package/dist/mcpToolErrors.d.ts +16 -0
- package/dist/mcpToolErrors.d.ts.map +1 -1
- package/dist/mcpToolErrors.js +16 -0
- package/dist/mcpToolErrors.js.map +1 -1
- package/dist/nextFile.d.ts +6 -0
- package/dist/nextFile.d.ts.map +1 -1
- package/dist/nextFile.js +6 -0
- package/dist/nextFile.js.map +1 -1
- package/dist/nextFileIncremental.d.ts +44 -4
- package/dist/nextFileIncremental.d.ts.map +1 -1
- package/dist/nextFileIncremental.js +47 -7
- package/dist/nextFileIncremental.js.map +1 -1
- package/dist/phase/batchFunctions.d.ts +38 -0
- package/dist/phase/batchFunctions.d.ts.map +1 -0
- package/dist/phase/batchFunctions.js +64 -0
- package/dist/phase/batchFunctions.js.map +1 -0
- package/dist/phase/checks.d.ts +39 -0
- package/dist/phase/checks.d.ts.map +1 -0
- package/dist/phase/checks.js +48 -0
- package/dist/phase/checks.js.map +1 -0
- package/dist/phase/codeBlocks.d.ts +25 -0
- package/dist/phase/codeBlocks.d.ts.map +1 -0
- package/dist/phase/codeBlocks.js +268 -0
- package/dist/phase/codeBlocks.js.map +1 -0
- package/dist/phase/colorMath.d.ts +41 -0
- package/dist/phase/colorMath.d.ts.map +1 -0
- package/dist/phase/colorMath.js +109 -0
- package/dist/phase/colorMath.js.map +1 -0
- package/dist/phase/config.d.ts +29 -0
- package/dist/phase/config.d.ts.map +1 -0
- package/dist/phase/config.js +54 -0
- package/dist/phase/config.js.map +1 -0
- package/dist/phase/consumed.d.ts +47 -0
- package/dist/phase/consumed.d.ts.map +1 -0
- package/dist/phase/consumed.js +22 -0
- package/dist/phase/consumed.js.map +1 -0
- package/dist/phase/conventionMining.d.ts +59 -0
- package/dist/phase/conventionMining.d.ts.map +1 -0
- package/dist/phase/conventionMining.js +152 -0
- package/dist/phase/conventionMining.js.map +1 -0
- package/dist/phase/coverage.d.ts +65 -0
- package/dist/phase/coverage.d.ts.map +1 -0
- package/dist/phase/coverage.js +121 -0
- package/dist/phase/coverage.js.map +1 -0
- package/dist/phase/dag.d.ts +49 -0
- package/dist/phase/dag.d.ts.map +1 -0
- package/dist/phase/dag.js +120 -0
- package/dist/phase/dag.js.map +1 -0
- package/dist/phase/dataAccessCalls.d.ts +33 -0
- package/dist/phase/dataAccessCalls.d.ts.map +1 -0
- package/dist/phase/dataAccessCalls.js +42 -0
- package/dist/phase/dataAccessCalls.js.map +1 -0
- package/dist/phase/dataAccessCallsCandidates.d.ts +25 -0
- package/dist/phase/dataAccessCallsCandidates.d.ts.map +1 -0
- package/dist/phase/dataAccessCallsCandidates.js +27 -0
- package/dist/phase/dataAccessCallsCandidates.js.map +1 -0
- package/dist/phase/dynamicSql.d.ts +18 -0
- package/dist/phase/dynamicSql.d.ts.map +1 -0
- package/dist/phase/dynamicSql.js +20 -0
- package/dist/phase/dynamicSql.js.map +1 -0
- package/dist/phase/exportForm.d.ts +23 -0
- package/dist/phase/exportForm.d.ts.map +1 -0
- package/dist/phase/exportForm.js +29 -0
- package/dist/phase/exportForm.js.map +1 -0
- package/dist/phase/exportSymbols.d.ts +21 -0
- package/dist/phase/exportSymbols.d.ts.map +1 -0
- package/dist/phase/exportSymbols.js +28 -0
- package/dist/phase/exportSymbols.js.map +1 -0
- package/dist/phase/fileHeader.d.ts +15 -0
- package/dist/phase/fileHeader.d.ts.map +1 -0
- package/dist/phase/fileHeader.js +33 -0
- package/dist/phase/fileHeader.js.map +1 -0
- package/dist/phase/fileImports.d.ts +39 -0
- package/dist/phase/fileImports.d.ts.map +1 -0
- package/dist/phase/fileImports.js +138 -0
- package/dist/phase/fileImports.js.map +1 -0
- package/dist/phase/fileSymbols.d.ts +25 -0
- package/dist/phase/fileSymbols.d.ts.map +1 -0
- package/dist/phase/fileSymbols.js +302 -0
- package/dist/phase/fileSymbols.js.map +1 -0
- package/dist/phase/functionBodies.d.ts +28 -0
- package/dist/phase/functionBodies.d.ts.map +1 -0
- package/dist/phase/functionBodies.js +67 -0
- package/dist/phase/functionBodies.js.map +1 -0
- package/dist/phase/functionIndex.d.ts +28 -0
- package/dist/phase/functionIndex.d.ts.map +1 -0
- package/dist/phase/functionIndex.js +152 -0
- package/dist/phase/functionIndex.js.map +1 -0
- package/dist/phase/goFunctionAnalysis.d.ts +47 -0
- package/dist/phase/goFunctionAnalysis.d.ts.map +1 -0
- package/dist/phase/goFunctionAnalysis.js +291 -0
- package/dist/phase/goFunctionAnalysis.js.map +1 -0
- package/dist/phase/goFunctions.d.ts +38 -0
- package/dist/phase/goFunctions.d.ts.map +1 -0
- package/dist/phase/goFunctions.js +154 -0
- package/dist/phase/goFunctions.js.map +1 -0
- package/dist/phase/goImports.d.ts +29 -0
- package/dist/phase/goImports.d.ts.map +1 -0
- package/dist/phase/goImports.js +68 -0
- package/dist/phase/goImports.js.map +1 -0
- package/dist/phase/goPackageBindings.d.ts +22 -0
- package/dist/phase/goPackageBindings.d.ts.map +1 -0
- package/dist/phase/goPackageBindings.js +30 -0
- package/dist/phase/goPackageBindings.js.map +1 -0
- package/dist/phase/goSwitches.d.ts +28 -0
- package/dist/phase/goSwitches.d.ts.map +1 -0
- package/dist/phase/goSwitches.js +52 -0
- package/dist/phase/goSwitches.js.map +1 -0
- package/dist/phase/importForm.d.ts +20 -0
- package/dist/phase/importForm.d.ts.map +1 -0
- package/dist/phase/importForm.js +27 -0
- package/dist/phase/importForm.js.map +1 -0
- package/dist/phase/importSpecifiers.d.ts +20 -0
- package/dist/phase/importSpecifiers.d.ts.map +1 -0
- package/dist/phase/importSpecifiers.js +30 -0
- package/dist/phase/importSpecifiers.js.map +1 -0
- package/dist/phase/imports.d.ts +18 -0
- package/dist/phase/imports.d.ts.map +1 -0
- package/dist/phase/imports.js +25 -0
- package/dist/phase/imports.js.map +1 -0
- package/dist/phase/jsonDocument.d.ts +26 -0
- package/dist/phase/jsonDocument.d.ts.map +1 -0
- package/dist/phase/jsonDocument.js +36 -0
- package/dist/phase/jsonDocument.js.map +1 -0
- package/dist/phase/localBinding.d.ts +33 -0
- package/dist/phase/localBinding.d.ts.map +1 -0
- package/dist/phase/localBinding.js +208 -0
- package/dist/phase/localBinding.js.map +1 -0
- package/dist/phase/loopQueries.d.ts +31 -0
- package/dist/phase/loopQueries.d.ts.map +1 -0
- package/dist/phase/loopQueries.js +44 -0
- package/dist/phase/loopQueries.js.map +1 -0
- package/dist/phase/loopQueryCandidates.d.ts +26 -0
- package/dist/phase/loopQueryCandidates.d.ts.map +1 -0
- package/dist/phase/loopQueryCandidates.js +28 -0
- package/dist/phase/loopQueryCandidates.js.map +1 -0
- package/dist/phase/oracles.d.ts +216 -0
- package/dist/phase/oracles.d.ts.map +1 -0
- package/dist/phase/oracles.js +484 -0
- package/dist/phase/oracles.js.map +1 -0
- package/dist/phase/phaseModel.d.ts +190 -0
- package/dist/phase/phaseModel.d.ts.map +1 -0
- package/dist/phase/phaseModel.js +491 -0
- package/dist/phase/phaseModel.js.map +1 -0
- package/dist/phase/producers.d.ts +450 -0
- package/dist/phase/producers.d.ts.map +1 -0
- package/dist/phase/producers.js +1030 -0
- package/dist/phase/producers.js.map +1 -0
- package/dist/phase/querySiteCandidates.d.ts +27 -0
- package/dist/phase/querySiteCandidates.d.ts.map +1 -0
- package/dist/phase/querySiteCandidates.js +66 -0
- package/dist/phase/querySiteCandidates.js.map +1 -0
- package/dist/phase/querySites.d.ts +30 -0
- package/dist/phase/querySites.d.ts.map +1 -0
- package/dist/phase/querySites.js +93 -0
- package/dist/phase/querySites.js.map +1 -0
- package/dist/phase/reachability.d.ts +61 -0
- package/dist/phase/reachability.d.ts.map +1 -0
- package/dist/phase/reachability.js +104 -0
- package/dist/phase/reachability.js.map +1 -0
- package/dist/phase/reactComponents.d.ts +33 -0
- package/dist/phase/reactComponents.d.ts.map +1 -0
- package/dist/phase/reactComponents.js +47 -0
- package/dist/phase/reactComponents.js.map +1 -0
- package/dist/phase/receiverActivity.d.ts +35 -0
- package/dist/phase/receiverActivity.d.ts.map +1 -0
- package/dist/phase/receiverActivity.js +66 -0
- package/dist/phase/receiverActivity.js.map +1 -0
- package/dist/phase/receiverConsumers.d.ts +207 -0
- package/dist/phase/receiverConsumers.d.ts.map +1 -0
- package/dist/phase/receiverConsumers.js +1063 -0
- package/dist/phase/receiverConsumers.js.map +1 -0
- package/dist/phase/receiverProvenance.d.ts +120 -0
- package/dist/phase/receiverProvenance.d.ts.map +1 -0
- package/dist/phase/receiverProvenance.js +377 -0
- package/dist/phase/receiverProvenance.js.map +1 -0
- package/dist/phase/routing.d.ts +47 -0
- package/dist/phase/routing.d.ts.map +1 -0
- package/dist/phase/routing.js +62 -0
- package/dist/phase/routing.js.map +1 -0
- package/dist/phase/rules/conventions.d.ts +61 -0
- package/dist/phase/rules/conventions.d.ts.map +1 -0
- package/dist/phase/rules/conventions.js +403 -0
- package/dist/phase/rules/conventions.js.map +1 -0
- package/dist/phase/rules/crossDomain.d.ts +102 -0
- package/dist/phase/rules/crossDomain.d.ts.map +1 -0
- package/dist/phase/rules/crossDomain.js +918 -0
- package/dist/phase/rules/crossDomain.js.map +1 -0
- package/dist/phase/rules/dataAccess.d.ts +62 -0
- package/dist/phase/rules/dataAccess.d.ts.map +1 -0
- package/dist/phase/rules/dataAccess.js +480 -0
- package/dist/phase/rules/dataAccess.js.map +1 -0
- package/dist/phase/rules/dependencyGraph.d.ts +44 -0
- package/dist/phase/rules/dependencyGraph.d.ts.map +1 -0
- package/dist/phase/rules/dependencyGraph.js +260 -0
- package/dist/phase/rules/dependencyGraph.js.map +1 -0
- package/dist/phase/rules/documentation.d.ts +45 -0
- package/dist/phase/rules/documentation.d.ts.map +1 -0
- package/dist/phase/rules/documentation.js +340 -0
- package/dist/phase/rules/documentation.js.map +1 -0
- package/dist/phase/rules/dry.d.ts +109 -0
- package/dist/phase/rules/dry.d.ts.map +1 -0
- package/dist/phase/rules/dry.js +803 -0
- package/dist/phase/rules/dry.js.map +1 -0
- package/dist/phase/rules/fileDocumentation.d.ts +36 -0
- package/dist/phase/rules/fileDocumentation.d.ts.map +1 -0
- package/dist/phase/rules/fileDocumentation.js +134 -0
- package/dist/phase/rules/fileDocumentation.js.map +1 -0
- package/dist/phase/rules/functionBodies.d.ts +33 -0
- package/dist/phase/rules/functionBodies.d.ts.map +1 -0
- package/dist/phase/rules/functionBodies.js +71 -0
- package/dist/phase/rules/functionBodies.js.map +1 -0
- package/dist/phase/rules/goRules.d.ts +49 -0
- package/dist/phase/rules/goRules.d.ts.map +1 -0
- package/dist/phase/rules/goRules.js +209 -0
- package/dist/phase/rules/goRules.js.map +1 -0
- package/dist/phase/rules/querySites.d.ts +29 -0
- package/dist/phase/rules/querySites.d.ts.map +1 -0
- package/dist/phase/rules/querySites.js +94 -0
- package/dist/phase/rules/querySites.js.map +1 -0
- package/dist/phase/rules/react.d.ts +38 -0
- package/dist/phase/rules/react.d.ts.map +1 -0
- package/dist/phase/rules/react.js +202 -0
- package/dist/phase/rules/react.js.map +1 -0
- package/dist/phase/rules/registry.d.ts +170 -0
- package/dist/phase/rules/registry.d.ts.map +1 -0
- package/dist/phase/rules/registry.js +103 -0
- package/dist/phase/rules/registry.js.map +1 -0
- package/dist/phase/rules/schema.d.ts +79 -0
- package/dist/phase/rules/schema.d.ts.map +1 -0
- package/dist/phase/rules/schema.js +273 -0
- package/dist/phase/rules/schema.js.map +1 -0
- package/dist/phase/rules/schemaJson.d.ts +32 -0
- package/dist/phase/rules/schemaJson.d.ts.map +1 -0
- package/dist/phase/rules/schemaJson.js +81 -0
- package/dist/phase/rules/schemaJson.js.map +1 -0
- package/dist/phase/rules/schemaValidator.d.ts +38 -0
- package/dist/phase/rules/schemaValidator.d.ts.map +1 -0
- package/dist/phase/rules/schemaValidator.js +107 -0
- package/dist/phase/rules/schemaValidator.js.map +1 -0
- package/dist/phase/rules/secrets.d.ts +34 -0
- package/dist/phase/rules/secrets.d.ts.map +1 -0
- package/dist/phase/rules/secrets.js +208 -0
- package/dist/phase/rules/secrets.js.map +1 -0
- package/dist/phase/rules/security.d.ts +30 -0
- package/dist/phase/rules/security.d.ts.map +1 -0
- package/dist/phase/rules/security.js +85 -0
- package/dist/phase/rules/security.js.map +1 -0
- package/dist/phase/rules/securityDefects.d.ts +37 -0
- package/dist/phase/rules/securityDefects.d.ts.map +1 -0
- package/dist/phase/rules/securityDefects.js +167 -0
- package/dist/phase/rules/securityDefects.js.map +1 -0
- package/dist/phase/rules/solid.d.ts +61 -0
- package/dist/phase/rules/solid.d.ts.map +1 -0
- package/dist/phase/rules/solid.js +562 -0
- package/dist/phase/rules/solid.js.map +1 -0
- package/dist/phase/rules/styles.d.ts +77 -0
- package/dist/phase/rules/styles.d.ts.map +1 -0
- package/dist/phase/rules/styles.js +868 -0
- package/dist/phase/rules/styles.js.map +1 -0
- package/dist/phase/rules/unreferencedModule.d.ts +26 -0
- package/dist/phase/rules/unreferencedModule.d.ts.map +1 -0
- package/dist/phase/rules/unreferencedModule.js +61 -0
- package/dist/phase/rules/unreferencedModule.js.map +1 -0
- package/dist/phase/runner.d.ts +549 -0
- package/dist/phase/runner.d.ts.map +1 -0
- package/dist/phase/runner.js +1098 -0
- package/dist/phase/runner.js.map +1 -0
- package/dist/phase/schemaCode.d.ts +34 -0
- package/dist/phase/schemaCode.d.ts.map +1 -0
- package/dist/phase/schemaCode.js +53 -0
- package/dist/phase/schemaCode.js.map +1 -0
- package/dist/phase/schemaObjects.d.ts +37 -0
- package/dist/phase/schemaObjects.d.ts.map +1 -0
- package/dist/phase/schemaObjects.js +139 -0
- package/dist/phase/schemaObjects.js.map +1 -0
- package/dist/phase/schemaUsage.d.ts +30 -0
- package/dist/phase/schemaUsage.d.ts.map +1 -0
- package/dist/phase/schemaUsage.js +99 -0
- package/dist/phase/schemaUsage.js.map +1 -0
- package/dist/phase/schemaUsageCandidates.d.ts +32 -0
- package/dist/phase/schemaUsageCandidates.d.ts.map +1 -0
- package/dist/phase/schemaUsageCandidates.js +165 -0
- package/dist/phase/schemaUsageCandidates.js.map +1 -0
- package/dist/phase/schemaValidations.d.ts +34 -0
- package/dist/phase/schemaValidations.d.ts.map +1 -0
- package/dist/phase/schemaValidations.js +53 -0
- package/dist/phase/schemaValidations.js.map +1 -0
- package/dist/phase/secretCandidates.d.ts +28 -0
- package/dist/phase/secretCandidates.d.ts.map +1 -0
- package/dist/phase/secretCandidates.js +132 -0
- package/dist/phase/secretCandidates.js.map +1 -0
- package/dist/phase/securityCandidates.d.ts +29 -0
- package/dist/phase/securityCandidates.d.ts.map +1 -0
- package/dist/phase/securityCandidates.js +469 -0
- package/dist/phase/securityCandidates.js.map +1 -0
- package/dist/phase/seeded-defects.d.ts +18 -0
- package/dist/phase/seeded-defects.d.ts.map +1 -0
- package/dist/phase/seeded-defects.js +61 -0
- package/dist/phase/seeded-defects.js.map +1 -0
- package/dist/phase/stringLiterals.d.ts +24 -0
- package/dist/phase/stringLiterals.d.ts.map +1 -0
- package/dist/phase/stringLiterals.js +35 -0
- package/dist/phase/stringLiterals.js.map +1 -0
- package/dist/phase/stylesCss.d.ts +25 -0
- package/dist/phase/stylesCss.d.ts.map +1 -0
- package/dist/phase/stylesCss.js +34 -0
- package/dist/phase/stylesCss.js.map +1 -0
- package/dist/phase/stylesMarkup.d.ts +31 -0
- package/dist/phase/stylesMarkup.d.ts.map +1 -0
- package/dist/phase/stylesMarkup.js +48 -0
- package/dist/phase/stylesMarkup.js.map +1 -0
- package/dist/phase/stylesSource.d.ts +36 -0
- package/dist/phase/stylesSource.d.ts.map +1 -0
- package/dist/phase/stylesSource.js +50 -0
- package/dist/phase/stylesSource.js.map +1 -0
- package/dist/phase/typeDeclarations.d.ts +33 -0
- package/dist/phase/typeDeclarations.d.ts.map +1 -0
- package/dist/phase/typeDeclarations.js +76 -0
- package/dist/phase/typeDeclarations.js.map +1 -0
- package/dist/phase/types.d.ts +2199 -0
- package/dist/phase/types.d.ts.map +1 -0
- package/dist/phase/types.js +27 -0
- package/dist/phase/types.js.map +1 -0
- package/dist/phase/withinFileProvenance.d.ts +50 -0
- package/dist/phase/withinFileProvenance.d.ts.map +1 -0
- package/dist/phase/withinFileProvenance.js +112 -0
- package/dist/phase/withinFileProvenance.js.map +1 -0
- package/dist/pipeline.d.ts +37 -30
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +131 -326
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +104 -21
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +1144 -984
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/pipelineTypes.d.ts +21 -0
- package/dist/pipelineTypes.d.ts.map +1 -1
- package/dist/pipelineTypes.js +21 -10
- package/dist/pipelineTypes.js.map +1 -1
- package/dist/presets/presets.d.ts +9 -2
- package/dist/presets/presets.d.ts.map +1 -1
- package/dist/presets/presets.js +15 -26
- package/dist/presets/presets.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts +14 -3
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +14 -3
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts +5 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +5 -1
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts +9 -2
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +19 -5
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/reportGenerator.d.ts +9 -2
- package/dist/reporting/reportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.js +9 -2
- package/dist/reporting/reportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts +14 -0
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +14 -0
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/reporting/sizeDistribution.d.ts +19 -2
- package/dist/reporting/sizeDistribution.d.ts.map +1 -1
- package/dist/reporting/sizeDistribution.js +23 -5
- package/dist/reporting/sizeDistribution.js.map +1 -1
- package/dist/ruleAliases.d.ts +6 -8
- package/dist/ruleAliases.d.ts.map +1 -1
- package/dist/ruleAliases.js +29 -4
- package/dist/ruleAliases.js.map +1 -1
- package/dist/search/QueryParser.d.ts +1 -0
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +32 -91
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/services/CodeMapGenerator.d.ts +19 -20
- package/dist/services/CodeMapGenerator.d.ts.map +1 -1
- package/dist/services/CodeMapGenerator.js +214 -194
- package/dist/services/CodeMapGenerator.js.map +1 -1
- package/dist/services/ProjectTaskRepository.d.ts +65 -3
- package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
- package/dist/services/ProjectTaskRepository.js +94 -25
- package/dist/services/ProjectTaskRepository.js.map +1 -1
- package/dist/services/auditJobService.d.ts +17 -1
- package/dist/services/auditJobService.d.ts.map +1 -1
- package/dist/services/auditJobService.js +16 -0
- package/dist/services/auditJobService.js.map +1 -1
- package/dist/services/fileAccounting.d.ts +43 -5
- package/dist/services/fileAccounting.d.ts.map +1 -1
- package/dist/services/fileAccounting.js +48 -9
- package/dist/services/fileAccounting.js.map +1 -1
- package/dist/services/projectTaskHelpers.d.ts +45 -0
- package/dist/services/projectTaskHelpers.d.ts.map +1 -1
- package/dist/services/projectTaskHelpers.js +45 -0
- package/dist/services/projectTaskHelpers.js.map +1 -1
- package/dist/services/whitelistService.d.ts +40 -5
- package/dist/services/whitelistService.d.ts.map +1 -1
- package/dist/services/whitelistService.js +87 -46
- package/dist/services/whitelistService.js.map +1 -1
- package/dist/sqlite/betterSqlite3.d.ts +35 -1
- package/dist/sqlite/betterSqlite3.d.ts.map +1 -1
- package/dist/sqlite/betterSqlite3.js +35 -1
- package/dist/sqlite/betterSqlite3.js.map +1 -1
- package/dist/sqlite/driver.d.ts +23 -0
- package/dist/sqlite/driver.d.ts.map +1 -1
- package/dist/sqlite/driver.js +23 -0
- package/dist/sqlite/driver.js.map +1 -1
- package/dist/sqlite/nodeSqlite.d.ts +35 -1
- package/dist/sqlite/nodeSqlite.d.ts.map +1 -1
- package/dist/sqlite/nodeSqlite.js +35 -1
- package/dist/sqlite/nodeSqlite.js.map +1 -1
- package/dist/structuralSignature.d.ts +9 -0
- package/dist/structuralSignature.d.ts.map +1 -1
- package/dist/structuralSignature.js +9 -0
- package/dist/structuralSignature.js.map +1 -1
- package/dist/styles/cssAstExtractor.d.ts +15 -0
- package/dist/styles/cssAstExtractor.d.ts.map +1 -1
- package/dist/styles/cssAstExtractor.js +15 -0
- package/dist/styles/cssAstExtractor.js.map +1 -1
- package/dist/styles/normalizer.d.ts +6 -0
- package/dist/styles/normalizer.d.ts.map +1 -1
- package/dist/styles/normalizer.js +6 -0
- package/dist/styles/normalizer.js.map +1 -1
- package/dist/styles/styleExtractor.d.ts +29 -2
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +67 -48
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts +8 -0
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +135 -138
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindConfigLoader.d.ts +12 -0
- package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
- package/dist/styles/tailwindConfigLoader.js +12 -0
- package/dist/styles/tailwindConfigLoader.js.map +1 -1
- package/dist/styles/tailwindExpander.d.ts +3 -0
- package/dist/styles/tailwindExpander.d.ts.map +1 -1
- package/dist/styles/tailwindExpander.js +8 -4
- package/dist/styles/tailwindExpander.js.map +1 -1
- package/dist/styles/tailwindProbe.d.ts +9 -0
- package/dist/styles/tailwindProbe.d.ts.map +1 -1
- package/dist/styles/tailwindProbe.js +181 -166
- package/dist/styles/tailwindProbe.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts +13 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +13 -0
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/symbols.d.ts +13 -11
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +14 -21
- package/dist/symbols.js.map +1 -1
- package/dist/telemetry.d.ts +31 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +31 -3
- package/dist/telemetry.js.map +1 -1
- package/dist/tool-registry.d.ts +37 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js +37 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/types.d.ts +114 -71
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -16
- package/dist/types.js.map +1 -1
- package/dist/ui/InteractivePrompts.d.ts +12 -0
- package/dist/ui/InteractivePrompts.d.ts.map +1 -1
- package/dist/ui/InteractivePrompts.js +12 -0
- package/dist/ui/InteractivePrompts.js.map +1 -1
- package/dist/utils/astParser.d.ts +15 -0
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +15 -0
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/astUtils.d.ts +60 -0
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +350 -362
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/contentHash.d.ts +22 -0
- package/dist/utils/contentHash.d.ts.map +1 -0
- package/dist/utils/contentHash.js +26 -0
- package/dist/utils/contentHash.js.map +1 -0
- package/dist/utils/dependencyExtractor.d.ts +28 -0
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +28 -1
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/dist/utils/errorMessage.d.ts +10 -0
- package/dist/utils/errorMessage.d.ts.map +1 -0
- package/dist/utils/errorMessage.js +12 -0
- package/dist/utils/errorMessage.js.map +1 -0
- package/dist/utils/fileDiscovery.d.ts +61 -2
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +131 -23
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +34 -5
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +73 -52
- package/dist/utils/reactDetection.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/dist/workers/auditWorker.js +7 -3
- package/dist/workers/auditWorker.js.map +1 -1
- package/examples/.auditrc.example.json +0 -8
- package/examples/.auditrc.json +0 -11
- package/examples/.code-auditor.json +0 -2
- package/examples/nextjs.auditrc.json +0 -8
- package/examples/node-api.auditrc.json +0 -7
- package/examples/react.auditrc.json +0 -6
- package/examples/tolerant-solid.auditrc.json +0 -5
- package/package.json +18 -9
- package/plugin/.claude-plugin/manifest.json +16 -0
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +7 -3
- package/plugin/scripts/hook-audit.sh +46 -16
- package/plugin/scripts/hook-common.sh +81 -12
- package/plugin/scripts/hook-drift-check.sh +76 -0
- package/plugin/scripts/hook-self-audit.sh +22 -14
- package/plugin/scripts/hook-warm.sh +5 -6
- package/plugin/skills/code-auditor/SKILL.md +1 -1
- package/server.json +10 -4
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §2.1 — the migrated-rules registry.
|
|
3
|
+
*
|
|
4
|
+
* A rule enters this array only when it satisfies all four migration
|
|
5
|
+
* conditions: it is a `RuleDefinition` with `analyze(ctx)`; every fact it
|
|
6
|
+
* declares has a live producer; the old analyzer path for it is deleted; and a
|
|
7
|
+
* parity test pins its findings against the pre-migration output on a fixture.
|
|
8
|
+
* Partial states are zero — a rule with `analyze(ctx)` written but its old path
|
|
9
|
+
* still live, or with no parity test, is not listed here.
|
|
10
|
+
*
|
|
11
|
+
* The single failing assertion that drives the migration is the size of this
|
|
12
|
+
* array against 100 (spec68-registry-size.spec.ts): it reads 0 today and goes
|
|
13
|
+
* green at 100. A rule is added here in the same edit that deletes its old path
|
|
14
|
+
* and pins its parity test — never before, and never as a placeholder.
|
|
15
|
+
*/
|
|
16
|
+
import { solidRules } from './solid.js';
|
|
17
|
+
import { dataAccessRules, loopQueryRules } from './dataAccess.js';
|
|
18
|
+
import { dependencyGraphRules } from './dependencyGraph.js';
|
|
19
|
+
import { schemaValidatorRules } from './schemaValidator.js';
|
|
20
|
+
import { documentationRules } from './documentation.js';
|
|
21
|
+
import { stylesRules, undefinedClassRule } from './styles.js';
|
|
22
|
+
import { crossDomainRules, multiTableWriteRule, noValidatorReachableRule, uncoveredRiskRule } from './crossDomain.js';
|
|
23
|
+
import { schemaRules, dynamicSqlRules } from './schema.js';
|
|
24
|
+
import { schemaJsonRules } from './schemaJson.js';
|
|
25
|
+
import { conventionsRules, conventionsExportShapeRules, conventionsImportFormRules } from './conventions.js';
|
|
26
|
+
import { dryRules } from './dry.js';
|
|
27
|
+
import { securityRules } from './security.js';
|
|
28
|
+
import { secretsRules } from './secrets.js';
|
|
29
|
+
import { securityDefectRules } from './securityDefects.js';
|
|
30
|
+
import { querySiteRules } from './querySites.js';
|
|
31
|
+
import { reactRules } from './react.js';
|
|
32
|
+
import { fileDocumentationRules } from './fileDocumentation.js';
|
|
33
|
+
import { unreferencedModuleRule } from './unreferencedModule.js';
|
|
34
|
+
import { goRules } from './goRules.js';
|
|
35
|
+
/**
|
|
36
|
+
* The 12 already-pinned rules that are parity-clean on the *full* pipeline
|
|
37
|
+
* (Spec 68 §11.2): 9 SOLID + 3 data-access. Each has `analyze(ctx)`, live
|
|
38
|
+
* producers for every declared fact, and a green parity test pinned on
|
|
39
|
+
* `(file, line, column, rule, severity)`, and flipping it changes nothing a
|
|
40
|
+
* full-pipeline audit reports (composite-fixtures pins the complete set by
|
|
41
|
+
* equality, so a rule whose phase output diverges anywhere stays off this list).
|
|
42
|
+
*
|
|
43
|
+
* The 2 schema rules (`unknown-table`, `table-naming-convention`) land once the
|
|
44
|
+
* `.sql` DDL source (§5) and the provenance-aware `db.query("SELECT …")` string-
|
|
45
|
+
* argument extraction are in: `unknown-table` reads `resolution` (now fed by
|
|
46
|
+
* `.sql` migration files via the `ddl-declarations.sql` producer), and
|
|
47
|
+
* `table-naming-convention` reads `schema-usage` (now extracting string-arg
|
|
48
|
+
* references). Their bucket is the one rule-level override in the both-paths
|
|
49
|
+
* re-emission (`table-naming-convention → schema-code`), matching the legacy
|
|
50
|
+
* schema-code visitor's result key.
|
|
51
|
+
*
|
|
52
|
+
* The 6 dependency-graph rules (`circular-dependency`, `break-cycles`,
|
|
53
|
+
* `tight-coupling`, `reduce-coupling`, `orphaned-nodes`, `review-orphans`)
|
|
54
|
+
* read the `cross-language-entities` fact
|
|
55
|
+
* through `DependencyGraphBuilder` — the same class the legacy Stage-4 reducer
|
|
56
|
+
* ran — so their full-pipeline output is byte-for-byte the reducer's.
|
|
57
|
+
*
|
|
58
|
+
* The 3 schema-validator rules (`schema-field-mismatch`, `missing-field`,
|
|
59
|
+
* `extra-field`) read the same fact through `SchemaValidator`/`extractSchemas`
|
|
60
|
+
* — the same class the legacy Stage-4 reducer ran, and the producer already
|
|
61
|
+
* emits the `parameters`/`metadata.fields` they read, so they need no shape
|
|
62
|
+
* enrichment.
|
|
63
|
+
*
|
|
64
|
+
* The 7th dependency-graph rule, `unreferenced-module` (file-level
|
|
65
|
+
* imports/reachability — RENEW, §8), reads the `file-imports` + `reachability`
|
|
66
|
+
* facts and lands as its own rule in `unreferencedModule.ts`.
|
|
67
|
+
*
|
|
68
|
+
* The remaining 74 land one fact kind at a time (§11.3), and the size drives
|
|
69
|
+
* spec68-registry-size.spec.ts (0 → … → 97).
|
|
70
|
+
*/
|
|
71
|
+
export const MIGRATED_RULES = [
|
|
72
|
+
...solidRules,
|
|
73
|
+
...dataAccessRules,
|
|
74
|
+
...loopQueryRules,
|
|
75
|
+
...dependencyGraphRules,
|
|
76
|
+
...schemaValidatorRules,
|
|
77
|
+
...documentationRules,
|
|
78
|
+
...stylesRules,
|
|
79
|
+
undefinedClassRule,
|
|
80
|
+
...crossDomainRules,
|
|
81
|
+
multiTableWriteRule,
|
|
82
|
+
noValidatorReachableRule,
|
|
83
|
+
uncoveredRiskRule,
|
|
84
|
+
...schemaRules,
|
|
85
|
+
...schemaJsonRules,
|
|
86
|
+
...dynamicSqlRules,
|
|
87
|
+
...conventionsRules,
|
|
88
|
+
...conventionsExportShapeRules,
|
|
89
|
+
...conventionsImportFormRules,
|
|
90
|
+
...dryRules,
|
|
91
|
+
...securityRules,
|
|
92
|
+
...secretsRules,
|
|
93
|
+
...securityDefectRules,
|
|
94
|
+
...querySiteRules,
|
|
95
|
+
...reactRules,
|
|
96
|
+
...fileDocumentationRules,
|
|
97
|
+
unreferencedModuleRule,
|
|
98
|
+
...goRules,
|
|
99
|
+
];
|
|
100
|
+
/** Rule id → analyzer namespace, a pure projection of `MIGRATED_RULES` (§15 —
|
|
101
|
+
* replaces the deleted `RuleRegistryEntry.analyzer` cross-reference). */
|
|
102
|
+
export const RULE_ANALYZER = new Map(MIGRATED_RULES.map((r) => [r.id, r.analyzer]));
|
|
103
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/phase/rules/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,UAAU;IACb,GAAG,eAAe;IAClB,GAAG,cAAc;IACjB,GAAG,oBAAoB;IACvB,GAAG,oBAAoB;IACvB,GAAG,kBAAkB;IACrB,GAAG,WAAW;IACd,kBAAkB;IAClB,GAAG,gBAAgB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,iBAAiB;IACjB,GAAG,WAAW;IACd,GAAG,eAAe;IAClB,GAAG,eAAe;IAClB,GAAG,gBAAgB;IACnB,GAAG,2BAA2B;IAC9B,GAAG,0BAA0B;IAC7B,GAAG,QAAQ;IACX,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,mBAAmB;IACtB,GAAG,cAAc;IACjB,GAAG,UAAU;IACb,GAAG,sBAAsB;IACzB,sBAAsB;IACtB,GAAG,OAAO;CACX,CAAC;AAEF;0EAC0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAgC,IAAI,GAAG,CAC/D,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAU,CAAC,CACvD,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §3.2 — the schema rules that are pure over extracted facts.
|
|
3
|
+
*
|
|
4
|
+
* Two of the five `schema` rules are a clean reduction over facts the producers
|
|
5
|
+
* already extract: `unknown-table` (schema-usage × resolution) and
|
|
6
|
+
* `table-naming-convention` (schema-usage alone). Their violation logic is
|
|
7
|
+
* re-homed verbatim from `UniversalSchemaAnalyzer`'s `checkMissingReferences`
|
|
8
|
+
* and `checkNamingConventions` (in `codeAnalysis.ts`), which are pure functions
|
|
9
|
+
* over a table-reference list and a known-table set — exactly the two facts, so
|
|
10
|
+
* `analyze` never touches a tree, an adapter, or source text.
|
|
11
|
+
*
|
|
12
|
+
* The `needs` declarations here CORRECT the registry's placeholder entries,
|
|
13
|
+
* which said `schema-code` for both: the analyzer walked *references* (usages),
|
|
14
|
+
* not DDL declarations. `unknown-table` reads the known-table catalog too, so
|
|
15
|
+
* it declares `resolution` — the §5 corpus fact — alongside `schema-usage`.
|
|
16
|
+
* `unknown-table`'s registry entry also claimed `go`; the Node implementation
|
|
17
|
+
* is TypeScript-shaped and cannot evaluate a Go AST, so this declaration omits
|
|
18
|
+
* `'go'` and the rule reports the honest `notApplicable` on a Go corpus (§9).
|
|
19
|
+
*
|
|
20
|
+
* The pure helpers `isSystemTable` / `isTableValuedFunction` /
|
|
21
|
+
* `getNearestTableSuggestions` are imported from `codeAnalysis.ts` — a Spec-34
|
|
22
|
+
* helper module that, like `orgFilterTiers.ts`, survives §15 because it imports
|
|
23
|
+
* no analyzer class and no pipeline.
|
|
24
|
+
*
|
|
25
|
+
* Not here, by design:
|
|
26
|
+
* - `too-many-queries` — walks function *bodies* to count raw `query(`/
|
|
27
|
+
* `execute(` call sites, a per-function signal `schema-usage` doesn't carry.
|
|
28
|
+
* - The unregistered `reserved-word` emission inside the old
|
|
29
|
+
* `checkNamingConventions` is dropped: it has no registry entry (no
|
|
30
|
+
* message/docs/thresholds/samples), so it is an emission with no rule
|
|
31
|
+
* definition — the inverse of §0's "no emission site", to be disposed in
|
|
32
|
+
* §13 rather than silently re-homed into the unified `ruleId` model.
|
|
33
|
+
*
|
|
34
|
+
* `dynamic-sql-construction` lives below in a *separate* array: it reads the
|
|
35
|
+
* `dynamic-sql` fact (dangerous query/execute call sites), not `schema-usage`,
|
|
36
|
+
* so its context carries `dynamic-sql` alone — the same producer-before-rule
|
|
37
|
+
* split as `loop-query` next to `data-access`.
|
|
38
|
+
*/
|
|
39
|
+
import type { RuleDefinition } from '../types.js';
|
|
40
|
+
/** The shared declaration for the TS schema rules in this slice. */
|
|
41
|
+
type SchemaUsageNeeds = {
|
|
42
|
+
readonly formats: readonly ['typescript', 'tsx', 'javascript'];
|
|
43
|
+
readonly facts: readonly ['schema-usage'];
|
|
44
|
+
};
|
|
45
|
+
/** `unknown-table` additionally reads the known-table catalog (§5) and the
|
|
46
|
+
* migration-history corpus fact (§5) so it can hand dropped tables to
|
|
47
|
+
* `stale-table-reference` instead of mislabeling them as never-existed. */
|
|
48
|
+
type UnknownTableNeeds = {
|
|
49
|
+
readonly formats: readonly ['typescript', 'tsx', 'javascript'];
|
|
50
|
+
readonly facts: readonly ['schema-usage', 'resolution', 'migration-history'];
|
|
51
|
+
};
|
|
52
|
+
/** `stale-table-reference` additionally reads the migration-history corpus fact
|
|
53
|
+
* (§5) to distinguish "dropped in a migration" from "never existed". */
|
|
54
|
+
type StaleTableReferenceNeeds = {
|
|
55
|
+
readonly formats: readonly ['typescript', 'tsx', 'javascript'];
|
|
56
|
+
readonly facts: readonly ['schema-usage', 'resolution', 'migration-history'];
|
|
57
|
+
};
|
|
58
|
+
/** The three TypeScript schema rules this slice migrates, in registry order. */
|
|
59
|
+
export declare const schemaRules: readonly RuleDefinition<SchemaUsageNeeds | UnknownTableNeeds | StaleTableReferenceNeeds>[];
|
|
60
|
+
/**
|
|
61
|
+
* `dynamic-sql-construction` reads the `dynamic-sql` fact (a flat array of
|
|
62
|
+
* `DynamicSqlFact`, one per dangerous query/execute call site) — not
|
|
63
|
+
* `schema-usage`. It is exported in a *separate* array from `schemaRules`
|
|
64
|
+
* because the two fact kinds are distinct: the schema slice context carries
|
|
65
|
+
* `schema-usage` + `resolution`, while this rule's context carries
|
|
66
|
+
* `dynamic-sql` alone.
|
|
67
|
+
*
|
|
68
|
+
* Detection is the producer's — `collectDynamicSqlCandidates` in `codeAnalysis.ts`,
|
|
69
|
+
* shared with the legacy `checkSQLInjection` — so `analyze` is a pure projection
|
|
70
|
+
* of the pre-computed anchor/enclosingFn/symbol, and parity holds by construction.
|
|
71
|
+
*/
|
|
72
|
+
type DynamicSqlNeeds = {
|
|
73
|
+
readonly formats: readonly ['typescript', 'tsx', 'javascript'];
|
|
74
|
+
readonly facts: readonly ['dynamic-sql'];
|
|
75
|
+
};
|
|
76
|
+
/** The dynamic-sql-construction rule this slice migrates (reads `dynamic-sql`). */
|
|
77
|
+
export declare const dynamicSqlRules: readonly RuleDefinition<DynamicSqlNeeds>[];
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/phase/rules/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,aAAa,CAAC;AASrB,oEAAoE;AACpE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;CAC3C,CAAC;AAEF;;4EAE4E;AAC5E,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;CAC9E,CAAC;AAEF;yEACyE;AACzE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;CAC9E,CAAC;AA+NF,gFAAgF;AAChF,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,CAC/C,gBAAgB,GAAG,iBAAiB,GAAG,wBAAwB,CAChE,EAA+D,CAAC;AAIjE;;;;;;;;;;;GAWG;AACH,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CAC1C,CAAC;AAwBF,mFAAmF;AACnF,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,CAAC,eAAe,CAAC,EAA6B,CAAC"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §3.2 — the schema rules that are pure over extracted facts.
|
|
3
|
+
*
|
|
4
|
+
* Two of the five `schema` rules are a clean reduction over facts the producers
|
|
5
|
+
* already extract: `unknown-table` (schema-usage × resolution) and
|
|
6
|
+
* `table-naming-convention` (schema-usage alone). Their violation logic is
|
|
7
|
+
* re-homed verbatim from `UniversalSchemaAnalyzer`'s `checkMissingReferences`
|
|
8
|
+
* and `checkNamingConventions` (in `codeAnalysis.ts`), which are pure functions
|
|
9
|
+
* over a table-reference list and a known-table set — exactly the two facts, so
|
|
10
|
+
* `analyze` never touches a tree, an adapter, or source text.
|
|
11
|
+
*
|
|
12
|
+
* The `needs` declarations here CORRECT the registry's placeholder entries,
|
|
13
|
+
* which said `schema-code` for both: the analyzer walked *references* (usages),
|
|
14
|
+
* not DDL declarations. `unknown-table` reads the known-table catalog too, so
|
|
15
|
+
* it declares `resolution` — the §5 corpus fact — alongside `schema-usage`.
|
|
16
|
+
* `unknown-table`'s registry entry also claimed `go`; the Node implementation
|
|
17
|
+
* is TypeScript-shaped and cannot evaluate a Go AST, so this declaration omits
|
|
18
|
+
* `'go'` and the rule reports the honest `notApplicable` on a Go corpus (§9).
|
|
19
|
+
*
|
|
20
|
+
* The pure helpers `isSystemTable` / `isTableValuedFunction` /
|
|
21
|
+
* `getNearestTableSuggestions` are imported from `codeAnalysis.ts` — a Spec-34
|
|
22
|
+
* helper module that, like `orgFilterTiers.ts`, survives §15 because it imports
|
|
23
|
+
* no analyzer class and no pipeline.
|
|
24
|
+
*
|
|
25
|
+
* Not here, by design:
|
|
26
|
+
* - `too-many-queries` — walks function *bodies* to count raw `query(`/
|
|
27
|
+
* `execute(` call sites, a per-function signal `schema-usage` doesn't carry.
|
|
28
|
+
* - The unregistered `reserved-word` emission inside the old
|
|
29
|
+
* `checkNamingConventions` is dropped: it has no registry entry (no
|
|
30
|
+
* message/docs/thresholds/samples), so it is an emission with no rule
|
|
31
|
+
* definition — the inverse of §0's "no emission site", to be disposed in
|
|
32
|
+
* §13 rather than silently re-homed into the unified `ruleId` model.
|
|
33
|
+
*
|
|
34
|
+
* `dynamic-sql-construction` lives below in a *separate* array: it reads the
|
|
35
|
+
* `dynamic-sql` fact (dangerous query/execute call sites), not `schema-usage`,
|
|
36
|
+
* so its context carries `dynamic-sql` alone — the same producer-before-rule
|
|
37
|
+
* split as `loop-query` next to `data-access`.
|
|
38
|
+
*/
|
|
39
|
+
import { RULE_REGISTRY } from '../../analyzers/ruleRegistry.js';
|
|
40
|
+
import { isTestOrSpecPath } from '../../languages/testConventions.js';
|
|
41
|
+
import { isSystemTable, isTableValuedFunction, getNearestTableSuggestions, } from '../../analyzers/universal/schema/codeAnalysis.js';
|
|
42
|
+
/** Join a list of names as prose: "a", "a and b", "a, b and c". Mirrors the
|
|
43
|
+
* legacy `joinEnglish` in pipelineAdapters.ts (not exported). */
|
|
44
|
+
function joinEnglish(names) {
|
|
45
|
+
if (names.length === 0)
|
|
46
|
+
return '';
|
|
47
|
+
if (names.length === 1)
|
|
48
|
+
return names[0];
|
|
49
|
+
return `${names.slice(0, -1).join(', ')} and ${names[names.length - 1]}`;
|
|
50
|
+
}
|
|
51
|
+
const META = RULE_REGISTRY;
|
|
52
|
+
/** The known-table set from the corpus catalog (case-sensitive, as the old
|
|
53
|
+
* `collectAllTableNames` built it). */
|
|
54
|
+
function knownTableSet(catalog) {
|
|
55
|
+
const names = new Set();
|
|
56
|
+
for (const t of catalog.tables)
|
|
57
|
+
names.add(t.name);
|
|
58
|
+
return names;
|
|
59
|
+
}
|
|
60
|
+
/** A usage is a candidate when it is a real table reference, not a fluent
|
|
61
|
+
* query-builder selector, a system/table-valued function, or a host-language
|
|
62
|
+
* template substitution. The `${…}` form is a table name filled in at
|
|
63
|
+
* query-composition time (`FROM "${this.tableName}"`), not a literal name the
|
|
64
|
+
* catalog can resolve — the same carve-out `table-naming-convention` already
|
|
65
|
+
* draws, so a dynamic table name is not misreported as unknown/stale. */
|
|
66
|
+
function isRealTableRef(u) {
|
|
67
|
+
return u.origin !== 'query-builder'
|
|
68
|
+
&& !isSystemTable(u.tableName)
|
|
69
|
+
&& !isTableValuedFunction(u.tableName)
|
|
70
|
+
&& !u.tableName.includes('${');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The shared unknown-reference set + fail-open guard that BOTH `unknown-table`
|
|
74
|
+
* and `stale-table-reference` compute identically, so a reference lands in
|
|
75
|
+
* exactly one rule: dropped tables partition to `stale-table-reference`, the
|
|
76
|
+
* rest to `unknown-table`. The guard (R2.4) is the legacy fail-open — at 0
|
|
77
|
+
* known tables, or an unknown:known ratio above 10, the catalog is not
|
|
78
|
+
* trustworthy enough to flag individual references, so neither rule fires.
|
|
79
|
+
*/
|
|
80
|
+
function unknownRefs(usages, catalog) {
|
|
81
|
+
const known = knownTableSet(catalog);
|
|
82
|
+
// Symmetric scoping (#408): a file excluded from schema *declaration* is
|
|
83
|
+
// excluded from schema *reference*. The DDL replay drops `isTestOrSpecPath`
|
|
84
|
+
// files from the known-table set, so a table declared only in a test/spec file
|
|
85
|
+
// reads as unknown; references in those same test/spec files must not then
|
|
86
|
+
// fire `unknown-table`/`stale-table-reference`. Same predicate, both directions.
|
|
87
|
+
const refs = usages.filter((u) => isRealTableRef(u) && !isTestOrSpecPath(u.filePath) && !known.has(u.tableName));
|
|
88
|
+
const knownCount = known.size;
|
|
89
|
+
const failOpen = knownCount === 0 || refs.length / Math.max(knownCount, 1) > 10;
|
|
90
|
+
return { refs, knownCount, failOpen };
|
|
91
|
+
}
|
|
92
|
+
// ── unknown-table ───────────────────────────────────────────────────────────
|
|
93
|
+
const unknownTable = {
|
|
94
|
+
id: 'unknown-table',
|
|
95
|
+
analyzer: 'schema',
|
|
96
|
+
needs: { formats: ['typescript', 'tsx', 'javascript'], facts: ['schema-usage', 'resolution', 'migration-history'] },
|
|
97
|
+
severity: 'critical',
|
|
98
|
+
message: META['unknown-table'].message,
|
|
99
|
+
docs: META['unknown-table'].docs,
|
|
100
|
+
thresholds: META['unknown-table'].thresholds,
|
|
101
|
+
samples: META['unknown-table'].samples,
|
|
102
|
+
analyze(ctx) {
|
|
103
|
+
const known = knownTableSet(ctx.facts['resolution']);
|
|
104
|
+
const { refs, failOpen } = unknownRefs(ctx.facts['schema-usage'], ctx.facts['resolution']);
|
|
105
|
+
// R2.4 fail-open: at 0 known tables, or an unknown:known ratio above 10,
|
|
106
|
+
// the catalog is not trustworthy enough to flag individual references.
|
|
107
|
+
if (failOpen) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
// Dropped tables are `stale-table-reference`'s, not this rule's: the two
|
|
111
|
+
// rules partition the unknown set by the migration-history provenance.
|
|
112
|
+
const dropped = ctx.facts['migration-history'].dropped;
|
|
113
|
+
const out = [];
|
|
114
|
+
for (const ref of refs) {
|
|
115
|
+
if (dropped[ref.tableName])
|
|
116
|
+
continue;
|
|
117
|
+
const suggestions = getNearestTableSuggestions(ref.tableName, known, 2);
|
|
118
|
+
const suggestionNames = suggestions.map((s) => s.replace(/^'|'$/g, ''));
|
|
119
|
+
const message = suggestions.length > 0
|
|
120
|
+
? `Reference to unknown table '${ref.tableName}' (${ref.usageType}). Did you mean: ${suggestions.join(', ')}?`
|
|
121
|
+
: `Reference to unknown table '${ref.tableName}' (${ref.usageType})`;
|
|
122
|
+
out.push({
|
|
123
|
+
ruleId: 'unknown-table',
|
|
124
|
+
severity: 'critical',
|
|
125
|
+
message,
|
|
126
|
+
file: ref.filePath,
|
|
127
|
+
line: ref.line,
|
|
128
|
+
column: ref.column,
|
|
129
|
+
symbol: ref.tableName,
|
|
130
|
+
resolution: {
|
|
131
|
+
action: suggestionNames.length > 0 ? 'use-known-table' : 'register-or-fix-table',
|
|
132
|
+
summary: suggestionNames.length > 0
|
|
133
|
+
? `Rename the table reference '${ref.tableName}' to the nearest known table: ${suggestions.join(', ')}.`
|
|
134
|
+
: `The table '${ref.tableName}' is not in the known catalog — register it, or fix the reference to a known table.`,
|
|
135
|
+
symbols: suggestionNames.length > 0 ? suggestionNames : [ref.tableName],
|
|
136
|
+
files: [ref.filePath],
|
|
137
|
+
lines: ref.line != null ? [ref.line] : undefined,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return out;
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
// ── table-naming-convention ─────────────────────────────────────────────────
|
|
145
|
+
const tableNamingConvention = {
|
|
146
|
+
id: 'table-naming-convention',
|
|
147
|
+
analyzer: 'schema',
|
|
148
|
+
needs: { formats: ['typescript', 'tsx', 'javascript'], facts: ['schema-usage'] },
|
|
149
|
+
severity: 'high',
|
|
150
|
+
message: META['table-naming-convention'].message,
|
|
151
|
+
docs: META['table-naming-convention'].docs,
|
|
152
|
+
thresholds: META['table-naming-convention'].thresholds,
|
|
153
|
+
samples: META['table-naming-convention'].samples,
|
|
154
|
+
analyze(ctx) {
|
|
155
|
+
const out = [];
|
|
156
|
+
for (const ref of ctx.facts['schema-usage']) {
|
|
157
|
+
// Fluent-builder references carry a dynamic table string; naming
|
|
158
|
+
// conformance is a property of the schema, not the call.
|
|
159
|
+
if (ref.origin === 'query-builder')
|
|
160
|
+
continue;
|
|
161
|
+
// A `${…}` template substitution is a host-language table name filled in
|
|
162
|
+
// at query-composition time (`FROM "${this.tableName}"`), not a literal
|
|
163
|
+
// name. The producer reports it accurately; naming conformance is a
|
|
164
|
+
// property of the schema, not the substitution — same carve-out rationale
|
|
165
|
+
// as `query-builder` origin above.
|
|
166
|
+
if (ref.tableName.includes('${'))
|
|
167
|
+
continue;
|
|
168
|
+
const isSnakeCase = /^[a-z][a-z0-9_]*$/.test(ref.tableName);
|
|
169
|
+
const isTableSuffix = ref.tableName.endsWith('Table');
|
|
170
|
+
if (isSnakeCase || isTableSuffix)
|
|
171
|
+
continue;
|
|
172
|
+
out.push({
|
|
173
|
+
ruleId: 'table-naming-convention',
|
|
174
|
+
severity: 'high',
|
|
175
|
+
message: `Table name '${ref.tableName}' should use snake_case convention`,
|
|
176
|
+
file: ref.filePath,
|
|
177
|
+
line: ref.line,
|
|
178
|
+
column: ref.column,
|
|
179
|
+
symbol: ref.tableName,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return out;
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
// ── stale-table-reference ────────────────────────────────────────────────────
|
|
186
|
+
/**
|
|
187
|
+
* `stale-table-reference` reads the `migration-history` corpus fact (§5) — the
|
|
188
|
+
* drop-provenance map built by the shared `buildDropProvenance` the legacy
|
|
189
|
+
* schema reducer called — alongside `schema-usage` + `resolution`. It is the
|
|
190
|
+
* partition of the unknown-reference set that `unknown-table` hands off: a
|
|
191
|
+
* reference whose table a migration dropped is a stale code reference (the
|
|
192
|
+
* message names the dropping migration and the tables it introduced as
|
|
193
|
+
* evidence, not proof, of a successor), not a typo.
|
|
194
|
+
*
|
|
195
|
+
* Parity holds by construction: `buildDropProvenance` is the identical pure
|
|
196
|
+
* function the legacy reducer ran, and the message/resolution here are the
|
|
197
|
+
* verbatim emission from `UniversalSchemaAnalyzer` (pipelineAdapters.ts).
|
|
198
|
+
*/
|
|
199
|
+
const staleTableReference = {
|
|
200
|
+
id: 'stale-table-reference',
|
|
201
|
+
analyzer: 'schema',
|
|
202
|
+
needs: { formats: ['typescript', 'tsx', 'javascript'], facts: ['schema-usage', 'resolution', 'migration-history'] },
|
|
203
|
+
severity: 'critical',
|
|
204
|
+
message: META['stale-table-reference'].message,
|
|
205
|
+
docs: META['stale-table-reference'].docs,
|
|
206
|
+
thresholds: META['stale-table-reference'].thresholds,
|
|
207
|
+
samples: META['stale-table-reference'].samples,
|
|
208
|
+
analyze(ctx) {
|
|
209
|
+
const dropped = ctx.facts['migration-history'].dropped;
|
|
210
|
+
const { refs, failOpen } = unknownRefs(ctx.facts['schema-usage'], ctx.facts['resolution']);
|
|
211
|
+
if (failOpen)
|
|
212
|
+
return [];
|
|
213
|
+
const out = [];
|
|
214
|
+
for (const ref of refs) {
|
|
215
|
+
const drop = dropped[ref.tableName];
|
|
216
|
+
if (!drop)
|
|
217
|
+
continue;
|
|
218
|
+
const migrationName = drop.migrationFile.split('/').pop() ?? drop.migrationFile;
|
|
219
|
+
const created = [...drop.createdInSameMigration];
|
|
220
|
+
const message = created.length > 0
|
|
221
|
+
? `${ref.tableName} was dropped in ${migrationName}; that migration creates ${joinEnglish(created)}.`
|
|
222
|
+
: `${ref.tableName} was dropped in ${migrationName} and was not recreated.`;
|
|
223
|
+
out.push({
|
|
224
|
+
ruleId: 'stale-table-reference',
|
|
225
|
+
severity: 'critical',
|
|
226
|
+
message,
|
|
227
|
+
file: ref.filePath,
|
|
228
|
+
line: ref.line,
|
|
229
|
+
column: ref.column,
|
|
230
|
+
symbol: ref.tableName,
|
|
231
|
+
resolution: {
|
|
232
|
+
action: 'update-stale-reference',
|
|
233
|
+
// `created` are evidence the migration replaced the dropped table, not
|
|
234
|
+
// proof of a drop-in successor — the summary names them as context and
|
|
235
|
+
// leaves update-vs-remove to the reviewer.
|
|
236
|
+
summary: created.length > 0
|
|
237
|
+
? `The table '${ref.tableName}' was dropped in ${migrationName}. That migration introduces ${joinEnglish(created)} — review this reference and update or remove it.`
|
|
238
|
+
: `The table '${ref.tableName}' was dropped in ${migrationName} and was not recreated — update or remove this reference.`,
|
|
239
|
+
symbols: created.length > 0 ? created : [ref.tableName],
|
|
240
|
+
files: [ref.filePath],
|
|
241
|
+
lines: ref.line != null ? [ref.line] : undefined,
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return out;
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
/** The three TypeScript schema rules this slice migrates, in registry order. */
|
|
249
|
+
export const schemaRules = [unknownTable, tableNamingConvention, staleTableReference];
|
|
250
|
+
const dynamicSqlConstruction = {
|
|
251
|
+
id: 'dynamic-sql-construction',
|
|
252
|
+
analyzer: 'schema',
|
|
253
|
+
needs: { formats: ['typescript', 'tsx', 'javascript'], facts: ['dynamic-sql'] },
|
|
254
|
+
severity: 'critical',
|
|
255
|
+
message: META['dynamic-sql-construction'].message,
|
|
256
|
+
docs: META['dynamic-sql-construction'].docs,
|
|
257
|
+
thresholds: META['dynamic-sql-construction'].thresholds,
|
|
258
|
+
samples: META['dynamic-sql-construction'].samples,
|
|
259
|
+
analyze(ctx) {
|
|
260
|
+
return ctx.facts['dynamic-sql'].map((c) => ({
|
|
261
|
+
ruleId: 'dynamic-sql-construction',
|
|
262
|
+
severity: 'critical',
|
|
263
|
+
message: `SQL query built via string interpolation or concatenation in ${c.enclosingFn}; use parameterized queries.`,
|
|
264
|
+
file: c.file,
|
|
265
|
+
line: c.line,
|
|
266
|
+
column: c.column,
|
|
267
|
+
symbol: c.symbol,
|
|
268
|
+
}));
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
/** The dynamic-sql-construction rule this slice migrates (reads `dynamic-sql`). */
|
|
272
|
+
export const dynamicSqlRules = [dynamicSqlConstruction];
|
|
273
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/phase/rules/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §3.2 — the schema-json rules, migrated to `analyze(ctx)`.
|
|
3
|
+
*
|
|
4
|
+
* The legacy JSON-schema validation was one monolithic free function
|
|
5
|
+
* (`analyzeJsonSchemas` in `jsonSchema.ts`) that emitted 17 distinct rule ids
|
|
6
|
+
* with hardcoded `line:1, column:1` anchors (JSON files have no AST position
|
|
7
|
+
* the old path read). The phase model splits that into:
|
|
8
|
+
*
|
|
9
|
+
* - a `json-document` producer (the parsed value of each `.json` file);
|
|
10
|
+
* - the `schema-validations` corpus processor (the one `analyzeJsonSchemas`
|
|
11
|
+
* call, projected onto `SchemaValidationFact` — the classification of which
|
|
12
|
+
* rule fired, at what severity, with what message is the processor's);
|
|
13
|
+
* - these 17 rules, each a thin filter over the fact by its own rule id.
|
|
14
|
+
*
|
|
15
|
+
* Because the processor re-homes the validation verbatim, each rule's `analyze`
|
|
16
|
+
* is a pure projection: it does not re-validate, it just names the rule whose
|
|
17
|
+
* findings it owns. The severity is the fact's (the legacy emit carried it per
|
|
18
|
+
* violation, e.g. `invalid-json` is `critical`, `missing-schema-declaration` is
|
|
19
|
+
* `high`, the rest `severe`), so the static `severity` below is the rule's
|
|
20
|
+
* default and the finding's severity is the fact's — identical on every path.
|
|
21
|
+
*/
|
|
22
|
+
import type { RuleDefinition } from '../types.js';
|
|
23
|
+
/** The shared declaration for all 17 schema-json rules: they evaluate JSON
|
|
24
|
+
* files and read the one corpus fact the processor reduces from them. */
|
|
25
|
+
type SchemaJsonNeeds = {
|
|
26
|
+
readonly formats: readonly ['json'];
|
|
27
|
+
readonly facts: readonly ['schema-validations'];
|
|
28
|
+
};
|
|
29
|
+
/** The 17 schema-json rules this slice migrates, in registry order. */
|
|
30
|
+
export declare const schemaJsonRules: readonly RuleDefinition<SchemaJsonNeeds>[];
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=schemaJson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaJson.d.ts","sourceRoot":"","sources":["../../../src/phase/rules/schemaJson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiC,MAAM,aAAa,CAAC;AAMjF;0EAC0E;AAC1E,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAC;CACjD,CAAC;AA2DF,uEAAuE;AACvE,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,CAAC,eAAe,CAAC,EACK,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §3.2 — the schema-json rules, migrated to `analyze(ctx)`.
|
|
3
|
+
*
|
|
4
|
+
* The legacy JSON-schema validation was one monolithic free function
|
|
5
|
+
* (`analyzeJsonSchemas` in `jsonSchema.ts`) that emitted 17 distinct rule ids
|
|
6
|
+
* with hardcoded `line:1, column:1` anchors (JSON files have no AST position
|
|
7
|
+
* the old path read). The phase model splits that into:
|
|
8
|
+
*
|
|
9
|
+
* - a `json-document` producer (the parsed value of each `.json` file);
|
|
10
|
+
* - the `schema-validations` corpus processor (the one `analyzeJsonSchemas`
|
|
11
|
+
* call, projected onto `SchemaValidationFact` — the classification of which
|
|
12
|
+
* rule fired, at what severity, with what message is the processor's);
|
|
13
|
+
* - these 17 rules, each a thin filter over the fact by its own rule id.
|
|
14
|
+
*
|
|
15
|
+
* Because the processor re-homes the validation verbatim, each rule's `analyze`
|
|
16
|
+
* is a pure projection: it does not re-validate, it just names the rule whose
|
|
17
|
+
* findings it owns. The severity is the fact's (the legacy emit carried it per
|
|
18
|
+
* violation, e.g. `invalid-json` is `critical`, `missing-schema-declaration` is
|
|
19
|
+
* `high`, the rest `severe`), so the static `severity` below is the rule's
|
|
20
|
+
* default and the finding's severity is the fact's — identical on every path.
|
|
21
|
+
*/
|
|
22
|
+
import { RULE_REGISTRY } from '../../analyzers/ruleRegistry.js';
|
|
23
|
+
const META = RULE_REGISTRY;
|
|
24
|
+
/** The 17 registry rule ids, in registry order, each mapped to its fixed
|
|
25
|
+
* severity (the value the legacy `emit`/`emitViolation` carried for that id). */
|
|
26
|
+
const SCHEMA_JSON_RULES = [
|
|
27
|
+
{ id: 'invalid-json', severity: 'critical' },
|
|
28
|
+
{ id: 'missing-schema-declaration', severity: 'high' },
|
|
29
|
+
{ id: 'undefined-required-field', severity: 'severe' },
|
|
30
|
+
{ id: 'invalid-type', severity: 'severe' },
|
|
31
|
+
{ id: 'invalid-range', severity: 'severe' },
|
|
32
|
+
{ id: 'type-mismatch', severity: 'severe' },
|
|
33
|
+
{ id: 'string-too-short', severity: 'severe' },
|
|
34
|
+
{ id: 'string-too-long', severity: 'severe' },
|
|
35
|
+
{ id: 'pattern-mismatch', severity: 'severe' },
|
|
36
|
+
{ id: 'invalid-format', severity: 'severe' },
|
|
37
|
+
{ id: 'below-minimum', severity: 'severe' },
|
|
38
|
+
{ id: 'above-maximum', severity: 'severe' },
|
|
39
|
+
{ id: 'too-few-items', severity: 'severe' },
|
|
40
|
+
{ id: 'too-many-items', severity: 'severe' },
|
|
41
|
+
{ id: 'missing-required-field', severity: 'severe' },
|
|
42
|
+
{ id: 'unexpected-property', severity: 'severe' },
|
|
43
|
+
{ id: 'enum-mismatch', severity: 'severe' },
|
|
44
|
+
];
|
|
45
|
+
/** Project one rule's slice of the fact onto its findings, re-homed verbatim
|
|
46
|
+
* from the legacy violation fields (anchor always 1:1). */
|
|
47
|
+
function findingsFor(validations, ruleId) {
|
|
48
|
+
const out = [];
|
|
49
|
+
for (const v of validations) {
|
|
50
|
+
if (v.rule !== ruleId)
|
|
51
|
+
continue;
|
|
52
|
+
out.push({
|
|
53
|
+
ruleId,
|
|
54
|
+
severity: v.severity,
|
|
55
|
+
message: v.message,
|
|
56
|
+
file: v.file,
|
|
57
|
+
line: v.line,
|
|
58
|
+
column: v.column,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
62
|
+
}
|
|
63
|
+
/** Build one thin rule definition for a schema-json rule id. */
|
|
64
|
+
function schemaJsonRule(id, severity) {
|
|
65
|
+
return {
|
|
66
|
+
id,
|
|
67
|
+
analyzer: 'schema',
|
|
68
|
+
needs: { formats: ['json'], facts: ['schema-validations'] },
|
|
69
|
+
severity,
|
|
70
|
+
message: META[id].message,
|
|
71
|
+
docs: META[id].docs,
|
|
72
|
+
thresholds: META[id].thresholds,
|
|
73
|
+
samples: META[id].samples,
|
|
74
|
+
analyze(ctx) {
|
|
75
|
+
return findingsFor(ctx.facts['schema-validations'], id);
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/** The 17 schema-json rules this slice migrates, in registry order. */
|
|
80
|
+
export const schemaJsonRules = SCHEMA_JSON_RULES.map(({ id, severity }) => schemaJsonRule(id, severity));
|
|
81
|
+
//# sourceMappingURL=schemaJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaJson.js","sourceRoot":"","sources":["../../../src/phase/rules/schemaJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §3.2 — the schema-validator rules, migrated to `analyze(ctx)`.
|
|
3
|
+
*
|
|
4
|
+
* The three rules here (`schema-field-mismatch`, `missing-field`, `extra-field`)
|
|
5
|
+
* read the `cross-language-entities` fact and reduce it through
|
|
6
|
+
* `SchemaValidator` — the same pure class the legacy Stage-4 reducer ran. The
|
|
7
|
+
* reducer (`createSchemaValidatorReducer` in pipelineAdapters.ts) called
|
|
8
|
+
* `extractSchemas(entities)` then `new SchemaValidator().validateSchemas(schemas)`
|
|
9
|
+
* and returned the resulting `SchemaViolation[]`; each violation already carries
|
|
10
|
+
* its own `rule` (`schema-field-mismatch` | `missing-field` | `extra-field`), so
|
|
11
|
+
* the migration is a filter: one rule per violation type, re-homed verbatim.
|
|
12
|
+
*
|
|
13
|
+
* `extractSchemas` and `SchemaValidator` are imported (not re-homed) because —
|
|
14
|
+
* like `DependencyGraphBuilder` — they import no analyzer class and no pipeline,
|
|
15
|
+
* so §15 keeps them. The reducer's two guards are dropped here by construction:
|
|
16
|
+
* - the `isScoped` early-return is a *stage* concern (scoped runs never reach
|
|
17
|
+
* a full-corpus reducer), not a rule concern — the phase model hands a rule
|
|
18
|
+
* whatever facts it declared and the rule evaluates them;
|
|
19
|
+
* - the `countCrossLanguagePairs === 0` notRunReason is a *coverage* signal
|
|
20
|
+
* (§8), not a finding — `validateSchemas` on a single-language corpus
|
|
21
|
+
* returns `[]` because every name-group has `byLanguage.size < 2`, so the
|
|
22
|
+
* rules already emit nothing (the empty multiset the parity test pins).
|
|
23
|
+
*
|
|
24
|
+
* The `cross-language-entities` producer (`extractCrossLanguageEntities`) emits
|
|
25
|
+
* full `CrossLanguageEntity` values whose `parameters` (TS interfaces) and
|
|
26
|
+
* `metadata.fields` (Go structs) already carry `description`/`tag`, so
|
|
27
|
+
* `extractSchemas` works over the fact as-is — no shape enrichment is required.
|
|
28
|
+
*/
|
|
29
|
+
import type { RuleDefinition } from '../types.js';
|
|
30
|
+
/** The shared declaration for the three schema-validator rules. */
|
|
31
|
+
type SchemaValidatorNeeds = {
|
|
32
|
+
readonly formats: readonly ['typescript', 'tsx', 'javascript', 'go'];
|
|
33
|
+
readonly facts: readonly ['cross-language-entities'];
|
|
34
|
+
};
|
|
35
|
+
/** The three schema-validator rules this slice migrates, in registry order. */
|
|
36
|
+
export declare const schemaValidatorRules: readonly RuleDefinition<SchemaValidatorNeeds>[];
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=schemaValidator.d.ts.map
|