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 @@
|
|
|
1
|
+
{"version":3,"file":"handleIdentification.d.ts","sourceRoot":"","sources":["../../src/analyzers/handleIdentification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handle identification — the seam.
|
|
3
|
+
*
|
|
4
|
+
* Standing correction `specs/correction-seams-not-placement.md`: one concept,
|
|
5
|
+
* one seam, declared as a type, with a compile-time residue check. Handle
|
|
6
|
+
* identification ("is this receiver a DB handle?") is answered by exactly one
|
|
7
|
+
* entry point built from two walk-time evidence sources. A third source —
|
|
8
|
+
* `external-classifier` — re-disposes `unproven` sites after the audit from a
|
|
9
|
+
* separate `classify` command, never from the walk. No rule and no processor
|
|
10
|
+
* decides handle-ness any other way.
|
|
11
|
+
*
|
|
12
|
+
* ─── Shape ───
|
|
13
|
+
*
|
|
14
|
+
* combineVerdicts(EVIDENCE_SOURCES.map(s => s.evaluate(site, facts)))
|
|
15
|
+
*
|
|
16
|
+
* Two walk-time evidence sources, registered against `WalkTimeEvidenceSourceId`:
|
|
17
|
+
*
|
|
18
|
+
* - `sql-argument` — the call's argument is literally SQL, so the
|
|
19
|
+
* receiver must be a DB handle. Can only prove
|
|
20
|
+
* `handle` or stay silent (`unproven`) — the
|
|
21
|
+
* narrowing is compile-enforced on `evaluate`.
|
|
22
|
+
* - `declaration-resolution` — the receiver's declaration resolves to a DB
|
|
23
|
+
* handle (package import, type annotation, or
|
|
24
|
+
* binding). The only source that can prove
|
|
25
|
+
* `not-handle`, so `not-handle.via` is narrowed
|
|
26
|
+
* to it in the type.
|
|
27
|
+
*
|
|
28
|
+
* `external-classifier` is a third `via` value (a full member of
|
|
29
|
+
* `EvidenceSourceId`) reserved for post-audit attribution: its implementation is
|
|
30
|
+
* *not* in `EVIDENCE_SOURCES` and is *not* called from `identifyHandle` or
|
|
31
|
+
* anything downstream, so the walk stays synchronous. The `classify` command
|
|
32
|
+
* folds its verdict through `combineVerdicts` with the same invariant.
|
|
33
|
+
*
|
|
34
|
+
* `declaration-resolution` is itself a nested seam: one `ResolutionImplementation`
|
|
35
|
+
* per `Format`, registered against `RESOLUTION_IMPLEMENTATIONS`. A caller asks the
|
|
36
|
+
* interface and never learns which implementation answered — no caller names a
|
|
37
|
+
* format, and no format name appears above an implementation's own module.
|
|
38
|
+
*/
|
|
39
|
+
import { classifyRootIdentifier, deriveMemberPath, deriveThisMemberPath } from './receiverRoot.js';
|
|
40
|
+
import { classifyGoRootIdentifier, buildGoImportMap, buildGoBindingEnv, classifyGoBindings, describeGoUnprovenCause, } from '../languages/go/goResolution.js';
|
|
41
|
+
import { parseSql, DEFAULT_SQL_DIALECT } from '../languages/sql/sqlAst.js';
|
|
42
|
+
import { extractTsWithinFileProvenance } from './provenance.js';
|
|
43
|
+
import { classifyTsWithinFileProvenance } from './tsExpressionDescriptor.js';
|
|
44
|
+
// ─── Combination rule ────────────────────────────────────────────────────────
|
|
45
|
+
/**
|
|
46
|
+
* Fold the evidence sources' verdicts into one, exhaustive over `HandleVerdict`
|
|
47
|
+
* with no `default` arm. The precedence is `handle` > `not-handle` > `unproven`:
|
|
48
|
+
*
|
|
49
|
+
* - any `handle` wins and records which source proved it;
|
|
50
|
+
* - else any `not-handle` wins (only `declaration-resolution` can produce it,
|
|
51
|
+
* so this arm is decided by that one source);
|
|
52
|
+
* - else `unproven` carrying the union of reasons.
|
|
53
|
+
*
|
|
54
|
+
* @param verdicts — the verdicts from the walk-time evidence sources, in
|
|
55
|
+
* registration order.
|
|
56
|
+
* @returns the folded verdict: any `handle` (with its `via`), else `not-handle`,
|
|
57
|
+
* else `unproven` carrying the union of non-empty reasons.
|
|
58
|
+
*/
|
|
59
|
+
export function combineVerdicts(verdicts) {
|
|
60
|
+
const unprovenReasons = [];
|
|
61
|
+
let notHandle = null;
|
|
62
|
+
for (const verdict of verdicts) {
|
|
63
|
+
if (verdict.kind === 'handle') {
|
|
64
|
+
return verdict; // handle wins immediately, records `via`
|
|
65
|
+
}
|
|
66
|
+
if (verdict.kind === 'not-handle') {
|
|
67
|
+
notHandle = verdict;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// unproven
|
|
71
|
+
unprovenReasons.push(verdict.reason);
|
|
72
|
+
}
|
|
73
|
+
if (notHandle !== null) {
|
|
74
|
+
return notHandle; // not-handle beats unproven
|
|
75
|
+
}
|
|
76
|
+
// An empty reason is a source *staying silent* rather than asserting an
|
|
77
|
+
// unproven cause (`sql-argument` sees no SQL argument). Drop those so the
|
|
78
|
+
// combined reason is the union of the sources that actually have a cause.
|
|
79
|
+
const reasons = [...new Set(unprovenReasons)].filter((r) => r.length > 0);
|
|
80
|
+
return {
|
|
81
|
+
kind: 'unproven',
|
|
82
|
+
reason: reasons.length === 0 ? 'no evidence source produced a verdict' : reasons.join('; '),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** The TS word for an unproven, un-annotated `field` declaration. */
|
|
86
|
+
export const TYPESCRIPT_FIELD_WORDING = 'class field';
|
|
87
|
+
/** The Go word for an unproven, un-annotated `field` declaration. */
|
|
88
|
+
export const GO_FIELD_WORDING = 'struct field';
|
|
89
|
+
/**
|
|
90
|
+
* Why a root classified `unproven` could not be resolved to handle or
|
|
91
|
+
* not-handle. The single implementation behind the two `resolveRoot`s; the
|
|
92
|
+
* former `unprovenCause` / `goUnprovenCause` pair ceased to exist as a pair and
|
|
93
|
+
* its two halves became one function parameterized on the one `field` word that
|
|
94
|
+
* differs.
|
|
95
|
+
*
|
|
96
|
+
* @param root — the receiver's base identifier being described.
|
|
97
|
+
* @param provenance — the `has(key)` predicate over the file's DB-provenance set.
|
|
98
|
+
* @param binding — the root's binding in the file scope chain, or `undefined`.
|
|
99
|
+
* @param fieldNoValueWord — the format's word for an un-annotated field
|
|
100
|
+
* (`class field` / `struct field`).
|
|
101
|
+
* @returns a human-readable reason the root stayed `unproven`.
|
|
102
|
+
*/
|
|
103
|
+
export function describeUnprovenCause(root, provenance, binding, fieldNoValueWord) {
|
|
104
|
+
if (provenance.has(root))
|
|
105
|
+
return 'resolved to a DB handle (misclassified)';
|
|
106
|
+
if (!binding)
|
|
107
|
+
return 'has no binding in the file scope chain';
|
|
108
|
+
switch (binding.kind) {
|
|
109
|
+
case 'import':
|
|
110
|
+
return `imports from '${binding.source ?? '?'}' — an unrecognized package (not in the database-packages manifest)`;
|
|
111
|
+
case 'parameter':
|
|
112
|
+
return binding.typeText ? `parameter type \`${binding.typeText}\` is indeterminate` : 'is an un-annotated parameter';
|
|
113
|
+
case 'variable':
|
|
114
|
+
if (binding.typeText)
|
|
115
|
+
return `declared type \`${binding.typeText}\` is indeterminate`;
|
|
116
|
+
return binding.value ? 'is an un-annotated factory return' : 'is an un-annotated declaration';
|
|
117
|
+
case 'field':
|
|
118
|
+
if (binding.typeText)
|
|
119
|
+
return `field type \`${binding.typeText}\` is indeterminate`;
|
|
120
|
+
return binding.value ? 'is an un-annotated field initializer' : `is an un-annotated ${fieldNoValueWord}`;
|
|
121
|
+
case 'function':
|
|
122
|
+
case 'method':
|
|
123
|
+
return 'is a function reference without a DB return type';
|
|
124
|
+
case 'class':
|
|
125
|
+
return 'is a class reference without DB provenance';
|
|
126
|
+
case 'type':
|
|
127
|
+
return 'is a local type name';
|
|
128
|
+
default:
|
|
129
|
+
return 'is indeterminate';
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// ─── Resolution implementations (nested seam) ────────────────────────────────
|
|
133
|
+
const NON_CODE_FORMATS = ['css', 'scss', 'json', 'sql', 'markup'];
|
|
134
|
+
/** A non-code file has no executable receiver, so its root is `not-handle` and
|
|
135
|
+
* its within-file provenance is the empty map. */
|
|
136
|
+
function nonCodeResolution(format) {
|
|
137
|
+
return {
|
|
138
|
+
format,
|
|
139
|
+
resolveRoot(site) {
|
|
140
|
+
return {
|
|
141
|
+
root: site.root,
|
|
142
|
+
disposition: 'not-handle',
|
|
143
|
+
reason: `a ${format} file carries no executable receiver, so \`${site.root}\` is not a DB handle`,
|
|
144
|
+
};
|
|
145
|
+
},
|
|
146
|
+
extract() {
|
|
147
|
+
return { kind: 'none' };
|
|
148
|
+
},
|
|
149
|
+
classify() {
|
|
150
|
+
return new Map();
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The TypeScript-family implementation, shared by `typescript`/`tsx`/`javascript`.
|
|
156
|
+
* The three formats differ only by file extension; their receiver resolution is
|
|
157
|
+
* identical, so one implementation serves all three keys.
|
|
158
|
+
*/
|
|
159
|
+
const typescriptResolution = {
|
|
160
|
+
format: 'typescript',
|
|
161
|
+
resolveRoot(site, facts) {
|
|
162
|
+
if (facts.resolution.dialect !== 'ts') {
|
|
163
|
+
return { root: site.root, disposition: 'unproven', reason: 'missing TypeScript resolution environment' };
|
|
164
|
+
}
|
|
165
|
+
const env = facts.resolution.env;
|
|
166
|
+
// Clear the ambient-rejection + import-resolution out-params before
|
|
167
|
+
// classifying — the reason below reads them only when this classification
|
|
168
|
+
// set them, never a stale value from a prior site sharing the env.
|
|
169
|
+
env.ambientRejectionReason = undefined;
|
|
170
|
+
env.importResolutionReason = undefined;
|
|
171
|
+
env.importNotHandleReason = undefined;
|
|
172
|
+
const classified = classifyRootIdentifier(site.root, env, 0, {
|
|
173
|
+
thisField: site.thisField,
|
|
174
|
+
memberPath: site.thisField
|
|
175
|
+
? deriveThisMemberPath(site.root, site.receiver)
|
|
176
|
+
: deriveMemberPath(site.root, site.receiver, false),
|
|
177
|
+
thisHeritage: site.thisHeritage,
|
|
178
|
+
scope: site.scope,
|
|
179
|
+
});
|
|
180
|
+
// The package discriminant (not the method name) decides the disposition: an
|
|
181
|
+
// unrecognized root is `unproven` (cannot-fire), never downgraded by method
|
|
182
|
+
// shape — `join` is `Array.prototype.join` and also `SQL JOIN`.
|
|
183
|
+
const disposition = classified;
|
|
184
|
+
return {
|
|
185
|
+
root: site.root,
|
|
186
|
+
disposition,
|
|
187
|
+
reason: disposition === 'unproven'
|
|
188
|
+
? env.ambientRejectionReason ?? env.importResolutionReason ?? describeUnprovenCause(site.root, env.provenance, env.bindings.get(site.root), TYPESCRIPT_FIELD_WORDING)
|
|
189
|
+
: disposition === 'not-handle'
|
|
190
|
+
? env.importNotHandleReason ?? disposition
|
|
191
|
+
: disposition,
|
|
192
|
+
};
|
|
193
|
+
},
|
|
194
|
+
extract(ast, adapter, sourceCode) {
|
|
195
|
+
return { kind: 'ts', projection: extractTsWithinFileProvenance(ast, adapter, sourceCode) };
|
|
196
|
+
},
|
|
197
|
+
classify(extract, extraSeeds = new Map()) {
|
|
198
|
+
if (extract.kind !== 'ts') {
|
|
199
|
+
throw new Error(`TypeScript resolution classified a ${extract.kind} within-file extract`);
|
|
200
|
+
}
|
|
201
|
+
return classifyTsWithinFileProvenance(extract.projection, extraSeeds);
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
/** The Go implementation. */
|
|
205
|
+
const goResolution = {
|
|
206
|
+
format: 'go',
|
|
207
|
+
resolveRoot(site, facts) {
|
|
208
|
+
if (facts.resolution.dialect !== 'go') {
|
|
209
|
+
return { root: site.root, disposition: 'unproven', reason: 'missing Go resolution environment' };
|
|
210
|
+
}
|
|
211
|
+
const env = facts.resolution.env;
|
|
212
|
+
const classified = classifyGoRootIdentifier(site.root, env);
|
|
213
|
+
// The package discriminant (not the method name) decides the disposition: an
|
|
214
|
+
// unrecognized root is `unproven` (cannot-fire), never downgraded by method
|
|
215
|
+
// shape — `join` is `Array.prototype.join` and also `SQL JOIN`.
|
|
216
|
+
const disposition = classified;
|
|
217
|
+
return {
|
|
218
|
+
root: site.root,
|
|
219
|
+
disposition,
|
|
220
|
+
reason: disposition === 'unproven'
|
|
221
|
+
? describeGoUnprovenCause(site.root, env)
|
|
222
|
+
: disposition,
|
|
223
|
+
};
|
|
224
|
+
},
|
|
225
|
+
extract(ast, adapter, sourceCode) {
|
|
226
|
+
return {
|
|
227
|
+
kind: 'go',
|
|
228
|
+
projection: {
|
|
229
|
+
imports: buildGoImportMap(ast, adapter),
|
|
230
|
+
bindings: buildGoBindingEnv(ast, adapter, sourceCode),
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
},
|
|
234
|
+
classify(extract, extraSeeds = new Map(), goPackageBindings) {
|
|
235
|
+
if (extract.kind !== 'go') {
|
|
236
|
+
throw new Error(`Go resolution classified a ${extract.kind} within-file extract`);
|
|
237
|
+
}
|
|
238
|
+
// `classifyGoBindings` seeds DB packages + classifies every binding; the
|
|
239
|
+
// cross-file `extraSeeds` merge is the one step `computeTsWithinFileProvenance`
|
|
240
|
+
// applied *outside* `buildGoWithinFileProvenance`, so it is reproduced here.
|
|
241
|
+
const prov = classifyGoBindings(extract.projection.imports, extract.projection.bindings, goPackageBindings);
|
|
242
|
+
for (const [name, evidence] of extraSeeds) {
|
|
243
|
+
if (!prov.has(name))
|
|
244
|
+
prov.set(name, evidence);
|
|
245
|
+
}
|
|
246
|
+
return prov;
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
export const RESOLUTION_IMPLEMENTATIONS = {
|
|
250
|
+
typescript: typescriptResolution,
|
|
251
|
+
tsx: typescriptResolution,
|
|
252
|
+
javascript: typescriptResolution,
|
|
253
|
+
go: goResolution,
|
|
254
|
+
css: nonCodeResolution('css'),
|
|
255
|
+
scss: nonCodeResolution('scss'),
|
|
256
|
+
json: nonCodeResolution('json'),
|
|
257
|
+
sql: nonCodeResolution('sql'),
|
|
258
|
+
markup: nonCodeResolution('markup'),
|
|
259
|
+
};
|
|
260
|
+
// ─── Evidence sources ────────────────────────────────────────────────────────
|
|
261
|
+
/**
|
|
262
|
+
* `sql-argument`: the call's argument parses as a SQL statement, so the receiver
|
|
263
|
+
* must be a DB handle. It can only prove `handle`; on an absent argument it
|
|
264
|
+
* stays *silent* — `unproven` with an empty reason that `combineVerdicts` drops,
|
|
265
|
+
* so it never contributes a cause to the cannot-fire report.
|
|
266
|
+
*
|
|
267
|
+
* Spec 70 R3: the proof is the parsed format, not a method-name or package list.
|
|
268
|
+
* `site.sqlArgument` is the extracted SQL string (already stripped of its
|
|
269
|
+
* surrounding quotes/backticks); it proves `handle` only when {@link parseSql}
|
|
270
|
+
* accepts it. Spec 70 R2 says parsing a literal does not require *proving* the
|
|
271
|
+
* site's dialect first — one grammar is named and the parse is attempted under
|
|
272
|
+
* it — so the source parses under the corpus's named dialect
|
|
273
|
+
* (`facts.sqlDialect`), or under {@link DEFAULT_SQL_DIALECT} when that is `null`.
|
|
274
|
+
* An argument that does *not* parse is a genuine `unproven` with a reason — "I
|
|
275
|
+
* was handed SQL-shaped text and could not read it" — which surfaces as
|
|
276
|
+
* `cannot-fire`, never `clean` (criterion 3). When the dialect was undetermined,
|
|
277
|
+
* that reason names **both** the parse failure and the undetermined dialect (the
|
|
278
|
+
* failure may be dialect-specific syntax), rather than abstaining before the
|
|
279
|
+
* parse. A string that never reaches a data-access call site is not parsed at
|
|
280
|
+
* all (R5), so a non-SQL string argument on a non-query-shaped call is not this
|
|
281
|
+
* source's concern.
|
|
282
|
+
*/
|
|
283
|
+
const sqlArgumentSource = {
|
|
284
|
+
id: 'sql-argument',
|
|
285
|
+
evaluate(site, facts) {
|
|
286
|
+
if (site.sqlArgument === null)
|
|
287
|
+
return { kind: 'unproven', reason: '' };
|
|
288
|
+
const parsed = parseSql(site.sqlArgument, facts.sqlDialect ?? DEFAULT_SQL_DIALECT);
|
|
289
|
+
if (parsed.ok) {
|
|
290
|
+
// A parse success is not enough to prove a handle: node-sql-parser accepts
|
|
291
|
+
// fragments that are not standalone data-access statements (e.g. a bare
|
|
292
|
+
// `RETURN return_type` — the `RETURN` keyword plus an expression — which is
|
|
293
|
+
// how tree-sitter field names like `return_type`/`returnType` leak through
|
|
294
|
+
// and mis-prove a TreeSitterNode receiver as a DB handle). Only a statement
|
|
295
|
+
// of a real query/mutation kind (SELECT/INSERT/UPDATE/…), or a recognized
|
|
296
|
+
// standalone transaction-control marker, is unambiguously SQL that names a
|
|
297
|
+
// database receiver. Anything else parses to `kind === 'other'` with no
|
|
298
|
+
// statement type and stays unproven so declaration-resolution decides.
|
|
299
|
+
const astType = parsed.ast.type;
|
|
300
|
+
const isDataAccess = parsed.kind !== 'other' || astType === 'transaction';
|
|
301
|
+
if (isDataAccess)
|
|
302
|
+
return { kind: 'handle', via: 'sql-argument' };
|
|
303
|
+
return {
|
|
304
|
+
kind: 'unproven',
|
|
305
|
+
reason: `the SQL argument parses but is not a standalone data-access statement (kind: ${parsed.kind})`,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
if (facts.sqlDialect === null) {
|
|
309
|
+
return {
|
|
310
|
+
kind: 'unproven',
|
|
311
|
+
reason: `node-sql-parser could not parse the SQL argument under the default ${DEFAULT_SQL_DIALECT} grammar, and the dialect is undetermined — the failure may be dialect-specific syntax: ${parsed.reason}`,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
return { kind: 'unproven', reason: `node-sql-parser could not parse the SQL argument under ${facts.sqlDialect}: ${parsed.reason}` };
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* `declaration-resolution`: the receiver's declaration resolves to a DB handle
|
|
319
|
+
* (package import, type annotation, or binding). The only source that can prove
|
|
320
|
+
* `not-handle`. It delegates to the format's `ResolutionImplementation`.
|
|
321
|
+
*/
|
|
322
|
+
const declarationResolutionSource = {
|
|
323
|
+
id: 'declaration-resolution',
|
|
324
|
+
evaluate(site, facts) {
|
|
325
|
+
const resolved = RESOLUTION_IMPLEMENTATIONS[site.format].resolveRoot(site, facts);
|
|
326
|
+
switch (resolved.disposition) {
|
|
327
|
+
case 'handle':
|
|
328
|
+
return { kind: 'handle', via: 'declaration-resolution' };
|
|
329
|
+
case 'not-handle':
|
|
330
|
+
return { kind: 'not-handle', via: 'declaration-resolution' };
|
|
331
|
+
case 'unproven':
|
|
332
|
+
return { kind: 'unproven', reason: resolved.reason };
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
export const EVIDENCE_SOURCES = {
|
|
337
|
+
'sql-argument': sqlArgumentSource,
|
|
338
|
+
'declaration-resolution': declarationResolutionSource,
|
|
339
|
+
};
|
|
340
|
+
// ─── The entry point ──────────────────────────────────────────────────────────
|
|
341
|
+
/**
|
|
342
|
+
* The single handle-identification entry point: fold both evidence sources.
|
|
343
|
+
*
|
|
344
|
+
* @param site — the query-shaped call site whose handle-ness is being resolved.
|
|
345
|
+
* @param facts — the flat + deep resolution facts the sources read.
|
|
346
|
+
* @returns the combined `HandleVerdict` from both walk-time sources.
|
|
347
|
+
*/
|
|
348
|
+
export function identifyHandle(site, facts) {
|
|
349
|
+
return combineVerdicts([
|
|
350
|
+
EVIDENCE_SOURCES['sql-argument'].evaluate(site, facts),
|
|
351
|
+
EVIDENCE_SOURCES['declaration-resolution'].evaluate(site, facts),
|
|
352
|
+
]);
|
|
353
|
+
}
|
|
354
|
+
/** The accurate disposition when no classifier is configured: the question cannot
|
|
355
|
+
* be answered, so the source abstains with this exact reason. */
|
|
356
|
+
export const NO_EXTERNAL_CLASSIFIER = {
|
|
357
|
+
kind: 'unproven',
|
|
358
|
+
reason: 'no external classifier configured',
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* The single upper threshold (the "band") the tool applies to a classifier's
|
|
362
|
+
* confidence. At or above it the site is attributed `handle` with the confidence
|
|
363
|
+
* and provenance; below it the source abstains — with the confidence recorded in
|
|
364
|
+
* the reason so the near-miss is visible, not discarded. A low confidence is
|
|
365
|
+
* absence of evidence, not evidence of absence: this mapper proves or abstains,
|
|
366
|
+
* never `not-handle`.
|
|
367
|
+
*
|
|
368
|
+
* @param result — the classifier's confidence plus opaque provenance.
|
|
369
|
+
* @param threshold — the handle threshold; at or above it the site is `handle`.
|
|
370
|
+
* @returns `handle` (with confidence + provenance) at/above threshold, else
|
|
371
|
+
* `unproven` with the confidence recorded in the reason.
|
|
372
|
+
*/
|
|
373
|
+
export function externalClassifierVerdict(result, threshold) {
|
|
374
|
+
const { confidence, provenance } = result;
|
|
375
|
+
if (!Number.isFinite(confidence) || confidence < 0 || confidence > 1) {
|
|
376
|
+
return {
|
|
377
|
+
kind: 'unproven',
|
|
378
|
+
reason: `external classifier confidence ${confidence} is out of range [0, 1]`,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
if (confidence < threshold) {
|
|
382
|
+
return {
|
|
383
|
+
kind: 'unproven',
|
|
384
|
+
reason: `external classifier confidence ${confidence} is below the handle threshold ${threshold}`,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
return { kind: 'handle', via: 'external-classifier', confidence, provenance };
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Validate classifier configuration, refusing loudly on a missing or non-finite
|
|
391
|
+
* threshold. Returns the config on success; throws otherwise. The threshold has
|
|
392
|
+
* no default — a guessed number would be a silent wrong answer at the
|
|
393
|
+
* configuration layer.
|
|
394
|
+
*
|
|
395
|
+
* @param config — the raw, unvalidated classifier configuration.
|
|
396
|
+
* @returns the validated `ExternalClassifierConfig` with a finite `threshold` in
|
|
397
|
+
* [0, 1].
|
|
398
|
+
*/
|
|
399
|
+
export function validateExternalClassifierConfig(config) {
|
|
400
|
+
if (typeof config !== 'object' || config === null) {
|
|
401
|
+
throw new Error('external classifier config must be an object with a `threshold`');
|
|
402
|
+
}
|
|
403
|
+
const threshold = config.threshold;
|
|
404
|
+
if (typeof threshold !== 'number' || !Number.isFinite(threshold) || threshold < 0 || threshold > 1) {
|
|
405
|
+
throw new Error('external classifier `threshold` is required and must be a finite number in [0, 1]');
|
|
406
|
+
}
|
|
407
|
+
return { threshold };
|
|
408
|
+
}
|
|
409
|
+
const _allEvidenceSourcesRegistered = true;
|
|
410
|
+
const _allFormatsImplemented = true;
|
|
411
|
+
// Liveness seeds — each names a discriminant and is legal only while the residue
|
|
412
|
+
// above is `never`. Remove one registration, the residue widens to that name,
|
|
413
|
+
// the assignment compiles, and the `@ts-expect-error` goes unused → the build
|
|
414
|
+
// fails. Same idiom as `phase/seeded-defects.ts`, colocated so the seam's
|
|
415
|
+
// totality is checked wherever the seam is compiled.
|
|
416
|
+
// @ts-expect-error — an unregistered walk-time source would make this a non-never type
|
|
417
|
+
const _missingEvidenceSource = 'sql-argument';
|
|
418
|
+
// @ts-expect-error — an unimplemented format would make this a non-never type
|
|
419
|
+
const _missingFormat = 'go';
|
|
420
|
+
// @ts-expect-error — a prove-or-abstain source cannot disprove handle-ness (narrowing liveness)
|
|
421
|
+
const _proveOrAbstainCannotDisprove = { kind: 'not-handle', via: 'declaration-resolution' };
|
|
422
|
+
void _allEvidenceSourcesRegistered;
|
|
423
|
+
void _allFormatsImplemented;
|
|
424
|
+
void _missingEvidenceSource;
|
|
425
|
+
void _missingFormat;
|
|
426
|
+
void _proveOrAbstainCannotDisprove;
|
|
427
|
+
//# sourceMappingURL=handleIdentification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleIdentification.js","sourceRoot":"","sources":["../../src/analyzers/handleIdentification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest staleness — the ecosystem-list self-check (Part 2b).
|
|
3
|
+
*
|
|
4
|
+
* The package manifest does not participate in classification. It is a staleness
|
|
5
|
+
* report — "our list names drizzle-orm, this project doesn't depend on it" —
|
|
6
|
+
* emitted as a diagnostic and affecting no verdict. A receiver classifies as a
|
|
7
|
+
* DB handle by declaration resolution and SQL-argument evidence, never by
|
|
8
|
+
* whether the project's package.json names the package.
|
|
9
|
+
*
|
|
10
|
+
* "Our list" is the TS implementation's `DB_PACKAGES` (tsEcosystem.ts, npm
|
|
11
|
+
* packages) and the Go implementation's `GO_DB_PACKAGES` (goResolution.ts, Go
|
|
12
|
+
* import paths). "This project depends on" is the union of package.json
|
|
13
|
+
* `dependencies`/`devDependencies`/`peerDependencies` (TS) and go.mod `require`
|
|
14
|
+
* lines (Go). The gap — a name our list carries that the project does not
|
|
15
|
+
* actually depend on — is the only per-project signal that a hardcoded ecosystem
|
|
16
|
+
* list has drifted from the ecosystem it claims to describe.
|
|
17
|
+
*
|
|
18
|
+
* This module reads the two manifests but owns nothing in them: `DB_PACKAGES` /
|
|
19
|
+
* `GO_DB_PACKAGES` stay behind their implementations' interfaces, read here only
|
|
20
|
+
* because this module *is* part of the resolution layer that owns them. Callers
|
|
21
|
+
* above the interface surface the resulting {@link ManifestStaleEntry} list, not
|
|
22
|
+
* the sets.
|
|
23
|
+
*/
|
|
24
|
+
/** One stale entry: a package our ecosystem list names that the project doesn't. */
|
|
25
|
+
export interface ManifestStaleEntry {
|
|
26
|
+
ecosystem: 'ts' | 'go';
|
|
27
|
+
/** The package name (TS) or import path (Go) our list carries. */
|
|
28
|
+
package: string;
|
|
29
|
+
/** Absolute path to the manifest the comparison was made against. */
|
|
30
|
+
manifestPath: string;
|
|
31
|
+
}
|
|
32
|
+
/** The project's declared dependency names, plus where they were read from. */
|
|
33
|
+
export interface ProjectManifest {
|
|
34
|
+
/** Union of package.json dependencies + go.mod requires. */
|
|
35
|
+
names: ReadonlySet<string>;
|
|
36
|
+
/** Absolute path to package.json, or null when absent/unreadable. */
|
|
37
|
+
tsManifestPath: string | null;
|
|
38
|
+
/** Absolute path to go.mod, or null when absent/unreadable. */
|
|
39
|
+
goManifestPath: string | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Read the project's dependency names from package.json (TS) and go.mod (Go).
|
|
43
|
+
* A missing or unreadable manifest contributes nothing — an empty manifest means
|
|
44
|
+
* "no manifest to compare against", which produces no staleness (see
|
|
45
|
+
* {@link computeManifestStaleness}).
|
|
46
|
+
*
|
|
47
|
+
* @param projectRoot — the project root containing package.json and/or go.mod.
|
|
48
|
+
* @returns the union of declared dependency names plus the path to each manifest
|
|
49
|
+
* actually read (`null` when absent/unreadable).
|
|
50
|
+
*/
|
|
51
|
+
export declare function readProjectManifest(projectRoot: string): Promise<ProjectManifest>;
|
|
52
|
+
/**
|
|
53
|
+
* The gap between our ecosystem lists and the project's manifest: every package
|
|
54
|
+
* `DB_PACKAGES` / `GO_DB_PACKAGES` names that the project does not depend on.
|
|
55
|
+
* Emitted only when the corresponding manifest exists — an absent package.json
|
|
56
|
+
* produces no TS staleness (there is nothing to be stale against), and likewise
|
|
57
|
+
* for go.mod and the Go list. Affects no verdict.
|
|
58
|
+
*
|
|
59
|
+
* @param manifest — the project's declared names and manifest paths.
|
|
60
|
+
* @returns the stale entries: every ecosystem-list package the project does not
|
|
61
|
+
* depend on, restricted to manifests that actually exist.
|
|
62
|
+
*/
|
|
63
|
+
export declare function computeManifestStaleness(manifest: ProjectManifest): ManifestStaleEntry[];
|
|
64
|
+
//# sourceMappingURL=manifestStaleness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifestStaleness.d.ts","sourceRoot":"","sources":["../../src/analyzers/manifestStaleness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,oFAAoF;AACpF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,qEAAqE;IACrE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,+DAA+D;IAC/D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,GAAG,kBAAkB,EAAE,CAaxF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest staleness — the ecosystem-list self-check (Part 2b).
|
|
3
|
+
*
|
|
4
|
+
* The package manifest does not participate in classification. It is a staleness
|
|
5
|
+
* report — "our list names drizzle-orm, this project doesn't depend on it" —
|
|
6
|
+
* emitted as a diagnostic and affecting no verdict. A receiver classifies as a
|
|
7
|
+
* DB handle by declaration resolution and SQL-argument evidence, never by
|
|
8
|
+
* whether the project's package.json names the package.
|
|
9
|
+
*
|
|
10
|
+
* "Our list" is the TS implementation's `DB_PACKAGES` (tsEcosystem.ts, npm
|
|
11
|
+
* packages) and the Go implementation's `GO_DB_PACKAGES` (goResolution.ts, Go
|
|
12
|
+
* import paths). "This project depends on" is the union of package.json
|
|
13
|
+
* `dependencies`/`devDependencies`/`peerDependencies` (TS) and go.mod `require`
|
|
14
|
+
* lines (Go). The gap — a name our list carries that the project does not
|
|
15
|
+
* actually depend on — is the only per-project signal that a hardcoded ecosystem
|
|
16
|
+
* list has drifted from the ecosystem it claims to describe.
|
|
17
|
+
*
|
|
18
|
+
* This module reads the two manifests but owns nothing in them: `DB_PACKAGES` /
|
|
19
|
+
* `GO_DB_PACKAGES` stay behind their implementations' interfaces, read here only
|
|
20
|
+
* because this module *is* part of the resolution layer that owns them. Callers
|
|
21
|
+
* above the interface surface the resulting {@link ManifestStaleEntry} list, not
|
|
22
|
+
* the sets.
|
|
23
|
+
*/
|
|
24
|
+
import { readFile } from 'node:fs/promises';
|
|
25
|
+
import path from 'node:path';
|
|
26
|
+
import { DB_PACKAGES } from './tsEcosystem.js';
|
|
27
|
+
import { GO_DB_PACKAGES } from '../languages/go/goResolution.js';
|
|
28
|
+
/**
|
|
29
|
+
* Read the project's dependency names from package.json (TS) and go.mod (Go).
|
|
30
|
+
* A missing or unreadable manifest contributes nothing — an empty manifest means
|
|
31
|
+
* "no manifest to compare against", which produces no staleness (see
|
|
32
|
+
* {@link computeManifestStaleness}).
|
|
33
|
+
*
|
|
34
|
+
* @param projectRoot — the project root containing package.json and/or go.mod.
|
|
35
|
+
* @returns the union of declared dependency names plus the path to each manifest
|
|
36
|
+
* actually read (`null` when absent/unreadable).
|
|
37
|
+
*/
|
|
38
|
+
export async function readProjectManifest(projectRoot) {
|
|
39
|
+
const names = new Set();
|
|
40
|
+
let tsManifestPath = null;
|
|
41
|
+
let goManifestPath = null;
|
|
42
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
43
|
+
try {
|
|
44
|
+
const raw = await readFile(packageJsonPath, 'utf-8');
|
|
45
|
+
const pkg = JSON.parse(raw);
|
|
46
|
+
for (const group of [pkg.dependencies, pkg.devDependencies, pkg.peerDependencies]) {
|
|
47
|
+
for (const name of Object.keys(group ?? {}))
|
|
48
|
+
names.add(name);
|
|
49
|
+
}
|
|
50
|
+
tsManifestPath = packageJsonPath;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// no package.json (or unreadable) — nothing to compare the TS list against
|
|
54
|
+
}
|
|
55
|
+
const goModPath = path.join(projectRoot, 'go.mod');
|
|
56
|
+
try {
|
|
57
|
+
const raw = await readFile(goModPath, 'utf-8');
|
|
58
|
+
let inRequireBlock = false;
|
|
59
|
+
for (const line of raw.split('\n')) {
|
|
60
|
+
const t = line.trim();
|
|
61
|
+
if (t.startsWith('require (')) {
|
|
62
|
+
inRequireBlock = true;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (inRequireBlock) {
|
|
66
|
+
if (t === ')') {
|
|
67
|
+
inRequireBlock = false;
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const mod = t.split(/\s+/)[0];
|
|
71
|
+
if (mod)
|
|
72
|
+
names.add(mod);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (t.startsWith('require ')) {
|
|
76
|
+
const mod = t.slice('require '.length).trim().split(/\s+/)[0];
|
|
77
|
+
if (mod)
|
|
78
|
+
names.add(mod);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
goManifestPath = goModPath;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// no go.mod (or unreadable) — nothing to compare the Go list against
|
|
85
|
+
}
|
|
86
|
+
return { names, tsManifestPath, goManifestPath };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The gap between our ecosystem lists and the project's manifest: every package
|
|
90
|
+
* `DB_PACKAGES` / `GO_DB_PACKAGES` names that the project does not depend on.
|
|
91
|
+
* Emitted only when the corresponding manifest exists — an absent package.json
|
|
92
|
+
* produces no TS staleness (there is nothing to be stale against), and likewise
|
|
93
|
+
* for go.mod and the Go list. Affects no verdict.
|
|
94
|
+
*
|
|
95
|
+
* @param manifest — the project's declared names and manifest paths.
|
|
96
|
+
* @returns the stale entries: every ecosystem-list package the project does not
|
|
97
|
+
* depend on, restricted to manifests that actually exist.
|
|
98
|
+
*/
|
|
99
|
+
export function computeManifestStaleness(manifest) {
|
|
100
|
+
const stale = [];
|
|
101
|
+
if (manifest.tsManifestPath !== null) {
|
|
102
|
+
for (const pkg of DB_PACKAGES) {
|
|
103
|
+
if (!manifest.names.has(pkg))
|
|
104
|
+
stale.push({ ecosystem: 'ts', package: pkg, manifestPath: manifest.tsManifestPath });
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (manifest.goManifestPath !== null) {
|
|
108
|
+
for (const pkg of GO_DB_PACKAGES) {
|
|
109
|
+
if (!manifest.names.has(pkg))
|
|
110
|
+
stale.push({ ecosystem: 'go', package: pkg, manifestPath: manifest.goManifestPath });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return stale;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=manifestStaleness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifestStaleness.js","sourceRoot":"","sources":["../../src/analyzers/manifestStaleness.ts"],"names":[],"mappings":"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"}
|