code-auditor-mcp 4.1.1 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1087) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +381 -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 +427 -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 +348 -0
  67. package/dist/analyzers/receiverRoot.d.ts.map +1 -0
  68. package/dist/analyzers/receiverRoot.js +1032 -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 +241 -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.map +1 -1
  95. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +23 -35
  96. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  97. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +287 -49
  98. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  99. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +2130 -512
  100. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  101. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  102. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +2 -18
  103. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  104. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -33
  105. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  106. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +20 -143
  107. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  108. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +4 -3
  109. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  110. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +36 -13
  111. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  112. package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
  113. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +6 -0
  114. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -1
  115. package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +15 -0
  116. package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -1
  117. package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +25 -0
  118. package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -1
  119. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +21 -32
  120. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  121. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +166 -196
  122. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  123. package/dist/analyzers/universal/functionConcerns.d.ts +3 -0
  124. package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
  125. package/dist/analyzers/universal/functionConcerns.js +4 -1
  126. package/dist/analyzers/universal/functionConcerns.js.map +1 -1
  127. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +310 -69
  128. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  129. package/dist/analyzers/universal/schema/codeAnalysis.js +709 -383
  130. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  131. package/dist/analyzers/universal/schema/config.d.ts +3 -14
  132. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  133. package/dist/analyzers/universal/schema/config.js +3 -16
  134. package/dist/analyzers/universal/schema/config.js.map +1 -1
  135. package/dist/analyzers/universal/schema/discovery.d.ts +22 -1
  136. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
  137. package/dist/analyzers/universal/schema/discovery.js +36 -20
  138. package/dist/analyzers/universal/schema/discovery.js.map +1 -1
  139. package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -1
  140. package/dist/analyzers/universal/schema/jsonSchema.js +13 -3
  141. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  142. package/dist/analyzers/universal/schema/migrations.d.ts +187 -27
  143. package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
  144. package/dist/analyzers/universal/schema/migrations.js +443 -186
  145. package/dist/analyzers/universal/schema/migrations.js.map +1 -1
  146. package/dist/analyzers/universal/schema/types.d.ts +17 -3
  147. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  148. package/dist/analyzers/universal/schema/violations.js +1 -1
  149. package/dist/analyzers/universal/schema/violations.js.map +1 -1
  150. package/dist/analyzers/universal/styleScale.d.ts +52 -0
  151. package/dist/analyzers/universal/styleScale.d.ts.map +1 -0
  152. package/dist/analyzers/universal/styleScale.js +95 -0
  153. package/dist/analyzers/universal/styleScale.js.map +1 -0
  154. package/dist/applyDataDirEnv.js +1 -1
  155. package/dist/applyDataDirEnv.js.map +1 -1
  156. package/dist/auditRouter.d.ts +26 -30
  157. package/dist/auditRouter.d.ts.map +1 -1
  158. package/dist/auditRouter.js +373 -143
  159. package/dist/auditRouter.js.map +1 -1
  160. package/dist/auditRunner.d.ts +66 -1
  161. package/dist/auditRunner.d.ts.map +1 -1
  162. package/dist/auditRunner.js +1544 -1034
  163. package/dist/auditRunner.js.map +1 -1
  164. package/dist/baseline.d.ts +30 -3
  165. package/dist/baseline.d.ts.map +1 -1
  166. package/dist/baseline.js +70 -9
  167. package/dist/baseline.js.map +1 -1
  168. package/dist/cli.js +983 -821
  169. package/dist/cli.js.map +1 -1
  170. package/dist/codeIndex/analyzerConfig.d.ts +60 -0
  171. package/dist/codeIndex/analyzerConfig.d.ts.map +1 -0
  172. package/dist/codeIndex/analyzerConfig.js +98 -0
  173. package/dist/codeIndex/analyzerConfig.js.map +1 -0
  174. package/dist/codeIndex/auditResults.d.ts +39 -0
  175. package/dist/codeIndex/auditResults.d.ts.map +1 -0
  176. package/dist/codeIndex/auditResults.js +99 -0
  177. package/dist/codeIndex/auditResults.js.map +1 -0
  178. package/dist/codeIndex/codeMap.d.ts +59 -0
  179. package/dist/codeIndex/codeMap.d.ts.map +1 -0
  180. package/dist/codeIndex/codeMap.js +72 -0
  181. package/dist/codeIndex/codeMap.js.map +1 -0
  182. package/dist/codeIndex/conventions.d.ts +33 -0
  183. package/dist/codeIndex/conventions.d.ts.map +1 -0
  184. package/dist/codeIndex/conventions.js +84 -0
  185. package/dist/codeIndex/conventions.js.map +1 -0
  186. package/dist/codeIndex/coverage.d.ts +78 -0
  187. package/dist/codeIndex/coverage.d.ts.map +1 -0
  188. package/dist/codeIndex/coverage.js +164 -0
  189. package/dist/codeIndex/coverage.js.map +1 -0
  190. package/dist/codeIndex/dependencyGraph.d.ts +97 -0
  191. package/dist/codeIndex/dependencyGraph.d.ts.map +1 -0
  192. package/dist/codeIndex/dependencyGraph.js +241 -0
  193. package/dist/codeIndex/dependencyGraph.js.map +1 -0
  194. package/dist/codeIndex/functionIndex.d.ts +111 -0
  195. package/dist/codeIndex/functionIndex.d.ts.map +1 -0
  196. package/dist/codeIndex/functionIndex.js +306 -0
  197. package/dist/codeIndex/functionIndex.js.map +1 -0
  198. package/dist/codeIndex/inferredReceivers.d.ts +32 -0
  199. package/dist/codeIndex/inferredReceivers.d.ts.map +1 -0
  200. package/dist/codeIndex/inferredReceivers.js +41 -0
  201. package/dist/codeIndex/inferredReceivers.js.map +1 -0
  202. package/dist/codeIndex/meta.d.ts +30 -0
  203. package/dist/codeIndex/meta.d.ts.map +1 -0
  204. package/dist/codeIndex/meta.js +37 -0
  205. package/dist/codeIndex/meta.js.map +1 -0
  206. package/dist/codeIndex/migrations.d.ts +96 -0
  207. package/dist/codeIndex/migrations.d.ts.map +1 -0
  208. package/dist/codeIndex/migrations.js +1302 -0
  209. package/dist/codeIndex/migrations.js.map +1 -0
  210. package/dist/codeIndex/projectTasks.d.ts +54 -0
  211. package/dist/codeIndex/projectTasks.d.ts.map +1 -0
  212. package/dist/codeIndex/projectTasks.js +81 -0
  213. package/dist/codeIndex/projectTasks.js.map +1 -0
  214. package/dist/codeIndex/provenance.d.ts +47 -0
  215. package/dist/codeIndex/provenance.d.ts.map +1 -0
  216. package/dist/codeIndex/provenance.js +48 -0
  217. package/dist/codeIndex/provenance.js.map +1 -0
  218. package/dist/codeIndex/rawSql.d.ts +54 -0
  219. package/dist/codeIndex/rawSql.d.ts.map +1 -0
  220. package/dist/codeIndex/rawSql.js +71 -0
  221. package/dist/codeIndex/rawSql.js.map +1 -0
  222. package/dist/codeIndex/schema.d.ts +99 -0
  223. package/dist/codeIndex/schema.d.ts.map +1 -0
  224. package/dist/codeIndex/schema.js +174 -0
  225. package/dist/codeIndex/schema.js.map +1 -0
  226. package/dist/codeIndex/search.d.ts +40 -0
  227. package/dist/codeIndex/search.d.ts.map +1 -0
  228. package/dist/codeIndex/search.js +316 -0
  229. package/dist/codeIndex/search.js.map +1 -0
  230. package/dist/codeIndex/shared.d.ts +27 -0
  231. package/dist/codeIndex/shared.d.ts.map +1 -0
  232. package/dist/codeIndex/shared.js +46 -0
  233. package/dist/codeIndex/shared.js.map +1 -0
  234. package/dist/codeIndex/sqliteCollection.d.ts +81 -0
  235. package/dist/codeIndex/sqliteCollection.d.ts.map +1 -0
  236. package/dist/codeIndex/sqliteCollection.js +250 -0
  237. package/dist/codeIndex/sqliteCollection.js.map +1 -0
  238. package/dist/codeIndex/whitelist.d.ts +59 -0
  239. package/dist/codeIndex/whitelist.d.ts.map +1 -0
  240. package/dist/codeIndex/whitelist.js +188 -0
  241. package/dist/codeIndex/whitelist.js.map +1 -0
  242. package/dist/codeIndexDB.d.ts +132 -271
  243. package/dist/codeIndexDB.d.ts.map +1 -1
  244. package/dist/codeIndexDB.js +365 -2729
  245. package/dist/codeIndexDB.js.map +1 -1
  246. package/dist/codeIndexService.d.ts +87 -12
  247. package/dist/codeIndexService.d.ts.map +1 -1
  248. package/dist/codeIndexService.js +110 -34
  249. package/dist/codeIndexService.js.map +1 -1
  250. package/dist/componentScanner.d.ts +35 -0
  251. package/dist/componentScanner.d.ts.map +1 -1
  252. package/dist/componentScanner.js +114 -80
  253. package/dist/componentScanner.js.map +1 -1
  254. package/dist/config/configGeneratePath.d.ts +4 -0
  255. package/dist/config/configGeneratePath.d.ts.map +1 -1
  256. package/dist/config/configGeneratePath.js +4 -0
  257. package/dist/config/configGeneratePath.js.map +1 -1
  258. package/dist/config/configLoader.d.ts +15 -0
  259. package/dist/config/configLoader.d.ts.map +1 -1
  260. package/dist/config/configLoader.js +15 -16
  261. package/dist/config/configLoader.js.map +1 -1
  262. package/dist/config/defaults.d.ts +11 -7
  263. package/dist/config/defaults.d.ts.map +1 -1
  264. package/dist/config/defaults.js +16 -14
  265. package/dist/config/defaults.js.map +1 -1
  266. package/dist/config/effectiveConfig.d.ts +17 -2
  267. package/dist/config/effectiveConfig.d.ts.map +1 -1
  268. package/dist/config/effectiveConfig.js +32 -25
  269. package/dist/config/effectiveConfig.js.map +1 -1
  270. package/dist/config/lintConfigReader.d.ts +6 -0
  271. package/dist/config/lintConfigReader.d.ts.map +1 -1
  272. package/dist/config/lintConfigReader.js +6 -0
  273. package/dist/config/lintConfigReader.js.map +1 -1
  274. package/dist/config/staticObjectExtract.d.ts +4 -0
  275. package/dist/config/staticObjectExtract.d.ts.map +1 -1
  276. package/dist/config/staticObjectExtract.js +7 -3
  277. package/dist/config/staticObjectExtract.js.map +1 -1
  278. package/dist/config/thresholdRationales.d.ts +2 -0
  279. package/dist/config/thresholdRationales.d.ts.map +1 -1
  280. package/dist/config/thresholdRationales.js +5 -2
  281. package/dist/config/thresholdRationales.js.map +1 -1
  282. package/dist/constants.d.ts +1 -1
  283. package/dist/conventions/conventionMiner.d.ts +105 -2
  284. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  285. package/dist/conventions/conventionMiner.js +334 -259
  286. package/dist/conventions/conventionMiner.js.map +1 -1
  287. package/dist/coverage/coverageService.js +4 -4
  288. package/dist/coverage/coverageService.js.map +1 -1
  289. package/dist/daemon/args.d.ts +3 -0
  290. package/dist/daemon/args.d.ts.map +1 -1
  291. package/dist/daemon/args.js +3 -0
  292. package/dist/daemon/args.js.map +1 -1
  293. package/dist/daemon/core.d.ts +33 -27
  294. package/dist/daemon/core.d.ts.map +1 -1
  295. package/dist/daemon/core.js +198 -162
  296. package/dist/daemon/core.js.map +1 -1
  297. package/dist/daemon/lspServer.d.ts +8 -0
  298. package/dist/daemon/lspServer.d.ts.map +1 -1
  299. package/dist/daemon/lspServer.js +8 -0
  300. package/dist/daemon/lspServer.js.map +1 -1
  301. package/dist/daemon/main.d.ts +2 -0
  302. package/dist/daemon/main.d.ts.map +1 -1
  303. package/dist/daemon/main.js +22 -4
  304. package/dist/daemon/main.js.map +1 -1
  305. package/dist/daemon/resolve.d.ts +18 -3
  306. package/dist/daemon/resolve.d.ts.map +1 -1
  307. package/dist/daemon/resolve.js +25 -4
  308. package/dist/daemon/resolve.js.map +1 -1
  309. package/dist/daemon/socketClient.d.ts +10 -1
  310. package/dist/daemon/socketClient.d.ts.map +1 -1
  311. package/dist/daemon/socketClient.js +10 -1
  312. package/dist/daemon/socketClient.js.map +1 -1
  313. package/dist/daemon/socketServer.d.ts +13 -0
  314. package/dist/daemon/socketServer.d.ts.map +1 -1
  315. package/dist/daemon/socketServer.js +13 -0
  316. package/dist/daemon/socketServer.js.map +1 -1
  317. package/dist/dataPaths.d.ts +17 -8
  318. package/dist/dataPaths.d.ts.map +1 -1
  319. package/dist/dataPaths.js +16 -44
  320. package/dist/dataPaths.js.map +1 -1
  321. package/dist/dismissals.d.ts +22 -1
  322. package/dist/dismissals.d.ts.map +1 -1
  323. package/dist/dismissals.js +22 -1
  324. package/dist/dismissals.js.map +1 -1
  325. package/dist/enforcement/gate.d.ts +1 -0
  326. package/dist/enforcement/gate.d.ts.map +1 -1
  327. package/dist/enforcement/gate.js +1 -0
  328. package/dist/enforcement/gate.js.map +1 -1
  329. package/dist/fingerprint.d.ts +6 -0
  330. package/dist/fingerprint.d.ts.map +1 -1
  331. package/dist/fingerprint.js +46 -1
  332. package/dist/fingerprint.js.map +1 -1
  333. package/dist/functionScanner.d.ts +30 -1
  334. package/dist/functionScanner.d.ts.map +1 -1
  335. package/dist/functionScanner.js +258 -256
  336. package/dist/functionScanner.js.map +1 -1
  337. package/dist/generators/AWSQConfigGenerator.d.ts +23 -0
  338. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  339. package/dist/generators/AWSQConfigGenerator.js +23 -0
  340. package/dist/generators/AWSQConfigGenerator.js.map +1 -1
  341. package/dist/generators/BaseConfigGenerator.d.ts +7 -0
  342. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
  343. package/dist/generators/BaseConfigGenerator.js +7 -0
  344. package/dist/generators/BaseConfigGenerator.js.map +1 -1
  345. package/dist/generators/ClaudeConfigGenerator.d.ts +23 -0
  346. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  347. package/dist/generators/ClaudeConfigGenerator.js +23 -0
  348. package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
  349. package/dist/generators/ClineConfigGenerator.d.ts +23 -0
  350. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  351. package/dist/generators/ClineConfigGenerator.js +23 -0
  352. package/dist/generators/ClineConfigGenerator.js.map +1 -1
  353. package/dist/generators/CodeiumConfigGenerator.d.ts +23 -0
  354. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  355. package/dist/generators/CodeiumConfigGenerator.js +23 -0
  356. package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
  357. package/dist/generators/CodexConfigGenerator.d.ts +23 -0
  358. package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
  359. package/dist/generators/CodexConfigGenerator.js +23 -0
  360. package/dist/generators/CodexConfigGenerator.js.map +1 -1
  361. package/dist/generators/ConfigGeneratorFactory.d.ts +9 -0
  362. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  363. package/dist/generators/ConfigGeneratorFactory.js +9 -0
  364. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  365. package/dist/generators/ContinueConfigGenerator.d.ts +23 -0
  366. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  367. package/dist/generators/ContinueConfigGenerator.js +23 -0
  368. package/dist/generators/ContinueConfigGenerator.js.map +1 -1
  369. package/dist/generators/CopilotConfigGenerator.d.ts +23 -0
  370. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  371. package/dist/generators/CopilotConfigGenerator.js +23 -0
  372. package/dist/generators/CopilotConfigGenerator.js.map +1 -1
  373. package/dist/generators/CursorConfigGenerator.d.ts +23 -0
  374. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  375. package/dist/generators/CursorConfigGenerator.js +23 -0
  376. package/dist/generators/CursorConfigGenerator.js.map +1 -1
  377. package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
  378. package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
  379. package/dist/generators/GeminiConfigGenerator.js +23 -0
  380. package/dist/generators/GeminiConfigGenerator.js.map +1 -1
  381. package/dist/generators/VSCodeConfigGenerator.d.ts +23 -0
  382. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  383. package/dist/generators/VSCodeConfigGenerator.js +23 -0
  384. package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
  385. package/dist/generators/ZCodeConfigGenerator.d.ts +23 -0
  386. package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
  387. package/dist/generators/ZCodeConfigGenerator.js +23 -0
  388. package/dist/generators/ZCodeConfigGenerator.js.map +1 -1
  389. package/dist/graph/blastRadius.d.ts.map +1 -1
  390. package/dist/graph/blastRadius.js +12 -7
  391. package/dist/graph/blastRadius.js.map +1 -1
  392. package/dist/graph/callGraph.d.ts +31 -0
  393. package/dist/graph/callGraph.d.ts.map +1 -1
  394. package/dist/graph/callGraph.js +62 -32
  395. package/dist/graph/callGraph.js.map +1 -1
  396. package/dist/graph/importClassification.d.ts +28 -0
  397. package/dist/graph/importClassification.d.ts.map +1 -1
  398. package/dist/graph/importClassification.js +57 -0
  399. package/dist/graph/importClassification.js.map +1 -1
  400. package/dist/graph/importGraph.d.ts +38 -0
  401. package/dist/graph/importGraph.d.ts.map +1 -1
  402. package/dist/graph/importGraph.js +38 -0
  403. package/dist/graph/importGraph.js.map +1 -1
  404. package/dist/graph/outputFormatter.d.ts +12 -4
  405. package/dist/graph/outputFormatter.d.ts.map +1 -1
  406. package/dist/graph/outputFormatter.js +12 -62
  407. package/dist/graph/outputFormatter.js.map +1 -1
  408. package/dist/graph/resolutionEnvironment.d.ts +61 -0
  409. package/dist/graph/resolutionEnvironment.d.ts.map +1 -0
  410. package/dist/graph/resolutionEnvironment.js +57 -0
  411. package/dist/graph/resolutionEnvironment.js.map +1 -0
  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 +827 -850
  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 +491 -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 +1030 -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 +207 -0
  739. package/dist/phase/receiverConsumers.d.ts.map +1 -0
  740. package/dist/phase/receiverConsumers.js +1063 -0
  741. package/dist/phase/receiverConsumers.js.map +1 -0
  742. package/dist/phase/receiverProvenance.d.ts +120 -0
  743. package/dist/phase/receiverProvenance.d.ts.map +1 -0
  744. package/dist/phase/receiverProvenance.js +377 -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 +2199 -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 +1144 -984
  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 +114 -71
  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 +18 -9
  1078. package/plugin/.claude-plugin/manifest.json +16 -0
  1079. package/plugin/.claude-plugin/plugin.json +1 -1
  1080. package/plugin/hooks/hooks.json +7 -3
  1081. package/plugin/scripts/hook-audit.sh +46 -16
  1082. package/plugin/scripts/hook-common.sh +81 -12
  1083. package/plugin/scripts/hook-drift-check.sh +76 -0
  1084. package/plugin/scripts/hook-self-audit.sh +22 -14
  1085. package/plugin/scripts/hook-warm.sh +5 -6
  1086. package/plugin/skills/code-auditor/SKILL.md +1 -1
  1087. package/server.json +10 -4
