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.
Files changed (419) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +326 -3
  3. package/README.md +24 -2
  4. package/configs/hhra-compat.json +12 -118
  5. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  6. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +11 -1
  7. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  8. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  9. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +57 -52
  10. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  11. package/dist/analyzers/provenance.d.ts +9 -4
  12. package/dist/analyzers/provenance.d.ts.map +1 -1
  13. package/dist/analyzers/provenance.js +8 -25
  14. package/dist/analyzers/provenance.js.map +1 -1
  15. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  16. package/dist/analyzers/reactAnalyzer.js +35 -14
  17. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  18. package/dist/analyzers/ruleRegistry.js +4 -4
  19. package/dist/analyzers/ruleRegistry.js.map +1 -1
  20. package/dist/analyzers/ruleTiming.d.ts +1 -1
  21. package/dist/analyzers/ruleTiming.js +2 -2
  22. package/dist/analyzers/ruleTiming.js.map +1 -1
  23. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  24. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +22 -26
  25. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  26. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +0 -2
  27. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  28. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +4 -5
  29. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  30. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +32 -15
  31. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +189 -115
  33. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  34. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -2
  35. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  36. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +0 -5
  37. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  38. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -10
  39. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  40. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +7 -49
  41. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  42. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  43. package/dist/analyzers/universal/schema/codeAnalysis.js +51 -3
  44. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  45. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  46. package/dist/analyzers/universal/schema/config.js +0 -2
  47. package/dist/analyzers/universal/schema/config.js.map +1 -1
  48. package/dist/analyzers/universal/schema/types.d.ts +0 -2
  49. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  50. package/dist/analyzers/vendorSurfaces.d.ts +126 -0
  51. package/dist/analyzers/vendorSurfaces.d.ts.map +1 -0
  52. package/dist/analyzers/vendorSurfaces.js +580 -0
  53. package/dist/analyzers/vendorSurfaces.js.map +1 -0
  54. package/dist/auditRunner.d.ts +9 -1
  55. package/dist/auditRunner.d.ts.map +1 -1
  56. package/dist/auditRunner.js +198 -146
  57. package/dist/auditRunner.js.map +1 -1
  58. package/dist/cacheGc.d.ts +88 -0
  59. package/dist/cacheGc.d.ts.map +1 -0
  60. package/dist/cacheGc.js +196 -0
  61. package/dist/cacheGc.js.map +1 -0
  62. package/dist/churn/churnExtractor.d.ts +0 -1
  63. package/dist/churn/churnExtractor.d.ts.map +1 -1
  64. package/dist/churn/churnExtractor.js +2 -4
  65. package/dist/churn/churnExtractor.js.map +1 -1
  66. package/dist/cli.d.ts +1 -1
  67. package/dist/cli.d.ts.map +1 -1
  68. package/dist/cli.js +260 -47
  69. package/dist/cli.js.map +1 -1
  70. package/dist/codeIndex/migrations.d.ts.map +1 -1
  71. package/dist/codeIndex/migrations.js +4 -3
  72. package/dist/codeIndex/migrations.js.map +1 -1
  73. package/dist/codeIndexDB.d.ts +11 -2
  74. package/dist/codeIndexDB.d.ts.map +1 -1
  75. package/dist/codeIndexDB.js +27 -2
  76. package/dist/codeIndexDB.js.map +1 -1
  77. package/dist/config/configLoader.d.ts +60 -7
  78. package/dist/config/configLoader.d.ts.map +1 -1
  79. package/dist/config/configLoader.js +252 -60
  80. package/dist/config/configLoader.js.map +1 -1
  81. package/dist/config/defaults.d.ts +137 -43
  82. package/dist/config/defaults.d.ts.map +1 -1
  83. package/dist/config/defaults.js +174 -101
  84. package/dist/config/defaults.js.map +1 -1
  85. package/dist/config/effectiveConfig.d.ts +1 -1
  86. package/dist/config/effectiveConfig.d.ts.map +1 -1
  87. package/dist/config/effectiveConfig.js +4 -6
  88. package/dist/config/effectiveConfig.js.map +1 -1
  89. package/dist/config/pathProfiles.d.ts +4 -3
  90. package/dist/config/pathProfiles.d.ts.map +1 -1
  91. package/dist/config/pathProfiles.js +3 -2
  92. package/dist/config/pathProfiles.js.map +1 -1
  93. package/dist/constants.d.ts +2 -1
  94. package/dist/constants.d.ts.map +1 -1
  95. package/dist/constants.js +4 -0
  96. package/dist/constants.js.map +1 -1
  97. package/dist/daemon/main.d.ts +0 -1
  98. package/dist/daemon/main.d.ts.map +1 -1
  99. package/dist/daemon/main.js +11 -4
  100. package/dist/daemon/main.js.map +1 -1
  101. package/dist/dataPaths.d.ts +32 -9
  102. package/dist/dataPaths.d.ts.map +1 -1
  103. package/dist/dataPaths.js +69 -16
  104. package/dist/dataPaths.js.map +1 -1
  105. package/dist/hookLog.d.ts +54 -0
  106. package/dist/hookLog.d.ts.map +1 -0
  107. package/dist/hookLog.js +105 -0
  108. package/dist/hookLog.js.map +1 -0
  109. package/dist/hookLogPath.generated.d.ts +3 -0
  110. package/dist/hookLogPath.generated.d.ts.map +1 -0
  111. package/dist/hookLogPath.generated.js +8 -0
  112. package/dist/hookLogPath.generated.js.map +1 -0
  113. package/dist/index.d.ts +0 -5
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +0 -7
  116. package/dist/index.js.map +1 -1
  117. package/dist/installConfig.d.ts +15 -2
  118. package/dist/installConfig.d.ts.map +1 -1
  119. package/dist/installConfig.js +17 -2
  120. package/dist/installConfig.js.map +1 -1
  121. package/dist/installer.d.ts.map +1 -1
  122. package/dist/installer.js +2 -1
  123. package/dist/installer.js.map +1 -1
  124. package/dist/languages/adapterBridge.d.ts +11 -0
  125. package/dist/languages/adapterBridge.d.ts.map +1 -1
  126. package/dist/languages/adapterBridge.js +11 -0
  127. package/dist/languages/adapterBridge.js.map +1 -1
  128. package/dist/languages/types.d.ts +8 -0
  129. package/dist/languages/types.d.ts.map +1 -1
  130. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +13 -0
  131. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  132. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +135 -18
  133. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  134. package/dist/ledger.d.ts +7 -0
  135. package/dist/ledger.d.ts.map +1 -1
  136. package/dist/ledger.js +7 -0
  137. package/dist/ledger.js.map +1 -1
  138. package/dist/mcp-tools/workflowGuide.js +8 -8
  139. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  140. package/dist/mcp-tools-shared.d.ts.map +1 -1
  141. package/dist/mcp-tools-shared.js +5 -2
  142. package/dist/mcp-tools-shared.js.map +1 -1
  143. package/dist/mcp-ui-simple.d.ts +5 -0
  144. package/dist/mcp-ui-simple.d.ts.map +1 -1
  145. package/dist/mcp-ui-simple.js +9 -2
  146. package/dist/mcp-ui-simple.js.map +1 -1
  147. package/dist/mcp.d.ts +0 -1
  148. package/dist/mcp.d.ts.map +1 -1
  149. package/dist/mcp.js +36 -33
  150. package/dist/mcp.js.map +1 -1
  151. package/dist/mcpAuditJobs.d.ts +10 -0
  152. package/dist/mcpAuditJobs.d.ts.map +1 -1
  153. package/dist/mcpAuditJobs.js +10 -1
  154. package/dist/mcpAuditJobs.js.map +1 -1
  155. package/dist/mcpAutoIndex.d.ts.map +1 -1
  156. package/dist/mcpAutoIndex.js +2 -1
  157. package/dist/mcpAutoIndex.js.map +1 -1
  158. package/dist/mcpDiagnostics.d.ts +2 -0
  159. package/dist/mcpDiagnostics.d.ts.map +1 -1
  160. package/dist/mcpDiagnostics.js +2 -0
  161. package/dist/mcpDiagnostics.js.map +1 -1
  162. package/dist/phase/candidates.d.ts +53 -0
  163. package/dist/phase/candidates.d.ts.map +1 -0
  164. package/dist/phase/candidates.js +67 -0
  165. package/dist/phase/candidates.js.map +1 -0
  166. package/dist/phase/colorMath.d.ts +18 -5
  167. package/dist/phase/colorMath.d.ts.map +1 -1
  168. package/dist/phase/colorMath.js +88 -5
  169. package/dist/phase/colorMath.js.map +1 -1
  170. package/dist/phase/dataAccessCallsCandidates.js +1 -1
  171. package/dist/phase/dataAccessCallsCandidates.js.map +1 -1
  172. package/dist/phase/goFunctionAnalysis.d.ts +2 -2
  173. package/dist/phase/goFunctionAnalysis.js +2 -2
  174. package/dist/phase/goFunctions.d.ts +2 -2
  175. package/dist/phase/goFunctions.js +2 -2
  176. package/dist/phase/goImports.d.ts +2 -2
  177. package/dist/phase/goImports.js +2 -2
  178. package/dist/phase/goSwitches.d.ts +2 -2
  179. package/dist/phase/goSwitches.js +2 -2
  180. package/dist/phase/imports.d.ts.map +1 -1
  181. package/dist/phase/imports.js +1 -0
  182. package/dist/phase/imports.js.map +1 -1
  183. package/dist/phase/loopQueryCandidates.js +1 -1
  184. package/dist/phase/loopQueryCandidates.js.map +1 -1
  185. package/dist/phase/oracles.d.ts +28 -0
  186. package/dist/phase/oracles.d.ts.map +1 -1
  187. package/dist/phase/oracles.js +28 -0
  188. package/dist/phase/oracles.js.map +1 -1
  189. package/dist/phase/phaseModel.d.ts +47 -8
  190. package/dist/phase/phaseModel.d.ts.map +1 -1
  191. package/dist/phase/phaseModel.js +44 -8
  192. package/dist/phase/phaseModel.js.map +1 -1
  193. package/dist/phase/producers.d.ts.map +1 -1
  194. package/dist/phase/producers.js +24 -17
  195. package/dist/phase/producers.js.map +1 -1
  196. package/dist/phase/reachability.d.ts +44 -1
  197. package/dist/phase/reachability.d.ts.map +1 -1
  198. package/dist/phase/reachability.js +79 -0
  199. package/dist/phase/reachability.js.map +1 -1
  200. package/dist/phase/rules/conventions.d.ts.map +1 -1
  201. package/dist/phase/rules/conventions.js +6 -2
  202. package/dist/phase/rules/conventions.js.map +1 -1
  203. package/dist/phase/rules/crossDomain.d.ts.map +1 -1
  204. package/dist/phase/rules/crossDomain.js +16 -6
  205. package/dist/phase/rules/crossDomain.js.map +1 -1
  206. package/dist/phase/rules/dataAccess.d.ts.map +1 -1
  207. package/dist/phase/rules/dataAccess.js +13 -0
  208. package/dist/phase/rules/dataAccess.js.map +1 -1
  209. package/dist/phase/rules/documentation.d.ts.map +1 -1
  210. package/dist/phase/rules/documentation.js +11 -1
  211. package/dist/phase/rules/documentation.js.map +1 -1
  212. package/dist/phase/rules/dry.d.ts +16 -7
  213. package/dist/phase/rules/dry.d.ts.map +1 -1
  214. package/dist/phase/rules/dry.js +51 -32
  215. package/dist/phase/rules/dry.js.map +1 -1
  216. package/dist/phase/rules/goRules.d.ts +2 -2
  217. package/dist/phase/rules/goRules.js +2 -2
  218. package/dist/phase/rules/secrets.d.ts +22 -8
  219. package/dist/phase/rules/secrets.d.ts.map +1 -1
  220. package/dist/phase/rules/secrets.js +75 -69
  221. package/dist/phase/rules/secrets.js.map +1 -1
  222. package/dist/phase/rules/styles.d.ts +23 -9
  223. package/dist/phase/rules/styles.d.ts.map +1 -1
  224. package/dist/phase/rules/styles.js +61 -15
  225. package/dist/phase/rules/styles.js.map +1 -1
  226. package/dist/phase/rules/unreferencedModule.d.ts.map +1 -1
  227. package/dist/phase/rules/unreferencedModule.js +32 -10
  228. package/dist/phase/rules/unreferencedModule.js.map +1 -1
  229. package/dist/phase/runner.d.ts +16 -7
  230. package/dist/phase/runner.d.ts.map +1 -1
  231. package/dist/phase/runner.js +32 -20
  232. package/dist/phase/runner.js.map +1 -1
  233. package/dist/phase/stringLiterals.d.ts.map +1 -1
  234. package/dist/phase/stringLiterals.js +16 -7
  235. package/dist/phase/stringLiterals.js.map +1 -1
  236. package/dist/phase/stylesCss.d.ts.map +1 -1
  237. package/dist/phase/stylesCss.js +4 -0
  238. package/dist/phase/stylesCss.js.map +1 -1
  239. package/dist/phase/stylesMarkup.d.ts.map +1 -1
  240. package/dist/phase/stylesMarkup.js +4 -0
  241. package/dist/phase/stylesMarkup.js.map +1 -1
  242. package/dist/phase/stylesSource.d.ts.map +1 -1
  243. package/dist/phase/stylesSource.js +6 -0
  244. package/dist/phase/stylesSource.js.map +1 -1
  245. package/dist/phase/testProgram.d.ts +57 -0
  246. package/dist/phase/testProgram.d.ts.map +1 -0
  247. package/dist/phase/testProgram.js +244 -0
  248. package/dist/phase/testProgram.js.map +1 -0
  249. package/dist/phase/typeDeclarations.d.ts +2 -2
  250. package/dist/phase/typeDeclarations.js +2 -2
  251. package/dist/phase/types.d.ts +104 -0
  252. package/dist/phase/types.d.ts.map +1 -1
  253. package/dist/pipeline.d.ts +4 -0
  254. package/dist/pipeline.d.ts.map +1 -1
  255. package/dist/pipeline.js +4 -0
  256. package/dist/pipeline.js.map +1 -1
  257. package/dist/pipelineAdapters.d.ts +1 -171
  258. package/dist/pipelineAdapters.d.ts.map +1 -1
  259. package/dist/pipelineAdapters.js +47 -1281
  260. package/dist/pipelineAdapters.js.map +1 -1
  261. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  262. package/dist/reporting/csvReportGenerator.js +0 -6
  263. package/dist/reporting/csvReportGenerator.js.map +1 -1
  264. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  265. package/dist/reporting/htmlReportGenerator.js +0 -4
  266. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  267. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  268. package/dist/reporting/jsonReportGenerator.js +0 -1
  269. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  270. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  271. package/dist/reporting/sarifReportGenerator.js +0 -7
  272. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  273. package/dist/services/auditJobService.d.ts +15 -0
  274. package/dist/services/auditJobService.d.ts.map +1 -1
  275. package/dist/services/auditJobService.js +15 -0
  276. package/dist/services/auditJobService.js.map +1 -1
  277. package/dist/services/projectTaskHelpers.d.ts +7 -0
  278. package/dist/services/projectTaskHelpers.d.ts.map +1 -1
  279. package/dist/services/projectTaskHelpers.js +7 -0
  280. package/dist/services/projectTaskHelpers.js.map +1 -1
  281. package/dist/services/whitelistService.d.ts +28 -0
  282. package/dist/services/whitelistService.d.ts.map +1 -1
  283. package/dist/services/whitelistService.js +28 -0
  284. package/dist/services/whitelistService.js.map +1 -1
  285. package/dist/sqlite/driver.d.ts +17 -1
  286. package/dist/sqlite/driver.d.ts.map +1 -1
  287. package/dist/sqlite/driver.js +28 -5
  288. package/dist/sqlite/driver.js.map +1 -1
  289. package/dist/styles/cssInJsHarvest.d.ts +36 -0
  290. package/dist/styles/cssInJsHarvest.d.ts.map +1 -0
  291. package/dist/styles/cssInJsHarvest.js +78 -0
  292. package/dist/styles/cssInJsHarvest.js.map +1 -0
  293. package/dist/styles/definedClasses.d.ts +95 -0
  294. package/dist/styles/definedClasses.d.ts.map +1 -0
  295. package/dist/styles/definedClasses.js +129 -0
  296. package/dist/styles/definedClasses.js.map +1 -0
  297. package/dist/styles/markupStyleHarvest.d.ts +33 -0
  298. package/dist/styles/markupStyleHarvest.d.ts.map +1 -0
  299. package/dist/styles/markupStyleHarvest.js +73 -0
  300. package/dist/styles/markupStyleHarvest.js.map +1 -0
  301. package/dist/styles/styleExtractor.d.ts +37 -0
  302. package/dist/styles/styleExtractor.d.ts.map +1 -1
  303. package/dist/styles/styleExtractor.js +89 -33
  304. package/dist/styles/styleExtractor.js.map +1 -1
  305. package/dist/styles/styleIndexer.d.ts.map +1 -1
  306. package/dist/styles/styleIndexer.js +11 -10
  307. package/dist/styles/styleIndexer.js.map +1 -1
  308. package/dist/styles/tailwindExpander.d.ts.map +1 -1
  309. package/dist/styles/tailwindExpander.js +31 -10
  310. package/dist/styles/tailwindExpander.js.map +1 -1
  311. package/dist/styles/tailwindUtilityExpander.d.ts +4 -0
  312. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  313. package/dist/styles/tailwindUtilityExpander.js +4 -0
  314. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  315. package/dist/telemetry.d.ts +67 -1
  316. package/dist/telemetry.d.ts.map +1 -1
  317. package/dist/telemetry.js +100 -20
  318. package/dist/telemetry.js.map +1 -1
  319. package/dist/types/crossLanguage.d.ts +1 -0
  320. package/dist/types/crossLanguage.d.ts.map +1 -1
  321. package/dist/types.d.ts +73 -56
  322. package/dist/types.d.ts.map +1 -1
  323. package/dist/types.js +4 -4
  324. package/dist/types.js.map +1 -1
  325. package/dist/version.generated.d.ts +1 -1
  326. package/dist/version.generated.js +1 -1
  327. package/examples/.auditrc.example.json +7 -22
  328. package/examples/.auditrc.json +12 -155
  329. package/examples/.code-auditor.json +8 -51
  330. package/examples/nextjs.auditrc.json +7 -34
  331. package/examples/node-api.auditrc.json +6 -46
  332. package/examples/react.auditrc.json +8 -25
  333. package/examples/tolerant-solid.auditrc.json +12 -44
  334. package/package.json +8 -5
  335. package/plugin/.claude-plugin/manifest.json +10 -9
  336. package/plugin/.claude-plugin/plugin.json +1 -1
  337. package/plugin/hooks/hooks.json +4 -4
  338. package/plugin/scripts/hook-audit.sh +25 -10
  339. package/plugin/scripts/hook-common.sh +12 -7
  340. package/plugin/scripts/hook-drift-check.sh +10 -1
  341. package/plugin/scripts/hook-log-path.sh +7 -0
  342. package/plugin/scripts/hook-self-audit.sh +21 -6
  343. package/plugin/scripts/hook-warm.sh +17 -11
  344. package/plugin/skills/code-auditor/SKILL.md +26 -3
  345. package/server.json +2 -2
  346. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +0 -6
  347. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +0 -1
  348. package/dist/__tests__/fixtures/spec-20/scripts/tool.js +0 -12
  349. package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +0 -1
  350. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +0 -7
  351. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +0 -1
  352. package/dist/__tests__/fixtures/spec-20/src/demo-module.js +0 -13
  353. package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +0 -1
  354. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +0 -14
  355. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +0 -1
  356. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +0 -16
  357. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +0 -1
  358. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +0 -15
  359. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +0 -1
  360. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +0 -17
  361. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +0 -1
  362. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +0 -14
  363. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +0 -1
  364. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +0 -19
  365. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +0 -1
  366. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +0 -18
  367. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +0 -1
  368. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +0 -19
  369. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +0 -1
  370. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +0 -19
  371. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +0 -1
  372. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +0 -19
  373. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +0 -1
  374. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +0 -17
  375. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +0 -1
  376. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +0 -19
  377. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +0 -1
  378. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +0 -25
  379. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +0 -1
  380. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +0 -21
  381. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +0 -1
  382. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +0 -15
  383. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +0 -1
  384. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +0 -19
  385. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +0 -1
  386. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +0 -14
  387. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +0 -1
  388. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +0 -14
  389. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +0 -1
  390. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +0 -15
  391. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +0 -1
  392. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +0 -16
  393. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +0 -1
  394. package/dist/languages/go/analyzer-darwin-amd64 +0 -0
  395. package/dist/languages/go/analyzer-darwin-arm64 +0 -0
  396. package/dist/languages/go/analyzer-linux-amd64 +0 -0
  397. package/dist/languages/go/analyzer-linux-arm64 +0 -0
  398. package/dist/languages/go/analyzer-src/analyzer.go +0 -643
  399. package/dist/languages/go/analyzer-src/dataaccess.go +0 -388
  400. package/dist/languages/go/analyzer-src/go.mod +0 -3
  401. package/dist/languages/go/analyzer-src/indexer.go +0 -268
  402. package/dist/languages/go/analyzer-src/parser.go +0 -461
  403. package/dist/languages/go/analyzer-src/solid.go +0 -311
  404. package/dist/languages/go/analyzer-src/testconventions.go +0 -25
  405. package/dist/languages/go/analyzer-src/types.go +0 -156
  406. package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
  407. package/dist/languages/go/go.mod +0 -7
  408. package/dist/languages/go/main.go +0 -203
  409. package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
  410. package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
  411. package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
  412. package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
  413. package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
  414. package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
  415. package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
  416. package/dist/native-bootstrap.d.ts +0 -15
  417. package/dist/native-bootstrap.d.ts.map +0 -1
  418. package/dist/native-bootstrap.js +0 -75
  419. package/dist/native-bootstrap.js.map +0 -1
