code-auditor-mcp 4.1.0 → 5.0.1

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 (1086) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +374 -0
  3. package/README.md +4 -4
  4. package/configs/hhra-compat.json +0 -8
  5. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +1 -1
  6. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +1 -1
  7. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +7 -1
  8. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +1 -1
  9. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +2 -8
  10. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -1
  11. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +4 -4
  12. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +1 -1
  13. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +1 -1
  14. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +1 -1
  15. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +1 -1
  16. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +2 -2
  17. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +1 -1
  18. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +1 -1
  19. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +1 -1
  20. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +1 -1
  21. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +1 -1
  22. package/dist/analyzers/applicability.d.ts +42 -0
  23. package/dist/analyzers/applicability.d.ts.map +1 -1
  24. package/dist/analyzers/applicability.js +74 -0
  25. package/dist/analyzers/applicability.js.map +1 -1
  26. package/dist/analyzers/cross-language/APIContractAnalyzer.js +18 -24
  27. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  28. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +30 -23
  29. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  30. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +113 -76
  31. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  32. package/dist/analyzers/cross-language/SchemaValidator.d.ts +2 -0
  33. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  34. package/dist/analyzers/cross-language/SchemaValidator.js +8 -3
  35. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  36. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  37. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +210 -148
  38. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  39. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  40. package/dist/analyzers/documentationAnalyzer.js +23 -28
  41. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  42. package/dist/analyzers/handleIdentification.d.ts +356 -0
  43. package/dist/analyzers/handleIdentification.d.ts.map +1 -0
  44. package/dist/analyzers/handleIdentification.js +424 -0
  45. package/dist/analyzers/handleIdentification.js.map +1 -0
  46. package/dist/analyzers/manifestStaleness.d.ts +64 -0
  47. package/dist/analyzers/manifestStaleness.d.ts.map +1 -0
  48. package/dist/analyzers/manifestStaleness.js +115 -0
  49. package/dist/analyzers/manifestStaleness.js.map +1 -0
  50. package/dist/analyzers/orgFilterTiers.d.ts +73 -1
  51. package/dist/analyzers/orgFilterTiers.d.ts.map +1 -1
  52. package/dist/analyzers/orgFilterTiers.js +166 -1
  53. package/dist/analyzers/orgFilterTiers.js.map +1 -1
  54. package/dist/analyzers/provenance.d.ts +251 -57
  55. package/dist/analyzers/provenance.d.ts.map +1 -1
  56. package/dist/analyzers/provenance.js +1109 -429
  57. package/dist/analyzers/provenance.js.map +1 -1
  58. package/dist/analyzers/reactAnalyzer.d.ts +2 -0
  59. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  60. package/dist/analyzers/reactAnalyzer.js +2 -0
  61. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  62. package/dist/analyzers/receiverResolution.d.ts +183 -0
  63. package/dist/analyzers/receiverResolution.d.ts.map +1 -0
  64. package/dist/analyzers/receiverResolution.js +540 -0
  65. package/dist/analyzers/receiverResolution.js.map +1 -0
  66. package/dist/analyzers/receiverRoot.d.ts +328 -0
  67. package/dist/analyzers/receiverRoot.d.ts.map +1 -0
  68. package/dist/analyzers/receiverRoot.js +990 -0
  69. package/dist/analyzers/receiverRoot.js.map +1 -0
  70. package/dist/analyzers/ruleRegistry.d.ts +12 -68
  71. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  72. package/dist/analyzers/ruleRegistry.js +32 -342
  73. package/dist/analyzers/ruleRegistry.js.map +1 -1
  74. package/dist/analyzers/ruleTiming.d.ts +10 -0
  75. package/dist/analyzers/ruleTiming.d.ts.map +1 -1
  76. package/dist/analyzers/ruleTiming.js +20 -0
  77. package/dist/analyzers/ruleTiming.js.map +1 -1
  78. package/dist/analyzers/sqlLiteral.d.ts +76 -0
  79. package/dist/analyzers/sqlLiteral.d.ts.map +1 -0
  80. package/dist/analyzers/sqlLiteral.js +419 -0
  81. package/dist/analyzers/sqlLiteral.js.map +1 -0
  82. package/dist/analyzers/tsEcosystem.d.ts +115 -0
  83. package/dist/analyzers/tsEcosystem.d.ts.map +1 -0
  84. package/dist/analyzers/tsEcosystem.js +231 -0
  85. package/dist/analyzers/tsEcosystem.js.map +1 -0
  86. package/dist/analyzers/tsExpressionDescriptor.d.ts +156 -0
  87. package/dist/analyzers/tsExpressionDescriptor.d.ts.map +1 -0
  88. package/dist/analyzers/tsExpressionDescriptor.js +374 -0
  89. package/dist/analyzers/tsExpressionDescriptor.js.map +1 -0
  90. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +6 -0
  91. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  92. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +107 -44
  93. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  94. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +1 -12
  95. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  96. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +24 -101
  97. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  98. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +287 -49
  99. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  100. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +2130 -512
  101. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  102. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  103. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +2 -18
  104. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  105. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -33
  106. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  107. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +20 -143
  108. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  109. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +4 -3
  110. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  111. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +36 -13
  112. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  113. package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
  114. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +6 -0
  115. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -1
  116. package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +15 -0
  117. package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -1
  118. package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +25 -0
  119. package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -1
  120. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +21 -32
  121. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  122. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +166 -196
  123. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  124. package/dist/analyzers/universal/functionConcerns.d.ts +3 -0
  125. package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
  126. package/dist/analyzers/universal/functionConcerns.js +4 -1
  127. package/dist/analyzers/universal/functionConcerns.js.map +1 -1
  128. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +310 -69
  129. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  130. package/dist/analyzers/universal/schema/codeAnalysis.js +709 -383
  131. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  132. package/dist/analyzers/universal/schema/config.d.ts +3 -14
  133. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  134. package/dist/analyzers/universal/schema/config.js +3 -16
  135. package/dist/analyzers/universal/schema/config.js.map +1 -1
  136. package/dist/analyzers/universal/schema/discovery.d.ts +22 -1
  137. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
  138. package/dist/analyzers/universal/schema/discovery.js +36 -20
  139. package/dist/analyzers/universal/schema/discovery.js.map +1 -1
  140. package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -1
  141. package/dist/analyzers/universal/schema/jsonSchema.js +13 -3
  142. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  143. package/dist/analyzers/universal/schema/migrations.d.ts +187 -27
  144. package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
  145. package/dist/analyzers/universal/schema/migrations.js +443 -186
  146. package/dist/analyzers/universal/schema/migrations.js.map +1 -1
  147. package/dist/analyzers/universal/schema/types.d.ts +17 -3
  148. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  149. package/dist/analyzers/universal/schema/violations.js +1 -1
  150. package/dist/analyzers/universal/schema/violations.js.map +1 -1
  151. package/dist/analyzers/universal/styleScale.d.ts +52 -0
  152. package/dist/analyzers/universal/styleScale.d.ts.map +1 -0
  153. package/dist/analyzers/universal/styleScale.js +95 -0
  154. package/dist/analyzers/universal/styleScale.js.map +1 -0
  155. package/dist/applyDataDirEnv.js +1 -1
  156. package/dist/applyDataDirEnv.js.map +1 -1
  157. package/dist/auditRouter.d.ts +26 -30
  158. package/dist/auditRouter.d.ts.map +1 -1
  159. package/dist/auditRouter.js +373 -143
  160. package/dist/auditRouter.js.map +1 -1
  161. package/dist/auditRunner.d.ts +64 -1
  162. package/dist/auditRunner.d.ts.map +1 -1
  163. package/dist/auditRunner.js +1537 -1051
  164. package/dist/auditRunner.js.map +1 -1
  165. package/dist/baseline.d.ts +30 -3
  166. package/dist/baseline.d.ts.map +1 -1
  167. package/dist/baseline.js +70 -9
  168. package/dist/baseline.js.map +1 -1
  169. package/dist/cli.js +997 -812
  170. package/dist/cli.js.map +1 -1
  171. package/dist/codeIndex/analyzerConfig.d.ts +60 -0
  172. package/dist/codeIndex/analyzerConfig.d.ts.map +1 -0
  173. package/dist/codeIndex/analyzerConfig.js +98 -0
  174. package/dist/codeIndex/analyzerConfig.js.map +1 -0
  175. package/dist/codeIndex/auditResults.d.ts +39 -0
  176. package/dist/codeIndex/auditResults.d.ts.map +1 -0
  177. package/dist/codeIndex/auditResults.js +99 -0
  178. package/dist/codeIndex/auditResults.js.map +1 -0
  179. package/dist/codeIndex/codeMap.d.ts +59 -0
  180. package/dist/codeIndex/codeMap.d.ts.map +1 -0
  181. package/dist/codeIndex/codeMap.js +72 -0
  182. package/dist/codeIndex/codeMap.js.map +1 -0
  183. package/dist/codeIndex/conventions.d.ts +33 -0
  184. package/dist/codeIndex/conventions.d.ts.map +1 -0
  185. package/dist/codeIndex/conventions.js +84 -0
  186. package/dist/codeIndex/conventions.js.map +1 -0
  187. package/dist/codeIndex/coverage.d.ts +78 -0
  188. package/dist/codeIndex/coverage.d.ts.map +1 -0
  189. package/dist/codeIndex/coverage.js +164 -0
  190. package/dist/codeIndex/coverage.js.map +1 -0
  191. package/dist/codeIndex/dependencyGraph.d.ts +97 -0
  192. package/dist/codeIndex/dependencyGraph.d.ts.map +1 -0
  193. package/dist/codeIndex/dependencyGraph.js +241 -0
  194. package/dist/codeIndex/dependencyGraph.js.map +1 -0
  195. package/dist/codeIndex/functionIndex.d.ts +111 -0
  196. package/dist/codeIndex/functionIndex.d.ts.map +1 -0
  197. package/dist/codeIndex/functionIndex.js +306 -0
  198. package/dist/codeIndex/functionIndex.js.map +1 -0
  199. package/dist/codeIndex/inferredReceivers.d.ts +32 -0
  200. package/dist/codeIndex/inferredReceivers.d.ts.map +1 -0
  201. package/dist/codeIndex/inferredReceivers.js +41 -0
  202. package/dist/codeIndex/inferredReceivers.js.map +1 -0
  203. package/dist/codeIndex/meta.d.ts +30 -0
  204. package/dist/codeIndex/meta.d.ts.map +1 -0
  205. package/dist/codeIndex/meta.js +37 -0
  206. package/dist/codeIndex/meta.js.map +1 -0
  207. package/dist/codeIndex/migrations.d.ts +96 -0
  208. package/dist/codeIndex/migrations.d.ts.map +1 -0
  209. package/dist/codeIndex/migrations.js +1302 -0
  210. package/dist/codeIndex/migrations.js.map +1 -0
  211. package/dist/codeIndex/projectTasks.d.ts +54 -0
  212. package/dist/codeIndex/projectTasks.d.ts.map +1 -0
  213. package/dist/codeIndex/projectTasks.js +81 -0
  214. package/dist/codeIndex/projectTasks.js.map +1 -0
  215. package/dist/codeIndex/provenance.d.ts +47 -0
  216. package/dist/codeIndex/provenance.d.ts.map +1 -0
  217. package/dist/codeIndex/provenance.js +48 -0
  218. package/dist/codeIndex/provenance.js.map +1 -0
  219. package/dist/codeIndex/rawSql.d.ts +54 -0
  220. package/dist/codeIndex/rawSql.d.ts.map +1 -0
  221. package/dist/codeIndex/rawSql.js +71 -0
  222. package/dist/codeIndex/rawSql.js.map +1 -0
  223. package/dist/codeIndex/schema.d.ts +99 -0
  224. package/dist/codeIndex/schema.d.ts.map +1 -0
  225. package/dist/codeIndex/schema.js +174 -0
  226. package/dist/codeIndex/schema.js.map +1 -0
  227. package/dist/codeIndex/search.d.ts +40 -0
  228. package/dist/codeIndex/search.d.ts.map +1 -0
  229. package/dist/codeIndex/search.js +316 -0
  230. package/dist/codeIndex/search.js.map +1 -0
  231. package/dist/codeIndex/shared.d.ts +27 -0
  232. package/dist/codeIndex/shared.d.ts.map +1 -0
  233. package/dist/codeIndex/shared.js +46 -0
  234. package/dist/codeIndex/shared.js.map +1 -0
  235. package/dist/codeIndex/sqliteCollection.d.ts +81 -0
  236. package/dist/codeIndex/sqliteCollection.d.ts.map +1 -0
  237. package/dist/codeIndex/sqliteCollection.js +250 -0
  238. package/dist/codeIndex/sqliteCollection.js.map +1 -0
  239. package/dist/codeIndex/whitelist.d.ts +59 -0
  240. package/dist/codeIndex/whitelist.d.ts.map +1 -0
  241. package/dist/codeIndex/whitelist.js +188 -0
  242. package/dist/codeIndex/whitelist.js.map +1 -0
  243. package/dist/codeIndexDB.d.ts +130 -277
  244. package/dist/codeIndexDB.d.ts.map +1 -1
  245. package/dist/codeIndexDB.js +364 -2748
  246. package/dist/codeIndexDB.js.map +1 -1
  247. package/dist/codeIndexService.d.ts +87 -12
  248. package/dist/codeIndexService.d.ts.map +1 -1
  249. package/dist/codeIndexService.js +110 -34
  250. package/dist/codeIndexService.js.map +1 -1
  251. package/dist/componentScanner.d.ts +35 -0
  252. package/dist/componentScanner.d.ts.map +1 -1
  253. package/dist/componentScanner.js +114 -80
  254. package/dist/componentScanner.js.map +1 -1
  255. package/dist/config/configGeneratePath.d.ts +4 -0
  256. package/dist/config/configGeneratePath.d.ts.map +1 -1
  257. package/dist/config/configGeneratePath.js +4 -0
  258. package/dist/config/configGeneratePath.js.map +1 -1
  259. package/dist/config/configLoader.d.ts +16 -1
  260. package/dist/config/configLoader.d.ts.map +1 -1
  261. package/dist/config/configLoader.js +26 -23
  262. package/dist/config/configLoader.js.map +1 -1
  263. package/dist/config/defaults.d.ts +11 -7
  264. package/dist/config/defaults.d.ts.map +1 -1
  265. package/dist/config/defaults.js +21 -20
  266. package/dist/config/defaults.js.map +1 -1
  267. package/dist/config/effectiveConfig.d.ts +17 -2
  268. package/dist/config/effectiveConfig.d.ts.map +1 -1
  269. package/dist/config/effectiveConfig.js +32 -25
  270. package/dist/config/effectiveConfig.js.map +1 -1
  271. package/dist/config/lintConfigReader.d.ts +6 -0
  272. package/dist/config/lintConfigReader.d.ts.map +1 -1
  273. package/dist/config/lintConfigReader.js +6 -0
  274. package/dist/config/lintConfigReader.js.map +1 -1
  275. package/dist/config/staticObjectExtract.d.ts +4 -0
  276. package/dist/config/staticObjectExtract.d.ts.map +1 -1
  277. package/dist/config/staticObjectExtract.js +7 -3
  278. package/dist/config/staticObjectExtract.js.map +1 -1
  279. package/dist/config/thresholdRationales.d.ts +2 -0
  280. package/dist/config/thresholdRationales.d.ts.map +1 -1
  281. package/dist/config/thresholdRationales.js +5 -2
  282. package/dist/config/thresholdRationales.js.map +1 -1
  283. package/dist/constants.d.ts +1 -1
  284. package/dist/constants.d.ts.map +1 -1
  285. package/dist/constants.js +10 -5
  286. package/dist/constants.js.map +1 -1
  287. package/dist/conventions/conventionMiner.d.ts +105 -2
  288. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  289. package/dist/conventions/conventionMiner.js +334 -259
  290. package/dist/conventions/conventionMiner.js.map +1 -1
  291. package/dist/coverage/coverageService.js +4 -4
  292. package/dist/coverage/coverageService.js.map +1 -1
  293. package/dist/daemon/args.d.ts +3 -0
  294. package/dist/daemon/args.d.ts.map +1 -1
  295. package/dist/daemon/args.js +3 -0
  296. package/dist/daemon/args.js.map +1 -1
  297. package/dist/daemon/core.d.ts +33 -27
  298. package/dist/daemon/core.d.ts.map +1 -1
  299. package/dist/daemon/core.js +198 -162
  300. package/dist/daemon/core.js.map +1 -1
  301. package/dist/daemon/lspServer.d.ts +8 -0
  302. package/dist/daemon/lspServer.d.ts.map +1 -1
  303. package/dist/daemon/lspServer.js +8 -0
  304. package/dist/daemon/lspServer.js.map +1 -1
  305. package/dist/daemon/main.d.ts +2 -0
  306. package/dist/daemon/main.d.ts.map +1 -1
  307. package/dist/daemon/main.js +2 -0
  308. package/dist/daemon/main.js.map +1 -1
  309. package/dist/daemon/resolve.d.ts +22 -7
  310. package/dist/daemon/resolve.d.ts.map +1 -1
  311. package/dist/daemon/resolve.js +29 -8
  312. package/dist/daemon/resolve.js.map +1 -1
  313. package/dist/daemon/socketClient.d.ts +10 -1
  314. package/dist/daemon/socketClient.d.ts.map +1 -1
  315. package/dist/daemon/socketClient.js +10 -1
  316. package/dist/daemon/socketClient.js.map +1 -1
  317. package/dist/daemon/socketServer.d.ts +13 -0
  318. package/dist/daemon/socketServer.d.ts.map +1 -1
  319. package/dist/daemon/socketServer.js +13 -0
  320. package/dist/daemon/socketServer.js.map +1 -1
  321. package/dist/dataPaths.d.ts +27 -8
  322. package/dist/dataPaths.d.ts.map +1 -1
  323. package/dist/dataPaths.js +28 -44
  324. package/dist/dataPaths.js.map +1 -1
  325. package/dist/dismissals.d.ts +22 -1
  326. package/dist/dismissals.d.ts.map +1 -1
  327. package/dist/dismissals.js +22 -1
  328. package/dist/dismissals.js.map +1 -1
  329. package/dist/enforcement/gate.d.ts +1 -0
  330. package/dist/enforcement/gate.d.ts.map +1 -1
  331. package/dist/enforcement/gate.js +1 -0
  332. package/dist/enforcement/gate.js.map +1 -1
  333. package/dist/fingerprint.d.ts +6 -0
  334. package/dist/fingerprint.d.ts.map +1 -1
  335. package/dist/fingerprint.js +46 -1
  336. package/dist/fingerprint.js.map +1 -1
  337. package/dist/functionScanner.d.ts +30 -1
  338. package/dist/functionScanner.d.ts.map +1 -1
  339. package/dist/functionScanner.js +258 -256
  340. package/dist/functionScanner.js.map +1 -1
  341. package/dist/generators/AWSQConfigGenerator.d.ts +23 -0
  342. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  343. package/dist/generators/AWSQConfigGenerator.js +23 -0
  344. package/dist/generators/AWSQConfigGenerator.js.map +1 -1
  345. package/dist/generators/BaseConfigGenerator.d.ts +7 -0
  346. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
  347. package/dist/generators/BaseConfigGenerator.js +7 -0
  348. package/dist/generators/BaseConfigGenerator.js.map +1 -1
  349. package/dist/generators/ClaudeConfigGenerator.d.ts +23 -0
  350. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  351. package/dist/generators/ClaudeConfigGenerator.js +23 -0
  352. package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
  353. package/dist/generators/ClineConfigGenerator.d.ts +23 -0
  354. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  355. package/dist/generators/ClineConfigGenerator.js +23 -0
  356. package/dist/generators/ClineConfigGenerator.js.map +1 -1
  357. package/dist/generators/CodeiumConfigGenerator.d.ts +23 -0
  358. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  359. package/dist/generators/CodeiumConfigGenerator.js +23 -0
  360. package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
  361. package/dist/generators/CodexConfigGenerator.d.ts +23 -0
  362. package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
  363. package/dist/generators/CodexConfigGenerator.js +23 -0
  364. package/dist/generators/CodexConfigGenerator.js.map +1 -1
  365. package/dist/generators/ConfigGeneratorFactory.d.ts +9 -0
  366. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  367. package/dist/generators/ConfigGeneratorFactory.js +9 -0
  368. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  369. package/dist/generators/ContinueConfigGenerator.d.ts +23 -0
  370. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  371. package/dist/generators/ContinueConfigGenerator.js +23 -0
  372. package/dist/generators/ContinueConfigGenerator.js.map +1 -1
  373. package/dist/generators/CopilotConfigGenerator.d.ts +23 -0
  374. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  375. package/dist/generators/CopilotConfigGenerator.js +23 -0
  376. package/dist/generators/CopilotConfigGenerator.js.map +1 -1
  377. package/dist/generators/CursorConfigGenerator.d.ts +23 -0
  378. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  379. package/dist/generators/CursorConfigGenerator.js +23 -0
  380. package/dist/generators/CursorConfigGenerator.js.map +1 -1
  381. package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
  382. package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
  383. package/dist/generators/GeminiConfigGenerator.js +23 -0
  384. package/dist/generators/GeminiConfigGenerator.js.map +1 -1
  385. package/dist/generators/VSCodeConfigGenerator.d.ts +23 -0
  386. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  387. package/dist/generators/VSCodeConfigGenerator.js +23 -0
  388. package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
  389. package/dist/generators/ZCodeConfigGenerator.d.ts +23 -0
  390. package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
  391. package/dist/generators/ZCodeConfigGenerator.js +23 -0
  392. package/dist/generators/ZCodeConfigGenerator.js.map +1 -1
  393. package/dist/graph/blastRadius.d.ts.map +1 -1
  394. package/dist/graph/blastRadius.js +12 -7
  395. package/dist/graph/blastRadius.js.map +1 -1
  396. package/dist/graph/callGraph.d.ts +31 -0
  397. package/dist/graph/callGraph.d.ts.map +1 -1
  398. package/dist/graph/callGraph.js +62 -32
  399. package/dist/graph/callGraph.js.map +1 -1
  400. package/dist/graph/importClassification.d.ts +28 -0
  401. package/dist/graph/importClassification.d.ts.map +1 -1
  402. package/dist/graph/importClassification.js +57 -0
  403. package/dist/graph/importClassification.js.map +1 -1
  404. package/dist/graph/importGraph.d.ts +38 -0
  405. package/dist/graph/importGraph.d.ts.map +1 -1
  406. package/dist/graph/importGraph.js +38 -0
  407. package/dist/graph/importGraph.js.map +1 -1
  408. package/dist/graph/outputFormatter.d.ts +12 -4
  409. package/dist/graph/outputFormatter.d.ts.map +1 -1
  410. package/dist/graph/outputFormatter.js +12 -62
  411. package/dist/graph/outputFormatter.js.map +1 -1
  412. package/dist/hooks/codex.d.ts +8 -1
  413. package/dist/hooks/codex.d.ts.map +1 -1
  414. package/dist/hooks/codex.js +7 -0
  415. package/dist/hooks/codex.js.map +1 -1
  416. package/dist/hooks/core.d.ts +6 -0
  417. package/dist/hooks/core.d.ts.map +1 -1
  418. package/dist/hooks/core.js +6 -1
  419. package/dist/hooks/core.js.map +1 -1
  420. package/dist/hooks/cursor.d.ts +11 -1
  421. package/dist/hooks/cursor.d.ts.map +1 -1
  422. package/dist/hooks/cursor.js +10 -0
  423. package/dist/hooks/cursor.js.map +1 -1
  424. package/dist/index.d.ts +4 -0
  425. package/dist/index.d.ts.map +1 -1
  426. package/dist/index.js +4 -0
  427. package/dist/index.js.map +1 -1
  428. package/dist/installConfig.d.ts +23 -5
  429. package/dist/installConfig.d.ts.map +1 -1
  430. package/dist/installConfig.js +23 -5
  431. package/dist/installConfig.js.map +1 -1
  432. package/dist/installer.d.ts +6 -0
  433. package/dist/installer.d.ts.map +1 -1
  434. package/dist/installer.js +6 -0
  435. package/dist/installer.js.map +1 -1
  436. package/dist/invariants/ruleEngine.d.ts +3 -0
  437. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  438. package/dist/invariants/ruleEngine.js +156 -119
  439. package/dist/invariants/ruleEngine.js.map +1 -1
  440. package/dist/invariants/ruleValidator.d.ts +3 -0
  441. package/dist/invariants/ruleValidator.d.ts.map +1 -1
  442. package/dist/invariants/ruleValidator.js +185 -178
  443. package/dist/invariants/ruleValidator.js.map +1 -1
  444. package/dist/languages/LanguageOrchestrator.d.ts +4 -1
  445. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  446. package/dist/languages/LanguageOrchestrator.js +8 -19
  447. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  448. package/dist/languages/RuntimeManager.d.ts +8 -0
  449. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  450. package/dist/languages/RuntimeManager.js +55 -5
  451. package/dist/languages/RuntimeManager.js.map +1 -1
  452. package/dist/languages/UniversalAnalyzer.js +1 -1
  453. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  454. package/dist/languages/adapterBridge.d.ts +4 -0
  455. package/dist/languages/adapterBridge.d.ts.map +1 -1
  456. package/dist/languages/adapterBridge.js +37 -3
  457. package/dist/languages/adapterBridge.js.map +1 -1
  458. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  459. package/dist/languages/go/GoAdapter.js +11 -14
  460. package/dist/languages/go/GoAdapter.js.map +1 -1
  461. package/dist/languages/go/analyzer-darwin-amd64 +0 -0
  462. package/dist/languages/go/analyzer-darwin-arm64 +0 -0
  463. package/dist/languages/go/analyzer-linux-amd64 +0 -0
  464. package/dist/languages/go/analyzer-linux-arm64 +0 -0
  465. package/dist/languages/go/analyzer-src/analyzer.go +2 -0
  466. package/dist/languages/go/analyzer-src/dataaccess.go +388 -0
  467. package/dist/languages/go/analyzer-src/types.go +8 -0
  468. package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
  469. package/dist/languages/go/database-packages.json +8 -0
  470. package/dist/languages/go/goResolution.d.ts +229 -0
  471. package/dist/languages/go/goResolution.d.ts.map +1 -0
  472. package/dist/languages/go/goResolution.js +799 -0
  473. package/dist/languages/go/goResolution.js.map +1 -0
  474. package/dist/languages/go/stdlib-packages.json +353 -0
  475. package/dist/languages/go/tenantInputs.d.ts +37 -0
  476. package/dist/languages/go/tenantInputs.d.ts.map +1 -0
  477. package/dist/languages/go/tenantInputs.js +121 -0
  478. package/dist/languages/go/tenantInputs.js.map +1 -0
  479. package/dist/languages/index.d.ts +1 -0
  480. package/dist/languages/index.d.ts.map +1 -1
  481. package/dist/languages/index.js +5 -0
  482. package/dist/languages/index.js.map +1 -1
  483. package/dist/languages/json/JsonAdapter.d.ts +177 -0
  484. package/dist/languages/json/JsonAdapter.d.ts.map +1 -0
  485. package/dist/languages/json/JsonAdapter.js +531 -0
  486. package/dist/languages/json/JsonAdapter.js.map +1 -0
  487. package/dist/languages/locationIndex.d.ts +41 -0
  488. package/dist/languages/locationIndex.d.ts.map +1 -0
  489. package/dist/languages/locationIndex.js +42 -0
  490. package/dist/languages/locationIndex.js.map +1 -0
  491. package/dist/languages/sql/dialectDetection.d.ts +57 -0
  492. package/dist/languages/sql/dialectDetection.d.ts.map +1 -0
  493. package/dist/languages/sql/dialectDetection.js +135 -0
  494. package/dist/languages/sql/dialectDetection.js.map +1 -0
  495. package/dist/languages/sql/sqlAst.d.ts +494 -0
  496. package/dist/languages/sql/sqlAst.d.ts.map +1 -0
  497. package/dist/languages/sql/sqlAst.js +1817 -0
  498. package/dist/languages/sql/sqlAst.js.map +1 -0
  499. package/dist/languages/testConventions.d.ts +12 -1
  500. package/dist/languages/testConventions.d.ts.map +1 -1
  501. package/dist/languages/testConventions.js +13 -1
  502. package/dist/languages/testConventions.js.map +1 -1
  503. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +1 -1
  504. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  505. package/dist/languages/tree-sitter/converter.js +2 -2
  506. package/dist/languages/tree-sitter/converter.js.map +1 -1
  507. package/dist/languages/tree-sitter/parser.d.ts +3 -4
  508. package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
  509. package/dist/languages/tree-sitter/parser.js +10 -4
  510. package/dist/languages/tree-sitter/parser.js.map +1 -1
  511. package/dist/languages/tree-sitter/rawNode.d.ts +3 -0
  512. package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -1
  513. package/dist/languages/tree-sitter/rawNode.js +3 -0
  514. package/dist/languages/tree-sitter/rawNode.js.map +1 -1
  515. package/dist/languages/types.d.ts +7 -0
  516. package/dist/languages/types.d.ts.map +1 -1
  517. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +36 -0
  518. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  519. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +168 -45
  520. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  521. package/dist/languages/typescript/database-packages.json +19 -0
  522. package/dist/ledger.d.ts +118 -2
  523. package/dist/ledger.d.ts.map +1 -1
  524. package/dist/ledger.js +167 -45
  525. package/dist/ledger.js.map +1 -1
  526. package/dist/legacyIndexNotice.d.ts +32 -0
  527. package/dist/legacyIndexNotice.d.ts.map +1 -0
  528. package/dist/legacyIndexNotice.js +89 -0
  529. package/dist/legacyIndexNotice.js.map +1 -0
  530. package/dist/mcp-tools/discoveryQueries.d.ts +55 -0
  531. package/dist/mcp-tools/discoveryQueries.d.ts.map +1 -0
  532. package/dist/mcp-tools/discoveryQueries.js +157 -0
  533. package/dist/mcp-tools/discoveryQueries.js.map +1 -0
  534. package/dist/mcp-tools/projectTasks.d.ts +9 -123
  535. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  536. package/dist/mcp-tools/projectTasks.js +180 -170
  537. package/dist/mcp-tools/projectTasks.js.map +1 -1
  538. package/dist/mcp-tools/whitelistTools.d.ts +20 -0
  539. package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
  540. package/dist/mcp-tools/whitelistTools.js +20 -0
  541. package/dist/mcp-tools/whitelistTools.js.map +1 -1
  542. package/dist/mcp-tools/workflowGuide.d.ts +9 -0
  543. package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
  544. package/dist/mcp-tools/workflowGuide.js +13 -5
  545. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  546. package/dist/mcp-tools-shared.d.ts +78 -0
  547. package/dist/mcp-tools-shared.d.ts.map +1 -1
  548. package/dist/mcp-tools-shared.js +203 -340
  549. package/dist/mcp-tools-shared.js.map +1 -1
  550. package/dist/mcp-ui-simple.d.ts +2 -0
  551. package/dist/mcp-ui-simple.d.ts.map +1 -1
  552. package/dist/mcp-ui-simple.js +12 -5
  553. package/dist/mcp-ui-simple.js.map +1 -1
  554. package/dist/mcp.d.ts +6 -0
  555. package/dist/mcp.d.ts.map +1 -1
  556. package/dist/mcp.js +832 -851
  557. package/dist/mcp.js.map +1 -1
  558. package/dist/mcpAuditJobs.d.ts +29 -33
  559. package/dist/mcpAuditJobs.d.ts.map +1 -1
  560. package/dist/mcpAuditJobs.js +102 -791
  561. package/dist/mcpAuditJobs.js.map +1 -1
  562. package/dist/mcpAutoIndex.d.ts +5 -0
  563. package/dist/mcpAutoIndex.d.ts.map +1 -1
  564. package/dist/mcpAutoIndex.js +7 -2
  565. package/dist/mcpAutoIndex.js.map +1 -1
  566. package/dist/mcpDiagnostics.d.ts +7 -0
  567. package/dist/mcpDiagnostics.d.ts.map +1 -1
  568. package/dist/mcpDiagnostics.js +34 -9
  569. package/dist/mcpDiagnostics.js.map +1 -1
  570. package/dist/mcpToolErrors.d.ts +16 -0
  571. package/dist/mcpToolErrors.d.ts.map +1 -1
  572. package/dist/mcpToolErrors.js +16 -0
  573. package/dist/mcpToolErrors.js.map +1 -1
  574. package/dist/nextFile.d.ts +6 -0
  575. package/dist/nextFile.d.ts.map +1 -1
  576. package/dist/nextFile.js +6 -0
  577. package/dist/nextFile.js.map +1 -1
  578. package/dist/nextFileIncremental.d.ts +44 -4
  579. package/dist/nextFileIncremental.d.ts.map +1 -1
  580. package/dist/nextFileIncremental.js +47 -7
  581. package/dist/nextFileIncremental.js.map +1 -1
  582. package/dist/phase/batchFunctions.d.ts +38 -0
  583. package/dist/phase/batchFunctions.d.ts.map +1 -0
  584. package/dist/phase/batchFunctions.js +64 -0
  585. package/dist/phase/batchFunctions.js.map +1 -0
  586. package/dist/phase/checks.d.ts +39 -0
  587. package/dist/phase/checks.d.ts.map +1 -0
  588. package/dist/phase/checks.js +48 -0
  589. package/dist/phase/checks.js.map +1 -0
  590. package/dist/phase/codeBlocks.d.ts +25 -0
  591. package/dist/phase/codeBlocks.d.ts.map +1 -0
  592. package/dist/phase/codeBlocks.js +268 -0
  593. package/dist/phase/codeBlocks.js.map +1 -0
  594. package/dist/phase/colorMath.d.ts +41 -0
  595. package/dist/phase/colorMath.d.ts.map +1 -0
  596. package/dist/phase/colorMath.js +109 -0
  597. package/dist/phase/colorMath.js.map +1 -0
  598. package/dist/phase/config.d.ts +29 -0
  599. package/dist/phase/config.d.ts.map +1 -0
  600. package/dist/phase/config.js +54 -0
  601. package/dist/phase/config.js.map +1 -0
  602. package/dist/phase/consumed.d.ts +47 -0
  603. package/dist/phase/consumed.d.ts.map +1 -0
  604. package/dist/phase/consumed.js +22 -0
  605. package/dist/phase/consumed.js.map +1 -0
  606. package/dist/phase/conventionMining.d.ts +59 -0
  607. package/dist/phase/conventionMining.d.ts.map +1 -0
  608. package/dist/phase/conventionMining.js +152 -0
  609. package/dist/phase/conventionMining.js.map +1 -0
  610. package/dist/phase/coverage.d.ts +65 -0
  611. package/dist/phase/coverage.d.ts.map +1 -0
  612. package/dist/phase/coverage.js +121 -0
  613. package/dist/phase/coverage.js.map +1 -0
  614. package/dist/phase/dag.d.ts +49 -0
  615. package/dist/phase/dag.d.ts.map +1 -0
  616. package/dist/phase/dag.js +120 -0
  617. package/dist/phase/dag.js.map +1 -0
  618. package/dist/phase/dataAccessCalls.d.ts +33 -0
  619. package/dist/phase/dataAccessCalls.d.ts.map +1 -0
  620. package/dist/phase/dataAccessCalls.js +42 -0
  621. package/dist/phase/dataAccessCalls.js.map +1 -0
  622. package/dist/phase/dataAccessCallsCandidates.d.ts +25 -0
  623. package/dist/phase/dataAccessCallsCandidates.d.ts.map +1 -0
  624. package/dist/phase/dataAccessCallsCandidates.js +27 -0
  625. package/dist/phase/dataAccessCallsCandidates.js.map +1 -0
  626. package/dist/phase/dynamicSql.d.ts +18 -0
  627. package/dist/phase/dynamicSql.d.ts.map +1 -0
  628. package/dist/phase/dynamicSql.js +20 -0
  629. package/dist/phase/dynamicSql.js.map +1 -0
  630. package/dist/phase/exportForm.d.ts +23 -0
  631. package/dist/phase/exportForm.d.ts.map +1 -0
  632. package/dist/phase/exportForm.js +29 -0
  633. package/dist/phase/exportForm.js.map +1 -0
  634. package/dist/phase/exportSymbols.d.ts +21 -0
  635. package/dist/phase/exportSymbols.d.ts.map +1 -0
  636. package/dist/phase/exportSymbols.js +28 -0
  637. package/dist/phase/exportSymbols.js.map +1 -0
  638. package/dist/phase/fileHeader.d.ts +15 -0
  639. package/dist/phase/fileHeader.d.ts.map +1 -0
  640. package/dist/phase/fileHeader.js +33 -0
  641. package/dist/phase/fileHeader.js.map +1 -0
  642. package/dist/phase/fileImports.d.ts +39 -0
  643. package/dist/phase/fileImports.d.ts.map +1 -0
  644. package/dist/phase/fileImports.js +138 -0
  645. package/dist/phase/fileImports.js.map +1 -0
  646. package/dist/phase/fileSymbols.d.ts +25 -0
  647. package/dist/phase/fileSymbols.d.ts.map +1 -0
  648. package/dist/phase/fileSymbols.js +302 -0
  649. package/dist/phase/fileSymbols.js.map +1 -0
  650. package/dist/phase/functionBodies.d.ts +28 -0
  651. package/dist/phase/functionBodies.d.ts.map +1 -0
  652. package/dist/phase/functionBodies.js +67 -0
  653. package/dist/phase/functionBodies.js.map +1 -0
  654. package/dist/phase/functionIndex.d.ts +28 -0
  655. package/dist/phase/functionIndex.d.ts.map +1 -0
  656. package/dist/phase/functionIndex.js +152 -0
  657. package/dist/phase/functionIndex.js.map +1 -0
  658. package/dist/phase/goFunctionAnalysis.d.ts +47 -0
  659. package/dist/phase/goFunctionAnalysis.d.ts.map +1 -0
  660. package/dist/phase/goFunctionAnalysis.js +291 -0
  661. package/dist/phase/goFunctionAnalysis.js.map +1 -0
  662. package/dist/phase/goFunctions.d.ts +38 -0
  663. package/dist/phase/goFunctions.d.ts.map +1 -0
  664. package/dist/phase/goFunctions.js +154 -0
  665. package/dist/phase/goFunctions.js.map +1 -0
  666. package/dist/phase/goImports.d.ts +29 -0
  667. package/dist/phase/goImports.d.ts.map +1 -0
  668. package/dist/phase/goImports.js +68 -0
  669. package/dist/phase/goImports.js.map +1 -0
  670. package/dist/phase/goPackageBindings.d.ts +22 -0
  671. package/dist/phase/goPackageBindings.d.ts.map +1 -0
  672. package/dist/phase/goPackageBindings.js +30 -0
  673. package/dist/phase/goPackageBindings.js.map +1 -0
  674. package/dist/phase/goSwitches.d.ts +28 -0
  675. package/dist/phase/goSwitches.d.ts.map +1 -0
  676. package/dist/phase/goSwitches.js +52 -0
  677. package/dist/phase/goSwitches.js.map +1 -0
  678. package/dist/phase/importForm.d.ts +20 -0
  679. package/dist/phase/importForm.d.ts.map +1 -0
  680. package/dist/phase/importForm.js +27 -0
  681. package/dist/phase/importForm.js.map +1 -0
  682. package/dist/phase/importSpecifiers.d.ts +20 -0
  683. package/dist/phase/importSpecifiers.d.ts.map +1 -0
  684. package/dist/phase/importSpecifiers.js +30 -0
  685. package/dist/phase/importSpecifiers.js.map +1 -0
  686. package/dist/phase/imports.d.ts +18 -0
  687. package/dist/phase/imports.d.ts.map +1 -0
  688. package/dist/phase/imports.js +25 -0
  689. package/dist/phase/imports.js.map +1 -0
  690. package/dist/phase/jsonDocument.d.ts +26 -0
  691. package/dist/phase/jsonDocument.d.ts.map +1 -0
  692. package/dist/phase/jsonDocument.js +36 -0
  693. package/dist/phase/jsonDocument.js.map +1 -0
  694. package/dist/phase/localBinding.d.ts +33 -0
  695. package/dist/phase/localBinding.d.ts.map +1 -0
  696. package/dist/phase/localBinding.js +208 -0
  697. package/dist/phase/localBinding.js.map +1 -0
  698. package/dist/phase/loopQueries.d.ts +31 -0
  699. package/dist/phase/loopQueries.d.ts.map +1 -0
  700. package/dist/phase/loopQueries.js +44 -0
  701. package/dist/phase/loopQueries.js.map +1 -0
  702. package/dist/phase/loopQueryCandidates.d.ts +26 -0
  703. package/dist/phase/loopQueryCandidates.d.ts.map +1 -0
  704. package/dist/phase/loopQueryCandidates.js +28 -0
  705. package/dist/phase/loopQueryCandidates.js.map +1 -0
  706. package/dist/phase/oracles.d.ts +216 -0
  707. package/dist/phase/oracles.d.ts.map +1 -0
  708. package/dist/phase/oracles.js +484 -0
  709. package/dist/phase/oracles.js.map +1 -0
  710. package/dist/phase/phaseModel.d.ts +190 -0
  711. package/dist/phase/phaseModel.d.ts.map +1 -0
  712. package/dist/phase/phaseModel.js +468 -0
  713. package/dist/phase/phaseModel.js.map +1 -0
  714. package/dist/phase/producers.d.ts +450 -0
  715. package/dist/phase/producers.d.ts.map +1 -0
  716. package/dist/phase/producers.js +1027 -0
  717. package/dist/phase/producers.js.map +1 -0
  718. package/dist/phase/querySiteCandidates.d.ts +27 -0
  719. package/dist/phase/querySiteCandidates.d.ts.map +1 -0
  720. package/dist/phase/querySiteCandidates.js +66 -0
  721. package/dist/phase/querySiteCandidates.js.map +1 -0
  722. package/dist/phase/querySites.d.ts +30 -0
  723. package/dist/phase/querySites.d.ts.map +1 -0
  724. package/dist/phase/querySites.js +93 -0
  725. package/dist/phase/querySites.js.map +1 -0
  726. package/dist/phase/reachability.d.ts +61 -0
  727. package/dist/phase/reachability.d.ts.map +1 -0
  728. package/dist/phase/reachability.js +104 -0
  729. package/dist/phase/reachability.js.map +1 -0
  730. package/dist/phase/reactComponents.d.ts +33 -0
  731. package/dist/phase/reactComponents.d.ts.map +1 -0
  732. package/dist/phase/reactComponents.js +47 -0
  733. package/dist/phase/reactComponents.js.map +1 -0
  734. package/dist/phase/receiverActivity.d.ts +35 -0
  735. package/dist/phase/receiverActivity.d.ts.map +1 -0
  736. package/dist/phase/receiverActivity.js +66 -0
  737. package/dist/phase/receiverActivity.js.map +1 -0
  738. package/dist/phase/receiverConsumers.d.ts +200 -0
  739. package/dist/phase/receiverConsumers.d.ts.map +1 -0
  740. package/dist/phase/receiverConsumers.js +1025 -0
  741. package/dist/phase/receiverConsumers.js.map +1 -0
  742. package/dist/phase/receiverProvenance.d.ts +97 -0
  743. package/dist/phase/receiverProvenance.d.ts.map +1 -0
  744. package/dist/phase/receiverProvenance.js +337 -0
  745. package/dist/phase/receiverProvenance.js.map +1 -0
  746. package/dist/phase/routing.d.ts +47 -0
  747. package/dist/phase/routing.d.ts.map +1 -0
  748. package/dist/phase/routing.js +62 -0
  749. package/dist/phase/routing.js.map +1 -0
  750. package/dist/phase/rules/conventions.d.ts +61 -0
  751. package/dist/phase/rules/conventions.d.ts.map +1 -0
  752. package/dist/phase/rules/conventions.js +403 -0
  753. package/dist/phase/rules/conventions.js.map +1 -0
  754. package/dist/phase/rules/crossDomain.d.ts +102 -0
  755. package/dist/phase/rules/crossDomain.d.ts.map +1 -0
  756. package/dist/phase/rules/crossDomain.js +918 -0
  757. package/dist/phase/rules/crossDomain.js.map +1 -0
  758. package/dist/phase/rules/dataAccess.d.ts +62 -0
  759. package/dist/phase/rules/dataAccess.d.ts.map +1 -0
  760. package/dist/phase/rules/dataAccess.js +480 -0
  761. package/dist/phase/rules/dataAccess.js.map +1 -0
  762. package/dist/phase/rules/dependencyGraph.d.ts +44 -0
  763. package/dist/phase/rules/dependencyGraph.d.ts.map +1 -0
  764. package/dist/phase/rules/dependencyGraph.js +260 -0
  765. package/dist/phase/rules/dependencyGraph.js.map +1 -0
  766. package/dist/phase/rules/documentation.d.ts +45 -0
  767. package/dist/phase/rules/documentation.d.ts.map +1 -0
  768. package/dist/phase/rules/documentation.js +340 -0
  769. package/dist/phase/rules/documentation.js.map +1 -0
  770. package/dist/phase/rules/dry.d.ts +109 -0
  771. package/dist/phase/rules/dry.d.ts.map +1 -0
  772. package/dist/phase/rules/dry.js +803 -0
  773. package/dist/phase/rules/dry.js.map +1 -0
  774. package/dist/phase/rules/fileDocumentation.d.ts +36 -0
  775. package/dist/phase/rules/fileDocumentation.d.ts.map +1 -0
  776. package/dist/phase/rules/fileDocumentation.js +134 -0
  777. package/dist/phase/rules/fileDocumentation.js.map +1 -0
  778. package/dist/phase/rules/functionBodies.d.ts +33 -0
  779. package/dist/phase/rules/functionBodies.d.ts.map +1 -0
  780. package/dist/phase/rules/functionBodies.js +71 -0
  781. package/dist/phase/rules/functionBodies.js.map +1 -0
  782. package/dist/phase/rules/goRules.d.ts +49 -0
  783. package/dist/phase/rules/goRules.d.ts.map +1 -0
  784. package/dist/phase/rules/goRules.js +209 -0
  785. package/dist/phase/rules/goRules.js.map +1 -0
  786. package/dist/phase/rules/querySites.d.ts +29 -0
  787. package/dist/phase/rules/querySites.d.ts.map +1 -0
  788. package/dist/phase/rules/querySites.js +94 -0
  789. package/dist/phase/rules/querySites.js.map +1 -0
  790. package/dist/phase/rules/react.d.ts +38 -0
  791. package/dist/phase/rules/react.d.ts.map +1 -0
  792. package/dist/phase/rules/react.js +202 -0
  793. package/dist/phase/rules/react.js.map +1 -0
  794. package/dist/phase/rules/registry.d.ts +170 -0
  795. package/dist/phase/rules/registry.d.ts.map +1 -0
  796. package/dist/phase/rules/registry.js +103 -0
  797. package/dist/phase/rules/registry.js.map +1 -0
  798. package/dist/phase/rules/schema.d.ts +79 -0
  799. package/dist/phase/rules/schema.d.ts.map +1 -0
  800. package/dist/phase/rules/schema.js +273 -0
  801. package/dist/phase/rules/schema.js.map +1 -0
  802. package/dist/phase/rules/schemaJson.d.ts +32 -0
  803. package/dist/phase/rules/schemaJson.d.ts.map +1 -0
  804. package/dist/phase/rules/schemaJson.js +81 -0
  805. package/dist/phase/rules/schemaJson.js.map +1 -0
  806. package/dist/phase/rules/schemaValidator.d.ts +38 -0
  807. package/dist/phase/rules/schemaValidator.d.ts.map +1 -0
  808. package/dist/phase/rules/schemaValidator.js +107 -0
  809. package/dist/phase/rules/schemaValidator.js.map +1 -0
  810. package/dist/phase/rules/secrets.d.ts +34 -0
  811. package/dist/phase/rules/secrets.d.ts.map +1 -0
  812. package/dist/phase/rules/secrets.js +208 -0
  813. package/dist/phase/rules/secrets.js.map +1 -0
  814. package/dist/phase/rules/security.d.ts +30 -0
  815. package/dist/phase/rules/security.d.ts.map +1 -0
  816. package/dist/phase/rules/security.js +85 -0
  817. package/dist/phase/rules/security.js.map +1 -0
  818. package/dist/phase/rules/securityDefects.d.ts +37 -0
  819. package/dist/phase/rules/securityDefects.d.ts.map +1 -0
  820. package/dist/phase/rules/securityDefects.js +167 -0
  821. package/dist/phase/rules/securityDefects.js.map +1 -0
  822. package/dist/phase/rules/solid.d.ts +61 -0
  823. package/dist/phase/rules/solid.d.ts.map +1 -0
  824. package/dist/phase/rules/solid.js +562 -0
  825. package/dist/phase/rules/solid.js.map +1 -0
  826. package/dist/phase/rules/styles.d.ts +77 -0
  827. package/dist/phase/rules/styles.d.ts.map +1 -0
  828. package/dist/phase/rules/styles.js +868 -0
  829. package/dist/phase/rules/styles.js.map +1 -0
  830. package/dist/phase/rules/unreferencedModule.d.ts +26 -0
  831. package/dist/phase/rules/unreferencedModule.d.ts.map +1 -0
  832. package/dist/phase/rules/unreferencedModule.js +61 -0
  833. package/dist/phase/rules/unreferencedModule.js.map +1 -0
  834. package/dist/phase/runner.d.ts +549 -0
  835. package/dist/phase/runner.d.ts.map +1 -0
  836. package/dist/phase/runner.js +1098 -0
  837. package/dist/phase/runner.js.map +1 -0
  838. package/dist/phase/schemaCode.d.ts +34 -0
  839. package/dist/phase/schemaCode.d.ts.map +1 -0
  840. package/dist/phase/schemaCode.js +53 -0
  841. package/dist/phase/schemaCode.js.map +1 -0
  842. package/dist/phase/schemaObjects.d.ts +37 -0
  843. package/dist/phase/schemaObjects.d.ts.map +1 -0
  844. package/dist/phase/schemaObjects.js +139 -0
  845. package/dist/phase/schemaObjects.js.map +1 -0
  846. package/dist/phase/schemaUsage.d.ts +30 -0
  847. package/dist/phase/schemaUsage.d.ts.map +1 -0
  848. package/dist/phase/schemaUsage.js +99 -0
  849. package/dist/phase/schemaUsage.js.map +1 -0
  850. package/dist/phase/schemaUsageCandidates.d.ts +32 -0
  851. package/dist/phase/schemaUsageCandidates.d.ts.map +1 -0
  852. package/dist/phase/schemaUsageCandidates.js +165 -0
  853. package/dist/phase/schemaUsageCandidates.js.map +1 -0
  854. package/dist/phase/schemaValidations.d.ts +34 -0
  855. package/dist/phase/schemaValidations.d.ts.map +1 -0
  856. package/dist/phase/schemaValidations.js +53 -0
  857. package/dist/phase/schemaValidations.js.map +1 -0
  858. package/dist/phase/secretCandidates.d.ts +28 -0
  859. package/dist/phase/secretCandidates.d.ts.map +1 -0
  860. package/dist/phase/secretCandidates.js +132 -0
  861. package/dist/phase/secretCandidates.js.map +1 -0
  862. package/dist/phase/securityCandidates.d.ts +29 -0
  863. package/dist/phase/securityCandidates.d.ts.map +1 -0
  864. package/dist/phase/securityCandidates.js +469 -0
  865. package/dist/phase/securityCandidates.js.map +1 -0
  866. package/dist/phase/seeded-defects.d.ts +18 -0
  867. package/dist/phase/seeded-defects.d.ts.map +1 -0
  868. package/dist/phase/seeded-defects.js +61 -0
  869. package/dist/phase/seeded-defects.js.map +1 -0
  870. package/dist/phase/stringLiterals.d.ts +24 -0
  871. package/dist/phase/stringLiterals.d.ts.map +1 -0
  872. package/dist/phase/stringLiterals.js +35 -0
  873. package/dist/phase/stringLiterals.js.map +1 -0
  874. package/dist/phase/stylesCss.d.ts +25 -0
  875. package/dist/phase/stylesCss.d.ts.map +1 -0
  876. package/dist/phase/stylesCss.js +34 -0
  877. package/dist/phase/stylesCss.js.map +1 -0
  878. package/dist/phase/stylesMarkup.d.ts +31 -0
  879. package/dist/phase/stylesMarkup.d.ts.map +1 -0
  880. package/dist/phase/stylesMarkup.js +48 -0
  881. package/dist/phase/stylesMarkup.js.map +1 -0
  882. package/dist/phase/stylesSource.d.ts +36 -0
  883. package/dist/phase/stylesSource.d.ts.map +1 -0
  884. package/dist/phase/stylesSource.js +50 -0
  885. package/dist/phase/stylesSource.js.map +1 -0
  886. package/dist/phase/typeDeclarations.d.ts +33 -0
  887. package/dist/phase/typeDeclarations.d.ts.map +1 -0
  888. package/dist/phase/typeDeclarations.js +76 -0
  889. package/dist/phase/typeDeclarations.js.map +1 -0
  890. package/dist/phase/types.d.ts +2191 -0
  891. package/dist/phase/types.d.ts.map +1 -0
  892. package/dist/phase/types.js +27 -0
  893. package/dist/phase/types.js.map +1 -0
  894. package/dist/phase/withinFileProvenance.d.ts +50 -0
  895. package/dist/phase/withinFileProvenance.d.ts.map +1 -0
  896. package/dist/phase/withinFileProvenance.js +112 -0
  897. package/dist/phase/withinFileProvenance.js.map +1 -0
  898. package/dist/pipeline.d.ts +37 -30
  899. package/dist/pipeline.d.ts.map +1 -1
  900. package/dist/pipeline.js +131 -326
  901. package/dist/pipeline.js.map +1 -1
  902. package/dist/pipelineAdapters.d.ts +104 -21
  903. package/dist/pipelineAdapters.d.ts.map +1 -1
  904. package/dist/pipelineAdapters.js +1145 -988
  905. package/dist/pipelineAdapters.js.map +1 -1
  906. package/dist/pipelineTypes.d.ts +21 -0
  907. package/dist/pipelineTypes.d.ts.map +1 -1
  908. package/dist/pipelineTypes.js +21 -10
  909. package/dist/pipelineTypes.js.map +1 -1
  910. package/dist/presets/presets.d.ts +9 -2
  911. package/dist/presets/presets.d.ts.map +1 -1
  912. package/dist/presets/presets.js +15 -26
  913. package/dist/presets/presets.js.map +1 -1
  914. package/dist/reporting/csvReportGenerator.d.ts +14 -3
  915. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  916. package/dist/reporting/csvReportGenerator.js +14 -3
  917. package/dist/reporting/csvReportGenerator.js.map +1 -1
  918. package/dist/reporting/htmlReportGenerator.d.ts +5 -1
  919. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  920. package/dist/reporting/htmlReportGenerator.js +5 -1
  921. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  922. package/dist/reporting/jsonReportGenerator.d.ts +9 -2
  923. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  924. package/dist/reporting/jsonReportGenerator.js +19 -5
  925. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  926. package/dist/reporting/reportGenerator.d.ts +9 -2
  927. package/dist/reporting/reportGenerator.d.ts.map +1 -1
  928. package/dist/reporting/reportGenerator.js +9 -2
  929. package/dist/reporting/reportGenerator.js.map +1 -1
  930. package/dist/reporting/sarifReportGenerator.d.ts +14 -0
  931. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  932. package/dist/reporting/sarifReportGenerator.js +14 -0
  933. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  934. package/dist/reporting/sizeDistribution.d.ts +19 -2
  935. package/dist/reporting/sizeDistribution.d.ts.map +1 -1
  936. package/dist/reporting/sizeDistribution.js +23 -5
  937. package/dist/reporting/sizeDistribution.js.map +1 -1
  938. package/dist/ruleAliases.d.ts +6 -8
  939. package/dist/ruleAliases.d.ts.map +1 -1
  940. package/dist/ruleAliases.js +29 -4
  941. package/dist/ruleAliases.js.map +1 -1
  942. package/dist/search/QueryParser.d.ts +1 -0
  943. package/dist/search/QueryParser.d.ts.map +1 -1
  944. package/dist/search/QueryParser.js +32 -91
  945. package/dist/search/QueryParser.js.map +1 -1
  946. package/dist/services/CodeMapGenerator.d.ts +19 -20
  947. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  948. package/dist/services/CodeMapGenerator.js +214 -194
  949. package/dist/services/CodeMapGenerator.js.map +1 -1
  950. package/dist/services/ProjectTaskRepository.d.ts +65 -3
  951. package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
  952. package/dist/services/ProjectTaskRepository.js +94 -25
  953. package/dist/services/ProjectTaskRepository.js.map +1 -1
  954. package/dist/services/auditJobService.d.ts +17 -1
  955. package/dist/services/auditJobService.d.ts.map +1 -1
  956. package/dist/services/auditJobService.js +16 -0
  957. package/dist/services/auditJobService.js.map +1 -1
  958. package/dist/services/fileAccounting.d.ts +43 -5
  959. package/dist/services/fileAccounting.d.ts.map +1 -1
  960. package/dist/services/fileAccounting.js +48 -9
  961. package/dist/services/fileAccounting.js.map +1 -1
  962. package/dist/services/projectTaskHelpers.d.ts +45 -0
  963. package/dist/services/projectTaskHelpers.d.ts.map +1 -1
  964. package/dist/services/projectTaskHelpers.js +45 -0
  965. package/dist/services/projectTaskHelpers.js.map +1 -1
  966. package/dist/services/whitelistService.d.ts +40 -5
  967. package/dist/services/whitelistService.d.ts.map +1 -1
  968. package/dist/services/whitelistService.js +87 -46
  969. package/dist/services/whitelistService.js.map +1 -1
  970. package/dist/sqlite/betterSqlite3.d.ts +35 -1
  971. package/dist/sqlite/betterSqlite3.d.ts.map +1 -1
  972. package/dist/sqlite/betterSqlite3.js +35 -1
  973. package/dist/sqlite/betterSqlite3.js.map +1 -1
  974. package/dist/sqlite/driver.d.ts +23 -0
  975. package/dist/sqlite/driver.d.ts.map +1 -1
  976. package/dist/sqlite/driver.js +23 -0
  977. package/dist/sqlite/driver.js.map +1 -1
  978. package/dist/sqlite/nodeSqlite.d.ts +35 -1
  979. package/dist/sqlite/nodeSqlite.d.ts.map +1 -1
  980. package/dist/sqlite/nodeSqlite.js +35 -1
  981. package/dist/sqlite/nodeSqlite.js.map +1 -1
  982. package/dist/structuralSignature.d.ts +9 -0
  983. package/dist/structuralSignature.d.ts.map +1 -1
  984. package/dist/structuralSignature.js +9 -0
  985. package/dist/structuralSignature.js.map +1 -1
  986. package/dist/styles/cssAstExtractor.d.ts +15 -0
  987. package/dist/styles/cssAstExtractor.d.ts.map +1 -1
  988. package/dist/styles/cssAstExtractor.js +15 -0
  989. package/dist/styles/cssAstExtractor.js.map +1 -1
  990. package/dist/styles/normalizer.d.ts +6 -0
  991. package/dist/styles/normalizer.d.ts.map +1 -1
  992. package/dist/styles/normalizer.js +6 -0
  993. package/dist/styles/normalizer.js.map +1 -1
  994. package/dist/styles/styleExtractor.d.ts +29 -2
  995. package/dist/styles/styleExtractor.d.ts.map +1 -1
  996. package/dist/styles/styleExtractor.js +67 -48
  997. package/dist/styles/styleExtractor.js.map +1 -1
  998. package/dist/styles/styleIndexer.d.ts +8 -0
  999. package/dist/styles/styleIndexer.d.ts.map +1 -1
  1000. package/dist/styles/styleIndexer.js +135 -138
  1001. package/dist/styles/styleIndexer.js.map +1 -1
  1002. package/dist/styles/tailwindConfigLoader.d.ts +12 -0
  1003. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
  1004. package/dist/styles/tailwindConfigLoader.js +12 -0
  1005. package/dist/styles/tailwindConfigLoader.js.map +1 -1
  1006. package/dist/styles/tailwindExpander.d.ts +3 -0
  1007. package/dist/styles/tailwindExpander.d.ts.map +1 -1
  1008. package/dist/styles/tailwindExpander.js +8 -4
  1009. package/dist/styles/tailwindExpander.js.map +1 -1
  1010. package/dist/styles/tailwindProbe.d.ts +9 -0
  1011. package/dist/styles/tailwindProbe.d.ts.map +1 -1
  1012. package/dist/styles/tailwindProbe.js +181 -166
  1013. package/dist/styles/tailwindProbe.js.map +1 -1
  1014. package/dist/styles/tailwindUtilityExpander.d.ts +13 -0
  1015. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  1016. package/dist/styles/tailwindUtilityExpander.js +13 -0
  1017. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  1018. package/dist/symbols.d.ts +13 -11
  1019. package/dist/symbols.d.ts.map +1 -1
  1020. package/dist/symbols.js +14 -21
  1021. package/dist/symbols.js.map +1 -1
  1022. package/dist/telemetry.d.ts +31 -3
  1023. package/dist/telemetry.d.ts.map +1 -1
  1024. package/dist/telemetry.js +31 -3
  1025. package/dist/telemetry.js.map +1 -1
  1026. package/dist/tool-registry.d.ts +37 -1
  1027. package/dist/tool-registry.d.ts.map +1 -1
  1028. package/dist/tool-registry.js +37 -1
  1029. package/dist/tool-registry.js.map +1 -1
  1030. package/dist/types.d.ts +106 -92
  1031. package/dist/types.d.ts.map +1 -1
  1032. package/dist/types.js +7 -16
  1033. package/dist/types.js.map +1 -1
  1034. package/dist/ui/InteractivePrompts.d.ts +12 -0
  1035. package/dist/ui/InteractivePrompts.d.ts.map +1 -1
  1036. package/dist/ui/InteractivePrompts.js +12 -0
  1037. package/dist/ui/InteractivePrompts.js.map +1 -1
  1038. package/dist/utils/astParser.d.ts +15 -0
  1039. package/dist/utils/astParser.d.ts.map +1 -1
  1040. package/dist/utils/astParser.js +15 -0
  1041. package/dist/utils/astParser.js.map +1 -1
  1042. package/dist/utils/astUtils.d.ts +60 -0
  1043. package/dist/utils/astUtils.d.ts.map +1 -1
  1044. package/dist/utils/astUtils.js +350 -362
  1045. package/dist/utils/astUtils.js.map +1 -1
  1046. package/dist/utils/contentHash.d.ts +22 -0
  1047. package/dist/utils/contentHash.d.ts.map +1 -0
  1048. package/dist/utils/contentHash.js +26 -0
  1049. package/dist/utils/contentHash.js.map +1 -0
  1050. package/dist/utils/dependencyExtractor.d.ts +28 -0
  1051. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  1052. package/dist/utils/dependencyExtractor.js +28 -1
  1053. package/dist/utils/dependencyExtractor.js.map +1 -1
  1054. package/dist/utils/errorMessage.d.ts +10 -0
  1055. package/dist/utils/errorMessage.d.ts.map +1 -0
  1056. package/dist/utils/errorMessage.js +12 -0
  1057. package/dist/utils/errorMessage.js.map +1 -0
  1058. package/dist/utils/fileDiscovery.d.ts +61 -2
  1059. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  1060. package/dist/utils/fileDiscovery.js +131 -23
  1061. package/dist/utils/fileDiscovery.js.map +1 -1
  1062. package/dist/utils/reactDetection.d.ts +34 -5
  1063. package/dist/utils/reactDetection.d.ts.map +1 -1
  1064. package/dist/utils/reactDetection.js +73 -52
  1065. package/dist/utils/reactDetection.js.map +1 -1
  1066. package/dist/version.generated.d.ts +1 -1
  1067. package/dist/version.generated.js +1 -1
  1068. package/dist/workers/auditWorker.js +7 -3
  1069. package/dist/workers/auditWorker.js.map +1 -1
  1070. package/examples/.auditrc.example.json +0 -8
  1071. package/examples/.auditrc.json +0 -11
  1072. package/examples/.code-auditor.json +0 -2
  1073. package/examples/nextjs.auditrc.json +0 -8
  1074. package/examples/node-api.auditrc.json +0 -7
  1075. package/examples/react.auditrc.json +0 -6
  1076. package/examples/tolerant-solid.auditrc.json +0 -5
  1077. package/package.json +14 -8
  1078. package/plugin/.claude-plugin/manifest.json +16 -0
  1079. package/plugin/.claude-plugin/plugin.json +1 -1
  1080. package/plugin/hooks/hooks.json +6 -2
  1081. package/plugin/scripts/hook-audit.sh +41 -14
  1082. package/plugin/scripts/hook-common.sh +50 -5
  1083. package/plugin/scripts/hook-drift-check.sh +72 -0
  1084. package/plugin/scripts/hook-self-audit.sh +17 -12
  1085. package/plugin/skills/code-auditor/SKILL.md +1 -1
  1086. package/server.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleIdentification.d.ts","sourceRoot":"","sources":["../../src/analyzers/handleIdentification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,424 @@
