codesift-mcp 0.9.5 → 0.9.10

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 (1313) hide show
  1. package/README.md +39 -23
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +88 -2
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/cli/help.d.ts +1 -1
  6. package/dist/cli/help.d.ts.map +1 -1
  7. package/dist/cli/help.js +18 -0
  8. package/dist/cli/help.js.map +1 -1
  9. package/dist/cli/hooks/input.d.ts +11 -0
  10. package/dist/cli/hooks/input.d.ts.map +1 -0
  11. package/dist/cli/hooks/input.js +111 -0
  12. package/dist/cli/hooks/input.js.map +1 -0
  13. package/dist/cli/hooks/post-tool-use.d.ts +2 -0
  14. package/dist/cli/hooks/post-tool-use.d.ts.map +1 -0
  15. package/dist/cli/hooks/post-tool-use.js +339 -0
  16. package/dist/cli/hooks/post-tool-use.js.map +1 -0
  17. package/dist/cli/hooks/pre-compact.d.ts +2 -0
  18. package/dist/cli/hooks/pre-compact.d.ts.map +1 -0
  19. package/dist/cli/hooks/pre-compact.js +41 -0
  20. package/dist/cli/hooks/pre-compact.js.map +1 -0
  21. package/dist/cli/hooks/pre-tool-use.d.ts +5 -0
  22. package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -0
  23. package/dist/cli/hooks/pre-tool-use.js +215 -0
  24. package/dist/cli/hooks/pre-tool-use.js.map +1 -0
  25. package/dist/cli/hooks/session.d.ts +5 -0
  26. package/dist/cli/hooks/session.d.ts.map +1 -0
  27. package/dist/cli/hooks/session.js +188 -0
  28. package/dist/cli/hooks/session.js.map +1 -0
  29. package/dist/cli/hooks/shared.d.ts +6 -0
  30. package/dist/cli/hooks/shared.d.ts.map +1 -0
  31. package/dist/cli/hooks/shared.js +70 -0
  32. package/dist/cli/hooks/shared.js.map +1 -0
  33. package/dist/cli/hooks/wiki.d.ts +10 -0
  34. package/dist/cli/hooks/wiki.d.ts.map +1 -0
  35. package/dist/cli/hooks/wiki.js +202 -0
  36. package/dist/cli/hooks/wiki.js.map +1 -0
  37. package/dist/cli/hooks.d.ts +5 -16
  38. package/dist/cli/hooks.d.ts.map +1 -1
  39. package/dist/cli/hooks.js +5 -1132
  40. package/dist/cli/hooks.js.map +1 -1
  41. package/dist/cli/setup/claude.d.ts +4 -0
  42. package/dist/cli/setup/claude.d.ts.map +1 -0
  43. package/dist/cli/setup/claude.js +123 -0
  44. package/dist/cli/setup/claude.js.map +1 -0
  45. package/dist/cli/setup/codex.d.ts +12 -0
  46. package/dist/cli/setup/codex.d.ts.map +1 -0
  47. package/dist/cli/setup/codex.js +182 -0
  48. package/dist/cli/setup/codex.js.map +1 -0
  49. package/dist/cli/setup/cursor.d.ts +3 -0
  50. package/dist/cli/setup/cursor.d.ts.map +1 -0
  51. package/dist/cli/setup/cursor.js +6 -0
  52. package/dist/cli/setup/cursor.js.map +1 -0
  53. package/dist/cli/setup/fs.d.ts +6 -0
  54. package/dist/cli/setup/fs.d.ts.map +1 -0
  55. package/dist/cli/setup/fs.js +44 -0
  56. package/dist/cli/setup/fs.js.map +1 -0
  57. package/dist/cli/setup/gemini.d.ts +5 -0
  58. package/dist/cli/setup/gemini.d.ts.map +1 -0
  59. package/dist/cli/setup/gemini.js +46 -0
  60. package/dist/cli/setup/gemini.js.map +1 -0
  61. package/dist/cli/setup/hooks.d.ts +12 -0
  62. package/dist/cli/setup/hooks.d.ts.map +1 -0
  63. package/dist/cli/setup/hooks.js +29 -0
  64. package/dist/cli/setup/hooks.js.map +1 -0
  65. package/dist/cli/setup/mcp.d.ts +13 -0
  66. package/dist/cli/setup/mcp.d.ts.map +1 -0
  67. package/dist/cli/setup/mcp.js +104 -0
  68. package/dist/cli/setup/mcp.js.map +1 -0
  69. package/dist/cli/setup/rules.d.ts +4 -0
  70. package/dist/cli/setup/rules.d.ts.map +1 -0
  71. package/dist/cli/setup/rules.js +157 -0
  72. package/dist/cli/setup/rules.js.map +1 -0
  73. package/dist/cli/setup/types.d.ts +24 -0
  74. package/dist/cli/setup/types.d.ts.map +1 -0
  75. package/dist/cli/setup/types.js +2 -0
  76. package/dist/cli/setup/types.js.map +1 -0
  77. package/dist/cli/setup.d.ts +8 -48
  78. package/dist/cli/setup.d.ts.map +1 -1
  79. package/dist/cli/setup.js +49 -705
  80. package/dist/cli/setup.js.map +1 -1
  81. package/dist/config.d.ts +15 -0
  82. package/dist/config.d.ts.map +1 -1
  83. package/dist/config.js +56 -2
  84. package/dist/config.js.map +1 -1
  85. package/dist/formatter-dispatch.d.ts +53 -0
  86. package/dist/formatter-dispatch.d.ts.map +1 -0
  87. package/dist/formatter-dispatch.js +54 -0
  88. package/dist/formatter-dispatch.js.map +1 -0
  89. package/dist/formatters-analysis.d.ts +9 -0
  90. package/dist/formatters-analysis.d.ts.map +1 -0
  91. package/dist/formatters-analysis.js +166 -0
  92. package/dist/formatters-analysis.js.map +1 -0
  93. package/dist/formatters-core.d.ts +200 -0
  94. package/dist/formatters-core.d.ts.map +1 -0
  95. package/dist/formatters-core.js +206 -0
  96. package/dist/formatters-core.js.map +1 -0
  97. package/dist/formatters-graph.d.ts +124 -0
  98. package/dist/formatters-graph.d.ts.map +1 -0
  99. package/dist/formatters-graph.js +175 -0
  100. package/dist/formatters-graph.js.map +1 -0
  101. package/dist/formatters-nextjs.d.ts +22 -0
  102. package/dist/formatters-nextjs.d.ts.map +1 -0
  103. package/dist/formatters-nextjs.js +394 -0
  104. package/dist/formatters-nextjs.js.map +1 -0
  105. package/dist/formatters.d.ts +8 -349
  106. package/dist/formatters.d.ts.map +1 -1
  107. package/dist/formatters.js +10 -929
  108. package/dist/formatters.js.map +1 -1
  109. package/dist/parser/astro-template/preprocess.d.ts +12 -0
  110. package/dist/parser/astro-template/preprocess.d.ts.map +1 -0
  111. package/dist/parser/astro-template/preprocess.js +34 -0
  112. package/dist/parser/astro-template/preprocess.js.map +1 -0
  113. package/dist/parser/astro-template/resolution.d.ts +16 -0
  114. package/dist/parser/astro-template/resolution.d.ts.map +1 -0
  115. package/dist/parser/astro-template/resolution.js +58 -0
  116. package/dist/parser/astro-template/resolution.js.map +1 -0
  117. package/dist/parser/astro-template/scanner.d.ts +4 -0
  118. package/dist/parser/astro-template/scanner.d.ts.map +1 -0
  119. package/dist/parser/astro-template/scanner.js +71 -0
  120. package/dist/parser/astro-template/scanner.js.map +1 -0
  121. package/dist/parser/astro-template/state.d.ts +22 -0
  122. package/dist/parser/astro-template/state.d.ts.map +1 -0
  123. package/dist/parser/astro-template/state.js +48 -0
  124. package/dist/parser/astro-template/state.js.map +1 -0
  125. package/dist/parser/astro-template/tag-processor.d.ts +3 -0
  126. package/dist/parser/astro-template/tag-processor.d.ts.map +1 -0
  127. package/dist/parser/astro-template/tag-processor.js +63 -0
  128. package/dist/parser/astro-template/tag-processor.js.map +1 -0
  129. package/dist/parser/astro-template/types.d.ts +42 -0
  130. package/dist/parser/astro-template/types.d.ts.map +1 -0
  131. package/dist/parser/astro-template/types.js +2 -0
  132. package/dist/parser/astro-template/types.js.map +1 -0
  133. package/dist/parser/astro-template.d.ts +2 -45
  134. package/dist/parser/astro-template.d.ts.map +1 -1
  135. package/dist/parser/astro-template.js +7 -168
  136. package/dist/parser/astro-template.js.map +1 -1
  137. package/dist/parser/extractors/_shared.js +1 -1
  138. package/dist/parser/extractors/_shared.js.map +1 -1
  139. package/dist/parser/extractors/astro.js +1 -1
  140. package/dist/parser/extractors/astro.js.map +1 -1
  141. package/dist/parser/extractors/conversation.js +1 -1
  142. package/dist/parser/extractors/conversation.js.map +1 -1
  143. package/dist/parser/extractors/hono-app-discovery.d.ts +4 -0
  144. package/dist/parser/extractors/hono-app-discovery.d.ts.map +1 -0
  145. package/dist/parser/extractors/hono-app-discovery.js +169 -0
  146. package/dist/parser/extractors/hono-app-discovery.js.map +1 -0
  147. package/dist/parser/extractors/hono-ast-utils.d.ts +6 -0
  148. package/dist/parser/extractors/hono-ast-utils.d.ts.map +1 -0
  149. package/dist/parser/extractors/hono-ast-utils.js +77 -0
  150. package/dist/parser/extractors/hono-ast-utils.js.map +1 -0
  151. package/dist/parser/extractors/hono-context-extractor.d.ts +15 -0
  152. package/dist/parser/extractors/hono-context-extractor.d.ts.map +1 -0
  153. package/dist/parser/extractors/hono-context-extractor.js +191 -0
  154. package/dist/parser/extractors/hono-context-extractor.js.map +1 -0
  155. package/dist/parser/extractors/hono-middleware-extractor.d.ts +38 -0
  156. package/dist/parser/extractors/hono-middleware-extractor.d.ts.map +1 -0
  157. package/dist/parser/extractors/hono-middleware-extractor.js +480 -0
  158. package/dist/parser/extractors/hono-middleware-extractor.js.map +1 -0
  159. package/dist/parser/extractors/hono-openapi-extractor.d.ts +11 -0
  160. package/dist/parser/extractors/hono-openapi-extractor.d.ts.map +1 -0
  161. package/dist/parser/extractors/hono-openapi-extractor.js +119 -0
  162. package/dist/parser/extractors/hono-openapi-extractor.js.map +1 -0
  163. package/dist/parser/extractors/hono-route-extractor.d.ts +11 -0
  164. package/dist/parser/extractors/hono-route-extractor.d.ts.map +1 -0
  165. package/dist/parser/extractors/hono-route-extractor.js +128 -0
  166. package/dist/parser/extractors/hono-route-extractor.js.map +1 -0
  167. package/dist/parser/extractors/hono-route-utils.d.ts +11 -0
  168. package/dist/parser/extractors/hono-route-utils.d.ts.map +1 -0
  169. package/dist/parser/extractors/hono-route-utils.js +40 -0
  170. package/dist/parser/extractors/hono-route-utils.js.map +1 -0
  171. package/dist/parser/extractors/hono-runtime-extractor.d.ts +17 -0
  172. package/dist/parser/extractors/hono-runtime-extractor.d.ts.map +1 -0
  173. package/dist/parser/extractors/hono-runtime-extractor.js +141 -0
  174. package/dist/parser/extractors/hono-runtime-extractor.js.map +1 -0
  175. package/dist/parser/extractors/hono.d.ts +5 -79
  176. package/dist/parser/extractors/hono.d.ts.map +1 -1
  177. package/dist/parser/extractors/hono.js +32 -1159
  178. package/dist/parser/extractors/hono.js.map +1 -1
  179. package/dist/parser/extractors/kotlin-ast-helpers.d.ts +43 -0
  180. package/dist/parser/extractors/kotlin-ast-helpers.d.ts.map +1 -0
  181. package/dist/parser/extractors/kotlin-ast-helpers.js +187 -0
  182. package/dist/parser/extractors/kotlin-ast-helpers.js.map +1 -0
  183. package/dist/parser/extractors/kotlin-test-symbols.d.ts +21 -0
  184. package/dist/parser/extractors/kotlin-test-symbols.d.ts.map +1 -0
  185. package/dist/parser/extractors/kotlin-test-symbols.js +162 -0
  186. package/dist/parser/extractors/kotlin-test-symbols.js.map +1 -0
  187. package/dist/parser/extractors/kotlin.d.ts.map +1 -1
  188. package/dist/parser/extractors/kotlin.js +3 -334
  189. package/dist/parser/extractors/kotlin.js.map +1 -1
  190. package/dist/parser/extractors/markdown.js +1 -1
  191. package/dist/parser/extractors/markdown.js.map +1 -1
  192. package/dist/parser/extractors/prisma.js +1 -1
  193. package/dist/parser/extractors/prisma.js.map +1 -1
  194. package/dist/parser/extractors/sql-boundaries.d.ts +3 -0
  195. package/dist/parser/extractors/sql-boundaries.d.ts.map +1 -0
  196. package/dist/parser/extractors/sql-boundaries.js +19 -0
  197. package/dist/parser/extractors/sql-boundaries.js.map +1 -0
  198. package/dist/parser/extractors/sql-columns.d.ts +14 -0
  199. package/dist/parser/extractors/sql-columns.d.ts.map +1 -0
  200. package/dist/parser/extractors/sql-columns.js +59 -0
  201. package/dist/parser/extractors/sql-columns.js.map +1 -0
  202. package/dist/parser/extractors/sql-docstrings.d.ts +2 -0
  203. package/dist/parser/extractors/sql-docstrings.d.ts.map +1 -0
  204. package/dist/parser/extractors/sql-docstrings.js +45 -0
  205. package/dist/parser/extractors/sql-docstrings.js.map +1 -0
  206. package/dist/parser/extractors/sql-end-scanner.d.ts +5 -0
  207. package/dist/parser/extractors/sql-end-scanner.d.ts.map +1 -0
  208. package/dist/parser/extractors/sql-end-scanner.js +84 -0
  209. package/dist/parser/extractors/sql-end-scanner.js.map +1 -0
  210. package/dist/parser/extractors/sql-jinja.d.ts +2 -0
  211. package/dist/parser/extractors/sql-jinja.d.ts.map +1 -0
  212. package/dist/parser/extractors/sql-jinja.js +8 -0
  213. package/dist/parser/extractors/sql-jinja.js.map +1 -0
  214. package/dist/parser/extractors/sql-matcher-catalog.d.ts +9 -0
  215. package/dist/parser/extractors/sql-matcher-catalog.d.ts.map +1 -0
  216. package/dist/parser/extractors/sql-matcher-catalog.js +15 -0
  217. package/dist/parser/extractors/sql-matcher-catalog.js.map +1 -0
  218. package/dist/parser/extractors/sql-matchers.d.ts +9 -0
  219. package/dist/parser/extractors/sql-matchers.d.ts.map +1 -0
  220. package/dist/parser/extractors/sql-matchers.js +20 -0
  221. package/dist/parser/extractors/sql-matchers.js.map +1 -0
  222. package/dist/parser/extractors/sql-offsets.d.ts +2 -0
  223. package/dist/parser/extractors/sql-offsets.d.ts.map +1 -0
  224. package/dist/parser/extractors/sql-offsets.js +25 -0
  225. package/dist/parser/extractors/sql-offsets.js.map +1 -0
  226. package/dist/parser/extractors/sql-parens.d.ts +4 -0
  227. package/dist/parser/extractors/sql-parens.d.ts.map +1 -0
  228. package/dist/parser/extractors/sql-parens.js +70 -0
  229. package/dist/parser/extractors/sql-parens.js.map +1 -0
  230. package/dist/parser/extractors/sql-symbols.d.ts +11 -0
  231. package/dist/parser/extractors/sql-symbols.d.ts.map +1 -0
  232. package/dist/parser/extractors/sql-symbols.js +23 -0
  233. package/dist/parser/extractors/sql-symbols.js.map +1 -0
  234. package/dist/parser/extractors/sql.d.ts +2 -30
  235. package/dist/parser/extractors/sql.d.ts.map +1 -1
  236. package/dist/parser/extractors/sql.js +23 -496
  237. package/dist/parser/extractors/sql.js.map +1 -1
  238. package/dist/parser/extractors/typescript-cjs-nodes.d.ts +5 -0
  239. package/dist/parser/extractors/typescript-cjs-nodes.d.ts.map +1 -0
  240. package/dist/parser/extractors/typescript-cjs-nodes.js +148 -0
  241. package/dist/parser/extractors/typescript-cjs-nodes.js.map +1 -0
  242. package/dist/parser/extractors/typescript-class-nodes.d.ts +8 -0
  243. package/dist/parser/extractors/typescript-class-nodes.d.ts.map +1 -0
  244. package/dist/parser/extractors/typescript-class-nodes.js +183 -0
  245. package/dist/parser/extractors/typescript-class-nodes.js.map +1 -0
  246. package/dist/parser/extractors/typescript-declaration-nodes.d.ts +5 -0
  247. package/dist/parser/extractors/typescript-declaration-nodes.d.ts.map +1 -0
  248. package/dist/parser/extractors/typescript-declaration-nodes.js +105 -0
  249. package/dist/parser/extractors/typescript-declaration-nodes.js.map +1 -0
  250. package/dist/parser/extractors/typescript-module-nodes.d.ts +6 -0
  251. package/dist/parser/extractors/typescript-module-nodes.d.ts.map +1 -0
  252. package/dist/parser/extractors/typescript-module-nodes.js +151 -0
  253. package/dist/parser/extractors/typescript-module-nodes.js.map +1 -0
  254. package/dist/parser/extractors/typescript-react.d.ts +11 -0
  255. package/dist/parser/extractors/typescript-react.d.ts.map +1 -0
  256. package/dist/parser/extractors/typescript-react.js +101 -0
  257. package/dist/parser/extractors/typescript-react.js.map +1 -0
  258. package/dist/parser/extractors/typescript-shared.d.ts +26 -0
  259. package/dist/parser/extractors/typescript-shared.d.ts.map +1 -0
  260. package/dist/parser/extractors/typescript-shared.js +101 -0
  261. package/dist/parser/extractors/typescript-shared.js.map +1 -0
  262. package/dist/parser/extractors/typescript-test-nodes.d.ts +4 -0
  263. package/dist/parser/extractors/typescript-test-nodes.d.ts.map +1 -0
  264. package/dist/parser/extractors/typescript-test-nodes.js +112 -0
  265. package/dist/parser/extractors/typescript-test-nodes.js.map +1 -0
  266. package/dist/parser/extractors/typescript-type-nodes.d.ts +6 -0
  267. package/dist/parser/extractors/typescript-type-nodes.d.ts.map +1 -0
  268. package/dist/parser/extractors/typescript-type-nodes.js +48 -0
  269. package/dist/parser/extractors/typescript-type-nodes.js.map +1 -0
  270. package/dist/parser/extractors/typescript.d.ts.map +1 -1
  271. package/dist/parser/extractors/typescript.js +68 -1127
  272. package/dist/parser/extractors/typescript.js.map +1 -1
  273. package/dist/parser/parser-manager.d.ts.map +1 -1
  274. package/dist/parser/parser-manager.js +5 -0
  275. package/dist/parser/parser-manager.js.map +1 -1
  276. package/dist/parser/symbol-extractor.d.ts +1 -12
  277. package/dist/parser/symbol-extractor.d.ts.map +1 -1
  278. package/dist/parser/symbol-extractor.js +2 -24
  279. package/dist/parser/symbol-extractor.js.map +1 -1
  280. package/dist/parser/symbol-utils.d.ts +4 -0
  281. package/dist/parser/symbol-utils.d.ts.map +1 -0
  282. package/dist/parser/symbol-utils.js +20 -0
  283. package/dist/parser/symbol-utils.js.map +1 -0
  284. package/dist/register-tool-groups/analysis/cross-repo.d.ts +4 -0
  285. package/dist/register-tool-groups/analysis/cross-repo.d.ts.map +1 -0
  286. package/dist/register-tool-groups/analysis/cross-repo.js +108 -0
  287. package/dist/register-tool-groups/analysis/cross-repo.js.map +1 -0
  288. package/dist/register-tool-groups/analysis/review.d.ts +3 -0
  289. package/dist/register-tool-groups/analysis/review.d.ts.map +1 -0
  290. package/dist/register-tool-groups/analysis/review.js +96 -0
  291. package/dist/register-tool-groups/analysis/review.js.map +1 -0
  292. package/dist/register-tool-groups/analysis/workspace.d.ts +3 -0
  293. package/dist/register-tool-groups/analysis/workspace.d.ts.map +1 -0
  294. package/dist/register-tool-groups/analysis/workspace.js +82 -0
  295. package/dist/register-tool-groups/analysis/workspace.js.map +1 -0
  296. package/dist/register-tool-groups/analysis.d.ts +3 -0
  297. package/dist/register-tool-groups/analysis.d.ts.map +1 -0
  298. package/dist/register-tool-groups/analysis.js +541 -0
  299. package/dist/register-tool-groups/analysis.js.map +1 -0
  300. package/dist/register-tool-groups/astro.d.ts +3 -0
  301. package/dist/register-tool-groups/astro.d.ts.map +1 -0
  302. package/dist/register-tool-groups/astro.js +302 -0
  303. package/dist/register-tool-groups/astro.js.map +1 -0
  304. package/dist/register-tool-groups/core/index.d.ts +3 -0
  305. package/dist/register-tool-groups/core/index.d.ts.map +1 -0
  306. package/dist/register-tool-groups/core/index.js +96 -0
  307. package/dist/register-tool-groups/core/index.js.map +1 -0
  308. package/dist/register-tool-groups/core/meta.d.ts +3 -0
  309. package/dist/register-tool-groups/core/meta.d.ts.map +1 -0
  310. package/dist/register-tool-groups/core/meta.js +180 -0
  311. package/dist/register-tool-groups/core/meta.js.map +1 -0
  312. package/dist/register-tool-groups/core/schema.d.ts +3 -0
  313. package/dist/register-tool-groups/core/schema.d.ts.map +1 -0
  314. package/dist/register-tool-groups/core/schema.js +16 -0
  315. package/dist/register-tool-groups/core/schema.js.map +1 -0
  316. package/dist/register-tool-groups/core/search.d.ts +4 -0
  317. package/dist/register-tool-groups/core/search.d.ts.map +1 -0
  318. package/dist/register-tool-groups/core/search.js +262 -0
  319. package/dist/register-tool-groups/core/search.js.map +1 -0
  320. package/dist/register-tool-groups/core/symbols.d.ts +3 -0
  321. package/dist/register-tool-groups/core/symbols.d.ts.map +1 -0
  322. package/dist/register-tool-groups/core/symbols.js +338 -0
  323. package/dist/register-tool-groups/core/symbols.js.map +1 -0
  324. package/dist/register-tool-groups/core.d.ts +3 -0
  325. package/dist/register-tool-groups/core.d.ts.map +1 -0
  326. package/dist/register-tool-groups/core.js +12 -0
  327. package/dist/register-tool-groups/core.js.map +1 -0
  328. package/dist/register-tool-groups/deps.d.ts +10 -0
  329. package/dist/register-tool-groups/deps.d.ts.map +1 -0
  330. package/dist/register-tool-groups/deps.js +6 -0
  331. package/dist/register-tool-groups/deps.js.map +1 -0
  332. package/dist/register-tool-groups/handler-wrappers.d.ts +63 -0
  333. package/dist/register-tool-groups/handler-wrappers.d.ts.map +1 -0
  334. package/dist/register-tool-groups/handler-wrappers.js +106 -0
  335. package/dist/register-tool-groups/handler-wrappers.js.map +1 -0
  336. package/dist/register-tool-groups/hono.d.ts +3 -0
  337. package/dist/register-tool-groups/hono.d.ts.map +1 -0
  338. package/dist/register-tool-groups/hono.js +179 -0
  339. package/dist/register-tool-groups/hono.js.map +1 -0
  340. package/dist/register-tool-groups/index.d.ts +3 -0
  341. package/dist/register-tool-groups/index.d.ts.map +1 -0
  342. package/dist/register-tool-groups/index.js +28 -0
  343. package/dist/register-tool-groups/index.js.map +1 -0
  344. package/dist/register-tool-groups/kotlin.d.ts +3 -0
  345. package/dist/register-tool-groups/kotlin.d.ts.map +1 -0
  346. package/dist/register-tool-groups/kotlin.js +162 -0
  347. package/dist/register-tool-groups/kotlin.js.map +1 -0
  348. package/dist/register-tool-groups/meta.d.ts +3 -0
  349. package/dist/register-tool-groups/meta.d.ts.map +1 -0
  350. package/dist/register-tool-groups/meta.js +563 -0
  351. package/dist/register-tool-groups/meta.js.map +1 -0
  352. package/dist/register-tool-groups/nextjs.d.ts +3 -0
  353. package/dist/register-tool-groups/nextjs.d.ts.map +1 -0
  354. package/dist/register-tool-groups/nextjs.js +78 -0
  355. package/dist/register-tool-groups/nextjs.js.map +1 -0
  356. package/dist/register-tool-groups/php.d.ts +3 -0
  357. package/dist/register-tool-groups/php.d.ts.map +1 -0
  358. package/dist/register-tool-groups/php.js +312 -0
  359. package/dist/register-tool-groups/php.js.map +1 -0
  360. package/dist/register-tool-groups/python.d.ts +3 -0
  361. package/dist/register-tool-groups/python.d.ts.map +1 -0
  362. package/dist/register-tool-groups/python.js +366 -0
  363. package/dist/register-tool-groups/python.js.map +1 -0
  364. package/dist/register-tool-groups/react.d.ts +3 -0
  365. package/dist/register-tool-groups/react.d.ts.map +1 -0
  366. package/dist/register-tool-groups/react.js +119 -0
  367. package/dist/register-tool-groups/react.js.map +1 -0
  368. package/dist/register-tool-groups/shared.d.ts +156 -0
  369. package/dist/register-tool-groups/shared.d.ts.map +1 -0
  370. package/dist/register-tool-groups/shared.js +182 -0
  371. package/dist/register-tool-groups/shared.js.map +1 -0
  372. package/dist/register-tool-groups/sql.d.ts +3 -0
  373. package/dist/register-tool-groups/sql.d.ts.map +1 -0
  374. package/dist/register-tool-groups/sql.js +260 -0
  375. package/dist/register-tool-groups/sql.js.map +1 -0
  376. package/dist/register-tool-loaders.d.ts +22 -22
  377. package/dist/register-tool-loaders.d.ts.map +1 -1
  378. package/dist/register-tools/autoload.d.ts +8 -0
  379. package/dist/register-tools/autoload.d.ts.map +1 -0
  380. package/dist/register-tools/autoload.js +517 -0
  381. package/dist/register-tools/autoload.js.map +1 -0
  382. package/dist/register-tools/discovery.d.ts +55 -0
  383. package/dist/register-tools/discovery.d.ts.map +1 -0
  384. package/dist/register-tools/discovery.js +206 -0
  385. package/dist/register-tools/discovery.js.map +1 -0
  386. package/dist/register-tools/runtime.d.ts +89 -0
  387. package/dist/register-tools/runtime.d.ts.map +1 -0
  388. package/dist/register-tools/runtime.js +491 -0
  389. package/dist/register-tools/runtime.js.map +1 -0
  390. package/dist/register-tools.d.ts +5 -172
  391. package/dist/register-tools.d.ts.map +1 -1
  392. package/dist/register-tools.js +27 -4878
  393. package/dist/register-tools.js.map +1 -1
  394. package/dist/search/bm25.js +1 -1
  395. package/dist/search/bm25.js.map +1 -1
  396. package/dist/search/tool-embedding-cache.d.ts +4 -0
  397. package/dist/search/tool-embedding-cache.d.ts.map +1 -0
  398. package/dist/search/tool-embedding-cache.js +44 -0
  399. package/dist/search/tool-embedding-cache.js.map +1 -0
  400. package/dist/search/tool-embedding-storage.d.ts +8 -0
  401. package/dist/search/tool-embedding-storage.d.ts.map +1 -0
  402. package/dist/search/tool-embedding-storage.js +56 -0
  403. package/dist/search/tool-embedding-storage.js.map +1 -0
  404. package/dist/search/tool-ranker-bm25.d.ts +6 -0
  405. package/dist/search/tool-ranker-bm25.d.ts.map +1 -0
  406. package/dist/search/tool-ranker-bm25.js +40 -0
  407. package/dist/search/tool-ranker-bm25.js.map +1 -0
  408. package/dist/search/tool-ranker-orchestrator.d.ts +3 -0
  409. package/dist/search/tool-ranker-orchestrator.d.ts.map +1 -0
  410. package/dist/search/tool-ranker-orchestrator.js +49 -0
  411. package/dist/search/tool-ranker-orchestrator.js.map +1 -0
  412. package/dist/search/tool-ranker-reasoning.d.ts +4 -0
  413. package/dist/search/tool-ranker-reasoning.d.ts.map +1 -0
  414. package/dist/search/tool-ranker-reasoning.js +35 -0
  415. package/dist/search/tool-ranker-reasoning.js.map +1 -0
  416. package/dist/search/tool-ranker-signal-math.d.ts +6 -0
  417. package/dist/search/tool-ranker-signal-math.d.ts.map +1 -0
  418. package/dist/search/tool-ranker-signal-math.js +51 -0
  419. package/dist/search/tool-ranker-signal-math.js.map +1 -0
  420. package/dist/search/tool-ranker-signals.d.ts +20 -0
  421. package/dist/search/tool-ranker-signals.d.ts.map +1 -0
  422. package/dist/search/tool-ranker-signals.js +50 -0
  423. package/dist/search/tool-ranker-signals.js.map +1 -0
  424. package/dist/search/tool-ranker-types.d.ts +26 -0
  425. package/dist/search/tool-ranker-types.d.ts.map +1 -0
  426. package/dist/search/tool-ranker-types.js +2 -0
  427. package/dist/search/tool-ranker-types.js.map +1 -0
  428. package/dist/search/tool-ranker.d.ts +6 -89
  429. package/dist/search/tool-ranker.d.ts.map +1 -1
  430. package/dist/search/tool-ranker.js +5 -419
  431. package/dist/search/tool-ranker.js.map +1 -1
  432. package/dist/server-helpers/repo-resolution.d.ts +45 -0
  433. package/dist/server-helpers/repo-resolution.d.ts.map +1 -0
  434. package/dist/server-helpers/repo-resolution.js +113 -0
  435. package/dist/server-helpers/repo-resolution.js.map +1 -0
  436. package/dist/server-helpers/response-hints.d.ts +9 -0
  437. package/dist/server-helpers/response-hints.d.ts.map +1 -0
  438. package/dist/server-helpers/response-hints.js +225 -0
  439. package/dist/server-helpers/response-hints.js.map +1 -0
  440. package/dist/server-helpers.d.ts +14 -35
  441. package/dist/server-helpers.d.ts.map +1 -1
  442. package/dist/server-helpers.js +53 -320
  443. package/dist/server-helpers.js.map +1 -1
  444. package/dist/server.d.ts.map +1 -1
  445. package/dist/server.js +39 -0
  446. package/dist/server.js.map +1 -1
  447. package/dist/storage/usage-tracker.d.ts.map +1 -1
  448. package/dist/storage/usage-tracker.js +12 -0
  449. package/dist/storage/usage-tracker.js.map +1 -1
  450. package/dist/tools/astro-actions/ast.d.ts +14 -0
  451. package/dist/tools/astro-actions/ast.d.ts.map +1 -0
  452. package/dist/tools/astro-actions/ast.js +75 -0
  453. package/dist/tools/astro-actions/ast.js.map +1 -0
  454. package/dist/tools/astro-actions/audit.d.ts +5 -0
  455. package/dist/tools/astro-actions/audit.d.ts.map +1 -0
  456. package/dist/tools/astro-actions/audit.js +102 -0
  457. package/dist/tools/astro-actions/audit.js.map +1 -0
  458. package/dist/tools/astro-actions/callers.d.ts +9 -0
  459. package/dist/tools/astro-actions/callers.d.ts.map +1 -0
  460. package/dist/tools/astro-actions/callers.js +84 -0
  461. package/dist/tools/astro-actions/callers.js.map +1 -0
  462. package/dist/tools/astro-actions/parser.d.ts +3 -0
  463. package/dist/tools/astro-actions/parser.d.ts.map +1 -0
  464. package/dist/tools/astro-actions/parser.js +156 -0
  465. package/dist/tools/astro-actions/parser.js.map +1 -0
  466. package/dist/tools/astro-actions/types.d.ts +58 -0
  467. package/dist/tools/astro-actions/types.d.ts.map +1 -0
  468. package/dist/tools/astro-actions/types.js +2 -0
  469. package/dist/tools/astro-actions/types.js.map +1 -0
  470. package/dist/tools/astro-actions/zod-ast.d.ts +7 -0
  471. package/dist/tools/astro-actions/zod-ast.d.ts.map +1 -0
  472. package/dist/tools/astro-actions/zod-ast.js +51 -0
  473. package/dist/tools/astro-actions/zod-ast.js.map +1 -0
  474. package/dist/tools/astro-actions.d.ts +6 -46
  475. package/dist/tools/astro-actions.d.ts.map +1 -1
  476. package/dist/tools/astro-actions.js +6 -545
  477. package/dist/tools/astro-actions.js.map +1 -1
  478. package/dist/tools/astro-content-collections/diagnostics.d.ts +3 -0
  479. package/dist/tools/astro-content-collections/diagnostics.d.ts.map +1 -0
  480. package/dist/tools/astro-content-collections/diagnostics.js +277 -0
  481. package/dist/tools/astro-content-collections/diagnostics.js.map +1 -0
  482. package/dist/tools/astro-content-collections/discovery.d.ts +6 -0
  483. package/dist/tools/astro-content-collections/discovery.d.ts.map +1 -0
  484. package/dist/tools/astro-content-collections/discovery.js +152 -0
  485. package/dist/tools/astro-content-collections/discovery.js.map +1 -0
  486. package/dist/tools/astro-content-collections/schema.d.ts +15 -0
  487. package/dist/tools/astro-content-collections/schema.d.ts.map +1 -0
  488. package/dist/tools/astro-content-collections/schema.js +119 -0
  489. package/dist/tools/astro-content-collections/schema.js.map +1 -0
  490. package/dist/tools/astro-content-collections/types.d.ts +61 -0
  491. package/dist/tools/astro-content-collections/types.d.ts.map +1 -0
  492. package/dist/tools/astro-content-collections/types.js +2 -0
  493. package/dist/tools/astro-content-collections/types.js.map +1 -0
  494. package/dist/tools/astro-content-collections.d.ts +5 -40
  495. package/dist/tools/astro-content-collections.d.ts.map +1 -1
  496. package/dist/tools/astro-content-collections.js +42 -449
  497. package/dist/tools/astro-content-collections.js.map +1 -1
  498. package/dist/tools/astro-routes.js +1 -1
  499. package/dist/tools/astro-routes.js.map +1 -1
  500. package/dist/tools/complexity-tools.d.ts +6 -0
  501. package/dist/tools/complexity-tools.d.ts.map +1 -1
  502. package/dist/tools/complexity-tools.js +26 -0
  503. package/dist/tools/complexity-tools.js.map +1 -1
  504. package/dist/tools/context-levels/l0.d.ts +4 -0
  505. package/dist/tools/context-levels/l0.d.ts.map +1 -0
  506. package/dist/tools/context-levels/l0.js +17 -0
  507. package/dist/tools/context-levels/l0.js.map +1 -0
  508. package/dist/tools/context-levels/l1.d.ts +4 -0
  509. package/dist/tools/context-levels/l1.d.ts.map +1 -0
  510. package/dist/tools/context-levels/l1.js +26 -0
  511. package/dist/tools/context-levels/l1.js.map +1 -0
  512. package/dist/tools/context-levels/l2.d.ts +4 -0
  513. package/dist/tools/context-levels/l2.d.ts.map +1 -0
  514. package/dist/tools/context-levels/l2.js +36 -0
  515. package/dist/tools/context-levels/l2.js.map +1 -0
  516. package/dist/tools/context-levels/l3.d.ts +4 -0
  517. package/dist/tools/context-levels/l3.d.ts.map +1 -0
  518. package/dist/tools/context-levels/l3.js +30 -0
  519. package/dist/tools/context-levels/l3.js.map +1 -0
  520. package/dist/tools/context-levels/shared.d.ts +2 -0
  521. package/dist/tools/context-levels/shared.d.ts.map +1 -0
  522. package/dist/tools/context-levels/shared.js +4 -0
  523. package/dist/tools/context-levels/shared.js.map +1 -0
  524. package/dist/tools/context-levels/types.d.ts +34 -0
  525. package/dist/tools/context-levels/types.d.ts.map +1 -0
  526. package/dist/tools/context-levels/types.js +2 -0
  527. package/dist/tools/context-levels/types.js.map +1 -0
  528. package/dist/tools/context-tools.d.ts +2 -34
  529. package/dist/tools/context-tools.d.ts.map +1 -1
  530. package/dist/tools/context-tools.js +11 -127
  531. package/dist/tools/context-tools.js.map +1 -1
  532. package/dist/tools/conversation-cache.d.ts +6 -0
  533. package/dist/tools/conversation-cache.d.ts.map +1 -0
  534. package/dist/tools/conversation-cache.js +29 -0
  535. package/dist/tools/conversation-cache.js.map +1 -0
  536. package/dist/tools/conversation-index-tools.d.ts +39 -0
  537. package/dist/tools/conversation-index-tools.d.ts.map +1 -0
  538. package/dist/tools/conversation-index-tools.js +136 -0
  539. package/dist/tools/conversation-index-tools.js.map +1 -0
  540. package/dist/tools/conversation-paths.d.ts +4 -0
  541. package/dist/tools/conversation-paths.d.ts.map +1 -0
  542. package/dist/tools/conversation-paths.js +15 -0
  543. package/dist/tools/conversation-paths.js.map +1 -0
  544. package/dist/tools/conversation-search-tools.d.ts +52 -0
  545. package/dist/tools/conversation-search-tools.d.ts.map +1 -0
  546. package/dist/tools/conversation-search-tools.js +229 -0
  547. package/dist/tools/conversation-search-tools.js.map +1 -0
  548. package/dist/tools/conversation-tools.d.ts +6 -112
  549. package/dist/tools/conversation-tools.d.ts.map +1 -1
  550. package/dist/tools/conversation-tools.js +4 -425
  551. package/dist/tools/conversation-tools.js.map +1 -1
  552. package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts +5 -0
  553. package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts.map +1 -0
  554. package/dist/tools/cross-repo-outbound-lexer/call-detectors.js +76 -0
  555. package/dist/tools/cross-repo-outbound-lexer/call-detectors.js.map +1 -0
  556. package/dist/tools/cross-repo-outbound-lexer/context.d.ts +18 -0
  557. package/dist/tools/cross-repo-outbound-lexer/context.d.ts.map +1 -0
  558. package/dist/tools/cross-repo-outbound-lexer/context.js +33 -0
  559. package/dist/tools/cross-repo-outbound-lexer/context.js.map +1 -0
  560. package/dist/tools/cross-repo-outbound-lexer/literal-readers.d.ts +6 -0
  561. package/dist/tools/cross-repo-outbound-lexer/literal-readers.d.ts.map +1 -0
  562. package/dist/tools/cross-repo-outbound-lexer/literal-readers.js +65 -0
  563. package/dist/tools/cross-repo-outbound-lexer/literal-readers.js.map +1 -0
  564. package/dist/tools/cross-repo-outbound-lexer/non-code-states.d.ts +3 -0
  565. package/dist/tools/cross-repo-outbound-lexer/non-code-states.d.ts.map +1 -0
  566. package/dist/tools/cross-repo-outbound-lexer/non-code-states.js +103 -0
  567. package/dist/tools/cross-repo-outbound-lexer/non-code-states.js.map +1 -0
  568. package/dist/tools/cross-repo-outbound-lexer/template-reader.d.ts +3 -0
  569. package/dist/tools/cross-repo-outbound-lexer/template-reader.d.ts.map +1 -0
  570. package/dist/tools/cross-repo-outbound-lexer/template-reader.js +82 -0
  571. package/dist/tools/cross-repo-outbound-lexer/template-reader.js.map +1 -0
  572. package/dist/tools/cross-repo-outbound-lexer/types.d.ts +18 -0
  573. package/dist/tools/cross-repo-outbound-lexer/types.d.ts.map +1 -0
  574. package/dist/tools/cross-repo-outbound-lexer/types.js +2 -0
  575. package/dist/tools/cross-repo-outbound-lexer/types.js.map +1 -0
  576. package/dist/tools/cross-repo-outbound-lexer.d.ts +5 -31
  577. package/dist/tools/cross-repo-outbound-lexer.d.ts.map +1 -1
  578. package/dist/tools/cross-repo-outbound-lexer.js +75 -575
  579. package/dist/tools/cross-repo-outbound-lexer.js.map +1 -1
  580. package/dist/tools/dependency-audit-freshness-tools.d.ts +3 -0
  581. package/dist/tools/dependency-audit-freshness-tools.d.ts.map +1 -0
  582. package/dist/tools/dependency-audit-freshness-tools.js +62 -0
  583. package/dist/tools/dependency-audit-freshness-tools.js.map +1 -0
  584. package/dist/tools/dependency-audit-license-tools.d.ts +5 -0
  585. package/dist/tools/dependency-audit-license-tools.d.ts.map +1 -0
  586. package/dist/tools/dependency-audit-license-tools.js +75 -0
  587. package/dist/tools/dependency-audit-license-tools.js.map +1 -0
  588. package/dist/tools/dependency-audit-lockfile-tools.d.ts +3 -0
  589. package/dist/tools/dependency-audit-lockfile-tools.d.ts.map +1 -0
  590. package/dist/tools/dependency-audit-lockfile-tools.js +147 -0
  591. package/dist/tools/dependency-audit-lockfile-tools.js.map +1 -0
  592. package/dist/tools/dependency-audit-tools.d.ts +2 -54
  593. package/dist/tools/dependency-audit-tools.d.ts.map +1 -1
  594. package/dist/tools/dependency-audit-tools.js +69 -484
  595. package/dist/tools/dependency-audit-tools.js.map +1 -1
  596. package/dist/tools/dependency-audit-types.d.ts +65 -0
  597. package/dist/tools/dependency-audit-types.d.ts.map +1 -0
  598. package/dist/tools/dependency-audit-types.js +19 -0
  599. package/dist/tools/dependency-audit-types.js.map +1 -0
  600. package/dist/tools/dependency-audit-vulnerability-tools.d.ts +4 -0
  601. package/dist/tools/dependency-audit-vulnerability-tools.d.ts.map +1 -0
  602. package/dist/tools/dependency-audit-vulnerability-tools.js +103 -0
  603. package/dist/tools/dependency-audit-vulnerability-tools.js.map +1 -0
  604. package/dist/tools/diff-tools.d.ts.map +1 -1
  605. package/dist/tools/diff-tools.js +5 -7
  606. package/dist/tools/diff-tools.js.map +1 -1
  607. package/dist/tools/impact-tools.d.ts.map +1 -1
  608. package/dist/tools/impact-tools.js +5 -4
  609. package/dist/tools/impact-tools.js.map +1 -1
  610. package/dist/tools/index-shared.d.ts +17 -0
  611. package/dist/tools/index-shared.d.ts.map +1 -0
  612. package/dist/tools/index-shared.js +18 -0
  613. package/dist/tools/index-shared.js.map +1 -0
  614. package/dist/tools/index-tools/file-indexer.d.ts +27 -0
  615. package/dist/tools/index-tools/file-indexer.d.ts.map +1 -0
  616. package/dist/tools/index-tools/file-indexer.js +223 -0
  617. package/dist/tools/index-tools/file-indexer.js.map +1 -0
  618. package/dist/tools/index-tools/folder-indexer.d.ts +21 -0
  619. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -0
  620. package/dist/tools/index-tools/folder-indexer.js +399 -0
  621. package/dist/tools/index-tools/folder-indexer.js.map +1 -0
  622. package/dist/tools/index-tools/folder-merge.d.ts +23 -0
  623. package/dist/tools/index-tools/folder-merge.d.ts.map +1 -0
  624. package/dist/tools/index-tools/folder-merge.js +205 -0
  625. package/dist/tools/index-tools/folder-merge.js.map +1 -0
  626. package/dist/tools/index-tools/parse.d.ts +35 -0
  627. package/dist/tools/index-tools/parse.d.ts.map +1 -0
  628. package/dist/tools/index-tools/parse.js +262 -0
  629. package/dist/tools/index-tools/parse.js.map +1 -0
  630. package/dist/tools/index-tools/registry.d.ts +40 -0
  631. package/dist/tools/index-tools/registry.d.ts.map +1 -0
  632. package/dist/tools/index-tools/registry.js +258 -0
  633. package/dist/tools/index-tools/registry.js.map +1 -0
  634. package/dist/tools/index-tools/snapshots.d.ts +51 -0
  635. package/dist/tools/index-tools/snapshots.d.ts.map +1 -0
  636. package/dist/tools/index-tools/snapshots.js +223 -0
  637. package/dist/tools/index-tools/snapshots.js.map +1 -0
  638. package/dist/tools/index-tools/state.d.ts +8 -0
  639. package/dist/tools/index-tools/state.d.ts.map +1 -0
  640. package/dist/tools/index-tools/state.js +6 -0
  641. package/dist/tools/index-tools/state.js.map +1 -0
  642. package/dist/tools/index-tools/types.d.ts +20 -0
  643. package/dist/tools/index-tools/types.d.ts.map +1 -0
  644. package/dist/tools/index-tools/types.js +2 -0
  645. package/dist/tools/index-tools/types.js.map +1 -0
  646. package/dist/tools/index-tools/watcher.d.ts +10 -0
  647. package/dist/tools/index-tools/watcher.d.ts.map +1 -0
  648. package/dist/tools/index-tools/watcher.js +130 -0
  649. package/dist/tools/index-tools/watcher.js.map +1 -0
  650. package/dist/tools/index-tools.d.ts +16 -152
  651. package/dist/tools/index-tools.d.ts.map +1 -1
  652. package/dist/tools/index-tools.js +12 -1674
  653. package/dist/tools/index-tools.js.map +1 -1
  654. package/dist/tools/kotlin-extension-tools.d.ts +16 -0
  655. package/dist/tools/kotlin-extension-tools.d.ts.map +1 -0
  656. package/dist/tools/kotlin-extension-tools.js +31 -0
  657. package/dist/tools/kotlin-extension-tools.js.map +1 -0
  658. package/dist/tools/kotlin-flow-tools.d.ts +12 -0
  659. package/dist/tools/kotlin-flow-tools.d.ts.map +1 -0
  660. package/dist/tools/kotlin-flow-tools.js +72 -0
  661. package/dist/tools/kotlin-flow-tools.js.map +1 -0
  662. package/dist/tools/kotlin-kmp-tools.d.ts +29 -0
  663. package/dist/tools/kotlin-kmp-tools.d.ts.map +1 -0
  664. package/dist/tools/kotlin-kmp-tools.js +87 -0
  665. package/dist/tools/kotlin-kmp-tools.js.map +1 -0
  666. package/dist/tools/kotlin-sealed-tools.d.ts +27 -0
  667. package/dist/tools/kotlin-sealed-tools.d.ts.map +1 -0
  668. package/dist/tools/kotlin-sealed-tools.js +130 -0
  669. package/dist/tools/kotlin-sealed-tools.js.map +1 -0
  670. package/dist/tools/kotlin-suspend-tools.d.ts +24 -0
  671. package/dist/tools/kotlin-suspend-tools.d.ts.map +1 -0
  672. package/dist/tools/kotlin-suspend-tools.js +161 -0
  673. package/dist/tools/kotlin-suspend-tools.js.map +1 -0
  674. package/dist/tools/kotlin-tools.d.ts +6 -141
  675. package/dist/tools/kotlin-tools.d.ts.map +1 -1
  676. package/dist/tools/kotlin-tools.js +6 -571
  677. package/dist/tools/kotlin-tools.js.map +1 -1
  678. package/dist/tools/nest-audit-tools.d.ts +43 -0
  679. package/dist/tools/nest-audit-tools.d.ts.map +1 -0
  680. package/dist/tools/nest-audit-tools.js +232 -0
  681. package/dist/tools/nest-audit-tools.js.map +1 -0
  682. package/dist/tools/nest-di-tools.d.ts +32 -0
  683. package/dist/tools/nest-di-tools.d.ts.map +1 -0
  684. package/dist/tools/nest-di-tools.js +161 -0
  685. package/dist/tools/nest-di-tools.js.map +1 -0
  686. package/dist/tools/nest-guard-tools.d.ts +34 -0
  687. package/dist/tools/nest-guard-tools.d.ts.map +1 -0
  688. package/dist/tools/nest-guard-tools.js +240 -0
  689. package/dist/tools/nest-guard-tools.js.map +1 -0
  690. package/dist/tools/nest-lifecycle-tools.d.ts +16 -0
  691. package/dist/tools/nest-lifecycle-tools.d.ts.map +1 -0
  692. package/dist/tools/nest-lifecycle-tools.js +54 -0
  693. package/dist/tools/nest-lifecycle-tools.js.map +1 -0
  694. package/dist/tools/nest-module-tools.d.ts +28 -0
  695. package/dist/tools/nest-module-tools.d.ts.map +1 -0
  696. package/dist/tools/nest-module-tools.js +86 -0
  697. package/dist/tools/nest-module-tools.js.map +1 -0
  698. package/dist/tools/nest-pipeline-tools.d.ts +32 -0
  699. package/dist/tools/nest-pipeline-tools.d.ts.map +1 -0
  700. package/dist/tools/nest-pipeline-tools.js +122 -0
  701. package/dist/tools/nest-pipeline-tools.js.map +1 -0
  702. package/dist/tools/nest-route-tools.d.ts +43 -0
  703. package/dist/tools/nest-route-tools.d.ts.map +1 -0
  704. package/dist/tools/nest-route-tools.js +261 -0
  705. package/dist/tools/nest-route-tools.js.map +1 -0
  706. package/dist/tools/nest-shared-tools.d.ts +13 -0
  707. package/dist/tools/nest-shared-tools.d.ts.map +1 -0
  708. package/dist/tools/nest-shared-tools.js +36 -0
  709. package/dist/tools/nest-shared-tools.js.map +1 -0
  710. package/dist/tools/nest-tools.d.ts +18 -195
  711. package/dist/tools/nest-tools.d.ts.map +1 -1
  712. package/dist/tools/nest-tools.js +11 -1140
  713. package/dist/tools/nest-tools.js.map +1 -1
  714. package/dist/tools/pattern-registry.d.ts +4 -0
  715. package/dist/tools/pattern-registry.d.ts.map +1 -0
  716. package/dist/tools/pattern-registry.js +3 -0
  717. package/dist/tools/pattern-registry.js.map +1 -0
  718. package/dist/tools/pattern-tools.d.ts +5 -46
  719. package/dist/tools/pattern-tools.d.ts.map +1 -1
  720. package/dist/tools/pattern-tools.js +4 -1102
  721. package/dist/tools/pattern-tools.js.map +1 -1
  722. package/dist/tools/patterns/adapters/astro.d.ts +3 -0
  723. package/dist/tools/patterns/adapters/astro.d.ts.map +1 -0
  724. package/dist/tools/patterns/adapters/astro.js +56 -0
  725. package/dist/tools/patterns/adapters/astro.js.map +1 -0
  726. package/dist/tools/patterns/adapters/common.d.ts +3 -0
  727. package/dist/tools/patterns/adapters/common.d.ts.map +1 -0
  728. package/dist/tools/patterns/adapters/common.js +38 -0
  729. package/dist/tools/patterns/adapters/common.js.map +1 -0
  730. package/dist/tools/patterns/adapters/database.d.ts +3 -0
  731. package/dist/tools/patterns/adapters/database.d.ts.map +1 -0
  732. package/dist/tools/patterns/adapters/database.js +32 -0
  733. package/dist/tools/patterns/adapters/database.js.map +1 -0
  734. package/dist/tools/patterns/adapters/hono.d.ts +3 -0
  735. package/dist/tools/patterns/adapters/hono.d.ts.map +1 -0
  736. package/dist/tools/patterns/adapters/hono.js +32 -0
  737. package/dist/tools/patterns/adapters/hono.js.map +1 -0
  738. package/dist/tools/patterns/adapters/kotlin.d.ts +3 -0
  739. package/dist/tools/patterns/adapters/kotlin.d.ts.map +1 -0
  740. package/dist/tools/patterns/adapters/kotlin.js +50 -0
  741. package/dist/tools/patterns/adapters/kotlin.js.map +1 -0
  742. package/dist/tools/patterns/adapters/nest.d.ts +3 -0
  743. package/dist/tools/patterns/adapters/nest.d.ts.map +1 -0
  744. package/dist/tools/patterns/adapters/nest.js +122 -0
  745. package/dist/tools/patterns/adapters/nest.js.map +1 -0
  746. package/dist/tools/patterns/adapters/nextjs.d.ts +4 -0
  747. package/dist/tools/patterns/adapters/nextjs.d.ts.map +1 -0
  748. package/dist/tools/patterns/adapters/nextjs.js +59 -0
  749. package/dist/tools/patterns/adapters/nextjs.js.map +1 -0
  750. package/dist/tools/patterns/adapters/php.d.ts +3 -0
  751. package/dist/tools/patterns/adapters/php.d.ts.map +1 -0
  752. package/dist/tools/patterns/adapters/php.js +157 -0
  753. package/dist/tools/patterns/adapters/php.js.map +1 -0
  754. package/dist/tools/patterns/adapters/python.d.ts +3 -0
  755. package/dist/tools/patterns/adapters/python.d.ts.map +1 -0
  756. package/dist/tools/patterns/adapters/python.js +72 -0
  757. package/dist/tools/patterns/adapters/python.js.map +1 -0
  758. package/dist/tools/patterns/adapters/react.d.ts +4 -0
  759. package/dist/tools/patterns/adapters/react.d.ts.map +1 -0
  760. package/dist/tools/patterns/adapters/react.js +345 -0
  761. package/dist/tools/patterns/adapters/react.js.map +1 -0
  762. package/dist/tools/patterns/catalog.d.ts +8 -0
  763. package/dist/tools/patterns/catalog.d.ts.map +1 -0
  764. package/dist/tools/patterns/catalog.js +30 -0
  765. package/dist/tools/patterns/catalog.js.map +1 -0
  766. package/dist/tools/patterns/execution.d.ts +38 -0
  767. package/dist/tools/patterns/execution.d.ts.map +1 -0
  768. package/dist/tools/patterns/execution.js +298 -0
  769. package/dist/tools/patterns/execution.js.map +1 -0
  770. package/dist/tools/patterns/types.d.ts +13 -0
  771. package/dist/tools/patterns/types.d.ts.map +1 -0
  772. package/dist/tools/patterns/types.js +2 -0
  773. package/dist/tools/patterns/types.js.map +1 -0
  774. package/dist/tools/pg-drift-compare.d.ts +3 -0
  775. package/dist/tools/pg-drift-compare.d.ts.map +1 -0
  776. package/dist/tools/pg-drift-compare.js +30 -0
  777. package/dist/tools/pg-drift-compare.js.map +1 -0
  778. package/dist/tools/pg-drift-schema.d.ts +5 -0
  779. package/dist/tools/pg-drift-schema.d.ts.map +1 -0
  780. package/dist/tools/pg-drift-schema.js +28 -0
  781. package/dist/tools/pg-drift-schema.js.map +1 -0
  782. package/dist/tools/pg-drift-types.d.ts +25 -0
  783. package/dist/tools/pg-drift-types.d.ts.map +1 -0
  784. package/dist/tools/pg-drift-types.js +2 -0
  785. package/dist/tools/pg-drift-types.js.map +1 -0
  786. package/dist/tools/pg-drift.d.ts +5 -0
  787. package/dist/tools/pg-drift.d.ts.map +1 -0
  788. package/dist/tools/pg-drift.js +30 -0
  789. package/dist/tools/pg-drift.js.map +1 -0
  790. package/dist/tools/pg-introspect-formatters.d.ts +7 -0
  791. package/dist/tools/pg-introspect-formatters.d.ts.map +1 -0
  792. package/dist/tools/pg-introspect-formatters.js +66 -0
  793. package/dist/tools/pg-introspect-formatters.js.map +1 -0
  794. package/dist/tools/pg-introspect-tools.d.ts +5 -146
  795. package/dist/tools/pg-introspect-tools.d.ts.map +1 -1
  796. package/dist/tools/pg-introspect-tools.js +3 -395
  797. package/dist/tools/pg-introspect-tools.js.map +1 -1
  798. package/dist/tools/pg-introspection.d.ts +90 -0
  799. package/dist/tools/pg-introspection.d.ts.map +1 -0
  800. package/dist/tools/pg-introspection.js +288 -0
  801. package/dist/tools/pg-introspection.js.map +1 -0
  802. package/dist/tools/php-active-record-tools.d.ts +22 -0
  803. package/dist/tools/php-active-record-tools.d.ts.map +1 -0
  804. package/dist/tools/php-active-record-tools.js +165 -0
  805. package/dist/tools/php-active-record-tools.js.map +1 -0
  806. package/dist/tools/php-event-tools.d.ts +21 -0
  807. package/dist/tools/php-event-tools.d.ts.map +1 -0
  808. package/dist/tools/php-event-tools.js +205 -0
  809. package/dist/tools/php-event-tools.js.map +1 -0
  810. package/dist/tools/php-god-model-tools.d.ts +34 -0
  811. package/dist/tools/php-god-model-tools.d.ts.map +1 -0
  812. package/dist/tools/php-god-model-tools.js +88 -0
  813. package/dist/tools/php-god-model-tools.js.map +1 -0
  814. package/dist/tools/php-import-utils.d.ts +10 -0
  815. package/dist/tools/php-import-utils.d.ts.map +1 -0
  816. package/dist/tools/php-import-utils.js +71 -0
  817. package/dist/tools/php-import-utils.js.map +1 -0
  818. package/dist/tools/php-namespace-tools.d.ts +10 -0
  819. package/dist/tools/php-namespace-tools.d.ts.map +1 -0
  820. package/dist/tools/php-namespace-tools.js +98 -0
  821. package/dist/tools/php-namespace-tools.js.map +1 -0
  822. package/dist/tools/php-nplus1-tools.d.ts +27 -0
  823. package/dist/tools/php-nplus1-tools.d.ts.map +1 -0
  824. package/dist/tools/php-nplus1-tools.js +191 -0
  825. package/dist/tools/php-nplus1-tools.js.map +1 -0
  826. package/dist/tools/php-project-audit-tools.d.ts +31 -0
  827. package/dist/tools/php-project-audit-tools.d.ts.map +1 -0
  828. package/dist/tools/php-project-audit-tools.js +173 -0
  829. package/dist/tools/php-project-audit-tools.js.map +1 -0
  830. package/dist/tools/php-security-tools.d.ts +24 -0
  831. package/dist/tools/php-security-tools.d.ts.map +1 -0
  832. package/dist/tools/php-security-tools.js +172 -0
  833. package/dist/tools/php-security-tools.js.map +1 -0
  834. package/dist/tools/php-service-tools.d.ts +25 -0
  835. package/dist/tools/php-service-tools.d.ts.map +1 -0
  836. package/dist/tools/php-service-tools.js +326 -0
  837. package/dist/tools/php-service-tools.js.map +1 -0
  838. package/dist/tools/php-tools.d.ts +21 -255
  839. package/dist/tools/php-tools.d.ts.map +1 -1
  840. package/dist/tools/php-tools.js +12 -1423
  841. package/dist/tools/php-tools.js.map +1 -1
  842. package/dist/tools/php-view-tools.d.ts +76 -0
  843. package/dist/tools/php-view-tools.d.ts.map +1 -0
  844. package/dist/tools/php-view-tools.js +413 -0
  845. package/dist/tools/php-view-tools.js.map +1 -0
  846. package/dist/tools/plan-turn/formatter.d.ts +3 -0
  847. package/dist/tools/plan-turn/formatter.d.ts.map +1 -0
  848. package/dist/tools/plan-turn/formatter.js +88 -0
  849. package/dist/tools/plan-turn/formatter.js.map +1 -0
  850. package/dist/tools/plan-turn/framework-context.d.ts +5 -0
  851. package/dist/tools/plan-turn/framework-context.d.ts.map +1 -0
  852. package/dist/tools/plan-turn/framework-context.js +68 -0
  853. package/dist/tools/plan-turn/framework-context.js.map +1 -0
  854. package/dist/tools/plan-turn/framework-data.d.ts +5 -0
  855. package/dist/tools/plan-turn/framework-data.d.ts.map +1 -0
  856. package/dist/tools/plan-turn/framework-data.js +48 -0
  857. package/dist/tools/plan-turn/framework-data.js.map +1 -0
  858. package/dist/tools/plan-turn/orchestrator.d.ts +4 -0
  859. package/dist/tools/plan-turn/orchestrator.d.ts.map +1 -0
  860. package/dist/tools/plan-turn/orchestrator.js +262 -0
  861. package/dist/tools/plan-turn/orchestrator.js.map +1 -0
  862. package/dist/tools/plan-turn/query-parser.d.ts +6 -0
  863. package/dist/tools/plan-turn/query-parser.d.ts.map +1 -0
  864. package/dist/tools/plan-turn/query-parser.js +60 -0
  865. package/dist/tools/plan-turn/query-parser.js.map +1 -0
  866. package/dist/tools/plan-turn/recommendations.d.ts +11 -0
  867. package/dist/tools/plan-turn/recommendations.d.ts.map +1 -0
  868. package/dist/tools/plan-turn/recommendations.js +93 -0
  869. package/dist/tools/plan-turn/recommendations.js.map +1 -0
  870. package/dist/tools/plan-turn/stale-index.d.ts +4 -0
  871. package/dist/tools/plan-turn/stale-index.d.ts.map +1 -0
  872. package/dist/tools/plan-turn/stale-index.js +17 -0
  873. package/dist/tools/plan-turn/stale-index.js.map +1 -0
  874. package/dist/tools/plan-turn/types.d.ts +61 -0
  875. package/dist/tools/plan-turn/types.d.ts.map +1 -0
  876. package/dist/tools/plan-turn/types.js +2 -0
  877. package/dist/tools/plan-turn/types.js.map +1 -0
  878. package/dist/tools/plan-turn-tools.d.ts +8 -111
  879. package/dist/tools/plan-turn-tools.d.ts.map +1 -1
  880. package/dist/tools/plan-turn-tools.js +6 -696
  881. package/dist/tools/plan-turn-tools.js.map +1 -1
  882. package/dist/tools/project-profile-express.d.ts +3 -0
  883. package/dist/tools/project-profile-express.d.ts.map +1 -0
  884. package/dist/tools/project-profile-express.js +46 -0
  885. package/dist/tools/project-profile-express.js.map +1 -0
  886. package/dist/tools/project-profile-extractors.d.ts +9 -0
  887. package/dist/tools/project-profile-extractors.d.ts.map +1 -0
  888. package/dist/tools/project-profile-extractors.js +312 -0
  889. package/dist/tools/project-profile-extractors.js.map +1 -0
  890. package/dist/tools/project-profile-fs.d.ts +3 -0
  891. package/dist/tools/project-profile-fs.d.ts.map +1 -0
  892. package/dist/tools/project-profile-fs.js +19 -0
  893. package/dist/tools/project-profile-fs.js.map +1 -0
  894. package/dist/tools/project-profile-hono.d.ts +13 -0
  895. package/dist/tools/project-profile-hono.d.ts.map +1 -0
  896. package/dist/tools/project-profile-hono.js +110 -0
  897. package/dist/tools/project-profile-hono.js.map +1 -0
  898. package/dist/tools/project-profile-imports.d.ts +6 -0
  899. package/dist/tools/project-profile-imports.d.ts.map +1 -0
  900. package/dist/tools/project-profile-imports.js +95 -0
  901. package/dist/tools/project-profile-imports.js.map +1 -0
  902. package/dist/tools/project-profile-nest.d.ts +8 -0
  903. package/dist/tools/project-profile-nest.d.ts.map +1 -0
  904. package/dist/tools/project-profile-nest.js +352 -0
  905. package/dist/tools/project-profile-nest.js.map +1 -0
  906. package/dist/tools/project-profile-next.d.ts +5 -0
  907. package/dist/tools/project-profile-next.d.ts.map +1 -0
  908. package/dist/tools/project-profile-next.js +92 -0
  909. package/dist/tools/project-profile-next.js.map +1 -0
  910. package/dist/tools/project-profile-persistence.d.ts +3 -0
  911. package/dist/tools/project-profile-persistence.d.ts.map +1 -0
  912. package/dist/tools/project-profile-persistence.js +19 -0
  913. package/dist/tools/project-profile-persistence.js.map +1 -0
  914. package/dist/tools/project-profile-php.d.ts +8 -0
  915. package/dist/tools/project-profile-php.d.ts.map +1 -0
  916. package/dist/tools/project-profile-php.js +76 -0
  917. package/dist/tools/project-profile-php.js.map +1 -0
  918. package/dist/tools/project-profile-python.d.ts +5 -0
  919. package/dist/tools/project-profile-python.d.ts.map +1 -0
  920. package/dist/tools/project-profile-python.js +51 -0
  921. package/dist/tools/project-profile-python.js.map +1 -0
  922. package/dist/tools/project-profile-react.d.ts +6 -0
  923. package/dist/tools/project-profile-react.d.ts.map +1 -0
  924. package/dist/tools/project-profile-react.js +106 -0
  925. package/dist/tools/project-profile-react.js.map +1 -0
  926. package/dist/tools/project-profile-stack.d.ts +3 -0
  927. package/dist/tools/project-profile-stack.d.ts.map +1 -0
  928. package/dist/tools/project-profile-stack.js +354 -0
  929. package/dist/tools/project-profile-stack.js.map +1 -0
  930. package/dist/tools/project-profile-summary.d.ts +30 -0
  931. package/dist/tools/project-profile-summary.d.ts.map +1 -0
  932. package/dist/tools/project-profile-summary.js +112 -0
  933. package/dist/tools/project-profile-summary.js.map +1 -0
  934. package/dist/tools/project-profile-types.d.ts +315 -0
  935. package/dist/tools/project-profile-types.d.ts.map +1 -0
  936. package/dist/tools/project-profile-types.js +2 -0
  937. package/dist/tools/project-profile-types.js.map +1 -0
  938. package/dist/tools/project-tools.d.ts +17 -383
  939. package/dist/tools/project-tools.d.ts.map +1 -1
  940. package/dist/tools/project-tools.js +35 -1621
  941. package/dist/tools/project-tools.js.map +1 -1
  942. package/dist/tools/python-audit/aggregate.d.ts +3 -0
  943. package/dist/tools/python-audit/aggregate.d.ts.map +1 -0
  944. package/dist/tools/python-audit/aggregate.js +103 -0
  945. package/dist/tools/python-audit/aggregate.js.map +1 -0
  946. package/dist/tools/python-audit/checks/anti-patterns.d.ts +6 -0
  947. package/dist/tools/python-audit/checks/anti-patterns.d.ts.map +1 -0
  948. package/dist/tools/python-audit/checks/anti-patterns.js +14 -0
  949. package/dist/tools/python-audit/checks/anti-patterns.js.map +1 -0
  950. package/dist/tools/python-audit/checks/celery.d.ts +2 -0
  951. package/dist/tools/python-audit/checks/celery.d.ts.map +1 -0
  952. package/dist/tools/python-audit/checks/celery.js +5 -0
  953. package/dist/tools/python-audit/checks/celery.js.map +1 -0
  954. package/dist/tools/python-audit/checks/circular-imports.d.ts +2 -0
  955. package/dist/tools/python-audit/checks/circular-imports.d.ts.map +1 -0
  956. package/dist/tools/python-audit/checks/circular-imports.js +5 -0
  957. package/dist/tools/python-audit/checks/circular-imports.js.map +1 -0
  958. package/dist/tools/python-audit/checks/dead-code.d.ts +2 -0
  959. package/dist/tools/python-audit/checks/dead-code.d.ts.map +1 -0
  960. package/dist/tools/python-audit/checks/dead-code.js +5 -0
  961. package/dist/tools/python-audit/checks/dead-code.js.map +1 -0
  962. package/dist/tools/python-audit/checks/dependencies.d.ts +2 -0
  963. package/dist/tools/python-audit/checks/dependencies.d.ts.map +1 -0
  964. package/dist/tools/python-audit/checks/dependencies.js +5 -0
  965. package/dist/tools/python-audit/checks/dependencies.js.map +1 -0
  966. package/dist/tools/python-audit/checks/django-settings.d.ts +2 -0
  967. package/dist/tools/python-audit/checks/django-settings.d.ts.map +1 -0
  968. package/dist/tools/python-audit/checks/django-settings.js +5 -0
  969. package/dist/tools/python-audit/checks/django-settings.js.map +1 -0
  970. package/dist/tools/python-audit/checks/framework-wiring.d.ts +2 -0
  971. package/dist/tools/python-audit/checks/framework-wiring.d.ts.map +1 -0
  972. package/dist/tools/python-audit/checks/framework-wiring.js +5 -0
  973. package/dist/tools/python-audit/checks/framework-wiring.js.map +1 -0
  974. package/dist/tools/python-audit/checks/pytest-fixtures.d.ts +2 -0
  975. package/dist/tools/python-audit/checks/pytest-fixtures.d.ts.map +1 -0
  976. package/dist/tools/python-audit/checks/pytest-fixtures.js +5 -0
  977. package/dist/tools/python-audit/checks/pytest-fixtures.js.map +1 -0
  978. package/dist/tools/python-audit/runner.d.ts +5 -0
  979. package/dist/tools/python-audit/runner.d.ts.map +1 -0
  980. package/dist/tools/python-audit/runner.js +18 -0
  981. package/dist/tools/python-audit/runner.js.map +1 -0
  982. package/dist/tools/python-audit/types.d.ts +43 -0
  983. package/dist/tools/python-audit/types.d.ts.map +1 -0
  984. package/dist/tools/python-audit/types.js +2 -0
  985. package/dist/tools/python-audit/types.js.map +1 -0
  986. package/dist/tools/python-audit.d.ts +3 -39
  987. package/dist/tools/python-audit.d.ts.map +1 -1
  988. package/dist/tools/python-audit.js +34 -233
  989. package/dist/tools/python-audit.js.map +1 -1
  990. package/dist/tools/react-compiler-tools.d.ts +37 -0
  991. package/dist/tools/react-compiler-tools.d.ts.map +1 -0
  992. package/dist/tools/react-compiler-tools.js +104 -0
  993. package/dist/tools/react-compiler-tools.js.map +1 -0
  994. package/dist/tools/react-component-tree-tools.d.ts +58 -0
  995. package/dist/tools/react-component-tree-tools.d.ts.map +1 -0
  996. package/dist/tools/react-component-tree-tools.js +292 -0
  997. package/dist/tools/react-component-tree-tools.js.map +1 -0
  998. package/dist/tools/react-context-tools.d.ts +41 -0
  999. package/dist/tools/react-context-tools.d.ts.map +1 -0
  1000. package/dist/tools/react-context-tools.js +76 -0
  1001. package/dist/tools/react-context-tools.js.map +1 -0
  1002. package/dist/tools/react-hooks-tools.d.ts +58 -0
  1003. package/dist/tools/react-hooks-tools.d.ts.map +1 -0
  1004. package/dist/tools/react-hooks-tools.js +144 -0
  1005. package/dist/tools/react-hooks-tools.js.map +1 -0
  1006. package/dist/tools/react-quickstart-tools.d.ts +59 -0
  1007. package/dist/tools/react-quickstart-tools.d.ts.map +1 -0
  1008. package/dist/tools/react-quickstart-tools.js +164 -0
  1009. package/dist/tools/react-quickstart-tools.js.map +1 -0
  1010. package/dist/tools/react-render-tools.d.ts +75 -0
  1011. package/dist/tools/react-render-tools.d.ts.map +1 -0
  1012. package/dist/tools/react-render-tools.js +234 -0
  1013. package/dist/tools/react-render-tools.js.map +1 -0
  1014. package/dist/tools/react-shared-tools.d.ts +5 -0
  1015. package/dist/tools/react-shared-tools.d.ts.map +1 -0
  1016. package/dist/tools/react-shared-tools.js +12 -0
  1017. package/dist/tools/react-shared-tools.js.map +1 -0
  1018. package/dist/tools/react-suspense-tools.d.ts +29 -0
  1019. package/dist/tools/react-suspense-tools.d.ts.map +1 -0
  1020. package/dist/tools/react-suspense-tools.js +269 -0
  1021. package/dist/tools/react-suspense-tools.js.map +1 -0
  1022. package/dist/tools/react-tools.d.ts +19 -340
  1023. package/dist/tools/react-tools.d.ts.map +1 -1
  1024. package/dist/tools/react-tools.js +10 -1263
  1025. package/dist/tools/react-tools.js.map +1 -1
  1026. package/dist/tools/review-diff/check-runner.d.ts +5 -0
  1027. package/dist/tools/review-diff/check-runner.d.ts.map +1 -0
  1028. package/dist/tools/review-diff/check-runner.js +26 -0
  1029. package/dist/tools/review-diff/check-runner.js.map +1 -0
  1030. package/dist/tools/review-diff/checks/astro-hydration.d.ts +8 -0
  1031. package/dist/tools/review-diff/checks/astro-hydration.d.ts.map +1 -0
  1032. package/dist/tools/review-diff/checks/astro-hydration.js +54 -0
  1033. package/dist/tools/review-diff/checks/astro-hydration.js.map +1 -0
  1034. package/dist/tools/review-diff/checks/blast-radius.d.ts +7 -0
  1035. package/dist/tools/review-diff/checks/blast-radius.d.ts.map +1 -0
  1036. package/dist/tools/review-diff/checks/blast-radius.js +39 -0
  1037. package/dist/tools/review-diff/checks/blast-radius.js.map +1 -0
  1038. package/dist/tools/review-diff/checks/breaking.d.ts +13 -0
  1039. package/dist/tools/review-diff/checks/breaking.d.ts.map +1 -0
  1040. package/dist/tools/review-diff/checks/breaking.js +115 -0
  1041. package/dist/tools/review-diff/checks/breaking.js.map +1 -0
  1042. package/dist/tools/review-diff/checks/bug-patterns.d.ts +8 -0
  1043. package/dist/tools/review-diff/checks/bug-patterns.d.ts.map +1 -0
  1044. package/dist/tools/review-diff/checks/bug-patterns.js +130 -0
  1045. package/dist/tools/review-diff/checks/bug-patterns.js.map +1 -0
  1046. package/dist/tools/review-diff/checks/complexity.d.ts +8 -0
  1047. package/dist/tools/review-diff/checks/complexity.d.ts.map +1 -0
  1048. package/dist/tools/review-diff/checks/complexity.js +41 -0
  1049. package/dist/tools/review-diff/checks/complexity.js.map +1 -0
  1050. package/dist/tools/review-diff/checks/coupling.d.ts +7 -0
  1051. package/dist/tools/review-diff/checks/coupling.d.ts.map +1 -0
  1052. package/dist/tools/review-diff/checks/coupling.js +52 -0
  1053. package/dist/tools/review-diff/checks/coupling.js.map +1 -0
  1054. package/dist/tools/review-diff/checks/dead-code.d.ts +7 -0
  1055. package/dist/tools/review-diff/checks/dead-code.d.ts.map +1 -0
  1056. package/dist/tools/review-diff/checks/dead-code.js +39 -0
  1057. package/dist/tools/review-diff/checks/dead-code.js.map +1 -0
  1058. package/dist/tools/review-diff/checks/hotspots.d.ts +8 -0
  1059. package/dist/tools/review-diff/checks/hotspots.d.ts.map +1 -0
  1060. package/dist/tools/review-diff/checks/hotspots.js +39 -0
  1061. package/dist/tools/review-diff/checks/hotspots.js.map +1 -0
  1062. package/dist/tools/review-diff/checks/secrets.d.ts +7 -0
  1063. package/dist/tools/review-diff/checks/secrets.d.ts.map +1 -0
  1064. package/dist/tools/review-diff/checks/secrets.js +38 -0
  1065. package/dist/tools/review-diff/checks/secrets.js.map +1 -0
  1066. package/dist/tools/review-diff/checks/test-gaps.d.ts +16 -0
  1067. package/dist/tools/review-diff/checks/test-gaps.d.ts.map +1 -0
  1068. package/dist/tools/review-diff/checks/test-gaps.js +77 -0
  1069. package/dist/tools/review-diff/checks/test-gaps.js.map +1 -0
  1070. package/dist/tools/review-diff/constants.d.ts +6 -0
  1071. package/dist/tools/review-diff/constants.d.ts.map +1 -0
  1072. package/dist/tools/review-diff/constants.js +16 -0
  1073. package/dist/tools/review-diff/constants.js.map +1 -0
  1074. package/dist/tools/review-diff/file-pattern.d.ts +2 -0
  1075. package/dist/tools/review-diff/file-pattern.d.ts.map +1 -0
  1076. package/dist/tools/review-diff/file-pattern.js +9 -0
  1077. package/dist/tools/review-diff/file-pattern.js.map +1 -0
  1078. package/dist/tools/review-diff/orchestrator.d.ts +3 -0
  1079. package/dist/tools/review-diff/orchestrator.d.ts.map +1 -0
  1080. package/dist/tools/review-diff/orchestrator.js +173 -0
  1081. package/dist/tools/review-diff/orchestrator.js.map +1 -0
  1082. package/dist/tools/review-diff/scoring.d.ts +31 -0
  1083. package/dist/tools/review-diff/scoring.d.ts.map +1 -0
  1084. package/dist/tools/review-diff/scoring.js +82 -0
  1085. package/dist/tools/review-diff/scoring.js.map +1 -0
  1086. package/dist/tools/review-diff/timeout.d.ts +5 -0
  1087. package/dist/tools/review-diff/timeout.d.ts.map +1 -0
  1088. package/dist/tools/review-diff/timeout.js +14 -0
  1089. package/dist/tools/review-diff/timeout.js.map +1 -0
  1090. package/dist/tools/review-diff/types.d.ts +56 -0
  1091. package/dist/tools/review-diff/types.d.ts.map +1 -0
  1092. package/dist/tools/review-diff/types.js +2 -0
  1093. package/dist/tools/review-diff/types.js.map +1 -0
  1094. package/dist/tools/review-diff-tools.d.ts +19 -147
  1095. package/dist/tools/review-diff-tools.d.ts.map +1 -1
  1096. package/dist/tools/review-diff-tools.js +18 -941
  1097. package/dist/tools/review-diff-tools.js.map +1 -1
  1098. package/dist/tools/route-shared.d.ts +6 -0
  1099. package/dist/tools/route-shared.d.ts.map +1 -0
  1100. package/dist/tools/route-shared.js +37 -0
  1101. package/dist/tools/route-shared.js.map +1 -0
  1102. package/dist/tools/route-tools.d.ts +1 -7
  1103. package/dist/tools/route-tools.d.ts.map +1 -1
  1104. package/dist/tools/route-tools.js +2 -22
  1105. package/dist/tools/route-tools.js.map +1 -1
  1106. package/dist/tools/search-tools/constants.d.ts +33 -0
  1107. package/dist/tools/search-tools/constants.d.ts.map +1 -0
  1108. package/dist/tools/search-tools/constants.js +54 -0
  1109. package/dist/tools/search-tools/constants.js.map +1 -0
  1110. package/dist/tools/search-tools/ripgrep.d.ts +13 -0
  1111. package/dist/tools/search-tools/ripgrep.d.ts.map +1 -0
  1112. package/dist/tools/search-tools/ripgrep.js +138 -0
  1113. package/dist/tools/search-tools/ripgrep.js.map +1 -0
  1114. package/dist/tools/search-tools/semantic-search.d.ts +9 -0
  1115. package/dist/tools/search-tools/semantic-search.d.ts.map +1 -0
  1116. package/dist/tools/search-tools/semantic-search.js +19 -0
  1117. package/dist/tools/search-tools/semantic-search.js.map +1 -0
  1118. package/dist/tools/search-tools/symbol-search.d.ts +4 -0
  1119. package/dist/tools/search-tools/symbol-search.d.ts.map +1 -0
  1120. package/dist/tools/search-tools/symbol-search.js +146 -0
  1121. package/dist/tools/search-tools/symbol-search.js.map +1 -0
  1122. package/dist/tools/search-tools/text-search.d.ts +10 -0
  1123. package/dist/tools/search-tools/text-search.d.ts.map +1 -0
  1124. package/dist/tools/search-tools/text-search.js +260 -0
  1125. package/dist/tools/search-tools/text-search.js.map +1 -0
  1126. package/dist/tools/search-tools/types.d.ts +28 -0
  1127. package/dist/tools/search-tools/types.d.ts.map +1 -0
  1128. package/dist/tools/search-tools/types.js +2 -0
  1129. package/dist/tools/search-tools/types.js.map +1 -0
  1130. package/dist/tools/search-tools/zero-hit.d.ts +3 -0
  1131. package/dist/tools/search-tools/zero-hit.d.ts.map +1 -0
  1132. package/dist/tools/search-tools/zero-hit.js +92 -0
  1133. package/dist/tools/search-tools/zero-hit.js.map +1 -0
  1134. package/dist/tools/search-tools.d.ts +5 -64
  1135. package/dist/tools/search-tools.d.ts.map +1 -1
  1136. package/dist/tools/search-tools.js +4 -770
  1137. package/dist/tools/search-tools.js.map +1 -1
  1138. package/dist/tools/secret-detectors.d.ts +12 -0
  1139. package/dist/tools/secret-detectors.d.ts.map +1 -0
  1140. package/dist/tools/secret-detectors.js +86 -0
  1141. package/dist/tools/secret-detectors.js.map +1 -0
  1142. package/dist/tools/secret-file-scanner.d.ts +7 -0
  1143. package/dist/tools/secret-file-scanner.d.ts.map +1 -0
  1144. package/dist/tools/secret-file-scanner.js +52 -0
  1145. package/dist/tools/secret-file-scanner.js.map +1 -0
  1146. package/dist/tools/secret-scan-cache.d.ts +6 -0
  1147. package/dist/tools/secret-scan-cache.d.ts.map +1 -0
  1148. package/dist/tools/secret-scan-cache.js +14 -0
  1149. package/dist/tools/secret-scan-cache.js.map +1 -0
  1150. package/dist/tools/secret-scan-shared.d.ts +5 -0
  1151. package/dist/tools/secret-scan-shared.d.ts.map +1 -0
  1152. package/dist/tools/secret-scan-shared.js +4 -0
  1153. package/dist/tools/secret-scan-shared.js.map +1 -0
  1154. package/dist/tools/secret-scan-types.d.ts +21 -0
  1155. package/dist/tools/secret-scan-types.d.ts.map +1 -0
  1156. package/dist/tools/secret-scan-types.js +2 -0
  1157. package/dist/tools/secret-scan-types.js.map +1 -0
  1158. package/dist/tools/secret-tools.d.ts +3 -75
  1159. package/dist/tools/secret-tools.d.ts.map +1 -1
  1160. package/dist/tools/secret-tools.js +4 -316
  1161. package/dist/tools/secret-tools.js.map +1 -1
  1162. package/dist/tools/sql-audit-tools.d.ts +42 -0
  1163. package/dist/tools/sql-audit-tools.d.ts.map +1 -0
  1164. package/dist/tools/sql-audit-tools.js +130 -0
  1165. package/dist/tools/sql-audit-tools.js.map +1 -0
  1166. package/dist/tools/sql-column-tools.d.ts +28 -0
  1167. package/dist/tools/sql-column-tools.d.ts.map +1 -0
  1168. package/dist/tools/sql-column-tools.js +58 -0
  1169. package/dist/tools/sql-column-tools.js.map +1 -0
  1170. package/dist/tools/sql-complexity-tools.d.ts +22 -0
  1171. package/dist/tools/sql-complexity-tools.d.ts.map +1 -0
  1172. package/dist/tools/sql-complexity-tools.js +60 -0
  1173. package/dist/tools/sql-complexity-tools.js.map +1 -0
  1174. package/dist/tools/sql-dml-safety-tools.d.ts +26 -0
  1175. package/dist/tools/sql-dml-safety-tools.d.ts.map +1 -0
  1176. package/dist/tools/sql-dml-safety-tools.js +104 -0
  1177. package/dist/tools/sql-dml-safety-tools.js.map +1 -0
  1178. package/dist/tools/sql-drift-tools.d.ts +39 -0
  1179. package/dist/tools/sql-drift-tools.d.ts.map +1 -0
  1180. package/dist/tools/sql-drift-tools.js +238 -0
  1181. package/dist/tools/sql-drift-tools.js.map +1 -0
  1182. package/dist/tools/sql-lint-schema-tools.d.ts +28 -0
  1183. package/dist/tools/sql-lint-schema-tools.d.ts.map +1 -0
  1184. package/dist/tools/sql-lint-schema-tools.js +96 -0
  1185. package/dist/tools/sql-lint-schema-tools.js.map +1 -0
  1186. package/dist/tools/sql-migration-diff-tools.d.ts +24 -0
  1187. package/dist/tools/sql-migration-diff-tools.d.ts.map +1 -0
  1188. package/dist/tools/sql-migration-diff-tools.js +120 -0
  1189. package/dist/tools/sql-migration-diff-tools.js.map +1 -0
  1190. package/dist/tools/sql-orphan-table-tools.d.ts +20 -0
  1191. package/dist/tools/sql-orphan-table-tools.d.ts.map +1 -0
  1192. package/dist/tools/sql-orphan-table-tools.js +70 -0
  1193. package/dist/tools/sql-orphan-table-tools.js.map +1 -0
  1194. package/dist/tools/sql-query-tools.d.ts +32 -0
  1195. package/dist/tools/sql-query-tools.d.ts.map +1 -0
  1196. package/dist/tools/sql-query-tools.js +130 -0
  1197. package/dist/tools/sql-query-tools.js.map +1 -0
  1198. package/dist/tools/sql-schema-tools.d.ts +47 -0
  1199. package/dist/tools/sql-schema-tools.d.ts.map +1 -0
  1200. package/dist/tools/sql-schema-tools.js +202 -0
  1201. package/dist/tools/sql-schema-tools.js.map +1 -0
  1202. package/dist/tools/sql-shared-tools.d.ts +6 -0
  1203. package/dist/tools/sql-shared-tools.d.ts.map +1 -0
  1204. package/dist/tools/sql-shared-tools.js +59 -0
  1205. package/dist/tools/sql-shared-tools.js.map +1 -0
  1206. package/dist/tools/sql-tools.d.ts +25 -296
  1207. package/dist/tools/sql-tools.d.ts.map +1 -1
  1208. package/dist/tools/sql-tools.js +15 -1232
  1209. package/dist/tools/sql-tools.js.map +1 -1
  1210. package/dist/tools/status-tools.js +1 -1
  1211. package/dist/tools/status-tools.js.map +1 -1
  1212. package/dist/tools/workspace-tools.d.ts +1 -1
  1213. package/dist/tools/yii3-migration-categories-application.d.ts +4 -0
  1214. package/dist/tools/yii3-migration-categories-application.d.ts.map +1 -0
  1215. package/dist/tools/yii3-migration-categories-application.js +56 -0
  1216. package/dist/tools/yii3-migration-categories-application.js.map +1 -0
  1217. package/dist/tools/yii3-migration-categories-infrastructure.d.ts +4 -0
  1218. package/dist/tools/yii3-migration-categories-infrastructure.d.ts.map +1 -0
  1219. package/dist/tools/yii3-migration-categories-infrastructure.js +67 -0
  1220. package/dist/tools/yii3-migration-categories-infrastructure.js.map +1 -0
  1221. package/dist/tools/yii3-migration-categories-model-view.d.ts +4 -0
  1222. package/dist/tools/yii3-migration-categories-model-view.d.ts.map +1 -0
  1223. package/dist/tools/yii3-migration-categories-model-view.js +59 -0
  1224. package/dist/tools/yii3-migration-categories-model-view.js.map +1 -0
  1225. package/dist/tools/yii3-migration-categories-runtime.d.ts +4 -0
  1226. package/dist/tools/yii3-migration-categories-runtime.d.ts.map +1 -0
  1227. package/dist/tools/yii3-migration-categories-runtime.js +49 -0
  1228. package/dist/tools/yii3-migration-categories-runtime.js.map +1 -0
  1229. package/dist/tools/yii3-migration-categories.d.ts +5 -0
  1230. package/dist/tools/yii3-migration-categories.d.ts.map +1 -0
  1231. package/dist/tools/yii3-migration-categories.js +18 -0
  1232. package/dist/tools/yii3-migration-categories.js.map +1 -0
  1233. package/dist/tools/yii3-migration-report.d.ts +4 -0
  1234. package/dist/tools/yii3-migration-report.d.ts.map +1 -0
  1235. package/dist/tools/yii3-migration-report.js +88 -0
  1236. package/dist/tools/yii3-migration-report.js.map +1 -0
  1237. package/dist/tools/yii3-migration-scanner.d.ts +28 -0
  1238. package/dist/tools/yii3-migration-scanner.d.ts.map +1 -0
  1239. package/dist/tools/yii3-migration-scanner.js +87 -0
  1240. package/dist/tools/yii3-migration-scanner.js.map +1 -0
  1241. package/dist/tools/yii3-migration-tools.d.ts +4 -73
  1242. package/dist/tools/yii3-migration-tools.d.ts.map +1 -1
  1243. package/dist/tools/yii3-migration-tools.js +5 -433
  1244. package/dist/tools/yii3-migration-tools.js.map +1 -1
  1245. package/dist/tools/yii3-migration-types.d.ts +50 -0
  1246. package/dist/tools/yii3-migration-types.d.ts.map +1 -0
  1247. package/dist/tools/yii3-migration-types.js +3 -0
  1248. package/dist/tools/yii3-migration-types.js.map +1 -0
  1249. package/dist/utils/git-validation.d.ts +24 -0
  1250. package/dist/utils/git-validation.d.ts.map +1 -1
  1251. package/dist/utils/git-validation.js +30 -0
  1252. package/dist/utils/git-validation.js.map +1 -1
  1253. package/dist/utils/source-stripper/code-handler.d.ts +3 -0
  1254. package/dist/utils/source-stripper/code-handler.d.ts.map +1 -0
  1255. package/dist/utils/source-stripper/code-handler.js +79 -0
  1256. package/dist/utils/source-stripper/code-handler.js.map +1 -0
  1257. package/dist/utils/source-stripper/comment-handler.d.ts +4 -0
  1258. package/dist/utils/source-stripper/comment-handler.d.ts.map +1 -0
  1259. package/dist/utils/source-stripper/comment-handler.js +24 -0
  1260. package/dist/utils/source-stripper/comment-handler.js.map +1 -0
  1261. package/dist/utils/source-stripper/machine.d.ts +2 -0
  1262. package/dist/utils/source-stripper/machine.d.ts.map +1 -0
  1263. package/dist/utils/source-stripper/machine.js +34 -0
  1264. package/dist/utils/source-stripper/machine.js.map +1 -0
  1265. package/dist/utils/source-stripper/regex-handler.d.ts +3 -0
  1266. package/dist/utils/source-stripper/regex-handler.d.ts.map +1 -0
  1267. package/dist/utils/source-stripper/regex-handler.js +44 -0
  1268. package/dist/utils/source-stripper/regex-handler.js.map +1 -0
  1269. package/dist/utils/source-stripper/state.d.ts +4 -0
  1270. package/dist/utils/source-stripper/state.d.ts.map +1 -0
  1271. package/dist/utils/source-stripper/state.js +20 -0
  1272. package/dist/utils/source-stripper/state.js.map +1 -0
  1273. package/dist/utils/source-stripper/string-handler.d.ts +3 -0
  1274. package/dist/utils/source-stripper/string-handler.d.ts.map +1 -0
  1275. package/dist/utils/source-stripper/string-handler.js +19 -0
  1276. package/dist/utils/source-stripper/string-handler.js.map +1 -0
  1277. package/dist/utils/source-stripper/template-handler.d.ts +4 -0
  1278. package/dist/utils/source-stripper/template-handler.d.ts.map +1 -0
  1279. package/dist/utils/source-stripper/template-handler.js +40 -0
  1280. package/dist/utils/source-stripper/template-handler.js.map +1 -0
  1281. package/dist/utils/source-stripper/types.d.ts +17 -0
  1282. package/dist/utils/source-stripper/types.d.ts.map +1 -0
  1283. package/dist/utils/source-stripper/types.js +4 -0
  1284. package/dist/utils/source-stripper/types.js.map +1 -0
  1285. package/dist/utils/source-stripper.d.ts +0 -21
  1286. package/dist/utils/source-stripper.d.ts.map +1 -1
  1287. package/dist/utils/source-stripper.js +6 -234
  1288. package/dist/utils/source-stripper.js.map +1 -1
  1289. package/dist/utils/walk/errors.d.ts +4 -0
  1290. package/dist/utils/walk/errors.d.ts.map +1 -0
  1291. package/dist/utils/walk/errors.js +18 -0
  1292. package/dist/utils/walk/errors.js.map +1 -0
  1293. package/dist/utils/walk/filters.d.ts +11 -0
  1294. package/dist/utils/walk/filters.d.ts.map +1 -0
  1295. package/dist/utils/walk/filters.js +53 -0
  1296. package/dist/utils/walk/filters.js.map +1 -0
  1297. package/dist/utils/walk/limits.d.ts +10 -0
  1298. package/dist/utils/walk/limits.d.ts.map +1 -0
  1299. package/dist/utils/walk/limits.js +22 -0
  1300. package/dist/utils/walk/limits.js.map +1 -0
  1301. package/dist/utils/walk/traversal.d.ts +9 -0
  1302. package/dist/utils/walk/traversal.d.ts.map +1 -0
  1303. package/dist/utils/walk/traversal.js +38 -0
  1304. package/dist/utils/walk/traversal.js.map +1 -0
  1305. package/dist/utils/walk/types.d.ts +18 -0
  1306. package/dist/utils/walk/types.d.ts.map +1 -0
  1307. package/dist/utils/walk/types.js +2 -0
  1308. package/dist/utils/walk/types.js.map +1 -0
  1309. package/dist/utils/walk.d.ts +4 -65
  1310. package/dist/utils/walk.d.ts.map +1 -1
  1311. package/dist/utils/walk.js +23 -151
  1312. package/dist/utils/walk.js.map +1 -1
  1313. package/package.json +6 -5