@@ -22,6 +22,10 @@ function findChildOfType(node, type) {
22
22
  /**
23
23
  * Find all nodes matching a predicate in the AST subtree.
24
24
  * Replacement for the old `findNodesByKind<T>(node, SyntaxKind)`.
25
+ *
26
+ * @param root - The root AST node to search within.
27
+ * @param predicate - Predicate that returns true for nodes to keep.
28
+ * @returns All nodes for which the predicate returns true.
25
29
  */
26
30
  export function findNodesByType(root, predicate) {
27
31
  return findNodes(root, predicate);
@@ -56,6 +60,10 @@ export { bridgeCalculateComplexity as calculateComplexity };
56
60
  * Extract import statements from an AST root node.
57
61
  * Uses tree-sitter import_statement structure:
58
62
  * import_statement → import_clause? → (identifier | named_imports) → string
63
+ *
64
+ * @param root - The root AST node to search for import statements.
65
+ * @param sourceCode - The original source text for name extraction.
66
+ * @returns The list of extracted imports.
59
67
  */
60
68
  export function getImports(root, sourceCode) {
61
69
  const imports = [];
@@ -121,32 +129,34 @@ export function getImports(root, sourceCode) {
121
129
  /**
122
130
  * Extract export statements from an AST root node.
123
131
  * Uses tree-sitter export_statement structure.
132
+ *
133
+ * @param root - The root AST node to search for export statements.
134
+ * @param sourceCode - The original source text for name extraction.
135
+ * @returns The list of extracted exports.
124
136
  */
125
137
  export function getExports(root, sourceCode) {
126
138
  const exports = [];
127
139
  // export declarations: export { name1, name2 }
128
- const exportNodes = findNodes(root, n => n.type === 'export_statement' || n.type === 'export_declaration');
140
+ const exportNodes = findNodes(root, n => n.type === 'export_statement');
129
141
  for (const node of exportNodes) {
130
142
  const { line } = bridgeGetLineAndColumn(node);
131
143
  // Check for type-only exports
132
144
  const isTypeOnly = hasModifier(node, 'type');
133
- // export clause with named exports
145
+ // export clause with named exports (`export { a, b }`) — the `export_clause`
146
+ // holds `export_specifier` children directly (no `named_exports` node).
134
147
  const exportClause = findChildOfType(node, 'export_clause');
135
148
  if (exportClause) {
136
- const namedExports = findChildOfType(exportClause, 'named_exports');
137
- if (namedExports) {
138
- for (const child of namedExports.children ?? []) {
139
- if (child.type !== 'export_specifier')
140
- continue;
141
- const ids = child.children?.filter(c => c.type === 'identifier') ?? [];
142
- if (ids.length > 0) {
143
- exports.push({
144
- name: getNodeText(ids[ids.length - 1], sourceCode),
145
- isDefault: false,
146
- isTypeOnly,
147
- line
148
- });
149
- }
149
+ for (const child of exportClause.children ?? []) {
150
+ if (child.type !== 'export_specifier')
151
+ continue;
152
+ const ids = child.children?.filter(c => c.type === 'identifier') ?? [];
153
+ if (ids.length > 0) {
154
+ exports.push({
155
+ name: getNodeText(ids[ids.length - 1], sourceCode),
156
+ isDefault: false,
157
+ isTypeOnly,
158
+ line
159
+ });
150
160
  }
151
161
  }
152
162
  }
@@ -191,6 +201,10 @@ export function findClasses(root) {
191
201
  // ---------------------------------------------------------------------------
192
202
  /**
193
203
  * Get AST node for inspection/debugging.
204
+ *
205
+ * @param node - The AST node to inspect.
206
+ * @param sourceCode - The original source text for text extraction.
207
+ * @returns A plain-object snapshot of the node and its children.
194
208
  */
195
209
  export function getASTNode(node, sourceCode) {
196
210
  return {
@@ -205,6 +219,11 @@ export function getASTNode(node, sourceCode) {
205
219
  /**
206
220
  * Check if a node has a specific decorator.
207
221
  * Tree-sitter parses decorators as `decorator` nodes.
222
+ *
223
+ * @param node - The AST node to search for decorators.
224
+ * @param decoratorName - The decorator name to match.
225
+ * @param sourceCode - The original source text for name extraction.
226
+ * @returns True if the node carries a matching decorator.
208
227
  */
209
228
  export function hasDecorator(node, decoratorName, sourceCode) {
210
229
  const decorators = findNodes(node, n => n.type === 'decorator');
@@ -231,6 +250,10 @@ export function hasDecorator(node, decoratorName, sourceCode) {
231
250
  /**
232
251
  * Get method names from a class declaration node.
233
252
  * Tree-sitter: class_declaration → class_body → method_definition / public_field_definition
253
+ *
254
+ * @param classNode - The class declaration node to inspect.
255
+ * @param sourceCode - The original source text for name extraction.
256
+ * @returns The names of the class's methods and public fields.
234
257
  */
235
258
  export function getClassMethods(classNode, sourceCode) {
236
259
  const methods = [];
@@ -253,6 +276,9 @@ export function getClassMethods(classNode, sourceCode) {
253
276
  /**
254
277
  * Count lines of code (excluding comments and empty lines).
255
278
  * Takes source text directly instead of ts.SourceFile.
279
+ *
280
+ * @param sourceCode - The source text to count lines in.
281
+ * @returns The number of non-comment, non-empty lines.
256
282
  */
257
283
  export function countLinesOfCode(sourceCode) {
258
284
  const lines = sourceCode.split('\n');
@@ -290,6 +316,9 @@ export function isAsyncFunction(node) {
290
316
  /**
291
317
  * Get parameter count for a function/method node.
292
318
  * Tree-sitter: formal_parameters → required_parameter / optional_parameter.
319
+ *
320
+ * @param node - The function or method node to inspect.
321
+ * @returns The number of declared parameters.
293
322
  */
294
323
  export function getParameterCount(node) {
295
324
  const params = findChildOfType(node, 'formal_parameters');
@@ -297,8 +326,7 @@ export function getParameterCount(node) {
297
326
  return 0;
298
327
  let count = 0;
299
328
  for (const child of params.children ?? []) {
300
- if (child.type === 'required_parameter' || child.type === 'optional_parameter' ||
301
- child.type === 'rest_parameter') {
329
+ if (child.type === 'required_parameter' || child.type === 'optional_parameter') {
302
330
  count++;
303
331
  }
304
332
  }
@@ -330,6 +358,9 @@ export function findInterfaces(root) {
330
358
  /**
331
359
  * Parse a TypeScript file and return an AST.
332
360
  * Uses the adapterBridge parseFile function.
361
+ *
362
+ * @param filePath - The path of the file to parse.
363
+ * @returns The parsed AST plus any parse errors.
333
364
  */
334
365
  export async function parseTypeScriptFile(filePath) {
335
366
  // Dynamic import to avoid circular dependency
@@ -350,6 +381,10 @@ export async function parseTypeScriptFile(filePath) {
350
381
  /**
351
382
  * Enhanced version of getImports that returns detailed ImportMapping[].
352
383
  * Uses tree-sitter import_statement traversal.
384
+ *
385
+ * @param root - The root AST node to search for import statements.
386
+ * @param sourceCode - The original source text for name extraction.
387
+ * @returns The detailed import mappings extracted from the file.
353
388
  */
354
389
  export function getImportsDetailed(root, sourceCode) {
355
390
  const imports = [];
@@ -426,10 +461,14 @@ export function getImportsDetailed(root, sourceCode) {
426
461
  /**
427
462
  * Get re-exports from a source file.
428
463
  * Tree-sitter: export_statement → string (module specifier).
464
+ *
465
+ * @param root - The root AST node to search for re-exports.
466
+ * @param sourceCode - The original source text for name extraction.
467
+ * @returns The list of re-exported names and their source modules.
429
468
  */
430
469
  export function getReExports(root, sourceCode) {
431
470
  const reExports = [];
432
- const exportNodes = findNodes(root, n => n.type === 'export_statement' || n.type === 'export_declaration');
471
+ const exportNodes = findNodes(root, n => n.type === 'export_statement');
433
472
  for (const node of exportNodes) {
434
473
  // Check if there's a module specifier (export { x } from './y')
435
474
  const moduleNode = findChildOfType(node, 'string');
@@ -438,22 +477,19 @@ export function getReExports(root, sourceCode) {
438
477
  const moduleSpecifier = getNodeText(moduleNode, sourceCode).replace(/^["']|["']$/g, '');
439
478
  const exportClause = findChildOfType(node, 'export_clause');
440
479
  if (exportClause) {
441
- const namedExports = findChildOfType(exportClause, 'named_exports');
442
- if (namedExports) {
443
- for (const child of namedExports.children ?? []) {
444
- if (child.type !== 'export_specifier')
445
- continue;
446
- const identifiers = child.children?.filter(c => c.type === 'identifier') ?? [];
447
- if (identifiers.length > 0) {
448
- const name = identifiers.length > 1
449
- ? getNodeText(identifiers[0], sourceCode)
450
- : getNodeText(identifiers[identifiers.length - 1], sourceCode);
451
- reExports.push({ name, module: moduleSpecifier });
452
- }
480
+ for (const child of exportClause.children ?? []) {
481
+ if (child.type !== 'export_specifier')
482
+ continue;
483
+ const identifiers = child.children?.filter(c => c.type === 'identifier') ?? [];
484
+ if (identifiers.length > 0) {
485
+ const name = identifiers.length > 1
486
+ ? getNodeText(identifiers[0], sourceCode)
487
+ : getNodeText(identifiers[identifiers.length - 1], sourceCode);
488
+ reExports.push({ name, module: moduleSpecifier });
453
489
  }
454
490
  }
455
491
  }
456
- else if (!exportClause) {
492
+ else {
457
493
  // export * from './module' — no export clause
458
494
  reExports.push({ name: '*', module: moduleSpecifier });
459
495
  }
@@ -471,12 +507,12 @@ export function getReExports(root, sourceCode) {
471
507
  * | TS API check | Tree-sitter equivalent |
472
508
  * |------------------------------------|----------------------------------------|
473
509
  * | ts.isTypeNode(p) | p.type === 'type_annotation' |
474
- * | ts.isTypeReferenceNode(p) | p.type === 'type_reference' |
475
- * | ts.isTypeQueryNode(p) | p.type === 'typeof_expression' |
476
- * | ts.isQualifiedName(p) | p.type === 'qualified_name' |
510
+ * | ts.isTypeReferenceNode(p) | p.type === 'type_identifier' |
511
+ * | ts.isTypeQueryNode(p) | p.type === 'type_query' |
512
+ * | ts.isQualifiedName(p) | p.type === 'nested_type_identifier' |
477
513
  * | ts.isExpressionWithTypeArguments(p)| p.type === 'generic_type' |
478
514
  * | ts.isPropertyAccessExpression(p) | p.type === 'member_expression' |
479
- * | ts.isHeritageClause(p) | p.type === 'heritage_clause' |
515
+ * | ts.isHeritageClause(p) | p.type === 'class_heritage' |
480
516
  * | ts.isInterfaceDeclaration(p) | p.type === 'interface_declaration' |
481
517
  * | ts.isTypeAliasDeclaration(p) | p.type === 'type_alias_declaration' |
482
518
  * | ts.isClassDeclaration(p) | p.type === 'class_declaration' |
@@ -494,16 +530,16 @@ export function getReExports(root, sourceCode) {
494
530
  * | ts.isTypePredicateNode(p) | p.type === 'type_predicate' |
495
531
  * | ts.isMethodDeclaration(p) | p.type === 'method_definition' |
496
532
  * | ts.isMethodSignature(p) | p.type === 'method_signature' |
497
- * | ts.isPropertyDeclaration(p) | p.type === 'class_property' |
533
+ * | ts.isPropertyDeclaration(p) | p.type === 'public_field_definition' |
498
534
  * | ts.isPropertySignature(p) | p.type === 'property_signature' |
499
- * | ts.isGetAccessorDeclaration(p) | p.type === 'get_accessor' |
535
+ * | ts.isGetAccessorDeclaration(p) | p.type === 'method_definition' |
500
536
  * | ts.isFunctionDeclaration(p) | p.type === 'function_declaration' |
501
537
  * | ts.isArrowFunction(p) | p.type === 'arrow_function' |
502
538
  * | ts.isFunctionExpression(p) | p.type === 'function_expression' |
503
539
  * | ts.isParameter(p) | p.type === 'required_parameter' |
504
540
  * | ts.isCallExpression(p) | p.type === 'call_expression' |
505
541
  * | ts.isNewExpression(p) | p.type === 'new_expression' |
506
- * | ts.isTaggedTemplateExpression(p) | p.type === 'tagged_template_literal' |
542
+ * | ts.isTaggedTemplateExpression(p) | p.type === 'call_expression' |
507
543
  * | ts.isImportDeclaration(p) | p.type === 'import_statement' |
508
544
  * | ts.isImportSpecifier(p) | p.type === 'import_specifier' |
509
545
  * | ts.isImportClause(p) | p.type === 'import_clause' |
@@ -523,8 +559,9 @@ export function getReExports(root, sourceCode) {
523
559
  const TYPE_NODE_TYPES = new Set([
524
560
  'type_annotation',
525
561
  'type_identifier',
562
+ 'nested_identifier',
563
+ 'nested_type_identifier',
526
564
  'generic_type',
527
- 'qualified_name',
528
565
  'union_type',
529
566
  'intersection_type',
530
567
  'conditional_type',
@@ -532,15 +569,14 @@ const TYPE_NODE_TYPES = new Set([
532
569
  'index_signature',
533
570
  'type_predicate',
534
571
  'predefined_type',
535
- 'string_type',
536
- 'number_type',
537
- 'boolean_type',
538
572
  'object_type',
539
573
  'array_type',
540
574
  'tuple_type',
541
575
  'function_type',
542
576
  'constructor_type',
543
- 'typeof_expression',
577
+ 'type_query',
578
+ 'extends_type_clause',
579
+ 'implements_clause',
544
580
  'template_type',
545
581
  'literal_type',
546
582
  'lookup_type',
@@ -561,7 +597,17 @@ const DECLARATION_TYPES = new Set([
561
597
  'type_alias_declaration',
562
598
  ]);
563
599
  /** Set of node types that represent spreads */
564
- const SPREAD_TYPES = new Set(['spread_element', 'rest_parameter']);
600
+ const SPREAD_TYPES = new Set(['spread_element']);
601
+ /** Node types whose direct `type_annotation` child holds an identifier's type
602
+ * position — parameters, property signatures, index signatures, and type
603
+ * assertions. Collapsed into one generic check in isTypeOnlyUsage. */
604
+ const DIRECT_TYPE_ANNOTATION_PARENTS = new Set([
605
+ 'required_parameter',
606
+ 'optional_parameter',
607
+ 'property_signature',
608
+ 'index_signature',
609
+ 'type_assertion',
610
+ ]);
565
611
  /**
566
612
  * Recursively check if the identifier node is contained within the given type node.
567
613
  */
@@ -581,6 +627,73 @@ function isNodeInTypePosition(identifier, typeNode) {
581
627
  checkNode(typeNode);
582
628
  return found;
583
629
  }
630
+ /**
631
+ * Return true when `identifier` sits inside the `type_arguments` node of
632
+ * `container` (e.g. `Array<SomeType>`). Shared by the direct generic-type
633
+ * position and the call/new/tagged-template type-argument positions.
634
+ */
635
+ function isInTypeArguments(identifier, container) {
636
+ const typeArgs = findChildOfType(container, 'type_arguments');
637
+ if (!typeArgs)
638
+ return false;
639
+ for (const arg of typeArgs.children ?? []) {
640
+ if (isNodeInTypePosition(identifier, arg))
641
+ return true;
642
+ }
643
+ return false;
644
+ }
645
+ /**
646
+ * `function test<T extends SomeType>()` — the identifier is a type-parameter
647
+ * constraint. When a direct `type_annotation` constraint exists it is decisive
648
+ * (return its result, do not fall through to the secondary child scan).
649
+ */
650
+ function isTypeParameterConstraintUsage(identifier, parent) {
651
+ if (parent.type !== 'type_parameter')
652
+ return false;
653
+ const constraint = findChildOfType(parent, 'type_annotation');
654
+ if (constraint) {
655
+ return isNodeInTypePosition(identifier, constraint);
656
+ }
657
+ for (const child of parent.children ?? []) {
658
+ if (child.type !== 'identifier' && child.type !== 'type_parameter') {
659
+ if (isNodeInTypePosition(identifier, child))
660
+ return true;
661
+ }
662
+ }
663
+ return false;
664
+ }
665
+ /**
666
+ * Mapped type (`{ [K in T]: ... }`) — the identifier is a mapped-type constraint
667
+ * or value type.
668
+ */
669
+ function isMappedTypeUsage(identifier, parent) {
670
+ if (parent.type !== 'mapped_type_clause')
671
+ return false;
672
+ const typeParam = findChildOfType(parent, 'type_parameter');
673
+ if (typeParam) {
674
+ const constraint = findChildOfType(typeParam, 'type_annotation');
675
+ if (constraint && isNodeInTypePosition(identifier, constraint))
676
+ return true;
677
+ }
678
+ const typeAnnot = findChildOfType(parent, 'type_annotation');
679
+ if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
680
+ return true;
681
+ return false;
682
+ }
683
+ /**
684
+ * Type positions reachable through the parent's own parent — type arguments on
685
+ * call/new/tagged-template expressions (tagged templates parse as
686
+ * `call_expression`).
687
+ */
688
+ function isAncestorTypeUsage(identifier, parent) {
689
+ if (!parent.parent)
690
+ return false;
691
+ const grand = parent.parent;
692
+ if (grand.type === 'call_expression' || grand.type === 'new_expression') {
693
+ return isInTypeArguments(identifier, grand);
694
+ }
695
+ return false;
696
+ }
584
697
  /**
585
698
  * Check if an identifier node is used only as a type.
586
699
  * Uses tree-sitter node type checks instead of TS API's `isTypeNode` etc.
@@ -590,85 +703,19 @@ function isTypeOnlyUsage(identifier) {
590
703
  if (!parent)
591
704
  return false;
592
705
  // Direct type position — parent is a type_annotation, type_reference, etc.
593
- if (TYPE_NODE_TYPES.has(parent.type)) {
706
+ if (TYPE_NODE_TYPES.has(parent.type))
594
707
  return true;
595
- }
596
708
  // Type query: `typeof X`
597
- if (parent.type === 'typeof_expression') {
709
+ if (parent.type === 'type_query')
598
710
  return true;
599
- }
600
- // Qualified name in type position
601
- if (parent.type === 'qualified_name' && parent.children?.[0] === identifier) {
602
- return isTypeOnlyUsage(parent);
603
- }
604
- // Generic type arguments: `SomeType<X>` where X is the identifier
605
- if (parent.type === 'generic_type' && parent.children?.[0] === identifier) {
606
- const heritageClause = parent.parent;
607
- if (heritageClause?.type === 'heritage_clause') {
608
- const isExtends = hasModifier(heritageClause, 'extends');
609
- if (isExtends) {
610
- const interfaceNode = heritageClause.parent;
611
- if (interfaceNode?.type === 'interface_declaration') {
612
- return true;
613
- }
614
- }
615
- }
616
- }
617
- // `namespace.Type` in type position — check if left side is identifier
618
- if (parent.type === 'member_expression' && parent.children?.[0] === identifier) {
619
- const grandParent = parent.parent;
620
- if (grandParent?.type === 'generic_type') {
621
- const heritageClause = grandParent.parent;
622
- if (heritageClause?.type === 'heritage_clause') {
623
- const isExtends = hasModifier(heritageClause, 'extends');
624
- if (isExtends) {
625
- const interfaceNode = heritageClause.parent;
626
- if (interfaceNode?.type === 'interface_declaration') {
627
- return true;
628
- }
629
- }
630
- }
631
- }
632
- }
633
711
  // Type alias: `type X = SomeType`
634
712
  if (parent.type === 'type_alias_declaration') {
635
713
  const typeAnnotation = findChildOfType(parent, 'type_annotation');
636
- if (typeAnnotation) {
714
+ if (typeAnnotation)
637
715
  return isNodeInTypePosition(identifier, typeAnnotation);
638
- }
639
- }
640
- // Class implements: `class X implements SomeType`
641
- if (parent.type === 'class_declaration') {
642
- for (const child of parent.children ?? []) {
643
- if (child.type !== 'heritage_clause')
644
- continue;
645
- const isImplements = hasModifier(child, 'implements');
646
- if (!isImplements)
647
- continue;
648
- for (const typeNode of child.children ?? []) {
649
- if (typeNode === identifier)
650
- return true;
651
- if (typeNode.type === 'member_expression' && typeNode.children?.[0] === identifier)
652
- return true;
653
- if (typeNode.type === 'generic_type' && typeNode.children?.[0] === identifier)
654
- return true;
655
- }
656
- }
657
- }
658
- // Generic constraints: `function test<T extends SomeType>()`
659
- if (parent.type === 'type_parameter') {
660
- const constraint = findChildOfType(parent, 'type_annotation'); // or constraint
661
- if (constraint) {
662
- return isNodeInTypePosition(identifier, constraint);
663
- }
664
- // Also check for generic_type in constraint position
665
- for (const child of parent.children ?? []) {
666
- if (child.type !== 'identifier' && child.type !== 'type_parameter') {
667
- if (isNodeInTypePosition(identifier, child))
668
- return true;
669
- }
670
- }
671
716
  }
717
+ if (isTypeParameterConstraintUsage(identifier, parent))
718
+ return true;
672
719
  // Type annotations in variable declarations: `const x: SomeType = ...`
673
720
  if (parent.type === 'variable_declarator') {
674
721
  const typeAnnot = findChildOfType(parent, 'type_annotation');
@@ -681,20 +728,17 @@ function isTypeOnlyUsage(identifier) {
681
728
  if (typeNode && isNodeInTypePosition(identifier, typeNode))
682
729
  return true;
683
730
  }
684
- if (parent.type === 'type_assertion') {
685
- const typeNode = findChildOfType(parent, 'type_annotation');
686
- if (typeNode && isNodeInTypePosition(identifier, typeNode))
731
+ // Parameter / property / index-signature / type-assertion parents: a direct
732
+ // `type_annotation` child holds the type position.
733
+ if (DIRECT_TYPE_ANNOTATION_PARENTS.has(parent.type)) {
734
+ const typeAnnot = findChildOfType(parent, 'type_annotation');
735
+ if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
687
736
  return true;
688
737
  }
689
738
  // Type parameters/arguments: `Array<SomeType>`, `Promise<SomeType>`
690
739
  if (parent.type === 'type_identifier' || parent.type === 'generic_type') {
691
- const typeArgs = findChildOfType(parent, 'type_arguments');
692
- if (typeArgs) {
693
- for (const arg of typeArgs.children ?? []) {
694
- if (isNodeInTypePosition(identifier, arg))
695
- return true;
696
- }
697
- }
740
+ if (isInTypeArguments(identifier, parent))
741
+ return true;
698
742
  }
699
743
  // Return type annotations: `function test(): SomeType`
700
744
  if (DECLARATION_TYPES.has(parent.type)) {
@@ -702,36 +746,8 @@ function isTypeOnlyUsage(identifier) {
702
746
  if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
703
747
  return true;
704
748
  }
705
- // Parameter type annotations: `function test(x: SomeType)`
706
- if (parent.type === 'required_parameter' || parent.type === 'optional_parameter') {
707
- const typeAnnot = findChildOfType(parent, 'type_annotation');
708
- if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
709
- return true;
710
- }
711
- // Property type annotations: `{ prop: SomeType }` or `class { prop: SomeType }`
712
- if (parent.type === 'property_signature' || parent.type === 'class_property') {
713
- const typeAnnot = findChildOfType(parent, 'type_annotation');
714
- if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
715
- return true;
716
- }
717
- // Index signature: `{ [key: string]: SomeType }`
718
- if (parent.type === 'index_signature') {
719
- const typeAnnot = findChildOfType(parent, 'type_annotation');
720
- if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
721
- return true;
722
- }
723
- // Mapped type constraint or type
724
- if (parent.type === 'mapped_type_clause') {
725
- const typeParam = findChildOfType(parent, 'type_parameter');
726
- if (typeParam) {
727
- const constraint = findChildOfType(typeParam, 'type_annotation');
728
- if (constraint && isNodeInTypePosition(identifier, constraint))
729
- return true;
730
- }
731
- const typeAnnot = findChildOfType(parent, 'type_annotation');
732
- if (typeAnnot && isNodeInTypePosition(identifier, typeAnnot))
733
- return true;
734
- }
749
+ if (isMappedTypeUsage(identifier, parent))
750
+ return true;
735
751
  // Conditional types: `T extends SomeType ? X : Y`
736
752
  if (parent.type === 'conditional_type') {
737
753
  for (const child of parent.children ?? []) {
@@ -752,225 +768,184 @@ function isTypeOnlyUsage(identifier) {
752
768
  if (annot && isNodeInTypePosition(identifier, annot))
753
769
  return true;
754
770
  }
755
- // Walk up: if parent is itself in a type position, check further up
756
- if (parent.parent) {
757
- // Heritage clauses
758
- if (parent.type === 'generic_type' && parent.parent.type === 'heritage_clause') {
759
- return true;
771
+ if (isAncestorTypeUsage(identifier, parent))
772
+ return true;
773
+ return false;
774
+ }
775
+ /**
776
+ * Extract identifier usage to track which imports are used.
777
+ * Uses tree-sitter AST traversal with walkAST.
778
+ *
779
+ * @param root - The root AST node to walk.
780
+ /**
781
+ * Record a single usage of an imported name in the usage map: increments the
782
+ * count, appends the line, and returns the (possibly freshly-created) entry so
783
+ * callers that classify the usage (type / reexport) can mutate it in place.
784
+ */
785
+ function recordUsage(usageMap, name, node) {
786
+ const { line } = bridgeGetLineAndColumn(node);
787
+ const existing = usageMap.get(name) || {
788
+ usageType: 'direct',
789
+ usageCount: 0,
790
+ lineNumbers: [],
791
+ };
792
+ existing.usageCount++;
793
+ existing.lineNumbers.push(line);
794
+ usageMap.set(name, existing);
795
+ return existing;
796
+ }
797
+ /**
798
+ * Plain identifier references. Skips identifiers inside import declarations,
799
+ * and for member/subscript access counts only the leftmost (object) identifier.
800
+ * Classifies the usage as type-only or re-export where applicable.
801
+ */
802
+ function recordIdentifierUsage(node, sourceCode, importNames, usageMap) {
803
+ const name = getNodeText(node, sourceCode);
804
+ if (!importNames.has(name))
805
+ return;
806
+ let shouldCount = true;
807
+ let p = node.parent;
808
+ while (p) {
809
+ if (p.type === 'import_statement' || p.type === 'import_specifier' ||
810
+ p.type === 'import_clause' || p.type === 'named_imports') {
811
+ shouldCount = false;
812
+ break;
760
813
  }
761
- // Type arguments in call expressions: `func<SomeType>()`
762
- if (parent.parent.type === 'call_expression') {
763
- const typeArgs = findChildOfType(parent.parent, 'type_arguments');
764
- if (typeArgs) {
765
- for (const arg of typeArgs.children ?? []) {
766
- if (isNodeInTypePosition(identifier, arg))
767
- return true;
768
- }
769
- }
814
+ p = p.parent;
815
+ }
816
+ // For member expressions, only count the leftmost (object) identifier
817
+ if (shouldCount && node.parent?.type === 'member_expression') {
818
+ shouldCount = node.parent.children?.[0] === node;
819
+ }
820
+ // For subscript expressions (element access), only count expression side
821
+ if (shouldCount && node.parent?.type === 'subscript_expression') {
822
+ shouldCount = node.parent.children?.[0] === node;
823
+ }
824
+ if (!shouldCount)
825
+ return;
826
+ const existing = recordUsage(usageMap, name, node);
827
+ if (isTypeOnlyUsage(node)) {
828
+ existing.usageType = 'type';
829
+ }
830
+ else if (node.parent?.type === 'export_specifier') {
831
+ existing.usageType = 'reexport';
832
+ }
833
+ }
834
+ /**
835
+ * Spread elements (`...Imported`, rest params) whose spread expression is an
836
+ * imported identifier.
837
+ */
838
+ function recordSpreadUsage(node, sourceCode, importNames, usageMap) {
839
+ const expr = node.children?.find(c => c.type !== '...');
840
+ if (expr?.type === 'identifier' && importNames.has(getNodeText(expr, sourceCode))) {
841
+ recordUsage(usageMap, getNodeText(expr, sourceCode), expr);
842
+ }
843
+ }
844
+ /**
845
+ * JSX elements (`<Button />`, `<Button.Primary />`) whose tag (or the leftmost
846
+ * member of the tag) is an imported identifier.
847
+ */
848
+ function recordJsxUsage(node, sourceCode, importNames, usageMap) {
849
+ let tagNameNode;
850
+ if (node.type === 'jsx_element') {
851
+ const openTag = findChildOfType(node, 'jsx_opening_element');
852
+ if (openTag) {
853
+ tagNameNode = openTag.children?.find(c => c.type === 'identifier' || c.type === 'member_expression');
770
854
  }
771
- // Type arguments in new expressions: `new Class<SomeType>()`
772
- if (parent.parent.type === 'new_expression') {
773
- const typeArgs = findChildOfType(parent.parent, 'type_arguments');
774
- if (typeArgs) {
775
- for (const arg of typeArgs.children ?? []) {
776
- if (isNodeInTypePosition(identifier, arg))
777
- return true;
778
- }
779
- }
855
+ }
856
+ else {
857
+ tagNameNode = node.children?.find(c => c.type === 'identifier' || c.type === 'member_expression');
858
+ }
859
+ if (!tagNameNode)
860
+ return;
861
+ if (tagNameNode.type === 'identifier' && importNames.has(getNodeText(tagNameNode, sourceCode))) {
862
+ recordUsage(usageMap, getNodeText(tagNameNode, sourceCode), tagNameNode);
863
+ }
864
+ else if (tagNameNode.type === 'member_expression') {
865
+ const leftmost = tagNameNode.children?.[0];
866
+ if (leftmost?.type === 'identifier' && importNames.has(getNodeText(leftmost, sourceCode))) {
867
+ recordUsage(usageMap, getNodeText(leftmost, sourceCode), leftmost);
780
868
  }
781
- // Type arguments in tagged template expressions
782
- if (parent.parent.type === 'tagged_template_literal') {
783
- const typeArgs = findChildOfType(parent.parent, 'type_arguments');
784
- if (typeArgs) {
785
- for (const arg of typeArgs.children ?? []) {
786
- if (isNodeInTypePosition(identifier, arg))
787
- return true;
788
- }
789
- }
869
+ }
870
+ }
871
+ /**
872
+ * Decorators (`@withAuth`, `@Component()`): the decorator identifier, or the
873
+ * callee identifier of a call-expression decorator.
874
+ */
875
+ function recordDecoratorUsage(node, sourceCode, importNames, usageMap) {
876
+ const id = findChildOfType(node, 'identifier');
877
+ if (id && importNames.has(getNodeText(id, sourceCode))) {
878
+ recordUsage(usageMap, getNodeText(id, sourceCode), id);
879
+ }
880
+ const callExpr = findChildOfType(node, 'call_expression');
881
+ if (callExpr) {
882
+ const callee = callExpr.children?.[0];
883
+ if (callee?.type === 'identifier' && importNames.has(getNodeText(callee, sourceCode))) {
884
+ recordUsage(usageMap, getNodeText(callee, sourceCode), callee);
790
885
  }
791
886
  }
792
- return false;
887
+ }
888
+ /**
889
+ * Object-literal property assignments (`{ key: ImportedValue }`): the value
890
+ * identifier when it is an imported name.
891
+ */
892
+ function recordPairUsage(node, sourceCode, importNames, usageMap) {
893
+ const key = node.children?.find(c => c.type === 'property_identifier');
894
+ const value = node.children?.find(c => c.type === 'identifier' && c !== key);
895
+ if (value && importNames.has(getNodeText(value, sourceCode))) {
896
+ recordUsage(usageMap, getNodeText(value, sourceCode), value);
897
+ }
898
+ }
899
+ /**
900
+ * Shorthand property assignments (`{ ComponentA }`): the identifier child that
901
+ * references the imported name.
902
+ */
903
+ function recordShorthandUsage(node, sourceCode, importNames, usageMap) {
904
+ const ref = node.children?.find(c => c.type === 'identifier');
905
+ if (ref && importNames.has(getNodeText(ref, sourceCode))) {
906
+ recordUsage(usageMap, getNodeText(ref, sourceCode), ref);
907
+ }
908
+ else if (ref && importNames.has(getNodeText(ref, sourceCode))) {
909
+ // shorthand_property_identifier might itself be just text
910
+ recordUsage(usageMap, getNodeText(node, sourceCode), node);
911
+ }
912
+ }
913
+ /**
914
+ * Dispatch a single walked node to its usage recorder based on node type.
915
+ */
916
+ function recordNodeUsage(node, sourceCode, importNames, usageMap) {
917
+ if (node.type === 'identifier') {
918
+ recordIdentifierUsage(node, sourceCode, importNames, usageMap);
919
+ }
920
+ else if (SPREAD_TYPES.has(node.type)) {
921
+ recordSpreadUsage(node, sourceCode, importNames, usageMap);
922
+ }
923
+ else if (node.type === 'jsx_element' || node.type === 'jsx_self_closing_element') {
924
+ recordJsxUsage(node, sourceCode, importNames, usageMap);
925
+ }
926
+ else if (node.type === 'decorator') {
927
+ recordDecoratorUsage(node, sourceCode, importNames, usageMap);
928
+ }
929
+ else if (node.type === 'pair') {
930
+ recordPairUsage(node, sourceCode, importNames, usageMap);
931
+ }
932
+ else if (node.type === 'shorthand_property_identifier') {
933
+ recordShorthandUsage(node, sourceCode, importNames, usageMap);
934
+ }
793
935
  }
794
936
  /**
795
937
  * Extract identifier usage to track which imports are used.
796
938
  * Uses tree-sitter AST traversal with walkAST.
939
+ *
940
+ * @param root - The root AST node to walk.
941
+ * @param sourceCode - The original source text for name extraction.
942
+ * @param importNames - Set of imported names to track usage for.
943
+ * @returns Map of imported name to its usage information.
797
944
  */
798
945
  export function extractIdentifierUsage(root, sourceCode, importNames) {
799
946
  const usageMap = new Map();
800
947
  walkAST(root, (node) => {
801
- // --- identifiers ---
802
- if (node.type === 'identifier') {
803
- const name = getNodeText(node, sourceCode);
804
- if (importNames.has(name)) {
805
- let shouldCount = true;
806
- // Skip if part of an import declaration
807
- let p = node.parent;
808
- while (p) {
809
- if (p.type === 'import_statement' || p.type === 'import_specifier' ||
810
- p.type === 'import_clause' || p.type === 'named_imports') {
811
- shouldCount = false;
812
- break;
813
- }
814
- p = p.parent;
815
- }
816
- // For member expressions, only count the leftmost (object) identifier
817
- if (shouldCount && node.parent?.type === 'member_expression') {
818
- shouldCount = node.parent.children?.[0] === node;
819
- }
820
- // For subscript expressions (element access), only count expression side
821
- if (shouldCount && node.parent?.type === 'subscript_expression') {
822
- shouldCount = node.parent.children?.[0] === node;
823
- }
824
- if (shouldCount) {
825
- const { line } = bridgeGetLineAndColumn(node);
826
- const existing = usageMap.get(name) || {
827
- usageType: 'direct',
828
- usageCount: 0,
829
- lineNumbers: [],
830
- };
831
- existing.usageCount++;
832
- existing.lineNumbers.push(line);
833
- if (isTypeOnlyUsage(node)) {
834
- existing.usageType = 'type';
835
- }
836
- else if (node.parent?.type === 'export_specifier') {
837
- existing.usageType = 'reexport';
838
- }
839
- usageMap.set(name, existing);
840
- }
841
- }
842
- }
843
- // --- spread elements ---
844
- else if (SPREAD_TYPES.has(node.type)) {
845
- const expr = node.children?.find(c => c.type !== '...');
846
- if (expr?.type === 'identifier' && importNames.has(getNodeText(expr, sourceCode))) {
847
- const { line } = bridgeGetLineAndColumn(expr);
848
- const existing = usageMap.get(getNodeText(expr, sourceCode)) || {
849
- usageType: 'direct',
850
- usageCount: 0,
851
- lineNumbers: [],
852
- };
853
- existing.usageCount++;
854
- existing.lineNumbers.push(line);
855
- usageMap.set(getNodeText(expr, sourceCode), existing);
856
- }
857
- }
858
- // --- JSX elements: <Button /> or <Button.Primary /> ---
859
- else if (node.type === 'jsx_element' || node.type === 'jsx_self_closing_element') {
860
- let tagNameNode;
861
- if (node.type === 'jsx_element') {
862
- const openTag = findChildOfType(node, 'open_tag');
863
- if (openTag) {
864
- tagNameNode = openTag.children?.find(c => c.type === 'identifier' || c.type === 'member_expression');
865
- }
866
- }
867
- else {
868
- tagNameNode = node.children?.find(c => c.type === 'identifier' || c.type === 'member_expression');
869
- }
870
- if (tagNameNode) {
871
- if (tagNameNode.type === 'identifier' && importNames.has(getNodeText(tagNameNode, sourceCode))) {
872
- const { line } = bridgeGetLineAndColumn(tagNameNode);
873
- const existing = usageMap.get(getNodeText(tagNameNode, sourceCode)) || {
874
- usageType: 'direct',
875
- usageCount: 0,
876
- lineNumbers: [],
877
- };
878
- existing.usageCount++;
879
- existing.lineNumbers.push(line);
880
- usageMap.set(getNodeText(tagNameNode, sourceCode), existing);
881
- }
882
- else if (tagNameNode.type === 'member_expression') {
883
- const leftmost = tagNameNode.children?.[0];
884
- if (leftmost?.type === 'identifier' && importNames.has(getNodeText(leftmost, sourceCode))) {
885
- const { line } = bridgeGetLineAndColumn(leftmost);
886
- const existing = usageMap.get(getNodeText(leftmost, sourceCode)) || {
887
- usageType: 'direct',
888
- usageCount: 0,
889
- lineNumbers: [],
890
- };
891
- existing.usageCount++;
892
- existing.lineNumbers.push(line);
893
- usageMap.set(getNodeText(leftmost, sourceCode), existing);
894
- }
895
- }
896
- }
897
- }
898
- // --- decorators: @withAuth ---
899
- else if (node.type === 'decorator') {
900
- // decorator → identifier (e.g., @deprecated)
901
- const id = findChildOfType(node, 'identifier');
902
- if (id && importNames.has(getNodeText(id, sourceCode))) {
903
- const { line } = bridgeGetLineAndColumn(id);
904
- const existing = usageMap.get(getNodeText(id, sourceCode)) || {
905
- usageType: 'direct',
906
- usageCount: 0,
907
- lineNumbers: [],
908
- };
909
- existing.usageCount++;
910
- existing.lineNumbers.push(line);
911
- usageMap.set(getNodeText(id, sourceCode), existing);
912
- }
913
- // decorator → call_expression → identifier (e.g., @Component())
914
- const callExpr = findChildOfType(node, 'call_expression');
915
- if (callExpr) {
916
- const callee = callExpr.children?.[0];
917
- if (callee?.type === 'identifier' && importNames.has(getNodeText(callee, sourceCode))) {
918
- const { line } = bridgeGetLineAndColumn(callee);
919
- const existing = usageMap.get(getNodeText(callee, sourceCode)) || {
920
- usageType: 'direct',
921
- usageCount: 0,
922
- lineNumbers: [],
923
- };
924
- existing.usageCount++;
925
- existing.lineNumbers.push(line);
926
- usageMap.set(getNodeText(callee, sourceCode), existing);
927
- }
928
- }
929
- }
930
- // --- Object literal property assignments: { key: ImportedValue } ---
931
- else if (node.type === 'pair') {
932
- const key = node.children?.find(c => c.type === 'property_identifier');
933
- const value = node.children?.find(c => c.type === 'identifier' && c !== key);
934
- if (value && importNames.has(getNodeText(value, sourceCode))) {
935
- const { line } = bridgeGetLineAndColumn(value);
936
- const existing = usageMap.get(getNodeText(value, sourceCode)) || {
937
- usageType: 'direct',
938
- usageCount: 0,
939
- lineNumbers: [],
940
- };
941
- existing.usageCount++;
942
- existing.lineNumbers.push(line);
943
- usageMap.set(getNodeText(value, sourceCode), existing);
944
- }
945
- }
946
- // --- Shorthand property assignments: { ComponentA, ComponentB } ---
947
- else if (node.type === 'shorthand_property_identifier') {
948
- // The value node is a reference to an imported name
949
- const ref = node.children?.find(c => c.type === 'identifier');
950
- if (ref && importNames.has(getNodeText(ref, sourceCode))) {
951
- const { line } = bridgeGetLineAndColumn(ref);
952
- const existing = usageMap.get(getNodeText(ref, sourceCode)) || {
953
- usageType: 'direct',
954
- usageCount: 0,
955
- lineNumbers: [],
956
- };
957
- existing.usageCount++;
958
- existing.lineNumbers.push(line);
959
- usageMap.set(getNodeText(ref, sourceCode), existing);
960
- }
961
- else if (ref && importNames.has(getNodeText(ref, sourceCode))) {
962
- // shorthand_property_identifier might itself be just text
963
- const { line } = bridgeGetLineAndColumn(node);
964
- const existing = usageMap.get(getNodeText(node, sourceCode)) || {
965
- usageType: 'direct',
966
- usageCount: 0,
967
- lineNumbers: [],
968
- };
969
- existing.usageCount++;
970
- existing.lineNumbers.push(line);
971
- usageMap.set(getNodeText(node, sourceCode), existing);
972
- }
973
- }
948
+ recordNodeUsage(node, sourceCode, importNames, usageMap);
974
949
  });
975
950
  return usageMap;
976
951
  }
@@ -980,6 +955,11 @@ export function extractIdentifierUsage(root, sourceCode, importNames) {
980
955
  /**
981
956
  * Check if a function name is defined locally in the file.
982
957
  * Uses tree-sitter instead of TS API.
958
+ *
959
+ * @param name - The function name to look for.
960
+ * @param root - The root AST node to search.
961
+ * @param sourceCode - The original source text for name extraction.
962
+ * @returns True if the name is declared locally.
983
963
  */
984
964
  export function isLocalFunction(name, root, sourceCode) {
985
965
  let found = false;
@@ -1017,6 +997,10 @@ export function isLocalFunction(name, root, sourceCode) {
1017
997
  /**
1018
998
  * Normalize a function call target for consistent naming.
1019
999
  * No TypeScript dependency — pure string manipulation.
1000
+ *
1001
+ * @param callee - The callee name as written at the call site.
1002
+ * @param filePath - The file path the call occurs in.
1003
+ * @returns The normalized call target.
1020
1004
  */
1021
1005
  export function normalizeCallTarget(callee, filePath) {
1022
1006
  if (callee.includes('#') || callee.includes('.')) {
@@ -1034,6 +1018,10 @@ export function normalizeCallTarget(callee, filePath) {
1034
1018
  *
1035
1019
  * Note: the type parameter is retained only for backward compatibility with
1036
1020
  * the generic-based call pattern; tree-sitter uses string types, not SyntaxKind enums.
1021
+ *
1022
+ * @param root - The root AST node to search within.
1023
+ * @param nodeType - The tree-sitter node type to match.
1024
+ * @returns All matching AST nodes cast to the requested type.
1037
1025
  */
1038
1026
  export function findNodesByKind(root, nodeType) {
1039
1027
  return findNodes(root, n => n.type === nodeType);