1
+ /**
2
+ * Handle identification — the seam.
3
+ *
4
+ * Standing correction `specs/correction-seams-not-placement.md`: one concept,
5
+ * one seam, declared as a type, with a compile-time residue check. Handle
6
+ * identification ("is this receiver a DB handle?") is answered by exactly one
7
+ * entry point built from two walk-time evidence sources. A third source —
8
+ * `external-classifier` — re-disposes `unproven` sites after the audit from a
9
+ * separate `classify` command, never from the walk. No rule and no processor
10
+ * decides handle-ness any other way.
11
+ *
12
+ * ─── Shape ───
13
+ *
14
+ * combineVerdicts(EVIDENCE_SOURCES.map(s => s.evaluate(site, facts)))
15
+ *
16
+ * Two walk-time evidence sources, registered against `WalkTimeEvidenceSourceId`:
17
+ *
18
+ * - `sql-argument` — the call's argument is literally SQL, so the
19
+ * receiver must be a DB handle. Can only prove
20
+ * `handle` or stay silent (`unproven`) — the
21
+ * narrowing is compile-enforced on `evaluate`.
22
+ * - `declaration-resolution` — the receiver's declaration resolves to a DB
23
+ * handle (package import, type annotation, or
24
+ * binding). The only source that can prove
25
+ * `not-handle`, so `not-handle.via` is narrowed
26
+ * to it in the type.
27
+ *
28
+ * `external-classifier` is a third `via` value (a full member of
29
+ * `EvidenceSourceId`) reserved for post-audit attribution: its implementation is
30
+ * *not* in `EVIDENCE_SOURCES` and is *not* called from `identifyHandle` or
31
+ * anything downstream, so the walk stays synchronous. The `classify` command
32
+ * folds its verdict through `combineVerdicts` with the same invariant.
33
+ *
34
+ * `declaration-resolution` is itself a nested seam: one `ResolutionImplementation`
35
+ * per `Format`, registered against `RESOLUTION_IMPLEMENTATIONS`. A caller asks the
36
+ * interface and never learns which implementation answered — no caller names a
37
+ * format, and no format name appears above an implementation's own module.
38
+ */
39
+ import { classifyRootIdentifier, deriveMemberPath, deriveThisMemberPath } from './receiverRoot.js';
40
+ import { classifyGoRootIdentifier, buildGoImportMap, buildGoBindingEnv, classifyGoBindings, describeGoUnprovenCause, } from '../languages/go/goResolution.js';
41
+ import { parseSql, DEFAULT_SQL_DIALECT } from '../languages/sql/sqlAst.js';
42
+ import { extractTsWithinFileProvenance } from './provenance.js';
43
+ import { classifyTsWithinFileProvenance } from './tsExpressionDescriptor.js';
44
+ // ─── Combination rule ────────────────────────────────────────────────────────
45
+ /**
46
+ * Fold the evidence sources' verdicts into one, exhaustive over `HandleVerdict`
47
+ * with no `default` arm. The precedence is `handle` > `not-handle` > `unproven`:
48
+ *
49
+ * - any `handle` wins and records which source proved it;
50
+ * - else any `not-handle` wins (only `declaration-resolution` can produce it,
51
+ * so this arm is decided by that one source);
52
+ * - else `unproven` carrying the union of reasons.
53
+ *
54
+ * @param verdicts — the verdicts from the walk-time evidence sources, in
55
+ * registration order.
56
+ * @returns the folded verdict: any `handle` (with its `via`), else `not-handle`,
57
+ * else `unproven` carrying the union of non-empty reasons.
58
+ */
59
+ export function combineVerdicts(verdicts) {
60
+ const unprovenReasons = [];
61
+ let notHandle = null;
62
+ for (const verdict of verdicts) {
63
+ if (verdict.kind === 'handle') {
64
+ return verdict; // handle wins immediately, records `via`
65
+ }
66
+ if (verdict.kind === 'not-handle') {
67
+ notHandle = verdict;
68
+ continue;
69
+ }
70
+ // unproven
71
+ unprovenReasons.push(verdict.reason);
72
+ }
73
+ if (notHandle !== null) {
74
+ return notHandle; // not-handle beats unproven
75
+ }
76
+ // An empty reason is a source *staying silent* rather than asserting an
77
+ // unproven cause (`sql-argument` sees no SQL argument). Drop those so the
78
+ // combined reason is the union of the sources that actually have a cause.
79
+ const reasons = [...new Set(unprovenReasons)].filter((r) => r.length > 0);
80
+ return {
81
+ kind: 'unproven',
82
+ reason: reasons.length === 0 ? 'no evidence source produced a verdict' : reasons.join('; '),
83
+ };
84
+ }
85
+ /** The TS word for an unproven, un-annotated `field` declaration. */
86
+ export const TYPESCRIPT_FIELD_WORDING = 'class field';
87
+ /** The Go word for an unproven, un-annotated `field` declaration. */
88
+ export const GO_FIELD_WORDING = 'struct field';
89
+ /**
90
+ * Why a root classified `unproven` could not be resolved to handle or
91
+ * not-handle. The single implementation behind the two `resolveRoot`s; the
92
+ * former `unprovenCause` / `goUnprovenCause` pair ceased to exist as a pair and
93
+ * its two halves became one function parameterized on the one `field` word that
94
+ * differs.
95
+ *
96
+ * @param root — the receiver's base identifier being described.
97
+ * @param provenance — the `has(key)` predicate over the file's DB-provenance set.
98
+ * @param binding — the root's binding in the file scope chain, or `undefined`.
99
+ * @param fieldNoValueWord — the format's word for an un-annotated field
100
+ * (`class field` / `struct field`).
101
+ * @returns a human-readable reason the root stayed `unproven`.
102
+ */
103
+ export function describeUnprovenCause(root, provenance, binding, fieldNoValueWord) {
104
+ if (provenance.has(root))
105
+ return 'resolved to a DB handle (misclassified)';
106
+ if (!binding)
107
+ return 'has no binding in the file scope chain';
108
+ switch (binding.kind) {
109
+ case 'import':
110
+ return `imports from '${binding.source ?? '?'}' — an unrecognized package (not in the database-packages manifest)`;
111
+ case 'parameter':
112
+ return binding.typeText ? `parameter type \`${binding.typeText}\` is indeterminate` : 'is an un-annotated parameter';
113
+ case 'variable':
114
+ if (binding.typeText)
115
+ return `declared type \`${binding.typeText}\` is indeterminate`;
116
+ return binding.value ? 'is an un-annotated factory return' : 'is an un-annotated declaration';
117
+ case 'field':
118
+ if (binding.typeText)
119
+ return `field type \`${binding.typeText}\` is indeterminate`;
120
+ return binding.value ? 'is an un-annotated field initializer' : `is an un-annotated ${fieldNoValueWord}`;
121
+ case 'function':
122
+ case 'method':
123
+ return 'is a function reference without a DB return type';
124
+ case 'class':
125
+ return 'is a class reference without DB provenance';
126
+ case 'type':
127
+ return 'is a local type name';
128
+ default:
129
+ return 'is indeterminate';
130
+ }
131
+ }
132
+ // ─── Resolution implementations (nested seam) ────────────────────────────────
133
+ const NON_CODE_FORMATS = ['css', 'scss', 'json', 'sql', 'markup'];
134
+ /** A non-code file has no executable receiver, so its root is `not-handle` and
135
+ * its within-file provenance is the empty map. */
136
+ function nonCodeResolution(format) {
137
+ return {
138
+ format,
139
+ resolveRoot(site) {
140
+ return {
141
+ root: site.root,
142
+ disposition: 'not-handle',
143
+ reason: `a ${format} file carries no executable receiver, so \`${site.root}\` is not a DB handle`,
144
+ };
145
+ },
146
+ extract() {
147
+ return { kind: 'none' };
148
+ },
149
+ classify() {
150
+ return new Map();
151
+ },
152
+ };
153
+ }
154
+ /**
155
+ * The TypeScript-family implementation, shared by `typescript`/`tsx`/`javascript`.
156
+ * The three formats differ only by file extension; their receiver resolution is
157
+ * identical, so one implementation serves all three keys.
158
+ */
159
+ const typescriptResolution = {
160
+ format: 'typescript',
161
+ resolveRoot(site, facts) {
162
+ if (facts.resolution.dialect !== 'ts') {
163
+ return { root: site.root, disposition: 'unproven', reason: 'missing TypeScript resolution environment' };
164
+ }
165
+ const env = facts.resolution.env;
166
+ // Clear the ambient-rejection + import-resolution out-params before
167
+ // classifying — the reason below reads them only when this classification
168
+ // set them, never a stale value from a prior site sharing the env.
169
+ env.ambientRejectionReason = undefined;
170
+ env.importResolutionReason = undefined;
171
+ const classified = classifyRootIdentifier(site.root, env, 0, {
172
+ thisField: site.thisField,
173
+ memberPath: site.thisField
174
+ ? deriveThisMemberPath(site.root, site.receiver)
175
+ : deriveMemberPath(site.root, site.receiver, false),
176
+ thisHeritage: site.thisHeritage,
177
+ scope: site.scope,
178
+ });
179
+ // The package discriminant (not the method name) decides the disposition: an
180
+ // unrecognized root is `unproven` (cannot-fire), never downgraded by method
181
+ // shape — `join` is `Array.prototype.join` and also `SQL JOIN`.
182
+ const disposition = classified;
183
+ return {
184
+ root: site.root,
185
+ disposition,
186
+ reason: disposition === 'unproven'
187
+ ? env.ambientRejectionReason ?? env.importResolutionReason ?? describeUnprovenCause(site.root, env.provenance, env.bindings.get(site.root), TYPESCRIPT_FIELD_WORDING)
188
+ : disposition,
189
+ };
190
+ },
191
+ extract(ast, adapter, sourceCode) {
192
+ return { kind: 'ts', projection: extractTsWithinFileProvenance(ast, adapter, sourceCode) };
193
+ },
194
+ classify(extract, extraSeeds = new Map()) {
195
+ if (extract.kind !== 'ts') {
196
+ throw new Error(`TypeScript resolution classified a ${extract.kind} within-file extract`);
197
+ }
198
+ return classifyTsWithinFileProvenance(extract.projection, extraSeeds);
199
+ },
200
+ };
201
+ /** The Go implementation. */
202
+ const goResolution = {
203
+ format: 'go',
204
+ resolveRoot(site, facts) {
205
+ if (facts.resolution.dialect !== 'go') {
206
+ return { root: site.root, disposition: 'unproven', reason: 'missing Go resolution environment' };
207
+ }
208
+ const env = facts.resolution.env;
209
+ const classified = classifyGoRootIdentifier(site.root, env);
210
+ // The package discriminant (not the method name) decides the disposition: an
211
+ // unrecognized root is `unproven` (cannot-fire), never downgraded by method
212
+ // shape — `join` is `Array.prototype.join` and also `SQL JOIN`.
213
+ const disposition = classified;
214
+ return {
215
+ root: site.root,
216
+ disposition,
217
+ reason: disposition === 'unproven'
218
+ ? describeGoUnprovenCause(site.root, env)
219
+ : disposition,
220
+ };
221
+ },
222
+ extract(ast, adapter, sourceCode) {
223
+ return {
224
+ kind: 'go',
225
+ projection: {
226
+ imports: buildGoImportMap(ast, adapter),
227
+ bindings: buildGoBindingEnv(ast, adapter, sourceCode),
228
+ },
229
+ };
230
+ },
231
+ classify(extract, extraSeeds = new Map(), goPackageBindings) {
232
+ if (extract.kind !== 'go') {
233
+ throw new Error(`Go resolution classified a ${extract.kind} within-file extract`);
234
+ }
235
+ // `classifyGoBindings` seeds DB packages + classifies every binding; the
236
+ // cross-file `extraSeeds` merge is the one step `computeTsWithinFileProvenance`
237
+ // applied *outside* `buildGoWithinFileProvenance`, so it is reproduced here.
238
+ const prov = classifyGoBindings(extract.projection.imports, extract.projection.bindings, goPackageBindings);
239
+ for (const [name, evidence] of extraSeeds) {
240
+ if (!prov.has(name))
241
+ prov.set(name, evidence);
242
+ }
243
+ return prov;
244
+ },
245
+ };
246
+ export const RESOLUTION_IMPLEMENTATIONS = {
247
+ typescript: typescriptResolution,
248
+ tsx: typescriptResolution,
249
+ javascript: typescriptResolution,
250
+ go: goResolution,
251
+ css: nonCodeResolution('css'),
252
+ scss: nonCodeResolution('scss'),
253
+ json: nonCodeResolution('json'),
254
+ sql: nonCodeResolution('sql'),
255
+ markup: nonCodeResolution('markup'),
256
+ };
257
+ // ─── Evidence sources ────────────────────────────────────────────────────────
258
+ /**
259
+ * `sql-argument`: the call's argument parses as a SQL statement, so the receiver
260
+ * must be a DB handle. It can only prove `handle`; on an absent argument it
261
+ * stays *silent* — `unproven` with an empty reason that `combineVerdicts` drops,
262
+ * so it never contributes a cause to the cannot-fire report.
263
+ *
264
+ * Spec 70 R3: the proof is the parsed format, not a method-name or package list.
265
+ * `site.sqlArgument` is the extracted SQL string (already stripped of its
266
+ * surrounding quotes/backticks); it proves `handle` only when {@link parseSql}
267
+ * accepts it. Spec 70 R2 says parsing a literal does not require *proving* the
268
+ * site's dialect first — one grammar is named and the parse is attempted under
269
+ * it — so the source parses under the corpus's named dialect
270
+ * (`facts.sqlDialect`), or under {@link DEFAULT_SQL_DIALECT} when that is `null`.
271
+ * An argument that does *not* parse is a genuine `unproven` with a reason — "I
272
+ * was handed SQL-shaped text and could not read it" — which surfaces as
273
+ * `cannot-fire`, never `clean` (criterion 3). When the dialect was undetermined,
274
+ * that reason names **both** the parse failure and the undetermined dialect (the
275
+ * failure may be dialect-specific syntax), rather than abstaining before the
276
+ * parse. A string that never reaches a data-access call site is not parsed at
277
+ * all (R5), so a non-SQL string argument on a non-query-shaped call is not this
278
+ * source's concern.
279
+ */
280
+ const sqlArgumentSource = {
281
+ id: 'sql-argument',
282
+ evaluate(site, facts) {
283
+ if (site.sqlArgument === null)
284
+ return { kind: 'unproven', reason: '' };
285
+ const parsed = parseSql(site.sqlArgument, facts.sqlDialect ?? DEFAULT_SQL_DIALECT);
286
+ if (parsed.ok) {
287
+ // A parse success is not enough to prove a handle: node-sql-parser accepts
288
+ // fragments that are not standalone data-access statements (e.g. a bare
289
+ // `RETURN return_type` — the `RETURN` keyword plus an expression — which is
290
+ // how tree-sitter field names like `return_type`/`returnType` leak through
291
+ // and mis-prove a TreeSitterNode receiver as a DB handle). Only a statement
292
+ // of a real query/mutation kind (SELECT/INSERT/UPDATE/…), or a recognized
293
+ // standalone transaction-control marker, is unambiguously SQL that names a
294
+ // database receiver. Anything else parses to `kind === 'other'` with no
295
+ // statement type and stays unproven so declaration-resolution decides.
296
+ const astType = parsed.ast.type;
297
+ const isDataAccess = parsed.kind !== 'other' || astType === 'transaction';
298
+ if (isDataAccess)
299
+ return { kind: 'handle', via: 'sql-argument' };
300
+ return {
301
+ kind: 'unproven',
302
+ reason: `the SQL argument parses but is not a standalone data-access statement (kind: ${parsed.kind})`,
303
+ };
304
+ }
305
+ if (facts.sqlDialect === null) {
306
+ return {
307
+ kind: 'unproven',
308
+ reason: `node-sql-parser could not parse the SQL argument under the default ${DEFAULT_SQL_DIALECT} grammar, and the dialect is undetermined — the failure may be dialect-specific syntax: ${parsed.reason}`,
309
+ };
310
+ }
311
+ return { kind: 'unproven', reason: `node-sql-parser could not parse the SQL argument under ${facts.sqlDialect}: ${parsed.reason}` };
312
+ },
313
+ };
314
+ /**
315
+ * `declaration-resolution`: the receiver's declaration resolves to a DB handle
316
+ * (package import, type annotation, or binding). The only source that can prove
317
+ * `not-handle`. It delegates to the format's `ResolutionImplementation`.
318
+ */
319
+ const declarationResolutionSource = {
320
+ id: 'declaration-resolution',
321
+ evaluate(site, facts) {
322
+ const resolved = RESOLUTION_IMPLEMENTATIONS[site.format].resolveRoot(site, facts);
323
+ switch (resolved.disposition) {
324
+ case 'handle':
325
+ return { kind: 'handle', via: 'declaration-resolution' };
326
+ case 'not-handle':
327
+ return { kind: 'not-handle', via: 'declaration-resolution' };
328
+ case 'unproven':
329
+ return { kind: 'unproven', reason: resolved.reason };
330
+ }
331
+ },
332
+ };
333
+ export const EVIDENCE_SOURCES = {
334
+ 'sql-argument': sqlArgumentSource,
335
+ 'declaration-resolution': declarationResolutionSource,
336
+ };
337
+ // ─── The entry point ──────────────────────────────────────────────────────────
338
+ /**
339
+ * The single handle-identification entry point: fold both evidence sources.
340
+ *
341
+ * @param site — the query-shaped call site whose handle-ness is being resolved.
342
+ * @param facts — the flat + deep resolution facts the sources read.
343
+ * @returns the combined `HandleVerdict` from both walk-time sources.
344
+ */
345
+ export function identifyHandle(site, facts) {
346
+ return combineVerdicts([
347
+ EVIDENCE_SOURCES['sql-argument'].evaluate(site, facts),
348
+ EVIDENCE_SOURCES['declaration-resolution'].evaluate(site, facts),
349
+ ]);
350
+ }
351
+ /** The accurate disposition when no classifier is configured: the question cannot
352
+ * be answered, so the source abstains with this exact reason. */
353
+ export const NO_EXTERNAL_CLASSIFIER = {
354
+ kind: 'unproven',
355
+ reason: 'no external classifier configured',
356
+ };
357
+ /**
358
+ * The single upper threshold (the "band") the tool applies to a classifier's
359
+ * confidence. At or above it the site is attributed `handle` with the confidence
360
+ * and provenance; below it the source abstains — with the confidence recorded in
361
+ * the reason so the near-miss is visible, not discarded. A low confidence is
362
+ * absence of evidence, not evidence of absence: this mapper proves or abstains,
363
+ * never `not-handle`.
364
+ *
365
+ * @param result — the classifier's confidence plus opaque provenance.
366
+ * @param threshold — the handle threshold; at or above it the site is `handle`.
367
+ * @returns `handle` (with confidence + provenance) at/above threshold, else
368
+ * `unproven` with the confidence recorded in the reason.
369
+ */
370
+ export function externalClassifierVerdict(result, threshold) {
371
+ const { confidence, provenance } = result;
372
+ if (!Number.isFinite(confidence) || confidence < 0 || confidence > 1) {
373
+ return {
374
+ kind: 'unproven',
375
+ reason: `external classifier confidence ${confidence} is out of range [0, 1]`,
376
+ };
377
+ }
378
+ if (confidence < threshold) {
379
+ return {
380
+ kind: 'unproven',
381
+ reason: `external classifier confidence ${confidence} is below the handle threshold ${threshold}`,
382
+ };
383
+ }
384
+ return { kind: 'handle', via: 'external-classifier', confidence, provenance };
385
+ }
386
+ /**
387
+ * Validate classifier configuration, refusing loudly on a missing or non-finite
388
+ * threshold. Returns the config on success; throws otherwise. The threshold has
389
+ * no default — a guessed number would be a silent wrong answer at the
390
+ * configuration layer.
391
+ *
392
+ * @param config — the raw, unvalidated classifier configuration.
393
+ * @returns the validated `ExternalClassifierConfig` with a finite `threshold` in
394
+ * [0, 1].
395
+ */
396
+ export function validateExternalClassifierConfig(config) {
397
+ if (typeof config !== 'object' || config === null) {
398
+ throw new Error('external classifier config must be an object with a `threshold`');
399
+ }
400
+ const threshold = config.threshold;
401
+ if (typeof threshold !== 'number' || !Number.isFinite(threshold) || threshold < 0 || threshold > 1) {
402
+ throw new Error('external classifier `threshold` is required and must be a finite number in [0, 1]');
403
+ }
404
+ return { threshold };
405
+ }
406
+ const _allEvidenceSourcesRegistered = true;
407
+ const _allFormatsImplemented = true;
408
+ // Liveness seeds — each names a discriminant and is legal only while the residue
409
+ // above is `never`. Remove one registration, the residue widens to that name,
410
+ // the assignment compiles, and the `@ts-expect-error` goes unused → the build
411
+ // fails. Same idiom as `phase/seeded-defects.ts`, colocated so the seam's
412
+ // totality is checked wherever the seam is compiled.
413
+ // @ts-expect-error — an unregistered walk-time source would make this a non-never type
414
+ const _missingEvidenceSource = 'sql-argument';
415
+ // @ts-expect-error — an unimplemented format would make this a non-never type
416
+ const _missingFormat = 'go';
417
+ // @ts-expect-error — a prove-or-abstain source cannot disprove handle-ness (narrowing liveness)
418
+ const _proveOrAbstainCannotDisprove = { kind: 'not-handle', via: 'declaration-resolution' };
419
+ void _allEvidenceSourcesRegistered;
420
+ void _allFormatsImplemented;
421
+ void _missingEvidenceSource;
422
+ void _missingFormat;
423
+ void _proveOrAbstainCannotDisprove;
424
+ //# sourceMappingURL=handleIdentification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleIdentification.js","sourceRoot":"","sources":["../../src/analyzers/handleIdentification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Manifest staleness — the ecosystem-list self-check (Part 2b).
3
+ *
4
+ * The package manifest does not participate in classification. It is a staleness
5
+ * report — "our list names drizzle-orm, this project doesn't depend on it" —
6
+ * emitted as a diagnostic and affecting no verdict. A receiver classifies as a
7
+ * DB handle by declaration resolution and SQL-argument evidence, never by
8
+ * whether the project's package.json names the package.
9
+ *
10
+ * "Our list" is the TS implementation's `DB_PACKAGES` (tsEcosystem.ts, npm
11
+ * packages) and the Go implementation's `GO_DB_PACKAGES` (goResolution.ts, Go
12
+ * import paths). "This project depends on" is the union of package.json
13
+ * `dependencies`/`devDependencies`/`peerDependencies` (TS) and go.mod `require`
14
+ * lines (Go). The gap — a name our list carries that the project does not
15
+ * actually depend on — is the only per-project signal that a hardcoded ecosystem
16
+ * list has drifted from the ecosystem it claims to describe.
17
+ *
18
+ * This module reads the two manifests but owns nothing in them: `DB_PACKAGES` /
19
+ * `GO_DB_PACKAGES` stay behind their implementations' interfaces, read here only
20
+ * because this module *is* part of the resolution layer that owns them. Callers
21
+ * above the interface surface the resulting {@link ManifestStaleEntry} list, not
22
+ * the sets.
23
+ */
24
+ /** One stale entry: a package our ecosystem list names that the project doesn't. */
25
+ export interface ManifestStaleEntry {
26
+ ecosystem: 'ts' | 'go';
27
+ /** The package name (TS) or import path (Go) our list carries. */
28
+ package: string;
29
+ /** Absolute path to the manifest the comparison was made against. */
30
+ manifestPath: string;
31
+ }
32
+ /** The project's declared dependency names, plus where they were read from. */
33
+ export interface ProjectManifest {
34
+ /** Union of package.json dependencies + go.mod requires. */
35
+ names: ReadonlySet<string>;
36
+ /** Absolute path to package.json, or null when absent/unreadable. */
37
+ tsManifestPath: string | null;
38
+ /** Absolute path to go.mod, or null when absent/unreadable. */
39
+ goManifestPath: string | null;
40
+ }
41
+ /**
42
+ * Read the project's dependency names from package.json (TS) and go.mod (Go).
43
+ * A missing or unreadable manifest contributes nothing — an empty manifest means
44
+ * "no manifest to compare against", which produces no staleness (see
45
+ * {@link computeManifestStaleness}).
46
+ *
47
+ * @param projectRoot — the project root containing package.json and/or go.mod.
48
+ * @returns the union of declared dependency names plus the path to each manifest
49
+ * actually read (`null` when absent/unreadable).
50
+ */
51
+ export declare function readProjectManifest(projectRoot: string): Promise<ProjectManifest>;
52
+ /**
53
+ * The gap between our ecosystem lists and the project's manifest: every package
54
+ * `DB_PACKAGES` / `GO_DB_PACKAGES` names that the project does not depend on.
55
+ * Emitted only when the corresponding manifest exists — an absent package.json
56
+ * produces no TS staleness (there is nothing to be stale against), and likewise
57
+ * for go.mod and the Go list. Affects no verdict.
58
+ *
59
+ * @param manifest — the project's declared names and manifest paths.
60
+ * @returns the stale entries: every ecosystem-list package the project does not
61
+ * depend on, restricted to manifests that actually exist.
62
+ */
63
+ export declare function computeManifestStaleness(manifest: ProjectManifest): ManifestStaleEntry[];
64
+ //# sourceMappingURL=manifestStaleness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifestStaleness.d.ts","sourceRoot":"","sources":["../../src/analyzers/manifestStaleness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,oFAAoF;AACpF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,qEAAqE;IACrE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,+DAA+D;IAC/D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,GAAG,kBAAkB,EAAE,CAaxF"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Manifest staleness — the ecosystem-list self-check (Part 2b).
3
+ *
4
+ * The package manifest does not participate in classification. It is a staleness
5
+ * report — "our list names drizzle-orm, this project doesn't depend on it" —
6
+ * emitted as a diagnostic and affecting no verdict. A receiver classifies as a
7
+ * DB handle by declaration resolution and SQL-argument evidence, never by
8
+ * whether the project's package.json names the package.
9
+ *
10
+ * "Our list" is the TS implementation's `DB_PACKAGES` (tsEcosystem.ts, npm
11
+ * packages) and the Go implementation's `GO_DB_PACKAGES` (goResolution.ts, Go
12
+ * import paths). "This project depends on" is the union of package.json
13
+ * `dependencies`/`devDependencies`/`peerDependencies` (TS) and go.mod `require`
14
+ * lines (Go). The gap — a name our list carries that the project does not
15
+ * actually depend on — is the only per-project signal that a hardcoded ecosystem
16
+ * list has drifted from the ecosystem it claims to describe.
17
+ *
18
+ * This module reads the two manifests but owns nothing in them: `DB_PACKAGES` /
19
+ * `GO_DB_PACKAGES` stay behind their implementations' interfaces, read here only
20
+ * because this module *is* part of the resolution layer that owns them. Callers
21
+ * above the interface surface the resulting {@link ManifestStaleEntry} list, not
22
+ * the sets.
23
+ */
24
+ import { readFile } from 'node:fs/promises';
25
+ import path from 'node:path';
26
+ import { DB_PACKAGES } from './tsEcosystem.js';
27
+ import { GO_DB_PACKAGES } from '../languages/go/goResolution.js';
28
+ /**
29
+ * Read the project's dependency names from package.json (TS) and go.mod (Go).
30
+ * A missing or unreadable manifest contributes nothing — an empty manifest means
31
+ * "no manifest to compare against", which produces no staleness (see
32
+ * {@link computeManifestStaleness}).
33
+ *
34
+ * @param projectRoot — the project root containing package.json and/or go.mod.
35
+ * @returns the union of declared dependency names plus the path to each manifest
36
+ * actually read (`null` when absent/unreadable).
37
+ */
38
+ export async function readProjectManifest(projectRoot) {
39
+ const names = new Set();
40
+ let tsManifestPath = null;
41
+ let goManifestPath = null;
42
+ const packageJsonPath = path.join(projectRoot, 'package.json');
43
+ try {
44
+ const raw = await readFile(packageJsonPath, 'utf-8');
45
+ const pkg = JSON.parse(raw);
46
+ for (const group of [pkg.dependencies, pkg.devDependencies, pkg.peerDependencies]) {
47
+ for (const name of Object.keys(group ?? {}))
48
+ names.add(name);
49
+ }
50
+ tsManifestPath = packageJsonPath;
51
+ }
52
+ catch {
53
+ // no package.json (or unreadable) — nothing to compare the TS list against
54
+ }
55
+ const goModPath = path.join(projectRoot, 'go.mod');
56
+ try {
57
+ const raw = await readFile(goModPath, 'utf-8');
58
+ let inRequireBlock = false;
59
+ for (const line of raw.split('\n')) {
60
+ const t = line.trim();
61
+ if (t.startsWith('require (')) {
62
+ inRequireBlock = true;
63
+ continue;
64
+ }
65
+ if (inRequireBlock) {
66
+ if (t === ')') {
67
+ inRequireBlock = false;
68
+ continue;
69
+ }
70
+ const mod = t.split(/\s+/)[0];
71
+ if (mod)
72
+ names.add(mod);
73
+ continue;
74
+ }
75
+ if (t.startsWith('require ')) {
76
+ const mod = t.slice('require '.length).trim().split(/\s+/)[0];
77
+ if (mod)
78
+ names.add(mod);
79
+ }
80
+ }
81
+ goManifestPath = goModPath;
82
+ }
83
+ catch {
84
+ // no go.mod (or unreadable) — nothing to compare the Go list against
85
+ }
86
+ return { names, tsManifestPath, goManifestPath };
87
+ }
88
+ /**
89
+ * The gap between our ecosystem lists and the project's manifest: every package
90
+ * `DB_PACKAGES` / `GO_DB_PACKAGES` names that the project does not depend on.
91
+ * Emitted only when the corresponding manifest exists — an absent package.json
92
+ * produces no TS staleness (there is nothing to be stale against), and likewise
93
+ * for go.mod and the Go list. Affects no verdict.
94
+ *
95
+ * @param manifest — the project's declared names and manifest paths.
96
+ * @returns the stale entries: every ecosystem-list package the project does not
97
+ * depend on, restricted to manifests that actually exist.
98
+ */
99
+ export function computeManifestStaleness(manifest) {
100
+ const stale = [];
101
+ if (manifest.tsManifestPath !== null) {
102
+ for (const pkg of DB_PACKAGES) {
103
+ if (!manifest.names.has(pkg))
104
+ stale.push({ ecosystem: 'ts', package: pkg, manifestPath: manifest.tsManifestPath });
105
+ }
106
+ }
107
+ if (manifest.goManifestPath !== null) {
108
+ for (const pkg of GO_DB_PACKAGES) {
109
+ if (!manifest.names.has(pkg))
110
+ stale.push({ ecosystem: 'go', package: pkg, manifestPath: manifest.goManifestPath });
111
+ }
112
+ }
113
+ return stale;
114
+ }
115
+ //# sourceMappingURL=manifestStaleness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifestStaleness.js","sourceRoot":"","sources":["../../src/analyzers/manifestStaleness.ts"],"names":[],"mappings":"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"}