@@ -1,1135 +1,86 @@
1
- import { getNodeName, makeSymbol, MAX_SOURCE_LENGTH } from "./_shared.js";
2
- /** Matches top-level SCREAMING_CASE identifiers like MAX_RETRIES, API_URL */
3
- const SCREAMING_CASE_RE = /^[A-Z][A-Z0-9_]+$/;
4
- // --- React detection ---
5
- /** React wrapper functions that indicate a component */
6
- const REACT_WRAPPER_NAMES = new Set(["memo", "forwardRef", "lazy"]);
7
- /** Custom hook naming convention: starts with use + uppercase letter */
8
- const CUSTOM_HOOK_RE = /^use[A-Z]/;
9
- /** Component naming convention: starts with uppercase letter */
10
- const COMPONENT_NAME_RE = /^[A-Z]/;
11
- /** JSX node types that indicate a React component return */
12
- const JSX_TYPES = new Set([
13
- "jsx_element", "jsx_self_closing_element", "jsx_fragment",
14
- ]);
15
- /**
16
- * Check if a function/arrow body contains a JSX return.
17
- * For arrow with expression body: check if body IS jsx.
18
- * For block body: check return_statement descendants for jsx children.
19
- */
20
- function returnsJSX(node) {
21
- const body = node.childForFieldName("body");
22
- if (!body)
23
- return false;
24
- // Arrow with expression body: () => <div/>
25
- if (JSX_TYPES.has(body.type))
1
+ import { handleAbstractMethodSignature, handleClassLikeDeclaration, handleClassStaticBlock, handleFieldDefinition, handleMethodDefinition, } from "./typescript-class-nodes.js";
2
+ import { handleCjsExport } from "./typescript-cjs-nodes.js";
3
+ import { handleFunctionDeclaration, handleLexicalDeclaration, } from "./typescript-declaration-nodes.js";
4
+ import { handleAmbientDeclaration, handleExportStatement, handleModuleDeclaration, } from "./typescript-module-nodes.js";
5
+ import { handleTestExpressionStatement } from "./typescript-test-nodes.js";
6
+ import { handleEnumDeclaration, handleInterfaceDeclaration, handleTypeAliasDeclaration, } from "./typescript-type-nodes.js";
7
+ function continueAfter(handler) {
8
+ return actionAfter(handler, false);
9
+ }
10
+ function stopAfter(handler) {
11
+ return actionAfter(handler, true);
12
+ }
13
+ function actionAfter(handler, shouldStop) {
14
+ return (ctx, node, parentId, isExported, walk) => {
15
+ handler(ctx, node, parentId, isExported, walk);
16
+ return shouldStop;
17
+ };
18
+ }
19
+ const NODE_ACTIONS = {
20
+ function_declaration: continueAfter((ctx, node, parentId, isExported) => handleFunctionDeclaration(ctx, node, parentId, isExported)),
21
+ generator_function_declaration: continueAfter((ctx, node, parentId, isExported) => handleFunctionDeclaration(ctx, node, parentId, isExported)),
22
+ function_signature: continueAfter((ctx, node, parentId, isExported) => handleFunctionDeclaration(ctx, node, parentId, isExported)),
23
+ lexical_declaration: stopAfter((ctx, node, parentId, isExported) => handleLexicalDeclaration(ctx, node, parentId, isExported)),
24
+ class_declaration: stopAfter(handleClassLikeDeclaration),
25
+ abstract_class_declaration: stopAfter(handleClassLikeDeclaration),
26
+ class_expression: stopAfter(handleClassLikeDeclaration),
27
+ class: stopAfter(handleClassLikeDeclaration),
28
+ abstract_method_signature: continueAfter((ctx, node, parentId) => handleAbstractMethodSignature(ctx, node, parentId)),
29
+ method_definition: continueAfter((ctx, node, parentId) => handleMethodDefinition(ctx, node, parentId)),
30
+ public_field_definition: continueAfter((ctx, node, parentId) => handleFieldDefinition(ctx, node, parentId)),
31
+ field_definition: continueAfter((ctx, node, parentId) => handleFieldDefinition(ctx, node, parentId)),
32
+ class_static_block: continueAfter((ctx, node, parentId) => handleClassStaticBlock(ctx, node, parentId)),
33
+ interface_declaration: continueAfter((ctx, node, parentId, isExported) => handleInterfaceDeclaration(ctx, node, parentId, isExported)),
34
+ type_alias_declaration: continueAfter((ctx, node, parentId, isExported) => handleTypeAliasDeclaration(ctx, node, parentId, isExported)),
35
+ internal_module: stopAfter(handleModuleDeclaration),
36
+ module: stopAfter(handleModuleDeclaration),
37
+ ambient_declaration: stopAfter((_ctx, node, parentId, isExported, walk) => handleAmbientDeclaration(node, parentId, isExported, walk)),
38
+ enum_declaration: stopAfter((ctx, node, parentId, isExported) => handleEnumDeclaration(ctx, node, parentId, isExported)),
39
+ export_statement: stopAfter((ctx, node, parentId, _isExported, walk) => handleExportStatement(ctx, node, parentId, walk)),
40
+ expression_statement: handleExpressionStatement,
41
+ };
42
+ function handleExpressionStatement(ctx, node, parentId, _isExported, walk) {
43
+ const firstChild = node.namedChildren[0];
44
+ if (firstChild?.type === "assignment_expression" && handleCjsExport(ctx, firstChild, node, parentId)) {
26
45
  return true;
27
- // Parenthesized expression body: () => (<div/>)
28
- if (body.type === "parenthesized_expression") {
29
- for (const child of body.namedChildren) {
30
- if (JSX_TYPES.has(child.type))
31
- return true;
32
- }
33
- }
34
- // Block body: check return statements
35
- const returns = body.descendantsOfType("return_statement");
36
- for (const ret of returns) {
37
- for (const child of ret.namedChildren) {
38
- if (JSX_TYPES.has(child.type))
39
- return true;
40
- // Parenthesized: return (<div/>)
41
- if (child.type === "parenthesized_expression") {
42
- for (const inner of child.namedChildren) {
43
- if (JSX_TYPES.has(inner.type))
44
- return true;
45
- }
46
- }
47
- }
48
- }
49
- return false;
50
- }
51
- /**
52
- * Check if a call_expression is a React wrapper (memo, forwardRef, lazy).
53
- * Handles: memo(...), React.memo(...), forwardRef(...), React.forwardRef(...)
54
- */
55
- function isReactWrapper(callExpr) {
56
- const fn = callExpr.childForFieldName("function");
57
- if (!fn)
58
- return false;
59
- // Direct: memo(...), forwardRef(...), lazy(...)
60
- if (fn.type === "identifier" && REACT_WRAPPER_NAMES.has(fn.text))
61
- return true;
62
- // Member: React.memo(...), React.forwardRef(...)
63
- if (fn.type === "member_expression") {
64
- const prop = fn.childForFieldName("property");
65
- if (prop && REACT_WRAPPER_NAMES.has(prop.text))
66
- return true;
67
- }
68
- return false;
69
- }
70
- /** Get the wrapper function name from a React wrapper call (memo, forwardRef, lazy) */
71
- function getWrapperName(callExpr) {
72
- const fn = callExpr.childForFieldName("function");
73
- if (!fn)
74
- return null;
75
- if (fn.type === "identifier")
76
- return fn.text;
77
- if (fn.type === "member_expression") {
78
- return fn.childForFieldName("property")?.text ?? null;
79
- }
80
- return null;
81
- }
82
- /** Extract the inner function from a React wrapper call's arguments */
83
- function getWrappedFunction(callExpr) {
84
- const args = callExpr.childForFieldName("arguments");
85
- if (!args)
86
- return null;
87
- const firstArg = args.namedChildren[0];
88
- if (!firstArg)
89
- return null;
90
- if (firstArg.type === "arrow_function" || firstArg.type === "function_expression") {
91
- return firstArg;
92
46
  }
93
- return null;
47
+ return handleTestExpressionStatement(ctx, node, parentId, walk);
94
48
  }
95
- /** Strip `export default ((...))` wrappers — one or more parenthesized_expression layers. */
96
- function unwrapParentheses(node) {
97
- let cur = node;
98
- while (cur.type === "parenthesized_expression" && cur.namedChildren.length > 0) {
99
- const inner = cur.namedChildren[0];
100
- if (!inner)
101
- break;
102
- cur = inner;
103
- }
104
- return cur;
105
- }
106
- /** React base class names that indicate a class component */
107
- const REACT_COMPONENT_BASES = new Set([
108
- "Component", "PureComponent",
109
- ]);
110
- /**
111
- * Strip type arguments, expand intersection/union, preserve qualified names.
112
- * Returns string[] (not string|null) so intersection/union types expand to
113
- * multiple elements via flatMap at the call site. AC #6 normalization rule:
114
- * - identifier → ["Foo"] (extends Foo — runtime value position)
115
- * - type_identifier → ["I"] (implements I — type position)
116
- * - member_expression / nested_type_identifier → ["ns.Base"] (qualified preserved)
117
- * - generic_type → recurse into name field, drop type_arguments → ["Box"]
118
- * - intersection_type / union_type → flatMap across members → ["A", "B"]
119
- *
120
- * IMPORTANT: tree-sitter-typescript parses `extends Foo` as `identifier` NOT
121
- * `type_identifier`. Without the identifier case, all standard ES6 inheritance
122
- * is silently dropped (gemini adversarial pre-execute finding).
123
- */
124
- function extractHeritageNames(node) {
125
- if (node.type === "identifier")
126
- return [node.text];
127
- if (node.type === "type_identifier")
128
- return [node.text];
129
- // member_expression / nested_type_identifier text is `ns.Base`. Strip any
130
- // whitespace defensively — uncommon but legal in source like `extends ns . Base`.
131
- if (node.type === "member_expression" || node.type === "nested_type_identifier") {
132
- return [node.text.replace(/\s+/g, "")];
133
- }
134
- if (node.type === "generic_type") {
135
- const innerType = node.childForFieldName("name") ?? node.namedChildren[0];
136
- return innerType ? extractHeritageNames(innerType) : [];
137
- }
138
- if (node.type === "intersection_type" || node.type === "union_type") {
139
- return node.namedChildren.flatMap((child) => extractHeritageNames(child));
140
- }
141
- return [];
142
- }
143
- /** Walk class_heritage and return separate extends/implements lists. */
144
- function getClassHeritage(node) {
145
- const extendsList = [];
146
- const implementsList = [];
49
+ function walkChildren(node, parentId, isExported, walk) {
147
50
  for (const child of node.namedChildren) {
148
- if (child.type !== "class_heritage")
149
- continue;
150
- for (const clause of child.namedChildren) {
151
- const target = clause.type === "extends_clause" ? extendsList :
152
- clause.type === "implements_clause" ? implementsList : null;
153
- if (!target)
154
- continue;
155
- for (const typeNode of clause.namedChildren) {
156
- target.push(...extractHeritageNames(typeNode));
157
- }
158
- }
159
- }
160
- return { extends: extendsList, implements: implementsList };
161
- }
162
- /**
163
- * True when `extendsList` (from one `getClassHeritage` pass) names React.Component
164
- * or React.PureComponent — bare identifier or qualified (e.g. React.Component).
165
- */
166
- function extendsListIndicatesReactComponent(extendsList) {
167
- for (const name of extendsList) {
168
- if (REACT_COMPONENT_BASES.has(name))
169
- return true;
170
- const lastDot = name.lastIndexOf(".");
171
- if (lastDot >= 0 && REACT_COMPONENT_BASES.has(name.slice(lastDot + 1)))
172
- return true;
173
- }
174
- return false;
175
- }
176
- /**
177
- * Classify a function/arrow as component, hook, or function.
178
- * - Hook: name matches use[A-Z]
179
- * - Component: PascalCase name AND returns JSX
180
- * - Function: everything else
181
- */
182
- function classifyReactKind(name, fnNode) {
183
- if (CUSTOM_HOOK_RE.test(name))
184
- return "hook";
185
- if (COMPONENT_NAME_RE.test(name) && fnNode && returnsJSX(fnNode))
186
- return "component";
187
- return "function";
188
- }
189
- /** Test lifecycle hook names */
190
- const TEST_HOOK_NAMES = new Set([
191
- "beforeEach", "afterEach", "beforeAll", "afterAll",
192
- ]);
193
- /** Method suffixes on it/test that are still test_case (it.skip, it.each, etc.) */
194
- const TEST_CASE_METHODS = new Set([
195
- "skip", "todo", "each", "only", "failing", "concurrent",
196
- ]);
197
- /** Method suffixes on describe that are still test_suite */
198
- const TEST_SUITE_METHODS = new Set([
199
- "skip", "only", "each",
200
- ]);
201
- function parseTestCallee(callExpr) {
202
- const fn = callExpr.childForFieldName("function");
203
- if (!fn)
204
- return null;
205
- // Simple call: describe(...), it(...), test(...), beforeEach(...)
206
- if (fn.type === "identifier") {
207
- return { base: fn.text, method: null };
208
- }
209
- // Member call: it.skip(...), it.todo(...), describe.only(...)
210
- if (fn.type === "member_expression") {
211
- const obj = fn.childForFieldName("object");
212
- const prop = fn.childForFieldName("property");
213
- if (obj?.type === "identifier" && prop) {
214
- return { base: obj.text, method: prop.text };
215
- }
216
- }
217
- // Chained call: it.each([...])("name", fn)
218
- // The outer call_expression has a call_expression child as callee
219
- if (fn.type === "call_expression") {
220
- const innerFn = fn.childForFieldName("function");
221
- if (innerFn?.type === "member_expression") {
222
- const obj = innerFn.childForFieldName("object");
223
- const prop = innerFn.childForFieldName("property");
224
- if (obj?.type === "identifier" && prop) {
225
- return { base: obj.text, method: prop.text };
226
- }
227
- }
228
- }
229
- return null;
230
- }
231
- // --- Helpers ---
232
- function getDocstring(node, source) {
233
- const prev = node.previousNamedSibling;
234
- if (!prev)
235
- return undefined;
236
- if (prev.type === "comment") {
237
- const text = source.slice(prev.startIndex, prev.endIndex);
238
- // JSDoc: /** ... */ or line comment: // ...
239
- if (text.startsWith("/**") || text.startsWith("//")) {
240
- return text;
241
- }
242
- }
243
- return undefined;
244
- }
245
- function getDecoratorText(node) {
246
- return node.text.trim();
247
- }
248
- function collectOwnDecorators(node) {
249
- return node.namedChildren.filter((child) => child.type === "decorator");
250
- }
251
- function collectLeadingSiblingDecorators(node) {
252
- const decorators = [];
253
- let sibling = node.previousNamedSibling;
254
- while (sibling && sibling.type === "decorator") {
255
- decorators.unshift(sibling);
256
- sibling = sibling.previousNamedSibling;
257
- }
258
- return decorators;
259
- }
260
- function getDecorators(node) {
261
- const decoratorNodes = [
262
- ...collectOwnDecorators(node),
263
- ...collectLeadingSiblingDecorators(node),
264
- ];
265
- if (decoratorNodes.length === 0)
266
- return [];
267
- const seen = new Set();
268
- const decorators = [];
269
- for (const decorator of decoratorNodes) {
270
- const text = getDecoratorText(decorator);
271
- if (seen.has(text))
272
- continue;
273
- seen.add(text);
274
- decorators.push(text);
275
- }
276
- return decorators;
277
- }
278
- /**
279
- * Build a trimmed "shell" of a class — keeps field declarations and method
280
- * signatures but replaces method bodies with `{ … }`.
281
- * This lets agents see the class shape cheaply (~20 tokens for a 200-line class)
282
- * while individual methods are still indexed with full source.
283
- */
284
- function trimClassBody(node, source) {
285
- const body = node.childForFieldName("body");
286
- if (!body)
287
- return source.slice(node.startIndex, node.endIndex);
288
- // Build the class header (everything before the body `{`)
289
- let result = source.slice(node.startIndex, body.startIndex + 1); // includes opening `{`
290
- for (const child of body.namedChildren) {
291
- if (child.type === "method_definition" ||
292
- child.type === "abstract_method_signature") {
293
- // Find the statement_block (body) of the method
294
- const methodBody = child.childForFieldName("body");
295
- if (methodBody) {
296
- // Signature = everything before the body, then ` { … }`
297
- result += "\n " + source.slice(child.startIndex, methodBody.startIndex).trimEnd() + " { … }";
298
- }
299
- else {
300
- // Abstract method or no body — include as-is
301
- result += "\n " + source.slice(child.startIndex, child.endIndex);
302
- }
303
- }
304
- else {
305
- // Fields, decorators, etc. — include as-is
306
- result += "\n " + source.slice(child.startIndex, child.endIndex);
307
- }
308
- }
309
- result += "\n}";
310
- if (result.length > MAX_SOURCE_LENGTH) {
311
- return result.slice(0, MAX_SOURCE_LENGTH) + "...";
312
- }
313
- return result;
314
- }
315
- function getSignature(node, source) {
316
- const params = node.childForFieldName("parameters");
317
- if (!params)
318
- return undefined;
319
- let sig = "";
320
- // Generics: `<T extends Foo, U = string>` — prepend before parameters when present.
321
- const typeParams = node.childForFieldName("type_parameters");
322
- if (typeParams) {
323
- sig += source.slice(typeParams.startIndex, typeParams.endIndex);
324
- }
325
- sig += source.slice(params.startIndex, params.endIndex);
326
- // return_type field already includes the leading `:` (it points to a
327
- // type_annotation node containing colon + type) — no `: ` prefix here.
328
- const returnType = node.childForFieldName("return_type");
329
- if (returnType) {
330
- sig += source.slice(returnType.startIndex, returnType.endIndex);
331
- }
332
- return sig;
333
- }
334
- function getTestName(node) {
335
- const args = node.childForFieldName("arguments");
336
- if (!args)
337
- return null;
338
- const firstArg = args.namedChildren[0];
339
- if (!firstArg)
340
- return null;
341
- if (firstArg.type === "string" || firstArg.type === "template_string") {
342
- // Strip quotes
343
- return firstArg.text.replace(/^['"`]|['"`]$/g, "");
344
- }
345
- return firstArg.text;
346
- }
347
- /**
348
- * Recognize the LHS of a CommonJS exports assignment.
349
- *
350
- * Returns:
351
- * { kind: "module_exports", property: null } for `module.exports = ...`
352
- * { kind: "module_exports", property: "foo" } for `module.exports.foo = ...`
353
- * { kind: "exports", property: "foo" } for `exports.foo = ...`
354
- * null for any other LHS
355
- */
356
- function parseCjsLhs(lhs) {
357
- if (lhs.type !== "member_expression")
358
- return null;
359
- const obj = lhs.childForFieldName("object");
360
- const prop = lhs.childForFieldName("property");
361
- if (!obj || !prop)
362
- return null;
363
- // exports.foo
364
- if (obj.type === "identifier" && obj.text === "exports") {
365
- return { kind: "exports", property: prop.text };
366
- }
367
- // module.exports = ...
368
- if (obj.type === "identifier" && obj.text === "module" && prop.text === "exports") {
369
- return { kind: "module_exports", property: null };
370
- }
371
- // module.exports.foo = ...
372
- if (obj.type === "member_expression") {
373
- const innerObj = obj.childForFieldName("object");
374
- const innerProp = obj.childForFieldName("property");
375
- if (innerObj?.type === "identifier" && innerObj.text === "module" &&
376
- innerProp?.text === "exports") {
377
- return { kind: "module_exports", property: prop.text };
378
- }
379
- }
380
- return null;
381
- }
382
- /** Pick a SymbolKind for the RHS of a CJS property assignment. */
383
- function cjsValueKind(value, name) {
384
- if (value.type === "arrow_function" || value.type === "function_expression") {
385
- return classifyReactKind(name, value);
386
- }
387
- if (value.type === "class_expression")
388
- return "class";
389
- if (SCREAMING_CASE_RE.test(name))
390
- return "constant";
391
- return "variable";
392
- }
393
- /**
394
- * Handle a CommonJS exports assignment. Returns true when the assignment was
395
- * recognized as a CJS export pattern (caller should `return` and skip default
396
- * walking), false when the assignment is unrelated.
397
- *
398
- * Behavior:
399
- * - `module.exports = identifier` → defer: tag matching symbol in post-pass
400
- * - `module.exports = { foo, bar }` → defer shorthand keys; emit pair-with-fn keys
401
- * - `module.exports = arrow|function|class` → emit `default_export` symbol
402
- * - `module.exports.foo = expr` → emit `foo` symbol with is_exported=true
403
- * - `exports.foo = expr` → emit `foo` symbol with is_exported=true
404
- */
405
- function handleCjsExport(assign, stmt, parentId, source, filePath, repo, out, cjsExported) {
406
- const lhs = assign.childForFieldName("left");
407
- const rhs = assign.childForFieldName("right");
408
- if (!lhs || !rhs)
409
- return false;
410
- const target = parseCjsLhs(lhs);
411
- if (!target)
412
- return false;
413
- // module.exports.<X> / exports.<X> → emit a fresh exported symbol for X
414
- if (target.property) {
415
- const name = target.property;
416
- const kind = cjsValueKind(rhs, name);
417
- out.push(makeSymbol(stmt, name, kind, filePath, source, repo, {
418
- parentId,
419
- docstring: getDocstring(stmt, source),
420
- signature: (rhs.type === "arrow_function" || rhs.type === "function_expression")
421
- ? getSignature(rhs, source) : undefined,
422
- is_exported: true,
423
- }));
424
- cjsExported.add(name);
425
- return true;
426
- }
427
- // module.exports = ...
428
- switch (rhs.type) {
429
- case "identifier": {
430
- // Defer to post-pass: tag the matching declaration.
431
- cjsExported.add(rhs.text);
432
- return true;
433
- }
434
- case "object": {
435
- for (const member of rhs.namedChildren) {
436
- if (member.type === "shorthand_property_identifier") {
437
- cjsExported.add(member.text);
438
- }
439
- else if (member.type === "pair") {
440
- const keyNode = member.childForFieldName("key");
441
- const valNode = member.childForFieldName("value");
442
- if (!keyNode || !valNode)
443
- continue;
444
- const keyName = keyNode.text.replace(/^['"`]|['"`]$/g, "");
445
- if (valNode.type === "identifier") {
446
- // { foo: someFn } — defer; tag someFn AND keyName both as exported.
447
- cjsExported.add(valNode.text);
448
- cjsExported.add(keyName);
449
- }
450
- else if (valNode.type === "arrow_function" || valNode.type === "function_expression") {
451
- // { handler: () => {} } — emit a fresh exported symbol under keyName
452
- const kind = classifyReactKind(keyName, valNode);
453
- out.push(makeSymbol(member, keyName, kind, filePath, source, repo, {
454
- parentId,
455
- signature: getSignature(valNode, source),
456
- is_exported: true,
457
- }));
458
- }
459
- }
460
- }
461
- return true;
462
- }
463
- case "arrow_function":
464
- case "function_expression":
465
- case "class_expression": {
466
- // Anonymous default export: `module.exports = () => {}`
467
- out.push(makeSymbol(stmt, "default", "default_export", filePath, source, repo, {
468
- parentId,
469
- signature: (rhs.type === "arrow_function" || rhs.type === "function_expression")
470
- ? getSignature(rhs, source) : undefined,
471
- is_exported: true,
472
- }));
473
- return true;
474
- }
475
- default:
476
- // Unknown RHS shape (call_expression, member_expression, etc.) —
477
- // not a recognized CJS pattern, fall through to default handling.
478
- return false;
51
+ walk(child, parentId, isExported);
479
52
  }
480
53
  }
481
- /**
482
- * Extract method-shaped members from an object literal `{ foo() {}, bar: () => {} }`.
483
- * Mutates `symbols` in place so the caller (lexical_declaration handler) can keep
484
- * its short-circuit `return` without losing object-method visibility.
485
- *
486
- * Handles two shapes commonly used as JS controller / handler objects:
487
- * - method shorthand: { create() { ... } } → method_definition
488
- * - arrow assignment: { onClick: () => {...} } → pair(arrow_function)
489
- * - function value: { handler: function(){...} } → pair(function_expression)
490
- */
491
- function extractObjectLiteralMethods(objectNode, parentId, source, filePath, repo, out) {
492
- for (const child of objectNode.namedChildren) {
493
- if (child.type === "method_definition") {
494
- const methodName = getNodeName(child);
495
- if (!methodName)
496
- continue;
497
- out.push(makeSymbol(child, methodName, "method", filePath, source, repo, {
498
- parentId,
499
- signature: getSignature(child, source),
500
- }));
501
- continue;
502
- }
503
- if (child.type === "pair") {
504
- const keyNode = child.childForFieldName("key");
505
- const valNode = child.childForFieldName("value");
506
- if (!keyNode || !valNode)
507
- continue;
508
- if (valNode.type !== "arrow_function" && valNode.type !== "function_expression")
509
- continue;
510
- const methodName = keyNode.text.replace(/^['"`]|['"`]$/g, "");
511
- // Honor React conventions even on object members (e.g. an exported
512
- // hooks object): use[A-Z] → hook, PascalCase + JSX → component.
513
- const kind = classifyReactKind(methodName, valNode);
514
- out.push(makeSymbol(child, methodName, kind === "function" ? "method" : kind, filePath, source, repo, {
515
- parentId,
516
- signature: getSignature(valNode, source),
517
- }));
518
- }
519
- }
520
- }
521
- // --- Main extractor ---
522
- /** True if the declaration has an `export` keyword child (modifier-based export). */
523
- function hasExportModifier(node) {
524
- for (const child of node.children) {
525
- if (child.type === "export")
526
- return true;
527
- }
528
- return false;
529
- }
530
- /** True if the function/method/arrow has an `async` keyword child. */
531
- function hasAsyncModifier(node) {
532
- for (const child of node.children) {
533
- if (child.type === "async")
534
- return true;
535
- // tree-sitter-typescript can mis-parse `abstract async name()` (grammar error node)
536
- // while still recovering the method — treat leading `async` in ERROR as async.
537
- if (child.type === "ERROR" && /^\s*async\b/.test(child.text))
538
- return true;
539
- }
540
- return false;
541
- }
542
- /** Modifier keyword tokens recognized for methods and fields, in two forms:
543
- * - bare keyword child (e.g., `static`, `readonly`, `abstract`, `declare`)
544
- * - wrapper named node (e.g., `override_modifier` containing the `override` keyword,
545
- * `accessibility_modifier` containing `public`/`private`/`protected`)
546
- * Order in the resulting array follows source-token order for stability. */
547
- const MODIFIER_KEYWORD_TOKENS = new Set([
548
- "static", "abstract", "readonly", "declare", "accessor",
549
- ]);
550
- /** Collect modifier keywords from a method_definition / field_definition node.
551
- * Handles bare keyword tokens AND named wrapper nodes. Order: source order. */
552
- function getModifiers(node) {
553
- const mods = [];
554
- for (const child of node.children) {
555
- if (MODIFIER_KEYWORD_TOKENS.has(child.type)) {
556
- mods.push(child.type);
557
- }
558
- else if (child.type === "accessibility_modifier") {
559
- mods.push(child.text); // "public" | "private" | "protected"
560
- }
561
- else if (child.type === "override_modifier") {
562
- mods.push("override");
54
+ function applyExportPostPass(context) {
55
+ if (context.localReExported.size === 0 && context.cjsExported.size === 0)
56
+ return;
57
+ const exportedNames = new Set([...context.localReExported, ...context.cjsExported]);
58
+ for (const sym of context.symbols) {
59
+ if (!sym.is_exported && exportedNames.has(sym.name)) {
60
+ sym.is_exported = true;
563
61
  }
564
62
  }
565
- return mods;
566
- }
567
- /** Detect getter/setter/auto-accessor kind on method_definition.
568
- * Returns "get" | "set" | "accessor" | undefined. */
569
- function getAccessorKind(node) {
570
- // tree-sitter-typescript exposes `get`/`set` as keyword tokens directly under
571
- // method_definition. TS 4.9 `accessor` keyword for auto-accessor fields lives
572
- // similarly. Scan children for the first matching token.
573
- for (const child of node.children) {
574
- if (child.type === "get")
575
- return "get";
576
- if (child.type === "set")
577
- return "set";
578
- if (child.type === "accessor")
579
- return "accessor";
580
- }
581
- return undefined;
582
- }
583
- /** Record `abstract` when the grammar omitted a bare `abstract` child but the node is abstract. */
584
- function ensureAbstractRecorded(modifiers) {
585
- if (modifiers.includes("abstract"))
586
- return;
587
- // Source order: `abstract foo()` → sole synthetic modifier first; `protected abstract foo()` → after prior modifiers.
588
- if (modifiers.length === 0)
589
- modifiers.unshift("abstract");
590
- else
591
- modifiers.push("abstract");
592
63
  }
593
64
  export function extractTypeScriptSymbols(tree, filePath, source, repo) {
594
65
  const symbols = [];
595
- const localReExported = new Set();
596
- // CommonJS exports — names referenced by `module.exports = X` or
597
- // `module.exports = { foo, bar }`. Resolved in a post-pass against
598
- // already-emitted symbols so a `function foo(){}` declared earlier in the
599
- // file gets its `is_exported` flag set when the exports assignment is seen.
600
- const cjsExported = new Set();
601
- /** Count `function_signature` emissions per (parentId,name) for ambient overload dedup metadata. */
602
- const ambientFnSigOverloadCount = new Map();
66
+ const context = {
67
+ source,
68
+ filePath,
69
+ repo,
70
+ symbols,
71
+ localReExported: new Set(),
72
+ cjsExported: new Set(),
73
+ ambientFnSigOverloadCount: new Map(),
74
+ };
603
75
  function walk(node, parentId, isExported = false) {
604
- switch (node.type) {
605
- case "function_declaration":
606
- case "generator_function_declaration":
607
- case "function_signature": {
608
- // function_signature: ambient declaration body — `declare function foo(): void`
609
- // and `declare module "x" { export function bar(): void }`. Same shape as
610
- // function_declaration for our purposes (name field + parameters + return_type).
611
- const name = getNodeName(node);
612
- if (name) {
613
- // React detection: hook (useX) or component (PascalCase + JSX return)
614
- const kind = classifyReactKind(name, node);
615
- const decorators = getDecorators(node);
616
- const exported = isExported || hasExportModifier(node);
617
- const isAsync = hasAsyncModifier(node);
618
- const isGenerator = node.type === "generator_function_declaration";
619
- const meta = {};
620
- if (isGenerator)
621
- meta.generator = true;
622
- if (node.type === "function_signature") {
623
- const okey = `${parentId ?? ""}:${name}`;
624
- const next = (ambientFnSigOverloadCount.get(okey) ?? 0) + 1;
625
- ambientFnSigOverloadCount.set(okey, next);
626
- if (next > 1)
627
- meta.overload_index = next - 1;
628
- }
629
- const sym = makeSymbol(node, name, kind, filePath, source, repo, {
630
- parentId,
631
- docstring: getDocstring(node, source),
632
- signature: getSignature(node, source),
633
- decorators: decorators.length > 0 ? decorators : undefined,
634
- is_async: isAsync ? true : undefined,
635
- is_exported: exported ? true : undefined,
636
- meta: Object.keys(meta).length > 0 ? meta : undefined,
637
- });
638
- symbols.push(sym);
639
- }
640
- break;
641
- }
642
- case "lexical_declaration": {
643
- // Determine if this is a `const` declaration (vs let/var)
644
- const isConst = node.children.some((c) => c.type === "const");
645
- const exported = isExported || hasExportModifier(node);
646
- for (const declarator of node.namedChildren) {
647
- if (declarator.type !== "variable_declarator")
648
- continue;
649
- const name = getNodeName(declarator);
650
- if (!name)
651
- continue;
652
- const value = declarator.childForFieldName("value");
653
- if (value && value.type === "arrow_function") {
654
- // React detection: hook or component
655
- const kind = classifyReactKind(name, value);
656
- const isAsync = hasAsyncModifier(value);
657
- const sym = makeSymbol(node, name, kind, filePath, source, repo, {
658
- parentId,
659
- docstring: getDocstring(node, source),
660
- signature: getSignature(value, source),
661
- is_async: isAsync ? true : undefined,
662
- is_exported: exported ? true : undefined,
663
- });
664
- symbols.push(sym);
665
- }
666
- else if (value && value.type === "call_expression" && isReactWrapper(value)) {
667
- // React wrapper: const X = React.memo(() => <div/>), forwardRef(), lazy()
668
- const wrapperName = getWrapperName(value);
669
- const innerFn = getWrappedFunction(value);
670
- let kind = "function";
671
- if (CUSTOM_HOOK_RE.test(name)) {
672
- kind = "hook";
673
- }
674
- else if (COMPONENT_NAME_RE.test(name)) {
675
- // lazy() always returns a component; memo/forwardRef need inner JSX check
676
- if (wrapperName === "lazy" || (innerFn && returnsJSX(innerFn))) {
677
- kind = "component";
678
- }
679
- }
680
- const sym = makeSymbol(node, name, kind, filePath, source, repo, {
681
- parentId,
682
- docstring: getDocstring(node, source),
683
- signature: innerFn ? getSignature(innerFn, source) : undefined,
684
- is_exported: exported ? true : undefined,
685
- });
686
- symbols.push(sym);
687
- }
688
- else if (value) {
689
- // SCREAMING_CASE const -> "constant", otherwise -> "variable"
690
- const kind = isConst && SCREAMING_CASE_RE.test(name) ? "constant" : "variable";
691
- const sym = makeSymbol(node, name, kind, filePath, source, repo, {
692
- parentId,
693
- docstring: getDocstring(node, source),
694
- is_exported: exported ? true : undefined,
695
- });
696
- symbols.push(sym);
697
- // Object literal: extract methods so `const ctrl = { create() {} }`
698
- // surfaces `create` as a method parented to `ctrl`. Common in
699
- // older Node.js / Express controllers and config objects.
700
- if (value.type === "object") {
701
- extractObjectLiteralMethods(value, sym.id, source, filePath, repo, symbols);
702
- }
703
- }
704
- else {
705
- // No value (e.g., `declare const X: number;` inside ambient_declaration).
706
- // Still emit a symbol so the declaration is searchable.
707
- const kind = isConst && SCREAMING_CASE_RE.test(name) ? "constant" : "variable";
708
- const sym = makeSymbol(node, name, kind, filePath, source, repo, {
709
- parentId,
710
- docstring: getDocstring(node, source),
711
- is_exported: exported ? true : undefined,
712
- });
713
- symbols.push(sym);
714
- }
715
- }
716
- // Don't walk children — we already processed declarators
717
- return;
718
- }
719
- case "class_declaration":
720
- case "abstract_class_declaration":
721
- case "class_expression":
722
- case "class": {
723
- const resolvedName = getNodeName(node);
724
- const name = resolvedName && resolvedName.length > 0 ? resolvedName : "<anonymous>";
725
- const decorators = getDecorators(node);
726
- const exported = isExported || hasExportModifier(node);
727
- const heritage = getClassHeritage(node);
728
- // React class component: extends Component / React.Component / PureComponent
729
- const kind = extendsListIndicatesReactComponent(heritage.extends)
730
- ? "component"
731
- : "class";
732
- const sym = makeSymbol(node, name, kind, filePath, source, repo, {
733
- parentId,
734
- docstring: getDocstring(node, source),
735
- decorators: decorators.length > 0 ? decorators : undefined,
736
- extends: heritage.extends.length > 0 ? heritage.extends : undefined,
737
- implements: heritage.implements.length > 0 ? heritage.implements : undefined,
738
- is_exported: exported ? true : undefined,
739
- });
740
- // Walk class body with this class as parent (before trimming so children get full source)
741
- for (const child of node.namedChildren) {
742
- walk(child, sym.id);
743
- }
744
- // Replace class source with trimmed shell (signatures only, no method bodies)
745
- sym.source = trimClassBody(node, source);
746
- symbols.push(sym);
747
- return;
748
- }
749
- case "abstract_method_signature": {
750
- // abstract doSomething(): void; inside abstract classes
751
- const name = getNodeName(node);
752
- if (name) {
753
- const decorators = getDecorators(node);
754
- const modifiers = getModifiers(node);
755
- ensureAbstractRecorded(modifiers);
756
- const isAsync = hasAsyncModifier(node);
757
- const accessorKind = getAccessorKind(node);
758
- const meta = {};
759
- if (modifiers.length > 0)
760
- meta.modifiers = modifiers;
761
- if (accessorKind)
762
- meta.accessor_kind = accessorKind;
763
- const sym = makeSymbol(node, name, "method", filePath, source, repo, {
764
- parentId,
765
- docstring: getDocstring(node, source),
766
- signature: getSignature(node, source),
767
- decorators: decorators.length > 0 ? decorators : undefined,
768
- is_async: isAsync ? true : undefined,
769
- meta: Object.keys(meta).length > 0 ? meta : undefined,
770
- });
771
- symbols.push(sym);
772
- }
773
- break;
774
- }
775
- case "method_definition": {
776
- const name = getNodeName(node);
777
- if (name) {
778
- const decorators = getDecorators(node);
779
- const isAsync = hasAsyncModifier(node);
780
- const modifiers = getModifiers(node);
781
- const accessorKind = getAccessorKind(node);
782
- const meta = {};
783
- if (modifiers.length > 0)
784
- meta.modifiers = modifiers;
785
- if (accessorKind)
786
- meta.accessor_kind = accessorKind;
787
- const sym = makeSymbol(node, name, "method", filePath, source, repo, {
788
- parentId,
789
- docstring: getDocstring(node, source),
790
- signature: getSignature(node, source),
791
- decorators: decorators.length > 0 ? decorators : undefined,
792
- is_async: isAsync ? true : undefined,
793
- meta: Object.keys(meta).length > 0 ? meta : undefined,
794
- });
795
- symbols.push(sym);
796
- }
797
- break;
798
- }
799
- case "public_field_definition":
800
- case "field_definition": {
801
- // public_field_definition: TS class fields with modifiers
802
- // field_definition: JS class fields (incl. private #name, static)
803
- // The `name` field works for both; tree-sitter-javascript exposes the
804
- // identifier (or private_property_identifier) under `property` for JS,
805
- // but childForFieldName("name") falls back to "property" via getNodeName.
806
- const nameNode = node.childForFieldName("name") ?? node.childForFieldName("property");
807
- const name = nameNode?.text;
808
- if (name) {
809
- const decorators = getDecorators(node);
810
- const modifiers = getModifiers(node);
811
- // Auto-accessor field: TS 4.9 `accessor x = ...` parses as a field with `accessor` keyword
812
- const accessorKind = getAccessorKind(node);
813
- const meta = {};
814
- if (modifiers.length > 0)
815
- meta.modifiers = modifiers;
816
- if (accessorKind)
817
- meta.accessor_kind = accessorKind;
818
- const sym = makeSymbol(node, name, "field", filePath, source, repo, {
819
- parentId,
820
- docstring: getDocstring(node, source),
821
- decorators: decorators.length > 0 ? decorators : undefined,
822
- meta: Object.keys(meta).length > 0 ? meta : undefined,
823
- });
824
- symbols.push(sym);
825
- }
826
- break;
827
- }
828
- case "class_static_block": {
829
- // class Foo { static { ... } } — JS 2022, no name. Emit as a method
830
- // named "<static>" so it shows up under the class in outlines without
831
- // colliding with user-named methods.
832
- const sym = makeSymbol(node, "<static>", "method", filePath, source, repo, {
833
- parentId,
834
- docstring: getDocstring(node, source),
835
- });
836
- symbols.push(sym);
837
- break;
838
- }
839
- case "interface_declaration": {
840
- const name = getNodeName(node);
841
- if (name) {
842
- const exported = isExported || hasExportModifier(node);
843
- const sym = makeSymbol(node, name, "interface", filePath, source, repo, {
844
- parentId,
845
- docstring: getDocstring(node, source),
846
- is_exported: exported ? true : undefined,
847
- });
848
- symbols.push(sym);
849
- }
850
- break;
851
- }
852
- case "type_alias_declaration": {
853
- const name = getNodeName(node);
854
- if (name) {
855
- const exported = isExported || hasExportModifier(node);
856
- const sym = makeSymbol(node, name, "type", filePath, source, repo, {
857
- parentId,
858
- docstring: getDocstring(node, source),
859
- is_exported: exported ? true : undefined,
860
- });
861
- symbols.push(sym);
862
- }
863
- break;
864
- }
865
- case "internal_module":
866
- case "module": {
867
- // L2/L12: `namespace M {}`, `module M {}`, OR `module "x" {}` (when nested
868
- // inside ambient_declaration → declare module "x" {}).
869
- // Name field: identifier for namespace, string for ambient module.
870
- const nameNode = node.childForFieldName("name");
871
- let nsName = null;
872
- if (nameNode) {
873
- nsName = nameNode.type === "string"
874
- ? nameNode.text.replace(/^['"`]|['"`]$/g, "")
875
- : nameNode.text;
876
- }
877
- else {
878
- // Fallback: scan named children for identifier or string
879
- for (const c of node.namedChildren) {
880
- if (c.type === "identifier") {
881
- nsName = c.text;
882
- break;
883
- }
884
- if (c.type === "string") {
885
- nsName = c.text.replace(/^['"`]|['"`]$/g, "");
886
- break;
887
- }
888
- }
889
- }
890
- // Use != null so empty module specifier `""` is still indexed (truthy check dropped it).
891
- if (nsName !== null) {
892
- const exported = isExported || hasExportModifier(node);
893
- const sym = makeSymbol(node, nsName, "namespace", filePath, source, repo, {
894
- parentId,
895
- docstring: getDocstring(node, source),
896
- is_exported: exported ? true : undefined,
897
- });
898
- symbols.push(sym);
899
- // Walk body so nested function/class/interface declarations are parented
900
- const body = node.childForFieldName("body")
901
- ?? node.namedChildren.find((c) => c.type === "statement_block");
902
- if (body) {
903
- for (const child of body.namedChildren) {
904
- walk(child, sym.id, exported);
905
- }
906
- }
907
- }
908
- return;
909
- }
910
- case "ambient_declaration": {
911
- // L12: `declare const X`, `declare module "x" {}`, `declare class Y {}`, etc.
912
- // Rule: ambient module declarations with STRING-literal name are intrinsically
913
- // module-public; force is_exported=true via the special case below. For other
914
- // `declare X` forms, propagate isExported || hasExportModifier(node).
915
- const ambientExported = isExported || hasExportModifier(node);
916
- for (const child of node.namedChildren) {
917
- // Detect `declare module "x"` — child is `module` with a string-literal name
918
- const isStringNamedModule = child.type === "module"
919
- && (child.childForFieldName("name")?.type === "string"
920
- || child.namedChildren.some((c) => c.type === "string"));
921
- walk(child, parentId, ambientExported || isStringNamedModule);
922
- }
923
- return;
924
- }
925
- case "enum_declaration": {
926
- const name = getNodeName(node);
927
- if (name) {
928
- const exported = isExported || hasExportModifier(node);
929
- const sym = makeSymbol(node, name, "enum", filePath, source, repo, {
930
- parentId,
931
- docstring: getDocstring(node, source),
932
- is_exported: exported ? true : undefined,
933
- });
934
- symbols.push(sym);
935
- // Walk enum_body to emit members as `constant` parented to the enum.
936
- // children: enum_assignment (named member with value) | property_identifier
937
- const body = node.childForFieldName("body");
938
- if (body) {
939
- for (const child of body.namedChildren) {
940
- let memberName = null;
941
- if (child.type === "enum_assignment") {
942
- memberName = getNodeName(child);
943
- }
944
- else if (child.type === "property_identifier") {
945
- memberName = child.text;
946
- }
947
- if (memberName) {
948
- symbols.push(makeSymbol(child, memberName, "constant", filePath, source, repo, {
949
- parentId: sym.id,
950
- }));
951
- }
952
- }
953
- }
954
- }
955
- return; // body already walked; do not let default child-walk re-enter
956
- }
957
- case "export_statement": {
958
- const source_field = node.childForFieldName("source");
959
- if (source_field) {
960
- // Re-export from module: `export { X as Y } from "./m"` or `export * as ns from "./m"`
961
- for (const child of node.namedChildren) {
962
- if (child.type === "export_clause") {
963
- for (const spec of child.namedChildren) {
964
- if (spec.type === "export_specifier") {
965
- const aliasNode = spec.childForFieldName("alias");
966
- const nameNode = spec.childForFieldName("name");
967
- const emitName = (aliasNode ?? nameNode)?.text;
968
- if (emitName) {
969
- symbols.push(makeSymbol(spec, emitName, "variable", filePath, source, repo, {
970
- parentId,
971
- is_exported: true,
972
- }));
973
- }
974
- }
975
- }
976
- }
977
- else if (child.type === "namespace_export") {
978
- // export * as ns from "./m"
979
- for (const c of child.namedChildren) {
980
- if (c.type === "identifier") {
981
- symbols.push(makeSymbol(child, c.text, "namespace", filePath, source, repo, {
982
- parentId,
983
- is_exported: true,
984
- }));
985
- }
986
- }
987
- }
988
- }
989
- return;
990
- }
991
- // Local re-export `export { X }` — collect names for post-pass
992
- for (const child of node.namedChildren) {
993
- if (child.type === "export_clause") {
994
- for (const spec of child.namedChildren) {
995
- if (spec.type === "export_specifier") {
996
- const nameNode = spec.childForFieldName("name");
997
- if (nameNode)
998
- localReExported.add(nameNode.text);
999
- }
1000
- }
1001
- }
1002
- }
1003
- // L11: Anonymous default export — `export default function() {}` /
1004
- // `export default class {}` / `export default () => <div/>`. Such
1005
- // children have no `name` field; without synth, the named-children
1006
- // walk-through silently drops them. Detect via presence of `default`
1007
- // keyword child + an unnamed function/class/arrow expression child.
1008
- const isDefaultExport = node.children.some((c) => c.type === "default");
1009
- if (isDefaultExport) {
1010
- for (const child of node.namedChildren) {
1011
- const inner = unwrapParentheses(child);
1012
- const isAnon = (inner.type === "function_expression" || inner.type === "class" || inner.type === "class_declaration" || inner.type === "class_expression" || inner.type === "function_declaration" || inner.type === "generator_function_declaration" || inner.type === "arrow_function")
1013
- && !getNodeName(inner);
1014
- if (isAnon) {
1015
- // For JSX-returning anonymous defaults, also flag is_react_component
1016
- // so React-aware tools can still find them. Spec AC #10 mandates
1017
- // kind:"default_export" regardless.
1018
- const meta = {};
1019
- if (returnsJSX(inner))
1020
- meta.is_react_component = true;
1021
- // Anchor spans on the declaration node (not the export_statement).
1022
- const sym = makeSymbol(inner, "default", "default_export", filePath, source, repo, {
1023
- parentId,
1024
- is_exported: true,
1025
- signature: inner.type !== "class" && inner.type !== "class_declaration" && inner.type !== "class_expression"
1026
- ? getSignature(inner, source) : undefined,
1027
- meta: Object.keys(meta).length > 0 ? meta : undefined,
1028
- });
1029
- symbols.push(sym);
1030
- // Walk the anonymous declaration so nested methods/bodies are indexed
1031
- // (named default exports already get this via the export_statement child walk).
1032
- walk(inner, sym.id, true);
1033
- return;
1034
- }
1035
- }
1036
- }
1037
- // Walk children with isExported=true so wrapped declarations get tagged
1038
- for (const child of node.namedChildren) {
1039
- walk(child, parentId, true);
1040
- }
1041
- return;
1042
- }
1043
- case "expression_statement": {
1044
- // CommonJS export detection (JS-only in practice — TS files use ESM):
1045
- // module.exports = X
1046
- // module.exports = { foo, bar }
1047
- // module.exports.foo = expr
1048
- // exports.foo = expr
1049
- // Order matters: check CJS before test-call branch since both peek at
1050
- // namedChildren[0]; CJS is `assignment_expression` and tests are
1051
- // `call_expression` so they're disjoint and either can return early.
1052
- const firstChild = node.namedChildren[0];
1053
- if (firstChild?.type === "assignment_expression") {
1054
- const handled = handleCjsExport(firstChild, node, parentId, source, filePath, repo, symbols, cjsExported);
1055
- if (handled)
1056
- return;
1057
- }
1058
- // Check for test calls: describe(...), it(...), test(...)
1059
- // Also handles member forms: it.skip(...), it.each(...)(...), describe.only(...)
1060
- const expr = node.namedChildren[0];
1061
- if (expr?.type === "call_expression") {
1062
- const callee = parseTestCallee(expr);
1063
- if (callee) {
1064
- const { base, method } = callee;
1065
- // describe() or describe.skip/only/each()
1066
- if (base === "describe" && (method === null || TEST_SUITE_METHODS.has(method))) {
1067
- const testName = getTestName(expr);
1068
- const name = testName ?? "describe";
1069
- const sym = makeSymbol(node, name, "test_suite", filePath, source, repo, {
1070
- parentId,
1071
- docstring: getDocstring(node, source),
1072
- });
1073
- symbols.push(sym);
1074
- // Walk describe body for nested tests
1075
- const args = expr.childForFieldName("arguments");
1076
- if (args) {
1077
- for (const arg of args.namedChildren) {
1078
- if (arg.type === "arrow_function" || arg.type === "function") {
1079
- for (const bodyChild of arg.namedChildren) {
1080
- walk(bodyChild, sym.id);
1081
- }
1082
- }
1083
- }
1084
- }
1085
- return;
1086
- }
1087
- // it() / test() or it.skip/each/only/todo/failing/concurrent()
1088
- if ((base === "it" || base === "test") &&
1089
- (method === null || TEST_CASE_METHODS.has(method))) {
1090
- const testName = getTestName(expr);
1091
- const name = testName ?? base;
1092
- const sym = makeSymbol(node, name, "test_case", filePath, source, repo, {
1093
- parentId,
1094
- docstring: getDocstring(node, source),
1095
- });
1096
- symbols.push(sym);
1097
- return;
1098
- }
1099
- // Lifecycle hooks: beforeEach(), afterEach(), beforeAll(), afterAll()
1100
- if (TEST_HOOK_NAMES.has(base) && method === null) {
1101
- const sym = makeSymbol(node, base, "test_hook", filePath, source, repo, {
1102
- parentId,
1103
- docstring: getDocstring(node, source),
1104
- });
1105
- symbols.push(sym);
1106
- return;
1107
- }
1108
- }
1109
- }
1110
- break;
1111
- }
1112
- default:
1113
- break;
1114
- }
1115
- // Default: walk children
1116
- for (const child of node.namedChildren) {
1117
- walk(child, parentId, isExported);
1118
- }
76
+ const action = NODE_ACTIONS[node.type];
77
+ if (action?.(context, node, parentId, isExported, walk))
78
+ return;
79
+ walkChildren(node, parentId, isExported, walk);
1119
80
  }
1120
- // ERROR-node warning: emit a single warn line per file so silent grammar
1121
- // mismatches (e.g., a syntax the bundled WASM doesn't understand) are
1122
- // visible without crashing the index. Decorator metadata or other affected
1123
- // symbols may be incomplete; this is an observability hook, not a hard fail.
1124
- // Note: web-tree-sitter exposes `hasError` as a getter (boolean property),
1125
- // not a method — accessing as property is correct.
1126
81
  if (tree.rootNode.hasError) {
1127
82
  console.warn(`[ts-extractor] grammar errors detected in ${filePath}; some symbols may be incomplete`);
1128
83
  }
1129
- // Top-level walk guard: catch RangeError ("Maximum call stack") on extremely
1130
- // deep ASTs (e.g., 50k+ node bundled .d.ts files). Returns the partial
1131
- // symbol list rather than crashing the entire index_folder run. Iterative
1132
- // walk is deferred to v2 — partial extraction is acceptable for v1.
1133
84
  try {
1134
85
  walk(tree.rootNode);
1135
86
  }
@@ -1140,17 +91,7 @@ export function extractTypeScriptSymbols(tree, filePath, source, repo) {
1140
91
  }
1141
92
  throw err;
1142
93
  }
1143
- // Post-pass: local re-exports `export { X }` and CommonJS exports both
1144
- // mark prior-declared symbols as exported. Merged into a single Set so we
1145
- // walk the symbol list at most once.
1146
- if (localReExported.size > 0 || cjsExported.size > 0) {
1147
- const exportedNames = new Set([...localReExported, ...cjsExported]);
1148
- for (const sym of symbols) {
1149
- if (!sym.is_exported && exportedNames.has(sym.name)) {
1150
- sym.is_exported = true;
1151
- }
1152
- }
1153
- }
94
+ applyExportPostPass(context);
1154
95
  return symbols;
1155
96
  }
1156
97
  //# sourceMappingURL=typescript.js.map