code-auditor-mcp 5.0.2 → 5.3.3
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 +326 -3
- package/README.md +24 -2
- package/configs/hhra-compat.json +12 -118
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +11 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +57 -52
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +9 -4
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +8 -25
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +35 -14
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.js +4 -4
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +1 -1
- package/dist/analyzers/ruleTiming.js +2 -2
- package/dist/analyzers/ruleTiming.js.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +22 -26
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +0 -2
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +4 -5
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +32 -15
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +189 -115
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -2
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +0 -5
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -10
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +7 -49
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +51 -3
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/config.js +0 -2
- package/dist/analyzers/universal/schema/config.js.map +1 -1
- package/dist/analyzers/universal/schema/types.d.ts +0 -2
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
- package/dist/analyzers/vendorSurfaces.d.ts +126 -0
- package/dist/analyzers/vendorSurfaces.d.ts.map +1 -0
- package/dist/analyzers/vendorSurfaces.js +580 -0
- package/dist/analyzers/vendorSurfaces.js.map +1 -0
- package/dist/auditRunner.d.ts +9 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +198 -146
- package/dist/auditRunner.js.map +1 -1
- package/dist/cacheGc.d.ts +88 -0
- package/dist/cacheGc.d.ts.map +1 -0
- package/dist/cacheGc.js +196 -0
- package/dist/cacheGc.js.map +1 -0
- package/dist/churn/churnExtractor.d.ts +0 -1
- package/dist/churn/churnExtractor.d.ts.map +1 -1
- package/dist/churn/churnExtractor.js +2 -4
- package/dist/churn/churnExtractor.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +260 -47
- package/dist/cli.js.map +1 -1
- package/dist/codeIndex/migrations.d.ts.map +1 -1
- package/dist/codeIndex/migrations.js +4 -3
- package/dist/codeIndex/migrations.js.map +1 -1
- package/dist/codeIndexDB.d.ts +11 -2
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +27 -2
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/config/configLoader.d.ts +60 -7
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +252 -60
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +137 -43
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +174 -101
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts +1 -1
- package/dist/config/effectiveConfig.d.ts.map +1 -1
- package/dist/config/effectiveConfig.js +4 -6
- package/dist/config/effectiveConfig.js.map +1 -1
- package/dist/config/pathProfiles.d.ts +4 -3
- package/dist/config/pathProfiles.d.ts.map +1 -1
- package/dist/config/pathProfiles.js +3 -2
- package/dist/config/pathProfiles.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/main.d.ts +0 -1
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +11 -4
- package/dist/daemon/main.js.map +1 -1
- package/dist/dataPaths.d.ts +32 -9
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +69 -16
- package/dist/dataPaths.js.map +1 -1
- package/dist/hookLog.d.ts +54 -0
- package/dist/hookLog.d.ts.map +1 -0
- package/dist/hookLog.js +105 -0
- package/dist/hookLog.js.map +1 -0
- package/dist/hookLogPath.generated.d.ts +3 -0
- package/dist/hookLogPath.generated.d.ts.map +1 -0
- package/dist/hookLogPath.generated.js +8 -0
- package/dist/hookLogPath.generated.js.map +1 -0
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +1 -1
- package/dist/installConfig.d.ts +15 -2
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +17 -2
- package/dist/installConfig.js.map +1 -1
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +2 -1
- package/dist/installer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +11 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +11 -0
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/types.d.ts +8 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +13 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +135 -18
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/ledger.d.ts +7 -0
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +7 -0
- package/dist/ledger.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +8 -8
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +5 -2
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +5 -0
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +9 -2
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +0 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +36 -33
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +10 -0
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +10 -1
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.d.ts.map +1 -1
- package/dist/mcpAutoIndex.js +2 -1
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/mcpDiagnostics.d.ts +2 -0
- package/dist/mcpDiagnostics.d.ts.map +1 -1
- package/dist/mcpDiagnostics.js +2 -0
- package/dist/mcpDiagnostics.js.map +1 -1
- package/dist/phase/candidates.d.ts +53 -0
- package/dist/phase/candidates.d.ts.map +1 -0
- package/dist/phase/candidates.js +67 -0
- package/dist/phase/candidates.js.map +1 -0
- package/dist/phase/colorMath.d.ts +18 -5
- package/dist/phase/colorMath.d.ts.map +1 -1
- package/dist/phase/colorMath.js +88 -5
- package/dist/phase/colorMath.js.map +1 -1
- package/dist/phase/dataAccessCallsCandidates.js +1 -1
- package/dist/phase/dataAccessCallsCandidates.js.map +1 -1
- package/dist/phase/goFunctionAnalysis.d.ts +2 -2
- package/dist/phase/goFunctionAnalysis.js +2 -2
- package/dist/phase/goFunctions.d.ts +2 -2
- package/dist/phase/goFunctions.js +2 -2
- package/dist/phase/goImports.d.ts +2 -2
- package/dist/phase/goImports.js +2 -2
- package/dist/phase/goSwitches.d.ts +2 -2
- package/dist/phase/goSwitches.js +2 -2
- package/dist/phase/imports.d.ts.map +1 -1
- package/dist/phase/imports.js +1 -0
- package/dist/phase/imports.js.map +1 -1
- package/dist/phase/loopQueryCandidates.js +1 -1
- package/dist/phase/loopQueryCandidates.js.map +1 -1
- package/dist/phase/oracles.d.ts +28 -0
- package/dist/phase/oracles.d.ts.map +1 -1
- package/dist/phase/oracles.js +28 -0
- package/dist/phase/oracles.js.map +1 -1
- package/dist/phase/phaseModel.d.ts +47 -8
- package/dist/phase/phaseModel.d.ts.map +1 -1
- package/dist/phase/phaseModel.js +44 -8
- package/dist/phase/phaseModel.js.map +1 -1
- package/dist/phase/producers.d.ts.map +1 -1
- package/dist/phase/producers.js +24 -17
- package/dist/phase/producers.js.map +1 -1
- package/dist/phase/reachability.d.ts +44 -1
- package/dist/phase/reachability.d.ts.map +1 -1
- package/dist/phase/reachability.js +79 -0
- package/dist/phase/reachability.js.map +1 -1
- package/dist/phase/rules/conventions.d.ts.map +1 -1
- package/dist/phase/rules/conventions.js +6 -2
- package/dist/phase/rules/conventions.js.map +1 -1
- package/dist/phase/rules/crossDomain.d.ts.map +1 -1
- package/dist/phase/rules/crossDomain.js +16 -6
- package/dist/phase/rules/crossDomain.js.map +1 -1
- package/dist/phase/rules/dataAccess.d.ts.map +1 -1
- package/dist/phase/rules/dataAccess.js +13 -0
- package/dist/phase/rules/dataAccess.js.map +1 -1
- package/dist/phase/rules/documentation.d.ts.map +1 -1
- package/dist/phase/rules/documentation.js +11 -1
- package/dist/phase/rules/documentation.js.map +1 -1
- package/dist/phase/rules/dry.d.ts +16 -7
- package/dist/phase/rules/dry.d.ts.map +1 -1
- package/dist/phase/rules/dry.js +51 -32
- package/dist/phase/rules/dry.js.map +1 -1
- package/dist/phase/rules/goRules.d.ts +2 -2
- package/dist/phase/rules/goRules.js +2 -2
- package/dist/phase/rules/secrets.d.ts +22 -8
- package/dist/phase/rules/secrets.d.ts.map +1 -1
- package/dist/phase/rules/secrets.js +75 -69
- package/dist/phase/rules/secrets.js.map +1 -1
- package/dist/phase/rules/styles.d.ts +23 -9
- package/dist/phase/rules/styles.d.ts.map +1 -1
- package/dist/phase/rules/styles.js +61 -15
- package/dist/phase/rules/styles.js.map +1 -1
- package/dist/phase/rules/unreferencedModule.d.ts.map +1 -1
- package/dist/phase/rules/unreferencedModule.js +32 -10
- package/dist/phase/rules/unreferencedModule.js.map +1 -1
- package/dist/phase/runner.d.ts +16 -7
- package/dist/phase/runner.d.ts.map +1 -1
- package/dist/phase/runner.js +32 -20
- package/dist/phase/runner.js.map +1 -1
- package/dist/phase/stringLiterals.d.ts.map +1 -1
- package/dist/phase/stringLiterals.js +16 -7
- package/dist/phase/stringLiterals.js.map +1 -1
- package/dist/phase/stylesCss.d.ts.map +1 -1
- package/dist/phase/stylesCss.js +4 -0
- package/dist/phase/stylesCss.js.map +1 -1
- package/dist/phase/stylesMarkup.d.ts.map +1 -1
- package/dist/phase/stylesMarkup.js +4 -0
- package/dist/phase/stylesMarkup.js.map +1 -1
- package/dist/phase/stylesSource.d.ts.map +1 -1
- package/dist/phase/stylesSource.js +6 -0
- package/dist/phase/stylesSource.js.map +1 -1
- package/dist/phase/testProgram.d.ts +57 -0
- package/dist/phase/testProgram.d.ts.map +1 -0
- package/dist/phase/testProgram.js +244 -0
- package/dist/phase/testProgram.js.map +1 -0
- package/dist/phase/typeDeclarations.d.ts +2 -2
- package/dist/phase/typeDeclarations.js +2 -2
- package/dist/phase/types.d.ts +104 -0
- package/dist/phase/types.d.ts.map +1 -1
- package/dist/pipeline.d.ts +4 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +4 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +1 -171
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +47 -1281
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +0 -6
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +0 -4
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +0 -1
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +0 -7
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/services/auditJobService.d.ts +15 -0
- package/dist/services/auditJobService.d.ts.map +1 -1
- package/dist/services/auditJobService.js +15 -0
- package/dist/services/auditJobService.js.map +1 -1
- package/dist/services/projectTaskHelpers.d.ts +7 -0
- package/dist/services/projectTaskHelpers.d.ts.map +1 -1
- package/dist/services/projectTaskHelpers.js +7 -0
- package/dist/services/projectTaskHelpers.js.map +1 -1
- package/dist/services/whitelistService.d.ts +28 -0
- package/dist/services/whitelistService.d.ts.map +1 -1
- package/dist/services/whitelistService.js +28 -0
- package/dist/services/whitelistService.js.map +1 -1
- package/dist/sqlite/driver.d.ts +17 -1
- package/dist/sqlite/driver.d.ts.map +1 -1
- package/dist/sqlite/driver.js +28 -5
- package/dist/sqlite/driver.js.map +1 -1
- package/dist/styles/cssInJsHarvest.d.ts +36 -0
- package/dist/styles/cssInJsHarvest.d.ts.map +1 -0
- package/dist/styles/cssInJsHarvest.js +78 -0
- package/dist/styles/cssInJsHarvest.js.map +1 -0
- package/dist/styles/definedClasses.d.ts +95 -0
- package/dist/styles/definedClasses.d.ts.map +1 -0
- package/dist/styles/definedClasses.js +129 -0
- package/dist/styles/definedClasses.js.map +1 -0
- package/dist/styles/markupStyleHarvest.d.ts +33 -0
- package/dist/styles/markupStyleHarvest.d.ts.map +1 -0
- package/dist/styles/markupStyleHarvest.js +73 -0
- package/dist/styles/markupStyleHarvest.js.map +1 -0
- package/dist/styles/styleExtractor.d.ts +37 -0
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +89 -33
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +11 -10
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindExpander.d.ts.map +1 -1
- package/dist/styles/tailwindExpander.js +31 -10
- package/dist/styles/tailwindExpander.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts +4 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +4 -0
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/telemetry.d.ts +67 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +100 -20
- package/dist/telemetry.js.map +1 -1
- package/dist/types/crossLanguage.d.ts +1 -0
- package/dist/types/crossLanguage.d.ts.map +1 -1
- package/dist/types.d.ts +73 -56
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/examples/.auditrc.example.json +7 -22
- package/examples/.auditrc.json +12 -155
- package/examples/.code-auditor.json +8 -51
- package/examples/nextjs.auditrc.json +7 -34
- package/examples/node-api.auditrc.json +6 -46
- package/examples/react.auditrc.json +8 -25
- package/examples/tolerant-solid.auditrc.json +12 -44
- package/package.json +8 -5
- package/plugin/.claude-plugin/manifest.json +10 -9
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +4 -4
- package/plugin/scripts/hook-audit.sh +25 -10
- package/plugin/scripts/hook-common.sh +12 -7
- package/plugin/scripts/hook-drift-check.sh +10 -1
- package/plugin/scripts/hook-log-path.sh +7 -0
- package/plugin/scripts/hook-self-audit.sh +21 -6
- package/plugin/scripts/hook-warm.sh +17 -11
- package/plugin/skills/code-auditor/SKILL.md +26 -3
- package/server.json +2 -2
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +0 -6
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js +0 -12
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +0 -1
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +0 -7
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js +0 -13
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +0 -16
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +0 -17
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +0 -18
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +0 -19
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +0 -17
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +0 -25
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +0 -21
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +0 -14
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +0 -16
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +0 -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 +0 -643
- package/dist/languages/go/analyzer-src/dataaccess.go +0 -388
- package/dist/languages/go/analyzer-src/go.mod +0 -3
- package/dist/languages/go/analyzer-src/indexer.go +0 -268
- package/dist/languages/go/analyzer-src/parser.go +0 -461
- package/dist/languages/go/analyzer-src/solid.go +0 -311
- package/dist/languages/go/analyzer-src/testconventions.go +0 -25
- package/dist/languages/go/analyzer-src/types.go +0 -156
- package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
- package/dist/languages/go/go.mod +0 -7
- package/dist/languages/go/main.go +0 -203
- package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
- package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
- package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
- package/dist/native-bootstrap.d.ts +0 -15
- package/dist/native-bootstrap.d.ts.map +0 -1
- package/dist/native-bootstrap.js +0 -75
- package/dist/native-bootstrap.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpDiagnostics.js","sourceRoot":"","sources":["../src/mcpDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcpDiagnostics.js","sourceRoot":"","sources":["../src/mcpDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directive H item 2 — the candidate-emission artifact writer.
|
|
3
|
+
*
|
|
4
|
+
* The migrated rules select candidate sites through `ctx.emitCandidate` and
|
|
5
|
+
* the runner carries them out on `result.metadata.candidates`. This module
|
|
6
|
+
* serializes them to the diagnostic artifact that the services/ audit route
|
|
7
|
+
* consumes: per rule, its disposition vocabulary (keys + descriptions read
|
|
8
|
+
* straight from the rule's `dispositions`, never a literal list here) and its
|
|
9
|
+
* candidate sites, each enriched with the source line text at the site's span.
|
|
10
|
+
*
|
|
11
|
+
* The source line is read here — from the CLI's local filesystem — because the
|
|
12
|
+
* consumer (the services/ Worker) is remote and cannot read the audited tree.
|
|
13
|
+
* Nothing in this module (or anywhere under `app/`) reaches a model: it only
|
|
14
|
+
* writes the deterministic pre-classification record.
|
|
15
|
+
*/
|
|
16
|
+
import type { AuditResult } from '../types.js';
|
|
17
|
+
export interface CandidatesArtifactSite {
|
|
18
|
+
file: string;
|
|
19
|
+
span: {
|
|
20
|
+
line: number;
|
|
21
|
+
column?: number;
|
|
22
|
+
};
|
|
23
|
+
disposition: string;
|
|
24
|
+
/** The source line text at `span.line`, read from the audited file so the
|
|
25
|
+
* remote audit route has the site's source without filesystem access. */
|
|
26
|
+
source: string;
|
|
27
|
+
}
|
|
28
|
+
export interface CandidatesArtifactRule {
|
|
29
|
+
ruleId: string;
|
|
30
|
+
/** The rule's disposition vocabulary, copied from the rule's own
|
|
31
|
+
* `dispositions` — the audit builds its choice `criteria` keys from these. */
|
|
32
|
+
dispositions: Array<{
|
|
33
|
+
key: string;
|
|
34
|
+
description: string;
|
|
35
|
+
}>;
|
|
36
|
+
sites: CandidatesArtifactSite[];
|
|
37
|
+
}
|
|
38
|
+
export interface CandidatesArtifact {
|
|
39
|
+
schemaVersion: 1;
|
|
40
|
+
generatedAt: string;
|
|
41
|
+
rules: CandidatesArtifactRule[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build the candidates artifact from an audit result. Rules that declared
|
|
45
|
+
* `dispositions` but emitted no candidate sites are omitted (the artifact only
|
|
46
|
+
* carries sites the audit will sample). Candidate sites are grouped by rule id;
|
|
47
|
+
* ordering follows first-emission order.
|
|
48
|
+
*
|
|
49
|
+
* @param result - The completed audit result carrying `metadata.candidates`.
|
|
50
|
+
* @returns The serializable candidates artifact (schema version 1).
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildCandidatesArtifact(result: AuditResult): Promise<CandidatesArtifact>;
|
|
53
|
+
//# sourceMappingURL=candidates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/phase/candidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB;8EAC0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf;mFAC+E;IAC/E,YAAY,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAYD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAgC7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directive H item 2 — the candidate-emission artifact writer.
|
|
3
|
+
*
|
|
4
|
+
* The migrated rules select candidate sites through `ctx.emitCandidate` and
|
|
5
|
+
* the runner carries them out on `result.metadata.candidates`. This module
|
|
6
|
+
* serializes them to the diagnostic artifact that the services/ audit route
|
|
7
|
+
* consumes: per rule, its disposition vocabulary (keys + descriptions read
|
|
8
|
+
* straight from the rule's `dispositions`, never a literal list here) and its
|
|
9
|
+
* candidate sites, each enriched with the source line text at the site's span.
|
|
10
|
+
*
|
|
11
|
+
* The source line is read here — from the CLI's local filesystem — because the
|
|
12
|
+
* consumer (the services/ Worker) is remote and cannot read the audited tree.
|
|
13
|
+
* Nothing in this module (or anywhere under `app/`) reaches a model: it only
|
|
14
|
+
* writes the deterministic pre-classification record.
|
|
15
|
+
*/
|
|
16
|
+
import { promises as fs } from 'fs';
|
|
17
|
+
import { MIGRATED_RULES } from './rules/registry.js';
|
|
18
|
+
async function readSourceLine(file, line) {
|
|
19
|
+
if (!Number.isInteger(line) || line < 1)
|
|
20
|
+
return '';
|
|
21
|
+
try {
|
|
22
|
+
const content = await fs.readFile(file, 'utf8');
|
|
23
|
+
return content.split('\n')[line - 1] ?? '';
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return '';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build the candidates artifact from an audit result. Rules that declared
|
|
31
|
+
* `dispositions` but emitted no candidate sites are omitted (the artifact only
|
|
32
|
+
* carries sites the audit will sample). Candidate sites are grouped by rule id;
|
|
33
|
+
* ordering follows first-emission order.
|
|
34
|
+
*
|
|
35
|
+
* @param result - The completed audit result carrying `metadata.candidates`.
|
|
36
|
+
* @returns The serializable candidates artifact (schema version 1).
|
|
37
|
+
*/
|
|
38
|
+
export async function buildCandidatesArtifact(result) {
|
|
39
|
+
const candidates = result.metadata.candidates ?? [];
|
|
40
|
+
const dispositionsByRule = new Map();
|
|
41
|
+
for (const rule of MIGRATED_RULES) {
|
|
42
|
+
if (rule.dispositions)
|
|
43
|
+
dispositionsByRule.set(rule.id, rule.dispositions);
|
|
44
|
+
}
|
|
45
|
+
const sitesByRule = new Map();
|
|
46
|
+
for (const c of candidates) {
|
|
47
|
+
const list = sitesByRule.get(c.ruleId) ?? [];
|
|
48
|
+
list.push(c);
|
|
49
|
+
sitesByRule.set(c.ruleId, list);
|
|
50
|
+
}
|
|
51
|
+
const rules = [];
|
|
52
|
+
for (const [ruleId, sites] of sitesByRule) {
|
|
53
|
+
const dispositions = dispositionsByRule.get(ruleId) ?? [];
|
|
54
|
+
rules.push({
|
|
55
|
+
ruleId,
|
|
56
|
+
dispositions: dispositions.map((d) => ({ key: d.key, description: d.description })),
|
|
57
|
+
sites: await Promise.all(sites.map(async (s) => ({
|
|
58
|
+
file: s.file,
|
|
59
|
+
span: s.span,
|
|
60
|
+
disposition: s.disposition,
|
|
61
|
+
source: await readSourceLine(s.file, s.span.line),
|
|
62
|
+
}))),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return { schemaVersion: 1, generatedAt: new Date().toISOString(), rules };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=candidates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/phase/candidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA2BrD,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAmB;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAEpD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACrE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,YAAY;YAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;IAGD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC;YACT,MAAM;YACN,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAClD,CAAC,CAAC,CAAC;SACL,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5E,CAAC"}
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
* pure, threshold-independent derivation from the raw declaration value, exactly
|
|
9
9
|
* the "one level up from raw source text" computation a processor should own.
|
|
10
10
|
*
|
|
11
|
-
* These
|
|
12
|
-
*
|
|
11
|
+
* These four functions are the conversion (`parseColorToRGB`, `rgbToLab`) plus
|
|
12
|
+
* two colour-difference metrics over Lab: `labDistance` (CIE76, ΔE76) and
|
|
13
|
+
* `ciede2000` (CIE DE2000, ΔE00). The `color-values` corpus producer
|
|
13
14
|
* (`producers.ts`) imports the conversion and stores the Lab triple in the fact;
|
|
14
|
-
* the rule imports only
|
|
15
|
-
* flagging decisions use — so it reads pre-computed Lab and never
|
|
16
|
-
* color. The rule decides; the processor computes.
|
|
15
|
+
* the rule imports only the distance it clusters with — the comparison metric its
|
|
16
|
+
* clustering and flagging decisions use — so it reads pre-computed Lab and never
|
|
17
|
+
* re-parses a color. The rule decides; the processor computes.
|
|
17
18
|
*/
|
|
18
19
|
/** A CIELAB Lab triple (L, a, b), D65 reference white. */
|
|
19
20
|
export type Lab = [number, number, number];
|
|
@@ -38,4 +39,16 @@ export declare function parseColorToRGB(raw: string): RGB | null;
|
|
|
38
39
|
* @returns The ΔE76 color distance.
|
|
39
40
|
*/
|
|
40
41
|
export declare function labDistance(a: Lab, b: Lab): number;
|
|
42
|
+
/** ΔE00 — the CIEDE2000 color-difference between two Lab triples.
|
|
43
|
+
*
|
|
44
|
+
* The Sharma/Wu/Dalal (2005) formulation. CIEDE2000 corrects the two known
|
|
45
|
+
* CIE76 (ΔE76) failures — it is more perceptually uniform in the blue/saturated
|
|
46
|
+
* regions and handles chroma/hue asymmetries the plain Euclidean distance
|
|
47
|
+
* mis-ranks — at the cost of a nonlinear, hue- and chroma-weighted term.
|
|
48
|
+
*
|
|
49
|
+
* @param a The first Lab triple.
|
|
50
|
+
* @param b The second Lab triple.
|
|
51
|
+
* @returns The CIEDE2000 color distance (ΔE00).
|
|
52
|
+
*/
|
|
53
|
+
export declare function ciede2000(a: Lab, b: Lab): number;
|
|
41
54
|
//# sourceMappingURL=colorMath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorMath.d.ts","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"colorMath.d.ts","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,0DAA0D;AAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,+CAA+C;AAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAM3C;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAyB5C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CA6CvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAKlD;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAyEhD"}
|
package/dist/phase/colorMath.js
CHANGED
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
* pure, threshold-independent derivation from the raw declaration value, exactly
|
|
9
9
|
* the "one level up from raw source text" computation a processor should own.
|
|
10
10
|
*
|
|
11
|
-
* These
|
|
12
|
-
*
|
|
11
|
+
* These four functions are the conversion (`parseColorToRGB`, `rgbToLab`) plus
|
|
12
|
+
* two colour-difference metrics over Lab: `labDistance` (CIE76, ΔE76) and
|
|
13
|
+
* `ciede2000` (CIE DE2000, ΔE00). The `color-values` corpus producer
|
|
13
14
|
* (`producers.ts`) imports the conversion and stores the Lab triple in the fact;
|
|
14
|
-
* the rule imports only
|
|
15
|
-
* flagging decisions use — so it reads pre-computed Lab and never
|
|
16
|
-
* color. The rule decides; the processor computes.
|
|
15
|
+
* the rule imports only the distance it clusters with — the comparison metric its
|
|
16
|
+
* clustering and flagging decisions use — so it reads pre-computed Lab and never
|
|
17
|
+
* re-parses a color. The rule decides; the processor computes.
|
|
17
18
|
*/
|
|
18
19
|
const COLOR_KEYWORDS = new Set([
|
|
19
20
|
'transparent', 'currentcolor', 'inherit', 'initial', 'unset', 'none',
|
|
@@ -106,4 +107,86 @@ export function labDistance(a, b) {
|
|
|
106
107
|
const db = a[2] - b[2];
|
|
107
108
|
return Math.sqrt(dl * dl + da * da + db * db);
|
|
108
109
|
}
|
|
110
|
+
const DEG2RAD = Math.PI / 180;
|
|
111
|
+
/** CIELAB hue angle in degrees, in [0, 360), from an (a*, b*) pair. */
|
|
112
|
+
function hueAngle(ap, b) {
|
|
113
|
+
if (ap === 0 && b === 0)
|
|
114
|
+
return 0;
|
|
115
|
+
const h = Math.atan2(b, ap) / DEG2RAD;
|
|
116
|
+
return h < 0 ? h + 360 : h;
|
|
117
|
+
}
|
|
118
|
+
/** ΔE00 — the CIEDE2000 color-difference between two Lab triples.
|
|
119
|
+
*
|
|
120
|
+
* The Sharma/Wu/Dalal (2005) formulation. CIEDE2000 corrects the two known
|
|
121
|
+
* CIE76 (ΔE76) failures — it is more perceptually uniform in the blue/saturated
|
|
122
|
+
* regions and handles chroma/hue asymmetries the plain Euclidean distance
|
|
123
|
+
* mis-ranks — at the cost of a nonlinear, hue- and chroma-weighted term.
|
|
124
|
+
*
|
|
125
|
+
* @param a The first Lab triple.
|
|
126
|
+
* @param b The second Lab triple.
|
|
127
|
+
* @returns The CIEDE2000 color distance (ΔE00).
|
|
128
|
+
*/
|
|
129
|
+
export function ciede2000(a, b) {
|
|
130
|
+
const [L1, a1, b1] = a;
|
|
131
|
+
const [L2, a2, b2] = b;
|
|
132
|
+
const C1 = Math.sqrt(a1 * a1 + b1 * b1);
|
|
133
|
+
const C2 = Math.sqrt(a2 * a2 + b2 * b2);
|
|
134
|
+
const Cbar = (C1 + C2) / 2;
|
|
135
|
+
const Cbar7 = Cbar ** 7;
|
|
136
|
+
const G = 0.5 * (1 - Math.sqrt(Cbar7 / (Cbar7 + 25 ** 7)));
|
|
137
|
+
const a1p = a1 * (1 + G);
|
|
138
|
+
const a2p = a2 * (1 + G);
|
|
139
|
+
const C1p = Math.sqrt(a1p * a1p + b1 * b1);
|
|
140
|
+
const C2p = Math.sqrt(a2p * a2p + b2 * b2);
|
|
141
|
+
const h1p = hueAngle(a1p, b1);
|
|
142
|
+
const h2p = hueAngle(a2p, b2);
|
|
143
|
+
const dLp = L2 - L1;
|
|
144
|
+
const dCp = C2p - C1p;
|
|
145
|
+
let dhp;
|
|
146
|
+
if (C1p * C2p === 0) {
|
|
147
|
+
dhp = 0;
|
|
148
|
+
}
|
|
149
|
+
else if (Math.abs(h2p - h1p) <= 180) {
|
|
150
|
+
dhp = h2p - h1p;
|
|
151
|
+
}
|
|
152
|
+
else if (h2p - h1p > 180) {
|
|
153
|
+
dhp = h2p - h1p - 360;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
dhp = h2p - h1p + 360;
|
|
157
|
+
}
|
|
158
|
+
const dHp = 2 * Math.sqrt(C1p * C2p) * Math.sin((dhp / 2) * DEG2RAD);
|
|
159
|
+
const Lbarp = (L1 + L2) / 2;
|
|
160
|
+
const Cbarp = (C1p + C2p) / 2;
|
|
161
|
+
let hbarp;
|
|
162
|
+
if (C1p * C2p === 0) {
|
|
163
|
+
hbarp = h1p + h2p;
|
|
164
|
+
}
|
|
165
|
+
else if (Math.abs(h1p - h2p) <= 180) {
|
|
166
|
+
hbarp = (h1p + h2p) / 2;
|
|
167
|
+
}
|
|
168
|
+
else if (h1p + h2p < 360) {
|
|
169
|
+
hbarp = (h1p + h2p + 360) / 2;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
hbarp = (h1p + h2p - 360) / 2;
|
|
173
|
+
}
|
|
174
|
+
const T = 1
|
|
175
|
+
- 0.17 * Math.cos((hbarp - 30) * DEG2RAD)
|
|
176
|
+
+ 0.24 * Math.cos((2 * hbarp) * DEG2RAD)
|
|
177
|
+
+ 0.32 * Math.cos((3 * hbarp + 6) * DEG2RAD)
|
|
178
|
+
- 0.20 * Math.cos((4 * hbarp - 63) * DEG2RAD);
|
|
179
|
+
const dTheta = 30 * Math.exp(-(((hbarp - 275) / 25) ** 2));
|
|
180
|
+
const Cbarp7 = Cbarp ** 7;
|
|
181
|
+
const RC = 2 * Math.sqrt(Cbarp7 / (Cbarp7 + 25 ** 7));
|
|
182
|
+
const LbarpMinus50sq = (Lbarp - 50) * (Lbarp - 50);
|
|
183
|
+
const SL = 1 + (0.015 * LbarpMinus50sq) / Math.sqrt(20 + LbarpMinus50sq);
|
|
184
|
+
const SC = 1 + 0.045 * Cbarp;
|
|
185
|
+
const SH = 1 + 0.015 * Cbarp * T;
|
|
186
|
+
const RT = -Math.sin((2 * dTheta) * DEG2RAD) * RC;
|
|
187
|
+
const dLpSL = dLp / SL;
|
|
188
|
+
const dCpSC = dCp / SC;
|
|
189
|
+
const dHpSH = dHp / SH;
|
|
190
|
+
return Math.sqrt(dLpSL * dLpSL + dCpSC * dCpSC + dHpSH * dHpSH + RT * dCpSC * dHpSH);
|
|
191
|
+
}
|
|
109
192
|
//# sourceMappingURL=colorMath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorMath.js","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"colorMath.js","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,6 @@ import { extractDataAccessCallCandidates as extractAnalyzerCandidates } from '..
|
|
|
22
22
|
* producer dedups after re-folding admission)
|
|
23
23
|
*/
|
|
24
24
|
export function extractDataAccessCallCandidates(file) {
|
|
25
|
-
return extractAnalyzerCandidates(file.ast, file.adapter, file.source);
|
|
25
|
+
return extractAnalyzerCandidates(file.ast, file.adapter, file.source, undefined, file.vendorSurfaces);
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=dataAccessCallsCandidates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataAccessCallsCandidates.js","sourceRoot":"","sources":["../../src/phase/dataAccessCallsCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,+BAA+B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAErI;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAa;IAC3D,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dataAccessCallsCandidates.js","sourceRoot":"","sources":["../../src/phase/dataAccessCallsCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,+BAA+B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAErI;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAa;IAC3D,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACxG,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Spec 68 §9 — the `error-bindings`, `concurrency-primitives` and
|
|
3
3
|
* `channel-operations` producers.
|
|
4
4
|
*
|
|
5
|
-
* Re-homes the Go
|
|
6
|
-
* `runGoroutineAnalysis`, `runChannelAnalysis`
|
|
5
|
+
* Re-homes the former Go subprocess's non-SOLID function walks
|
|
6
|
+
* (`runErrorAnalysis`, `runGoroutineAnalysis`, `runChannelAnalysis`) as
|
|
7
7
|
* plain-data facts. Each walks the tree-sitter Go AST for `function_declaration`
|
|
8
8
|
* / `method_declaration` nodes and projects the inputs the rule's verdict reads:
|
|
9
9
|
*
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Spec 68 §9 — the `error-bindings`, `concurrency-primitives` and
|
|
3
3
|
* `channel-operations` producers.
|
|
4
4
|
*
|
|
5
|
-
* Re-homes the Go
|
|
6
|
-
* `runGoroutineAnalysis`, `runChannelAnalysis`
|
|
5
|
+
* Re-homes the former Go subprocess's non-SOLID function walks
|
|
6
|
+
* (`runErrorAnalysis`, `runGoroutineAnalysis`, `runChannelAnalysis`) as
|
|
7
7
|
* plain-data facts. Each walks the tree-sitter Go AST for `function_declaration`
|
|
8
8
|
* / `method_declaration` nodes and projects the inputs the rule's verdict reads:
|
|
9
9
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spec 68 §9 — the `go-functions` producer.
|
|
3
3
|
*
|
|
4
|
-
* Re-homes the Go
|
|
5
|
-
*
|
|
4
|
+
* Re-homes the former Go subprocess's function extraction (the `Function`
|
|
5
|
+
* payload) as a plain-data fact. It walks the tree-sitter Go
|
|
6
6
|
* AST for `function_declaration` / `method_declaration` nodes and projects the
|
|
7
7
|
* metrics the two size/behaviour rules threshold on:
|
|
8
8
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spec 68 §9 — the `go-functions` producer.
|
|
3
3
|
*
|
|
4
|
-
* Re-homes the Go
|
|
5
|
-
*
|
|
4
|
+
* Re-homes the former Go subprocess's function extraction (the `Function`
|
|
5
|
+
* payload) as a plain-data fact. It walks the tree-sitter Go
|
|
6
6
|
* AST for `function_declaration` / `method_declaration` nodes and projects the
|
|
7
7
|
* metrics the two size/behaviour rules threshold on:
|
|
8
8
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spec 68 §9 — the Go `imports` producer.
|
|
3
3
|
*
|
|
4
|
-
* Re-homes the Go
|
|
5
|
-
*
|
|
4
|
+
* Re-homes the former Go subprocess's import extraction (`runImportAnalysis`) as
|
|
5
|
+
* a plain-data fact. It walks the tree-sitter Go
|
|
6
6
|
* AST for `import_spec` nodes and projects each one's source path and local
|
|
7
7
|
* name:
|
|
8
8
|
*
|
package/dist/phase/goImports.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spec 68 §9 — the Go `imports` producer.
|
|
3
3
|
*
|
|
4
|
-
* Re-homes the Go
|
|
5
|
-
*
|
|
4
|
+
* Re-homes the former Go subprocess's import extraction (`runImportAnalysis`) as
|
|
5
|
+
* a plain-data fact. It walks the tree-sitter Go
|
|
6
6
|
* AST for `import_spec` nodes and projects each one's source path and local
|
|
7
7
|
* name:
|
|
8
8
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spec 68 §9 — the `go-switches` producer.
|
|
3
3
|
*
|
|
4
|
-
* Re-homes the Go
|
|
5
|
-
*
|
|
4
|
+
* Re-homes the former Go subprocess's switch-size extraction (the
|
|
5
|
+
* `analyzeSwitchSize` walk) as a plain-data fact. It walks the tree-sitter Go
|
|
6
6
|
* AST for `expression_switch_statement` / `type_switch_statement` nodes and
|
|
7
7
|
* projects each one's case-clause count:
|
|
8
8
|
*
|
package/dist/phase/goSwitches.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spec 68 §9 — the `go-switches` producer.
|
|
3
3
|
*
|
|
4
|
-
* Re-homes the Go
|
|
5
|
-
*
|
|
4
|
+
* Re-homes the former Go subprocess's switch-size extraction (the
|
|
5
|
+
* `analyzeSwitchSize` walk) as a plain-data fact. It walks the tree-sitter Go
|
|
6
6
|
* AST for `expression_switch_statement` / `type_switch_statement` nodes and
|
|
7
7
|
* projects each one's case-clause count:
|
|
8
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,CAS1D"}
|
package/dist/phase/imports.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;QAC7B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;QAC7B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;QACjC,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -23,6 +23,6 @@ import { extractLoopQueryRawCandidates as extractAnalyzerCandidates } from '../a
|
|
|
23
23
|
* the corpus producer re-folds both after re-folding the handle verdict)
|
|
24
24
|
*/
|
|
25
25
|
export function extractLoopQueryRawCandidates(file) {
|
|
26
|
-
return extractAnalyzerCandidates(file.ast, file.adapter, file.source);
|
|
26
|
+
return extractAnalyzerCandidates(file.ast, file.adapter, file.source, undefined, file.vendorSurfaces);
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=loopQueryCandidates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loopQueryCandidates.js","sourceRoot":"","sources":["../../src/phase/loopQueryCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,6BAA6B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAEnI;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAa;IACzD,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"loopQueryCandidates.js","sourceRoot":"","sources":["../../src/phase/loopQueryCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,6BAA6B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAEnI;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAa;IACzD,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACxG,CAAC"}
|
package/dist/phase/oracles.d.ts
CHANGED
|
@@ -145,7 +145,21 @@ export declare const countTypeDeclarations: (file: ParsedFile) => number;
|
|
|
145
145
|
* @param file - The parsed file to count package-scope bindings for.
|
|
146
146
|
* @returns The number of package-scope bindings `buildGoFileBindings` would emit. */
|
|
147
147
|
export declare function countGoPackageBindings(file: ParsedFile): number;
|
|
148
|
+
/**
|
|
149
|
+
* Upper-bound oracle: count ORM-builder (`pgTable`/`mysqlTable`/`sqliteTable`)
|
|
150
|
+
* call sites off the source text — a superset of the producer's emitted bindings.
|
|
151
|
+
*
|
|
152
|
+
* @param file The parsed file to count over.
|
|
153
|
+
* @returns The number of ORM-builder call sites.
|
|
154
|
+
*/
|
|
148
155
|
export declare function countSchemaObjects(file: ParsedFile): number;
|
|
156
|
+
/**
|
|
157
|
+
* Upper-bound oracle: count DDL op-producing statement headers (CREATE/DROP TABLE
|
|
158
|
+
* and `ALTER TABLE … RENAME TO`) — a superset of the producer's emitted ops.
|
|
159
|
+
*
|
|
160
|
+
* @param file The parsed file to count over.
|
|
161
|
+
* @returns The number of DDL op headers.
|
|
162
|
+
*/
|
|
149
163
|
export declare function countDdlOps(file: ParsedFile): number;
|
|
150
164
|
/** style-declarations (css/scss) — count `declaration` nodes off the CSS AST.
|
|
151
165
|
* An upper bound, not exact: the producer projects only declarations inside a
|
|
@@ -178,7 +192,21 @@ export declare const countDataAccessCalls: (file: ParsedFile) => number;
|
|
|
178
192
|
* whose body issues a DB call; this counts every loop. Residual = loops whose
|
|
179
193
|
* body holds no DB call. */
|
|
180
194
|
export declare const countLoopQueries: (file: ParsedFile) => number;
|
|
195
|
+
/**
|
|
196
|
+
* Upper-bound oracle: count `query(`/`execute(` call sites off the source text —
|
|
197
|
+
* a superset of the producer's dangerous-SQL candidates.
|
|
198
|
+
*
|
|
199
|
+
* @param file The parsed file to count over.
|
|
200
|
+
* @returns The number of dynamic-SQL call sites.
|
|
201
|
+
*/
|
|
181
202
|
export declare function countDynamicSql(file: ParsedFile): number;
|
|
203
|
+
/**
|
|
204
|
+
* Upper-bound oracle: count member-call sites plus SQL keyword occurrences — two
|
|
205
|
+
* coarse supersets of the producer's located query-site scan.
|
|
206
|
+
*
|
|
207
|
+
* @param file The parsed file to count over.
|
|
208
|
+
* @returns The member-call count plus the SQL-keyword occurrence count.
|
|
209
|
+
*/
|
|
182
210
|
export declare function countQuerySites(file: ParsedFile): number;
|
|
183
211
|
/** schema-usage — count `call_expression` + `string` + `template_string` nodes.
|
|
184
212
|
* Every table reference is carried in a string literal, a tagged template, or a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../src/phase/oracles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAEV,kBAAkB,EAElB,eAAe,EACf,UAAU,EAOX,MAAM,YAAY,CAAC;AAOpB;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,EACnC,QAAQ,GAAE,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,KAAK,MAAgC,GAC5E,kBAAkB,CAEpB;AAED,gEAAgE;AAChE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAE3D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,OAAO,EAAE,EAC7B,WAAW,EAAE,MAAM,GAClB,eAAe,GAAG,IAAI,CAKxB;AA0BD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAMzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAKrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAKxD;AAsCD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAyC3D;AAED;;;;;+CAK+C;AAC/C,eAAO,MAAM,kBAAkB,SA/J2B,UAAU,KAAK,MA+JmB,CAAC;AAE7F;+EAC+E;AAC/E,eAAO,MAAM,mBAAmB,SAnK0B,UAAU,KAAK,MAmKO,CAAC;AAEjF;;;2DAG2D;AAC3D,eAAO,MAAM,0BAA0B,SAzKmB,UAAU,KAAK,MA+KvE,CAAC;AAEH;;;;kDAIkD;AAClD,eAAO,MAAM,eAAe,SAtL8B,UAAU,KAAK,MAuMvE,CAAC;AAEH;;;4BAG4B;AAC5B,eAAO,MAAM,gBAAgB,SA7M6B,UAAU,KAAK,MA6MU,CAAC;AAEpF;;;2BAG2B;AAC3B,eAAO,MAAM,gBAAgB,SAnN6B,UAAU,KAAK,MAmNkB,CAAC;AAE5F;4EAC4E;AAC5E,eAAO,MAAM,mBAAmB,SAvN0B,UAAU,KAAK,MA8NvE,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,cAAc,SApN4B,UAAU,KAAK,MAoNZ,CAAC;AAE3D;6BAC6B;AAC7B,eAAO,MAAM,gBAAgB,SAxN0B,UAAU,KAAK,MAwNqB,CAAC;AAE5F,uEAAuE;AACvE,eAAO,MAAM,eAAe,SA3N2B,UAAU,KAAK,MA2N8B,CAAC;AAErG;yCACyC;AACzC,eAAO,MAAM,qBAAqB,SA/NqB,UAAU,KAAK,MA+NP,CAAC;AAEhE;;;;;;;;;;;qFAWqF;AACrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAyB/D;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE3D;AAiBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAK7D;AAYD;;;;8DAI8D;AAC9D,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../src/phase/oracles.ts"],"names":[],"mappings":"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"}
|
package/dist/phase/oracles.js
CHANGED
|
@@ -334,6 +334,13 @@ export function countGoPackageBindings(file) {
|
|
|
334
334
|
* re-running the producer's own `ORM_OBJECT_RE` (which would prove 1 = 1 and
|
|
335
335
|
* measure nothing). */
|
|
336
336
|
const ORM_BUILDER_CALL_RE = /\b(?:pgTable|mysqlTable|sqliteTable)\s*\(/g;
|
|
337
|
+
/**
|
|
338
|
+
* Upper-bound oracle: count ORM-builder (`pgTable`/`mysqlTable`/`sqliteTable`)
|
|
339
|
+
* call sites off the source text — a superset of the producer's emitted bindings.
|
|
340
|
+
*
|
|
341
|
+
* @param file The parsed file to count over.
|
|
342
|
+
* @returns The number of ORM-builder call sites.
|
|
343
|
+
*/
|
|
337
344
|
export function countSchemaObjects(file) {
|
|
338
345
|
return [...file.source.matchAll(ORM_BUILDER_CALL_RE)].length;
|
|
339
346
|
}
|
|
@@ -350,6 +357,13 @@ export function countSchemaObjects(file) {
|
|
|
350
357
|
* table-rename form; `RENAME COLUMN` is a column change and is excluded by the
|
|
351
358
|
* same `RENAME TO` guard.) */
|
|
352
359
|
const DDL_HEADER_RE = /\b(?:CREATE|DROP)\s+(?:VIRTUAL\s+)?TABLE\b|\bALTER\s+TABLE\b[^;]*?\bRENAME\s+TO\b/gi;
|
|
360
|
+
/**
|
|
361
|
+
* Upper-bound oracle: count DDL op-producing statement headers (CREATE/DROP TABLE
|
|
362
|
+
* and `ALTER TABLE … RENAME TO`) — a superset of the producer's emitted ops.
|
|
363
|
+
*
|
|
364
|
+
* @param file The parsed file to count over.
|
|
365
|
+
* @returns The number of DDL op headers.
|
|
366
|
+
*/
|
|
353
367
|
export function countDdlOps(file) {
|
|
354
368
|
return [...file.source.matchAll(DDL_HEADER_RE)].length;
|
|
355
369
|
}
|
|
@@ -409,6 +423,13 @@ export const countLoopQueries = countNodeTypes([
|
|
|
409
423
|
* dangerous candidate is a `query(`/`execute(` call, so this upper-bounds the
|
|
410
424
|
* candidate count. Residual = safe/parameterized query/execute calls. */
|
|
411
425
|
const DYNAMIC_SQL_CALL_RE = /\b(?:query|execute)\s*\(/g;
|
|
426
|
+
/**
|
|
427
|
+
* Upper-bound oracle: count `query(`/`execute(` call sites off the source text —
|
|
428
|
+
* a superset of the producer's dangerous-SQL candidates.
|
|
429
|
+
*
|
|
430
|
+
* @param file The parsed file to count over.
|
|
431
|
+
* @returns The number of dynamic-SQL call sites.
|
|
432
|
+
*/
|
|
412
433
|
export function countDynamicSql(file) {
|
|
413
434
|
return [...file.source.matchAll(DYNAMIC_SQL_CALL_RE)].length;
|
|
414
435
|
}
|
|
@@ -420,6 +441,13 @@ export function countDynamicSql(file) {
|
|
|
420
441
|
* Residual = non-DB member calls + SQL keywords inside recognized call bodies
|
|
421
442
|
* (which the producer strips) + the DB-context gate the producer applies. */
|
|
422
443
|
const ALL_MEMBER_CALLS_RE = /\.\w+\s*\(/g;
|
|
444
|
+
/**
|
|
445
|
+
* Upper-bound oracle: count member-call sites plus SQL keyword occurrences — two
|
|
446
|
+
* coarse supersets of the producer's located query-site scan.
|
|
447
|
+
*
|
|
448
|
+
* @param file The parsed file to count over.
|
|
449
|
+
* @returns The member-call count plus the SQL-keyword occurrence count.
|
|
450
|
+
*/
|
|
423
451
|
export function countQuerySites(file) {
|
|
424
452
|
const calls = (file.source.match(ALL_MEMBER_CALLS_RE) || []).length;
|
|
425
453
|
return calls + countSqlKeywordOccurrences(file.source);
|