@@ -0,0 +1,580 @@
1
+ /**
2
+ * Vendor surface resolution — Item B (reissued).
3
+ *
4
+ * The data-access analyzer once hand-maintained five method-name lists
5
+ * (`EAGER_DB_METHODS`, `ORM_TABLE_VERBS`, `ORM_JOIN_VERBS`, `PRISMA_VERBS`, and
6
+ * `D1_CONVENIENCE`) plus the `COLLECTION_TRANSFORM_METHODS` runtime probe. A
7
+ * hand-copied vendor list drifts: the vendor adds, renames, or removes a method
8
+ * and the replica silently goes stale (the `.get()` gap, the deferred `.iterate()`,
9
+ * the missing lateral joins, the missing `…AndReturn` verbs). The reissued
10
+ * directive deletes the committed snapshot and resolves each vendor's declaration
11
+ * **from the tree under analysis, per run** — the `node_modules` (or workspace)
12
+ * path the tree's *own* imports resolve to, at the version that tree actually
13
+ * installs. Nothing about a vendor's API is committed here, and nothing is fetched
14
+ * from the network at analysis time.
15
+ *
16
+ * Three of the five vendor lists (`eagerMethods`, `ormTableVerbs`, `ormJoinVerbs`)
17
+ * are the union of the analyzer's irreducible cross-vendor grammar (the baseline,
18
+ * present regardless of what resolves) and the per-run probe — the methods only a
19
+ * specific vendor publishes. Two (`prismaVerbs`, `eagerExecutionMethods`) are
20
+ * resolved **entirely** from the tree, with no baseline. `COLLECTION_TRANSFORM_METHODS`
21
+ * is a runtime probe over `Array.prototype` and has no vendor declaration. When a
22
+ * vendor declaration cannot be resolved, the corresponding surface is `null` and
23
+ * its probe methods are absent (not a fallback list, not a stale snapshot); the
24
+ * resolution record carries the *reason* naming what could not be resolved, so a
25
+ * site whose classification depends on a probe-only method is `unproven`, never
26
+ * silent.
27
+ */
28
+ import { readFileSync, existsSync, readdirSync } from 'node:fs';
29
+ import path from 'node:path';
30
+ import { parseFile, getNodeText } from '../languages/adapterBridge.js';
31
+ /** The every-surface-null surface set — used when there is no project root (the
32
+ * vertical slice tests, the raw extractor's direct-call API). */
33
+ export const EMPTY_VENDOR_SURFACES = {
34
+ kyselyQueryCreator: null,
35
+ kyselySelectQueryBuilder: null,
36
+ betterSqlite3Statement: null,
37
+ betterSqlite3Database: null,
38
+ nodeSqliteStatement: null,
39
+ nodeSqliteDatabase: null,
40
+ d1Database: null,
41
+ d1PreparedStatement: null,
42
+ pgPool: null,
43
+ mysql2Connection: null,
44
+ prismaVerbs: null,
45
+ resolutions: [],
46
+ };
47
+ // Package specifiers shared by VENDOR_TYPE_SPECS (what to probe) and SURFACE_FIELDS
48
+ // (the resolved field name per probe). Extracted so a rename lands in one place and
49
+ // the duplicate-string-literal rule stays quiet on the three driver package names.
50
+ const PKG_BETTER_SQLITE3_TYPES = '@types/better-sqlite3';
51
+ const PKG_NODE_TYPES = '@types/node';
52
+ const PKG_CLOUDFLARE_WORKERS_TYPES = '@cloudflare/workers-types';
53
+ // The Prisma probe's target type name, and the version fallback rendered when a
54
+ // package carries no resolvable version. Each repeats across every
55
+ // `resolvePrismaSurface` / `resolveType` return branch, so a single constant names it.
56
+ const PRISMA_DELEGATE_TYPE = '*Delegate';
57
+ const VERSION_UNKNOWN = 'version unknown';
58
+ const VENDOR_TYPE_SPECS = [
59
+ { pkg: PKG_BETTER_SQLITE3_TYPES, entry: 'index.d.ts', types: ['Database', 'Statement'] },
60
+ { pkg: PKG_NODE_TYPES, entry: 'sqlite.d.ts', types: ['DatabaseSync', 'StatementSync'] },
61
+ { pkg: PKG_CLOUDFLARE_WORKERS_TYPES, entry: 'index.d.ts', types: ['D1Database', 'D1PreparedStatement'] },
62
+ { pkg: 'kysely', entry: null, types: ['QueryCreator', 'SelectQueryBuilder'] },
63
+ // `@types/pg` and `mysql2` contribute only their single eager-execution member
64
+ // (`query` / `execute` respectively) — a Pool/Connection surface is a *client*
65
+ // surface (connect/end/on), not an eager-execution surface, so the whole
66
+ // declaration is not unioned the way the statement/database surfaces are.
67
+ { pkg: '@types/pg', entry: null, types: ['Pool'] },
68
+ { pkg: 'mysql2', entry: null, types: ['Connection'] },
69
+ ];
70
+ /**
71
+ * Resolve a package's directory under `projectRoot`'s `node_modules`, walking up
72
+ * ancestor directories so a package hoisted to a workspace root still resolves.
73
+ * Returns the package root, or `null` when the package is not installed anywhere
74
+ * up the tree.
75
+ */
76
+ function resolvePackageRoot(pkg, projectRoot) {
77
+ const segments = pkg.split('/');
78
+ let dir = path.resolve(projectRoot);
79
+ for (;;) {
80
+ const candidate = path.join(dir, 'node_modules', ...segments);
81
+ if (existsSync(path.join(candidate, 'package.json')))
82
+ return candidate;
83
+ const parent = path.dirname(dir);
84
+ if (parent === dir)
85
+ return null;
86
+ dir = parent;
87
+ }
88
+ }
89
+ /** Read a package's `version` field, or null when the package.json is absent or
90
+ * unparseable. */
91
+ function packageVersion(pkgRoot) {
92
+ try {
93
+ const parsed = JSON.parse(readFileSync(path.join(pkgRoot, 'package.json'), 'utf8'));
94
+ return typeof parsed.version === 'string' ? parsed.version : null;
95
+ }
96
+ catch {
97
+ return null;
98
+ }
99
+ }
100
+ /** Recursively collect every `.d.ts` under `dir`, skipping nested `node_modules`. */
101
+ function walkDts(dir, out = []) {
102
+ let entries;
103
+ try {
104
+ entries = readdirSync(dir, { withFileTypes: true });
105
+ }
106
+ catch {
107
+ return out;
108
+ }
109
+ for (const e of entries) {
110
+ if (e.name === 'node_modules')
111
+ continue;
112
+ const p = path.join(dir, e.name);
113
+ if (e.isDirectory())
114
+ walkDts(p, out);
115
+ else if (p.endsWith('.d.ts'))
116
+ out.push(p);
117
+ }
118
+ return out;
119
+ }
120
+ /**
121
+ * The declaration kinds a named type may take: interfaces and classes (with an
122
+ * `interface_body`/`class_body`), plus type aliases (a `type_alias_declaration`
123
+ * whose body is an `object_type` or an `intersection_type` of `object_type`s).
124
+ * tree-sitter renders a declaration name as a leading `type_identifier` child
125
+ * for all three.
126
+ */
127
+ const TYPE_DECLARATION_KINDS = new Set([
128
+ 'interface_declaration',
129
+ 'class_declaration',
130
+ 'abstract_class_declaration',
131
+ 'type_alias_declaration',
132
+ ]);
133
+ /**
134
+ * Find every `interface_declaration` / `class_declaration` /
135
+ * `abstract_class_declaration` / `type_alias_declaration` named `typeName` in a
136
+ * parsed `.d.ts`.
137
+ *
138
+ * A name is not unique in a real declaration file: `@types/better-sqlite3`
139
+ * declares both `interface Statement` (the surface) and a *conditional*
140
+ * `type Statement<…> = …` alias (a tuple-parameter helper), in the same
141
+ * namespace. Returning the first match — whichever a depth-first walk reaches
142
+ * first — would let the helper alias shadow the interface and read an empty
143
+ * surface. Collect *all* matches and let the caller union their member surfaces.
144
+ */
145
+ function findTypeDecls(root, typeName, sourceCode) {
146
+ const decls = [];
147
+ const stack = [root];
148
+ while (stack.length > 0) {
149
+ const node = stack.pop();
150
+ if (TYPE_DECLARATION_KINDS.has(node.type)) {
151
+ const nameNode = node.children?.find((c) => c.type === 'type_identifier');
152
+ if (nameNode && getNodeText(nameNode, sourceCode) === typeName)
153
+ decls.push(node);
154
+ }
155
+ if (node.children)
156
+ for (const c of node.children)
157
+ stack.push(c);
158
+ }
159
+ return decls;
160
+ }
161
+ /** A member node of a type body: a callable method/property signature or
162
+ * definition. */
163
+ function isMemberNode(t) {
164
+ return (t === 'method_signature' ||
165
+ t === 'property_signature' ||
166
+ t === 'method_definition' ||
167
+ t === 'public_field_definition' ||
168
+ t === 'property_definition');
169
+ }
170
+ /** Extract the identifier-name surface from a list of member nodes. Non-identifier
171
+ * members (`[Symbol.dispose]`, string-literal keys) are dropped. */
172
+ function collectCallableMembers(memberNodes, sourceCode) {
173
+ const members = new Set();
174
+ for (const m of memberNodes) {
175
+ if (!isMemberNode(m.type))
176
+ continue;
177
+ const nameNode = m.children?.find((c) => c.type === 'property_identifier');
178
+ if (!nameNode)
179
+ continue;
180
+ const name = getNodeText(nameNode, sourceCode);
181
+ if (name && /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name))
182
+ members.add(name);
183
+ }
184
+ return members;
185
+ }
186
+ /**
187
+ * Read the member surface of a `type_alias_declaration` whose body is an
188
+ * `object_type` or an `intersection_type` of `object_type`s — e.g.
189
+ * `type X = { a(): void } & { b(): void }`. Only the top-level members of each
190
+ * `object_type` are collected; a nested `object_type` inside a member's own type
191
+ * annotation (an index signature's value type, a method's return type) is NOT
192
+ * descended into — those are member *types*, not members of the alias.
193
+ */
194
+ function readTypeAliasMembers(decl, sourceCode) {
195
+ const typeNode = decl.children?.find((c) => c.type === 'intersection_type' || c.type === 'object_type');
196
+ if (!typeNode)
197
+ return new Set();
198
+ const memberNodes = [];
199
+ if (typeNode.type === 'object_type') {
200
+ memberNodes.push(...(typeNode.children ?? []));
201
+ }
202
+ else if (typeNode.type === 'intersection_type') {
203
+ for (const part of typeNode.children ?? []) {
204
+ if (part.type === 'object_type')
205
+ memberNodes.push(...(part.children ?? []));
206
+ // A named-type reference (`type_identifier`) inside an intersection is a
207
+ // cross-declaration alias this single-file reader does not chase — the
208
+ // generated Prisma client never uses it for model delegates.
209
+ }
210
+ }
211
+ return collectCallableMembers(memberNodes, sourceCode);
212
+ }
213
+ /**
214
+ * Read the callable member-name surface of one declared type from a `.d.ts` file.
215
+ * Method and property members both count — a vendor may declare `all(...)` as a
216
+ * method or as a `(...args) => Result` property, and both are part of the callable
217
+ * surface. Non-identifier members (`[Symbol.dispose]`, string-literal keys) are
218
+ * dropped. Returns null when the file is unreadable, unparseable, or does not
219
+ * declare the named type.
220
+ *
221
+ * When a name is declared more than once (an interface shadowed by a helper type
222
+ * alias, as in `@types/better-sqlite3`'s `Statement`), the surface is the union of
223
+ * every declaration's members — a conditional-type alias contributes none, so the
224
+ * interface's surface wins rather than being masked by the helper.
225
+ */
226
+ function readTypeMemberSurface(dtsPath, typeName) {
227
+ let content;
228
+ try {
229
+ content = readFileSync(dtsPath, 'utf8');
230
+ }
231
+ catch {
232
+ return null;
233
+ }
234
+ const ast = parseFile(dtsPath, content);
235
+ if (!ast)
236
+ return null;
237
+ const decls = findTypeDecls(ast.root, typeName, content);
238
+ if (decls.length === 0)
239
+ return null;
240
+ const members = new Set();
241
+ for (const decl of decls) {
242
+ const body = decl.children?.find((c) => c.type === 'interface_body' || c.type === 'class_body');
243
+ if (body) {
244
+ for (const m of collectCallableMembers(body.children ?? [], content))
245
+ members.add(m);
246
+ }
247
+ else if (decl.type === 'type_alias_declaration') {
248
+ for (const m of readTypeAliasMembers(decl, content))
249
+ members.add(m);
250
+ }
251
+ }
252
+ return members;
253
+ }
254
+ /**
255
+ * Enumerate every `*Delegate` declaration in a parsed generated Prisma client and
256
+ * return the union of their callable member names — the model verb set. Prisma 6
257
+ * generates one delegate *interface* per model (`export interface UserDelegate<…>`)
258
+ * whose members are exactly the model verbs; the `[K: symbol]` index signature the
259
+ * generator adds is not a callable member and is dropped. Returns null when no
260
+ * `*Delegate` declaration is found (so an empty client is `unproven`, not an empty
261
+ * verb set).
262
+ */
263
+ function readDelegateUnion(root, sourceCode) {
264
+ const verbs = new Set();
265
+ let found = false;
266
+ const stack = [root];
267
+ while (stack.length > 0) {
268
+ const node = stack.pop();
269
+ if (TYPE_DECLARATION_KINDS.has(node.type)) {
270
+ const nameNode = node.children?.find((c) => c.type === 'type_identifier');
271
+ const name = nameNode ? getNodeText(nameNode, sourceCode) : null;
272
+ if (name && /Delegate$/.test(name)) {
273
+ found = true;
274
+ const body = node.children?.find((c) => c.type === 'interface_body' || c.type === 'class_body');
275
+ const members = body
276
+ ? collectCallableMembers(body.children ?? [], sourceCode)
277
+ : node.type === 'type_alias_declaration'
278
+ ? readTypeAliasMembers(node, sourceCode)
279
+ : new Set();
280
+ for (const m of members)
281
+ verbs.add(m);
282
+ }
283
+ }
284
+ if (node.children)
285
+ for (const c of node.children)
286
+ stack.push(c);
287
+ }
288
+ return found ? verbs : null;
289
+ }
290
+ /**
291
+ * Resolve the generated Prisma client's model verb set from the analyzed tree.
292
+ *
293
+ * Prisma generates its client into a dot-prefixed *virtual* package —
294
+ * `node_modules/.prisma/client/index.d.ts` — re-exported by the `@prisma/client`
295
+ * shim. The verbs live on the generated `*Delegate` declarations (one per model),
296
+ * identical across models by construction, so the union of their member names is
297
+ * exactly the verb set the repo's own schema generated. A tree without a generated
298
+ * client (no `node_modules/.prisma/client`) is `unproven` with that reason — never
299
+ * a committed snapshot, never a network fetch.
300
+ */
301
+ function resolvePrismaSurface(projectRoot) {
302
+ const pkgRoot = resolvePackageRoot('.prisma/client', projectRoot);
303
+ if (!pkgRoot) {
304
+ return {
305
+ verbs: null,
306
+ resolution: {
307
+ pkg: '.prisma/client',
308
+ type: PRISMA_DELEGATE_TYPE,
309
+ path: null,
310
+ version: null,
311
+ reason: `generated Prisma client \`.prisma/client\` is not present under ${path.join(path.resolve(projectRoot), 'node_modules')} (run \`prisma generate\` in the analyzed tree)`,
312
+ },
313
+ };
314
+ }
315
+ const version = packageVersion(pkgRoot);
316
+ const indexDts = path.join(pkgRoot, 'index.d.ts');
317
+ if (!existsSync(indexDts)) {
318
+ return {
319
+ verbs: null,
320
+ resolution: {
321
+ pkg: '.prisma/client',
322
+ type: PRISMA_DELEGATE_TYPE,
323
+ path: null,
324
+ version,
325
+ reason: `generated Prisma client has no index.d.ts (${version ?? VERSION_UNKNOWN})`,
326
+ },
327
+ };
328
+ }
329
+ let content;
330
+ try {
331
+ content = readFileSync(indexDts, 'utf8');
332
+ }
333
+ catch {
334
+ return {
335
+ verbs: null,
336
+ resolution: {
337
+ pkg: '.prisma/client',
338
+ type: PRISMA_DELEGATE_TYPE,
339
+ path: null,
340
+ version,
341
+ reason: `could not read ${indexDts}`,
342
+ },
343
+ };
344
+ }
345
+ const ast = parseFile(indexDts, content);
346
+ if (!ast) {
347
+ return {
348
+ verbs: null,
349
+ resolution: {
350
+ pkg: '.prisma/client',
351
+ type: PRISMA_DELEGATE_TYPE,
352
+ path: null,
353
+ version,
354
+ reason: `could not parse ${indexDts}`,
355
+ },
356
+ };
357
+ }
358
+ const verbs = readDelegateUnion(ast.root, content);
359
+ if (verbs === null) {
360
+ return {
361
+ verbs: null,
362
+ resolution: {
363
+ pkg: '.prisma/client',
364
+ type: PRISMA_DELEGATE_TYPE,
365
+ path: null,
366
+ version,
367
+ reason: `no \`*Delegate\` declaration found in the generated client (${version ?? VERSION_UNKNOWN})`,
368
+ },
369
+ };
370
+ }
371
+ return {
372
+ verbs,
373
+ resolution: { pkg: '.prisma/client', type: PRISMA_DELEGATE_TYPE, path: indexDts, version, reason: null },
374
+ };
375
+ }
376
+ /**
377
+ * Resolve one (package, type) surface from the tree's `node_modules`. Reads the
378
+ * named entry file when the spec names one; otherwise walks the package's shipped
379
+ * `.d.ts` files for the declaration (kysely's builders are split across subpath
380
+ * files, so its barrel index does not re-declare them). Returns a resolution
381
+ * record plus the member set (or null).
382
+ */
383
+ function resolveType(spec, type, projectRoot) {
384
+ const pkgRoot = resolvePackageRoot(spec.pkg, projectRoot);
385
+ if (!pkgRoot) {
386
+ return {
387
+ members: null,
388
+ resolution: {
389
+ pkg: spec.pkg,
390
+ type,
391
+ path: null,
392
+ version: null,
393
+ reason: `package \`${spec.pkg}\` is not installed under ${path.join(path.resolve(projectRoot), 'node_modules')}`,
394
+ },
395
+ };
396
+ }
397
+ const version = packageVersion(pkgRoot);
398
+ // Named entry first; if the type is not declared there, fall back to a walk.
399
+ const candidates = [];
400
+ if (spec.entry)
401
+ candidates.push(path.join(pkgRoot, spec.entry));
402
+ if (!spec.entry)
403
+ walkDts(pkgRoot, candidates);
404
+ for (const dts of candidates) {
405
+ if (!existsSync(dts))
406
+ continue;
407
+ const members = readTypeMemberSurface(dts, type);
408
+ if (members !== null) {
409
+ return {
410
+ members,
411
+ resolution: { pkg: spec.pkg, type, path: dts, version, reason: null },
412
+ };
413
+ }
414
+ }
415
+ // The entry (if named) may exist but not declare the type — walk as a fallback.
416
+ if (spec.entry) {
417
+ const walked = [];
418
+ walkDts(pkgRoot, walked);
419
+ for (const dts of walked) {
420
+ const members = readTypeMemberSurface(dts, type);
421
+ if (members !== null) {
422
+ return {
423
+ members,
424
+ resolution: { pkg: spec.pkg, type, path: dts, version, reason: null },
425
+ };
426
+ }
427
+ }
428
+ }
429
+ return {
430
+ members: null,
431
+ resolution: {
432
+ pkg: spec.pkg,
433
+ type,
434
+ path: null,
435
+ version,
436
+ reason: `type \`${type}\` is not declared in the shipped \`${spec.pkg}\` declarations (${version ?? VERSION_UNKNOWN})`,
437
+ },
438
+ };
439
+ }
440
+ /** The per-surface field names, in resolution order, keyed by the (pkg, type)
441
+ * pair they correspond to. */
442
+ const SURFACE_FIELDS = [
443
+ { pkg: PKG_BETTER_SQLITE3_TYPES, type: 'Database', field: 'betterSqlite3Database' },
444
+ { pkg: PKG_BETTER_SQLITE3_TYPES, type: 'Statement', field: 'betterSqlite3Statement' },
445
+ { pkg: PKG_NODE_TYPES, type: 'DatabaseSync', field: 'nodeSqliteDatabase' },
446
+ { pkg: PKG_NODE_TYPES, type: 'StatementSync', field: 'nodeSqliteStatement' },
447
+ { pkg: PKG_CLOUDFLARE_WORKERS_TYPES, type: 'D1Database', field: 'd1Database' },
448
+ { pkg: PKG_CLOUDFLARE_WORKERS_TYPES, type: 'D1PreparedStatement', field: 'd1PreparedStatement' },
449
+ { pkg: 'kysely', type: 'QueryCreator', field: 'kyselyQueryCreator' },
450
+ { pkg: 'kysely', type: 'SelectQueryBuilder', field: 'kyselySelectQueryBuilder' },
451
+ { pkg: '@types/pg', type: 'Pool', field: 'pgPool' },
452
+ { pkg: 'mysql2', type: 'Connection', field: 'mysql2Connection' },
453
+ ];
454
+ /**
455
+ * Resolve every vendor surface from the tree under analysis. One pass per run;
456
+ * nothing is cached across runs and nothing is fetched — a tree on a given
457
+ * vendor version is judged by that version's own declarations.
458
+ *
459
+ * @param projectRoot - The root of the tree under analysis; its `node_modules`
460
+ * (walked upward to the workspace root) is where each vendor's declarations resolve.
461
+ * @returns Every vendor surface, each either the resolved member set or `null`
462
+ * with a per-surface `resolution` record carrying the reason.
463
+ */
464
+ export function resolveVendorSurfaces(projectRoot) {
465
+ const surfaces = {};
466
+ const resolutions = [];
467
+ for (const { pkg, type, field } of SURFACE_FIELDS) {
468
+ const spec = VENDOR_TYPE_SPECS.find((s) => s.pkg === pkg && s.types.includes(type));
469
+ const { members, resolution } = resolveType(spec, type, projectRoot);
470
+ surfaces[field] = members;
471
+ resolutions.push(resolution);
472
+ }
473
+ // Prisma is resolved separately: it is not a single named declaration type but
474
+ // the union of every generated `*Delegate` declaration in `.prisma/client`.
475
+ const prisma = resolvePrismaSurface(projectRoot);
476
+ surfaces.prismaVerbs = prisma.verbs;
477
+ resolutions.push(prisma.resolution);
478
+ return {
479
+ kyselyQueryCreator: surfaces.kyselyQueryCreator ?? null,
480
+ kyselySelectQueryBuilder: surfaces.kyselySelectQueryBuilder ?? null,
481
+ betterSqlite3Statement: surfaces.betterSqlite3Statement ?? null,
482
+ betterSqlite3Database: surfaces.betterSqlite3Database ?? null,
483
+ nodeSqliteStatement: surfaces.nodeSqliteStatement ?? null,
484
+ nodeSqliteDatabase: surfaces.nodeSqliteDatabase ?? null,
485
+ d1Database: surfaces.d1Database ?? null,
486
+ d1PreparedStatement: surfaces.d1PreparedStatement ?? null,
487
+ pgPool: surfaces.pgPool ?? null,
488
+ mysql2Connection: surfaces.mysql2Connection ?? null,
489
+ prismaVerbs: surfaces.prismaVerbs ?? null,
490
+ resolutions,
491
+ };
492
+ }
493
+ /** Add every member of `names` that the surface publishes into `out`. */
494
+ function addIfPublished(surface, names, out) {
495
+ if (!surface)
496
+ return;
497
+ for (const name of names)
498
+ if (surface.has(name))
499
+ out.add(name);
500
+ }
501
+ /**
502
+ * Derive the method sets the analyzer reads. Three of them (`eagerMethods`,
503
+ * `ormTableVerbs`, `ormJoinVerbs`) are the union of the analyzer's irreducible
504
+ * cross-vendor grammar (the baseline, present regardless of what resolves) and the
505
+ * per-run *probe* — the methods only a specific vendor publishes that the baseline
506
+ * lacks. Two more are resolved *entirely* from the tree, with no baseline:
507
+ *
508
+ * - `prismaVerbs` — the union of the generated `.prisma/client` `*Delegate`
509
+ * member names. No hand-kept fallback: where `.prisma/client` is not generated,
510
+ * the set is null and the site is `unproven` with that reason.
511
+ * - `eagerExecutionMethods` — the cross-driver eager-execution surface, the union
512
+ * of whichever driver surfaces resolve (D1PreparedStatement; better-sqlite3 and
513
+ * node:sqlite statement+database; `query` from pg; `execute` from mysql2).
514
+ * Null when no driver resolves, never a fallback list.
515
+ *
516
+ * The baseline is not a copy of any single vendor's declaration: it is the
517
+ * analyzer's accumulated judgment of the generic SQL-driver/builder grammar, the
518
+ * cross-vendor union no one vendor is the authority for (the same criterion that
519
+ * keeps the seven irreducible lists). The probe supplies exactly what that grammar
520
+ * misses and only a vendor publishes — `iterate` (better-sqlite3), `mergeInto` /
521
+ * `replaceInto` and `fullJoin` / `*JoinLateral` (Kysely).
522
+ *
523
+ * @param s - The resolved vendor surfaces to derive the analyzer's method sets from.
524
+ * @returns The derived method sets (`eagerMethods`, `ormTableVerbs`, `ormJoinVerbs`,
525
+ * `prismaVerbs`, `eagerExecutionMethods`) the data-access analyzer reads.
526
+ */
527
+ export function deriveVendorSets(s) {
528
+ // Irreducible baseline: the generic eager-I/O and builder-verb grammar.
529
+ const eagerMethods = new Set([
530
+ 'query', // generic driver abstraction (handle.query)
531
+ 'run', 'all', 'get', 'first', 'raw', 'exec', 'batch', // generic eager I/O
532
+ ]);
533
+ const ormTableVerbs = new Set(['selectFrom', 'deleteFrom', 'insertInto', 'updateTable']);
534
+ const ormJoinVerbs = new Set(['join', 'leftJoin', 'rightJoin', 'innerJoin']);
535
+ // Per-run probe additions — absent when the vendor is unresolvable (unproven).
536
+ addIfPublished(s.betterSqlite3Statement, ['iterate'], eagerMethods);
537
+ addIfPublished(s.kyselyQueryCreator, ['mergeInto', 'replaceInto'], ormTableVerbs);
538
+ if (s.kyselySelectQueryBuilder) {
539
+ for (const m of s.kyselySelectQueryBuilder) {
540
+ if (m.endsWith('Join') || m.endsWith('JoinLateral'))
541
+ ormJoinVerbs.add(m);
542
+ }
543
+ }
544
+ // Eager-execution surface — the cross-driver union of resolved statement/database
545
+ // surfaces, plus pg's `query` and mysql2's `execute`. Null when nothing resolves
546
+ // (the site is `unproven`); a tree with only better-sqlite3 gets better-sqlite3's
547
+ // methods and nothing else.
548
+ const eagerExecutionMethods = new Set();
549
+ let anyEagerDriverResolved = false;
550
+ const unionSurface = (surface) => {
551
+ if (!surface)
552
+ return;
553
+ anyEagerDriverResolved = true;
554
+ for (const m of surface)
555
+ eagerExecutionMethods.add(m);
556
+ };
557
+ unionSurface(s.d1PreparedStatement);
558
+ unionSurface(s.betterSqlite3Statement);
559
+ unionSurface(s.betterSqlite3Database);
560
+ unionSurface(s.nodeSqliteStatement);
561
+ unionSurface(s.nodeSqliteDatabase);
562
+ if (s.pgPool) {
563
+ anyEagerDriverResolved = true;
564
+ if (s.pgPool.has('query'))
565
+ eagerExecutionMethods.add('query');
566
+ }
567
+ if (s.mysql2Connection) {
568
+ anyEagerDriverResolved = true;
569
+ if (s.mysql2Connection.has('execute'))
570
+ eagerExecutionMethods.add('execute');
571
+ }
572
+ return {
573
+ eagerMethods,
574
+ ormTableVerbs,
575
+ ormJoinVerbs,
576
+ prismaVerbs: s.prismaVerbs,
577
+ eagerExecutionMethods: anyEagerDriverResolved ? eagerExecutionMethods : null,
578
+ };
579
+ }
580
+ //# sourceMappingURL=vendorSurfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendorSurfaces.js","sourceRoot":"","sources":["../../src/analyzers/vendorSurfaces.ts"],"names":[],"mappings":"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"}
@@ -49,8 +49,12 @@ export declare function resolveFilesScope(options: AuditRunnerOptions, scopeFile
49
49
  * @param analyzerResults per-analyzer results, keyed by analyzer name
50
50
  * @param filesAnalyzed total number of files processed this run
51
51
  * @param unprovenSitesByAnalyzer per-analyzer count of unproven (cannot-fire) sites
52
+ * @param unprovenSitesByRule per-rule count + cause of unproven (cannot-fire) sites (K9)
52
53
  */
53
- export declare function generateSummary(analyzerResults: Record<string, AnalyzerResult>, filesAnalyzed: number, unprovenSitesByAnalyzer?: ReadonlyMap<string, number>): {
54
+ export declare function generateSummary(analyzerResults: Record<string, AnalyzerResult>, filesAnalyzed: number, unprovenSitesByAnalyzer?: ReadonlyMap<string, number>, unprovenSitesByRule?: ReadonlyMap<string, {
55
+ count: number;
56
+ causes: ReadonlyMap<string, number>;
57
+ }>): {
54
58
  totalFiles: number;
55
59
  totalViolations: number;
56
60
  criticalIssues: number;
@@ -68,6 +72,10 @@ export declare function generateSummary(analyzerResults: Record<string, Analyzer
68
72
  count: number;
69
73
  }[];
70
74
  unprovenSites: number;
75
+ unprovenSitesByRule: Record<string, {
76
+ count: number;
77
+ causes: Record<string, number>;
78
+ }>;
71
79
  heldOut: number;
72
80
  };
73
81
  export interface DiagnosticWarning {
@@ -1 +1 @@
1
- {"version":3,"file":"auditRunner.d.ts","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EAoBf,MAAM,YAAY,CAAC;AAiDpB,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA4iC1F;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B1F;AAyoBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB;oCAInB,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAAC;uBAQjD,kBAAkB,KAAG,OAAO,CAAC,WAAW,CAAC;6BAiK1B,WAAW,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;EAS7F;AAoGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC/C,aAAa,EAAE,MAAM,EACrB,uBAAuB,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa;;;;;;;;oBAQjB,MAAM;wBAAkB,MAAM;qBAAe,MAAM;uBAAiB,MAAM;;;;;;;;EAyD1H;AA2FD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC/C,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,iBAAiB,EAAE,CAoDrB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGjF;AAED,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"auditRunner.d.ts","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EAoBf,MAAM,YAAY,CAAC;AAgDpB,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAymC1F;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B1F;AA+mBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB;oCAInB,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAAC;uBAQjD,kBAAkB,KAAG,OAAO,CAAC,WAAW,CAAC;6BA2K1B,WAAW,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;EAS7F;AAoGD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC/C,aAAa,EAAE,MAAM,EACrB,uBAAuB,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,EAChE,mBAAmB,GAAE,WAAW,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAa;;;;;;;;oBAQ7D,MAAM;wBAAkB,MAAM;qBAAe,MAAM;uBAAiB,MAAM;;;;;;;;eAiDnE,MAAM;gBAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;EAkB7F;AA2FD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC/C,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,iBAAiB,EAAE,CAoDrB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGjF;AAED,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}