@colbymchenry/codegraph 0.7.10 → 0.9.0

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 (362) hide show
  1. package/README.md +70 -54
  2. package/npm-shim.js +43 -0
  3. package/package.json +13 -51
  4. package/LICENSE +0 -21
  5. package/dist/bin/codegraph.d.ts +0 -21
  6. package/dist/bin/codegraph.d.ts.map +0 -1
  7. package/dist/bin/codegraph.js +0 -1232
  8. package/dist/bin/codegraph.js.map +0 -1
  9. package/dist/bin/node-version-check.d.ts +0 -20
  10. package/dist/bin/node-version-check.d.ts.map +0 -1
  11. package/dist/bin/node-version-check.js +0 -42
  12. package/dist/bin/node-version-check.js.map +0 -1
  13. package/dist/bin/uninstall.d.ts +0 -14
  14. package/dist/bin/uninstall.d.ts.map +0 -1
  15. package/dist/bin/uninstall.js +0 -36
  16. package/dist/bin/uninstall.js.map +0 -1
  17. package/dist/config.d.ts +0 -51
  18. package/dist/config.d.ts.map +0 -1
  19. package/dist/config.js +0 -321
  20. package/dist/config.js.map +0 -1
  21. package/dist/context/formatter.d.ts +0 -30
  22. package/dist/context/formatter.d.ts.map +0 -1
  23. package/dist/context/formatter.js +0 -244
  24. package/dist/context/formatter.js.map +0 -1
  25. package/dist/context/index.d.ts +0 -97
  26. package/dist/context/index.d.ts.map +0 -1
  27. package/dist/context/index.js +0 -1048
  28. package/dist/context/index.js.map +0 -1
  29. package/dist/db/index.d.ts +0 -72
  30. package/dist/db/index.d.ts.map +0 -1
  31. package/dist/db/index.js +0 -200
  32. package/dist/db/index.js.map +0 -1
  33. package/dist/db/migrations.d.ts +0 -44
  34. package/dist/db/migrations.d.ts.map +0 -1
  35. package/dist/db/migrations.js +0 -131
  36. package/dist/db/migrations.js.map +0 -1
  37. package/dist/db/queries.d.ts +0 -253
  38. package/dist/db/queries.d.ts.map +0 -1
  39. package/dist/db/queries.js +0 -1207
  40. package/dist/db/queries.js.map +0 -1
  41. package/dist/db/schema.sql +0 -151
  42. package/dist/db/sqlite-adapter.d.ts +0 -52
  43. package/dist/db/sqlite-adapter.d.ts.map +0 -1
  44. package/dist/db/sqlite-adapter.js +0 -237
  45. package/dist/db/sqlite-adapter.js.map +0 -1
  46. package/dist/directory.d.ts +0 -57
  47. package/dist/directory.d.ts.map +0 -1
  48. package/dist/directory.js +0 -264
  49. package/dist/directory.js.map +0 -1
  50. package/dist/errors.d.ts +0 -136
  51. package/dist/errors.d.ts.map +0 -1
  52. package/dist/errors.js +0 -219
  53. package/dist/errors.js.map +0 -1
  54. package/dist/extraction/dfm-extractor.d.ts +0 -31
  55. package/dist/extraction/dfm-extractor.d.ts.map +0 -1
  56. package/dist/extraction/dfm-extractor.js +0 -151
  57. package/dist/extraction/dfm-extractor.js.map +0 -1
  58. package/dist/extraction/grammars.d.ts +0 -78
  59. package/dist/extraction/grammars.d.ts.map +0 -1
  60. package/dist/extraction/grammars.js +0 -322
  61. package/dist/extraction/grammars.js.map +0 -1
  62. package/dist/extraction/index.d.ts +0 -130
  63. package/dist/extraction/index.d.ts.map +0 -1
  64. package/dist/extraction/index.js +0 -1279
  65. package/dist/extraction/index.js.map +0 -1
  66. package/dist/extraction/languages/c-cpp.d.ts +0 -4
  67. package/dist/extraction/languages/c-cpp.d.ts.map +0 -1
  68. package/dist/extraction/languages/c-cpp.js +0 -126
  69. package/dist/extraction/languages/c-cpp.js.map +0 -1
  70. package/dist/extraction/languages/csharp.d.ts +0 -3
  71. package/dist/extraction/languages/csharp.d.ts.map +0 -1
  72. package/dist/extraction/languages/csharp.js +0 -72
  73. package/dist/extraction/languages/csharp.js.map +0 -1
  74. package/dist/extraction/languages/dart.d.ts +0 -3
  75. package/dist/extraction/languages/dart.d.ts.map +0 -1
  76. package/dist/extraction/languages/dart.js +0 -192
  77. package/dist/extraction/languages/dart.js.map +0 -1
  78. package/dist/extraction/languages/go.d.ts +0 -3
  79. package/dist/extraction/languages/go.d.ts.map +0 -1
  80. package/dist/extraction/languages/go.js +0 -58
  81. package/dist/extraction/languages/go.js.map +0 -1
  82. package/dist/extraction/languages/index.d.ts +0 -10
  83. package/dist/extraction/languages/index.d.ts.map +0 -1
  84. package/dist/extraction/languages/index.js +0 -45
  85. package/dist/extraction/languages/index.js.map +0 -1
  86. package/dist/extraction/languages/java.d.ts +0 -3
  87. package/dist/extraction/languages/java.d.ts.map +0 -1
  88. package/dist/extraction/languages/java.js +0 -64
  89. package/dist/extraction/languages/java.js.map +0 -1
  90. package/dist/extraction/languages/javascript.d.ts +0 -3
  91. package/dist/extraction/languages/javascript.d.ts.map +0 -1
  92. package/dist/extraction/languages/javascript.js +0 -90
  93. package/dist/extraction/languages/javascript.js.map +0 -1
  94. package/dist/extraction/languages/kotlin.d.ts +0 -3
  95. package/dist/extraction/languages/kotlin.d.ts.map +0 -1
  96. package/dist/extraction/languages/kotlin.js +0 -253
  97. package/dist/extraction/languages/kotlin.js.map +0 -1
  98. package/dist/extraction/languages/pascal.d.ts +0 -3
  99. package/dist/extraction/languages/pascal.d.ts.map +0 -1
  100. package/dist/extraction/languages/pascal.js +0 -66
  101. package/dist/extraction/languages/pascal.js.map +0 -1
  102. package/dist/extraction/languages/php.d.ts +0 -3
  103. package/dist/extraction/languages/php.d.ts.map +0 -1
  104. package/dist/extraction/languages/php.js +0 -107
  105. package/dist/extraction/languages/php.js.map +0 -1
  106. package/dist/extraction/languages/python.d.ts +0 -3
  107. package/dist/extraction/languages/python.d.ts.map +0 -1
  108. package/dist/extraction/languages/python.js +0 -56
  109. package/dist/extraction/languages/python.js.map +0 -1
  110. package/dist/extraction/languages/ruby.d.ts +0 -3
  111. package/dist/extraction/languages/ruby.d.ts.map +0 -1
  112. package/dist/extraction/languages/ruby.js +0 -114
  113. package/dist/extraction/languages/ruby.js.map +0 -1
  114. package/dist/extraction/languages/rust.d.ts +0 -3
  115. package/dist/extraction/languages/rust.d.ts.map +0 -1
  116. package/dist/extraction/languages/rust.js +0 -109
  117. package/dist/extraction/languages/rust.js.map +0 -1
  118. package/dist/extraction/languages/scala.d.ts +0 -3
  119. package/dist/extraction/languages/scala.d.ts.map +0 -1
  120. package/dist/extraction/languages/scala.js +0 -139
  121. package/dist/extraction/languages/scala.js.map +0 -1
  122. package/dist/extraction/languages/swift.d.ts +0 -3
  123. package/dist/extraction/languages/swift.d.ts.map +0 -1
  124. package/dist/extraction/languages/swift.js +0 -91
  125. package/dist/extraction/languages/swift.js.map +0 -1
  126. package/dist/extraction/languages/typescript.d.ts +0 -3
  127. package/dist/extraction/languages/typescript.d.ts.map +0 -1
  128. package/dist/extraction/languages/typescript.js +0 -129
  129. package/dist/extraction/languages/typescript.js.map +0 -1
  130. package/dist/extraction/liquid-extractor.d.ts +0 -52
  131. package/dist/extraction/liquid-extractor.d.ts.map +0 -1
  132. package/dist/extraction/liquid-extractor.js +0 -313
  133. package/dist/extraction/liquid-extractor.js.map +0 -1
  134. package/dist/extraction/parse-worker.d.ts +0 -8
  135. package/dist/extraction/parse-worker.d.ts.map +0 -1
  136. package/dist/extraction/parse-worker.js +0 -94
  137. package/dist/extraction/parse-worker.js.map +0 -1
  138. package/dist/extraction/svelte-extractor.d.ts +0 -56
  139. package/dist/extraction/svelte-extractor.d.ts.map +0 -1
  140. package/dist/extraction/svelte-extractor.js +0 -272
  141. package/dist/extraction/svelte-extractor.js.map +0 -1
  142. package/dist/extraction/tree-sitter-helpers.d.ts +0 -28
  143. package/dist/extraction/tree-sitter-helpers.d.ts.map +0 -1
  144. package/dist/extraction/tree-sitter-helpers.js +0 -103
  145. package/dist/extraction/tree-sitter-helpers.js.map +0 -1
  146. package/dist/extraction/tree-sitter-types.d.ts +0 -179
  147. package/dist/extraction/tree-sitter-types.d.ts.map +0 -1
  148. package/dist/extraction/tree-sitter-types.js +0 -10
  149. package/dist/extraction/tree-sitter-types.js.map +0 -1
  150. package/dist/extraction/tree-sitter.d.ts +0 -233
  151. package/dist/extraction/tree-sitter.d.ts.map +0 -1
  152. package/dist/extraction/tree-sitter.js +0 -2393
  153. package/dist/extraction/tree-sitter.js.map +0 -1
  154. package/dist/extraction/vue-extractor.d.ts +0 -36
  155. package/dist/extraction/vue-extractor.d.ts.map +0 -1
  156. package/dist/extraction/vue-extractor.js +0 -163
  157. package/dist/extraction/vue-extractor.js.map +0 -1
  158. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  159. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  160. package/dist/graph/index.d.ts +0 -8
  161. package/dist/graph/index.d.ts.map +0 -1
  162. package/dist/graph/index.js +0 -13
  163. package/dist/graph/index.js.map +0 -1
  164. package/dist/graph/queries.d.ts +0 -106
  165. package/dist/graph/queries.d.ts.map +0 -1
  166. package/dist/graph/queries.js +0 -366
  167. package/dist/graph/queries.js.map +0 -1
  168. package/dist/graph/traversal.d.ts +0 -127
  169. package/dist/graph/traversal.d.ts.map +0 -1
  170. package/dist/graph/traversal.js +0 -493
  171. package/dist/graph/traversal.js.map +0 -1
  172. package/dist/index.d.ts +0 -447
  173. package/dist/index.d.ts.map +0 -1
  174. package/dist/index.js +0 -825
  175. package/dist/index.js.map +0 -1
  176. package/dist/installer/claude-md-template.d.ts +0 -14
  177. package/dist/installer/claude-md-template.d.ts.map +0 -1
  178. package/dist/installer/claude-md-template.js +0 -21
  179. package/dist/installer/claude-md-template.js.map +0 -1
  180. package/dist/installer/config-writer.d.ts +0 -29
  181. package/dist/installer/config-writer.d.ts.map +0 -1
  182. package/dist/installer/config-writer.js +0 -109
  183. package/dist/installer/config-writer.js.map +0 -1
  184. package/dist/installer/index.d.ts +0 -53
  185. package/dist/installer/index.d.ts.map +0 -1
  186. package/dist/installer/index.js +0 -338
  187. package/dist/installer/index.js.map +0 -1
  188. package/dist/installer/instructions-template.d.ts +0 -28
  189. package/dist/installer/instructions-template.d.ts.map +0 -1
  190. package/dist/installer/instructions-template.js +0 -63
  191. package/dist/installer/instructions-template.js.map +0 -1
  192. package/dist/installer/targets/claude.d.ts +0 -27
  193. package/dist/installer/targets/claude.d.ts.map +0 -1
  194. package/dist/installer/targets/claude.js +0 -246
  195. package/dist/installer/targets/claude.js.map +0 -1
  196. package/dist/installer/targets/codex.d.ts +0 -18
  197. package/dist/installer/targets/codex.d.ts.map +0 -1
  198. package/dist/installer/targets/codex.js +0 -185
  199. package/dist/installer/targets/codex.js.map +0 -1
  200. package/dist/installer/targets/cursor.d.ts +0 -35
  201. package/dist/installer/targets/cursor.d.ts.map +0 -1
  202. package/dist/installer/targets/cursor.js +0 -229
  203. package/dist/installer/targets/cursor.js.map +0 -1
  204. package/dist/installer/targets/opencode.d.ts +0 -30
  205. package/dist/installer/targets/opencode.d.ts.map +0 -1
  206. package/dist/installer/targets/opencode.js +0 -235
  207. package/dist/installer/targets/opencode.js.map +0 -1
  208. package/dist/installer/targets/registry.d.ts +0 -35
  209. package/dist/installer/targets/registry.d.ts.map +0 -1
  210. package/dist/installer/targets/registry.js +0 -83
  211. package/dist/installer/targets/registry.js.map +0 -1
  212. package/dist/installer/targets/shared.d.ts +0 -77
  213. package/dist/installer/targets/shared.d.ts.map +0 -1
  214. package/dist/installer/targets/shared.js +0 -246
  215. package/dist/installer/targets/shared.js.map +0 -1
  216. package/dist/installer/targets/toml.d.ts +0 -52
  217. package/dist/installer/targets/toml.d.ts.map +0 -1
  218. package/dist/installer/targets/toml.js +0 -147
  219. package/dist/installer/targets/toml.js.map +0 -1
  220. package/dist/installer/targets/types.d.ts +0 -116
  221. package/dist/installer/targets/types.d.ts.map +0 -1
  222. package/dist/installer/targets/types.js +0 -16
  223. package/dist/installer/targets/types.js.map +0 -1
  224. package/dist/mcp/index.d.ts +0 -86
  225. package/dist/mcp/index.d.ts.map +0 -1
  226. package/dist/mcp/index.js +0 -355
  227. package/dist/mcp/index.js.map +0 -1
  228. package/dist/mcp/server-instructions.d.ts +0 -19
  229. package/dist/mcp/server-instructions.d.ts.map +0 -1
  230. package/dist/mcp/server-instructions.js +0 -59
  231. package/dist/mcp/server-instructions.js.map +0 -1
  232. package/dist/mcp/tools.d.ts +0 -200
  233. package/dist/mcp/tools.d.ts.map +0 -1
  234. package/dist/mcp/tools.js +0 -1319
  235. package/dist/mcp/tools.js.map +0 -1
  236. package/dist/mcp/transport.d.ts +0 -89
  237. package/dist/mcp/transport.d.ts.map +0 -1
  238. package/dist/mcp/transport.js +0 -170
  239. package/dist/mcp/transport.js.map +0 -1
  240. package/dist/resolution/frameworks/cargo-workspace.d.ts +0 -18
  241. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +0 -1
  242. package/dist/resolution/frameworks/cargo-workspace.js +0 -225
  243. package/dist/resolution/frameworks/cargo-workspace.js.map +0 -1
  244. package/dist/resolution/frameworks/csharp.d.ts +0 -8
  245. package/dist/resolution/frameworks/csharp.d.ts.map +0 -1
  246. package/dist/resolution/frameworks/csharp.js +0 -213
  247. package/dist/resolution/frameworks/csharp.js.map +0 -1
  248. package/dist/resolution/frameworks/express.d.ts +0 -8
  249. package/dist/resolution/frameworks/express.d.ts.map +0 -1
  250. package/dist/resolution/frameworks/express.js +0 -225
  251. package/dist/resolution/frameworks/express.js.map +0 -1
  252. package/dist/resolution/frameworks/go.d.ts +0 -8
  253. package/dist/resolution/frameworks/go.d.ts.map +0 -1
  254. package/dist/resolution/frameworks/go.js +0 -158
  255. package/dist/resolution/frameworks/go.js.map +0 -1
  256. package/dist/resolution/frameworks/index.d.ts +0 -41
  257. package/dist/resolution/frameworks/index.d.ts.map +0 -1
  258. package/dist/resolution/frameworks/index.js +0 -129
  259. package/dist/resolution/frameworks/index.js.map +0 -1
  260. package/dist/resolution/frameworks/java.d.ts +0 -8
  261. package/dist/resolution/frameworks/java.d.ts.map +0 -1
  262. package/dist/resolution/frameworks/java.js +0 -177
  263. package/dist/resolution/frameworks/java.js.map +0 -1
  264. package/dist/resolution/frameworks/laravel.d.ts +0 -13
  265. package/dist/resolution/frameworks/laravel.d.ts.map +0 -1
  266. package/dist/resolution/frameworks/laravel.js +0 -248
  267. package/dist/resolution/frameworks/laravel.js.map +0 -1
  268. package/dist/resolution/frameworks/python.d.ts +0 -10
  269. package/dist/resolution/frameworks/python.d.ts.map +0 -1
  270. package/dist/resolution/frameworks/python.js +0 -278
  271. package/dist/resolution/frameworks/python.js.map +0 -1
  272. package/dist/resolution/frameworks/react.d.ts +0 -8
  273. package/dist/resolution/frameworks/react.d.ts.map +0 -1
  274. package/dist/resolution/frameworks/react.js +0 -272
  275. package/dist/resolution/frameworks/react.js.map +0 -1
  276. package/dist/resolution/frameworks/ruby.d.ts +0 -8
  277. package/dist/resolution/frameworks/ruby.d.ts.map +0 -1
  278. package/dist/resolution/frameworks/ruby.js +0 -198
  279. package/dist/resolution/frameworks/ruby.js.map +0 -1
  280. package/dist/resolution/frameworks/rust.d.ts +0 -8
  281. package/dist/resolution/frameworks/rust.d.ts.map +0 -1
  282. package/dist/resolution/frameworks/rust.js +0 -207
  283. package/dist/resolution/frameworks/rust.js.map +0 -1
  284. package/dist/resolution/frameworks/svelte.d.ts +0 -9
  285. package/dist/resolution/frameworks/svelte.d.ts.map +0 -1
  286. package/dist/resolution/frameworks/svelte.js +0 -249
  287. package/dist/resolution/frameworks/svelte.js.map +0 -1
  288. package/dist/resolution/frameworks/swift.d.ts +0 -10
  289. package/dist/resolution/frameworks/swift.d.ts.map +0 -1
  290. package/dist/resolution/frameworks/swift.js +0 -376
  291. package/dist/resolution/frameworks/swift.js.map +0 -1
  292. package/dist/resolution/frameworks/vue.d.ts +0 -9
  293. package/dist/resolution/frameworks/vue.d.ts.map +0 -1
  294. package/dist/resolution/frameworks/vue.js +0 -306
  295. package/dist/resolution/frameworks/vue.js.map +0 -1
  296. package/dist/resolution/import-resolver.d.ts +0 -40
  297. package/dist/resolution/import-resolver.d.ts.map +0 -1
  298. package/dist/resolution/import-resolver.js +0 -663
  299. package/dist/resolution/import-resolver.js.map +0 -1
  300. package/dist/resolution/index.d.ts +0 -106
  301. package/dist/resolution/index.d.ts.map +0 -1
  302. package/dist/resolution/index.js +0 -709
  303. package/dist/resolution/index.js.map +0 -1
  304. package/dist/resolution/name-matcher.d.ts +0 -32
  305. package/dist/resolution/name-matcher.d.ts.map +0 -1
  306. package/dist/resolution/name-matcher.js +0 -384
  307. package/dist/resolution/name-matcher.js.map +0 -1
  308. package/dist/resolution/path-aliases.d.ts +0 -68
  309. package/dist/resolution/path-aliases.d.ts.map +0 -1
  310. package/dist/resolution/path-aliases.js +0 -238
  311. package/dist/resolution/path-aliases.js.map +0 -1
  312. package/dist/resolution/strip-comments.d.ts +0 -27
  313. package/dist/resolution/strip-comments.d.ts.map +0 -1
  314. package/dist/resolution/strip-comments.js +0 -441
  315. package/dist/resolution/strip-comments.js.map +0 -1
  316. package/dist/resolution/types.d.ts +0 -172
  317. package/dist/resolution/types.d.ts.map +0 -1
  318. package/dist/resolution/types.js +0 -8
  319. package/dist/resolution/types.js.map +0 -1
  320. package/dist/search/query-parser.d.ts +0 -57
  321. package/dist/search/query-parser.d.ts.map +0 -1
  322. package/dist/search/query-parser.js +0 -177
  323. package/dist/search/query-parser.js.map +0 -1
  324. package/dist/search/query-utils.d.ts +0 -53
  325. package/dist/search/query-utils.d.ts.map +0 -1
  326. package/dist/search/query-utils.js +0 -347
  327. package/dist/search/query-utils.js.map +0 -1
  328. package/dist/sync/index.d.ts +0 -13
  329. package/dist/sync/index.d.ts.map +0 -1
  330. package/dist/sync/index.js +0 -17
  331. package/dist/sync/index.js.map +0 -1
  332. package/dist/sync/watcher.d.ts +0 -81
  333. package/dist/sync/watcher.d.ts.map +0 -1
  334. package/dist/sync/watcher.js +0 -184
  335. package/dist/sync/watcher.js.map +0 -1
  336. package/dist/types.d.ts +0 -423
  337. package/dist/types.d.ts.map +0 -1
  338. package/dist/types.js +0 -256
  339. package/dist/types.js.map +0 -1
  340. package/dist/ui/glyphs.d.ts +0 -42
  341. package/dist/ui/glyphs.d.ts.map +0 -1
  342. package/dist/ui/glyphs.js +0 -78
  343. package/dist/ui/glyphs.js.map +0 -1
  344. package/dist/ui/shimmer-progress.d.ts +0 -11
  345. package/dist/ui/shimmer-progress.d.ts.map +0 -1
  346. package/dist/ui/shimmer-progress.js +0 -90
  347. package/dist/ui/shimmer-progress.js.map +0 -1
  348. package/dist/ui/shimmer-worker.d.ts +0 -2
  349. package/dist/ui/shimmer-worker.d.ts.map +0 -1
  350. package/dist/ui/shimmer-worker.js +0 -118
  351. package/dist/ui/shimmer-worker.js.map +0 -1
  352. package/dist/ui/types.d.ts +0 -17
  353. package/dist/ui/types.d.ts.map +0 -1
  354. package/dist/ui/types.js +0 -3
  355. package/dist/ui/types.js.map +0 -1
  356. package/dist/utils.d.ts +0 -205
  357. package/dist/utils.d.ts.map +0 -1
  358. package/dist/utils.js +0 -549
  359. package/dist/utils.js.map +0 -1
  360. package/scripts/local-install.sh +0 -41
  361. package/scripts/patch-tree-sitter-dart.js +0 -112
  362. package/scripts/release.sh +0 -70
@@ -1,41 +0,0 @@
1
- /**
2
- * Framework Resolver Registry
3
- *
4
- * Manages framework-specific resolvers.
5
- */
6
- import { FrameworkResolver, ResolutionContext } from '../types';
7
- import type { Language } from '../../types';
8
- /**
9
- * Get all framework resolvers
10
- */
11
- export declare function getAllFrameworkResolvers(): FrameworkResolver[];
12
- /**
13
- * Get a resolver by name
14
- */
15
- export declare function getFrameworkResolver(name: string): FrameworkResolver | undefined;
16
- /**
17
- * Detect which frameworks are used in a project
18
- */
19
- export declare function detectFrameworks(context: ResolutionContext): FrameworkResolver[];
20
- /**
21
- * Filter a list of detected frameworks down to ones that apply to a given language.
22
- * Frameworks without an explicit `languages` list are treated as universal.
23
- */
24
- export declare function getApplicableFrameworks(detected: FrameworkResolver[], language: Language): FrameworkResolver[];
25
- /**
26
- * Register a custom framework resolver
27
- */
28
- export declare function registerFrameworkResolver(resolver: FrameworkResolver): void;
29
- export { laravelResolver, FACADE_MAPPINGS } from './laravel';
30
- export { expressResolver } from './express';
31
- export { reactResolver } from './react';
32
- export { svelteResolver } from './svelte';
33
- export { vueResolver } from './vue';
34
- export { djangoResolver, flaskResolver, fastapiResolver } from './python';
35
- export { railsResolver } from './ruby';
36
- export { springResolver } from './java';
37
- export { goResolver } from './go';
38
- export { rustResolver } from './rust';
39
- export { aspnetResolver } from './csharp';
40
- export { swiftUIResolver, uikitResolver, vaporResolver } from './swift';
41
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA6C5C;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,iBAAiB,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAQhF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,QAAQ,EAAE,QAAQ,GACjB,iBAAiB,EAAE,CAIrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAO3E;AAGD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -1,129 +0,0 @@
1
- "use strict";
2
- /**
3
- * Framework Resolver Registry
4
- *
5
- * Manages framework-specific resolvers.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.vaporResolver = exports.uikitResolver = exports.swiftUIResolver = exports.aspnetResolver = exports.rustResolver = exports.goResolver = exports.springResolver = exports.railsResolver = exports.fastapiResolver = exports.flaskResolver = exports.djangoResolver = exports.vueResolver = exports.svelteResolver = exports.reactResolver = exports.expressResolver = exports.FACADE_MAPPINGS = exports.laravelResolver = void 0;
9
- exports.getAllFrameworkResolvers = getAllFrameworkResolvers;
10
- exports.getFrameworkResolver = getFrameworkResolver;
11
- exports.detectFrameworks = detectFrameworks;
12
- exports.getApplicableFrameworks = getApplicableFrameworks;
13
- exports.registerFrameworkResolver = registerFrameworkResolver;
14
- const laravel_1 = require("./laravel");
15
- const express_1 = require("./express");
16
- const react_1 = require("./react");
17
- const svelte_1 = require("./svelte");
18
- const vue_1 = require("./vue");
19
- const python_1 = require("./python");
20
- const ruby_1 = require("./ruby");
21
- const java_1 = require("./java");
22
- const go_1 = require("./go");
23
- const rust_1 = require("./rust");
24
- const csharp_1 = require("./csharp");
25
- const swift_1 = require("./swift");
26
- /**
27
- * All registered framework resolvers
28
- */
29
- const FRAMEWORK_RESOLVERS = [
30
- // PHP
31
- laravel_1.laravelResolver,
32
- // JavaScript/TypeScript
33
- express_1.expressResolver,
34
- react_1.reactResolver,
35
- svelte_1.svelteResolver,
36
- vue_1.vueResolver,
37
- // Python
38
- python_1.djangoResolver,
39
- python_1.flaskResolver,
40
- python_1.fastapiResolver,
41
- // Ruby
42
- ruby_1.railsResolver,
43
- // Java
44
- java_1.springResolver,
45
- // Go
46
- go_1.goResolver,
47
- // Rust
48
- rust_1.rustResolver,
49
- // C#
50
- csharp_1.aspnetResolver,
51
- // Swift
52
- swift_1.swiftUIResolver,
53
- swift_1.uikitResolver,
54
- swift_1.vaporResolver,
55
- ];
56
- /**
57
- * Get all framework resolvers
58
- */
59
- function getAllFrameworkResolvers() {
60
- return FRAMEWORK_RESOLVERS;
61
- }
62
- /**
63
- * Get a resolver by name
64
- */
65
- function getFrameworkResolver(name) {
66
- return FRAMEWORK_RESOLVERS.find((r) => r.name === name);
67
- }
68
- /**
69
- * Detect which frameworks are used in a project
70
- */
71
- function detectFrameworks(context) {
72
- return FRAMEWORK_RESOLVERS.filter((resolver) => {
73
- try {
74
- return resolver.detect(context);
75
- }
76
- catch {
77
- return false;
78
- }
79
- });
80
- }
81
- /**
82
- * Filter a list of detected frameworks down to ones that apply to a given language.
83
- * Frameworks without an explicit `languages` list are treated as universal.
84
- */
85
- function getApplicableFrameworks(detected, language) {
86
- return detected.filter((fw) => !fw.languages || fw.languages.includes(language));
87
- }
88
- /**
89
- * Register a custom framework resolver
90
- */
91
- function registerFrameworkResolver(resolver) {
92
- // Remove existing resolver with same name
93
- const index = FRAMEWORK_RESOLVERS.findIndex((r) => r.name === resolver.name);
94
- if (index !== -1) {
95
- FRAMEWORK_RESOLVERS.splice(index, 1);
96
- }
97
- FRAMEWORK_RESOLVERS.push(resolver);
98
- }
99
- // Re-export framework resolvers
100
- var laravel_2 = require("./laravel");
101
- Object.defineProperty(exports, "laravelResolver", { enumerable: true, get: function () { return laravel_2.laravelResolver; } });
102
- Object.defineProperty(exports, "FACADE_MAPPINGS", { enumerable: true, get: function () { return laravel_2.FACADE_MAPPINGS; } });
103
- var express_2 = require("./express");
104
- Object.defineProperty(exports, "expressResolver", { enumerable: true, get: function () { return express_2.expressResolver; } });
105
- var react_2 = require("./react");
106
- Object.defineProperty(exports, "reactResolver", { enumerable: true, get: function () { return react_2.reactResolver; } });
107
- var svelte_2 = require("./svelte");
108
- Object.defineProperty(exports, "svelteResolver", { enumerable: true, get: function () { return svelte_2.svelteResolver; } });
109
- var vue_2 = require("./vue");
110
- Object.defineProperty(exports, "vueResolver", { enumerable: true, get: function () { return vue_2.vueResolver; } });
111
- var python_2 = require("./python");
112
- Object.defineProperty(exports, "djangoResolver", { enumerable: true, get: function () { return python_2.djangoResolver; } });
113
- Object.defineProperty(exports, "flaskResolver", { enumerable: true, get: function () { return python_2.flaskResolver; } });
114
- Object.defineProperty(exports, "fastapiResolver", { enumerable: true, get: function () { return python_2.fastapiResolver; } });
115
- var ruby_2 = require("./ruby");
116
- Object.defineProperty(exports, "railsResolver", { enumerable: true, get: function () { return ruby_2.railsResolver; } });
117
- var java_2 = require("./java");
118
- Object.defineProperty(exports, "springResolver", { enumerable: true, get: function () { return java_2.springResolver; } });
119
- var go_2 = require("./go");
120
- Object.defineProperty(exports, "goResolver", { enumerable: true, get: function () { return go_2.goResolver; } });
121
- var rust_2 = require("./rust");
122
- Object.defineProperty(exports, "rustResolver", { enumerable: true, get: function () { return rust_2.rustResolver; } });
123
- var csharp_2 = require("./csharp");
124
- Object.defineProperty(exports, "aspnetResolver", { enumerable: true, get: function () { return csharp_2.aspnetResolver; } });
125
- var swift_2 = require("./swift");
126
- Object.defineProperty(exports, "swiftUIResolver", { enumerable: true, get: function () { return swift_2.swiftUIResolver; } });
127
- Object.defineProperty(exports, "uikitResolver", { enumerable: true, get: function () { return swift_2.uikitResolver; } });
128
- Object.defineProperty(exports, "vaporResolver", { enumerable: true, get: function () { return swift_2.vaporResolver; } });
129
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Java Framework Resolver
3
- *
4
- * Handles Spring Boot and general Java patterns.
5
- */
6
- import { FrameworkResolver } from '../types';
7
- export declare const springResolver: FrameworkResolver;
8
- //# sourceMappingURL=java.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/java.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F,eAAO,MAAM,cAAc,EAAE,iBA+J5B,CAAC"}
@@ -1,177 +0,0 @@
1
- "use strict";
2
- /**
3
- * Java Framework Resolver
4
- *
5
- * Handles Spring Boot and general Java patterns.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.springResolver = void 0;
9
- const strip_comments_1 = require("../strip-comments");
10
- exports.springResolver = {
11
- name: 'spring',
12
- languages: ['java'],
13
- detect(context) {
14
- // Check for pom.xml with Spring
15
- const pomXml = context.readFile('pom.xml');
16
- if (pomXml && (pomXml.includes('spring-boot') || pomXml.includes('springframework'))) {
17
- return true;
18
- }
19
- // Check for build.gradle with Spring
20
- const buildGradle = context.readFile('build.gradle');
21
- if (buildGradle && (buildGradle.includes('spring-boot') || buildGradle.includes('springframework'))) {
22
- return true;
23
- }
24
- const buildGradleKts = context.readFile('build.gradle.kts');
25
- if (buildGradleKts && (buildGradleKts.includes('spring-boot') || buildGradleKts.includes('springframework'))) {
26
- return true;
27
- }
28
- // Check for Spring annotations in Java files
29
- const allFiles = context.getAllFiles();
30
- for (const file of allFiles) {
31
- if (file.endsWith('.java')) {
32
- const content = context.readFile(file);
33
- if (content && (content.includes('@SpringBootApplication') ||
34
- content.includes('@RestController') ||
35
- content.includes('@Service') ||
36
- content.includes('@Repository'))) {
37
- return true;
38
- }
39
- }
40
- }
41
- return false;
42
- },
43
- resolve(ref, context) {
44
- // Pattern 1: Service references (dependency injection)
45
- if (ref.referenceName.endsWith('Service')) {
46
- const result = resolveByNameAndKind(ref.referenceName, SERVICE_KINDS, SERVICE_DIRS, context);
47
- if (result) {
48
- return {
49
- original: ref,
50
- targetNodeId: result,
51
- confidence: 0.85,
52
- resolvedBy: 'framework',
53
- };
54
- }
55
- }
56
- // Pattern 2: Repository references
57
- if (ref.referenceName.endsWith('Repository')) {
58
- const result = resolveByNameAndKind(ref.referenceName, SERVICE_KINDS, REPO_DIRS, context);
59
- if (result) {
60
- return {
61
- original: ref,
62
- targetNodeId: result,
63
- confidence: 0.85,
64
- resolvedBy: 'framework',
65
- };
66
- }
67
- }
68
- // Pattern 3: Controller references
69
- if (ref.referenceName.endsWith('Controller')) {
70
- const result = resolveByNameAndKind(ref.referenceName, CLASS_KINDS, CONTROLLER_DIRS, context);
71
- if (result) {
72
- return {
73
- original: ref,
74
- targetNodeId: result,
75
- confidence: 0.85,
76
- resolvedBy: 'framework',
77
- };
78
- }
79
- }
80
- // Pattern 4: Entity/Model references
81
- if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
82
- const result = resolveByNameAndKind(ref.referenceName, CLASS_KINDS, ENTITY_DIRS, context);
83
- if (result) {
84
- return {
85
- original: ref,
86
- targetNodeId: result,
87
- confidence: 0.7,
88
- resolvedBy: 'framework',
89
- };
90
- }
91
- }
92
- // Pattern 5: Component references
93
- if (ref.referenceName.endsWith('Component') || ref.referenceName.endsWith('Config')) {
94
- const result = resolveByNameAndKind(ref.referenceName, CLASS_KINDS, COMPONENT_DIRS, context);
95
- if (result) {
96
- return {
97
- original: ref,
98
- targetNodeId: result,
99
- confidence: 0.8,
100
- resolvedBy: 'framework',
101
- };
102
- }
103
- }
104
- return null;
105
- },
106
- extract(filePath, content) {
107
- if (!filePath.endsWith('.java'))
108
- return { nodes: [], references: [] };
109
- const nodes = [];
110
- const references = [];
111
- const now = Date.now();
112
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'java');
113
- // @GetMapping("/path"), @PostMapping(value = "/path"), @RequestMapping("/path")
114
- const mappingRegex = /@(GetMapping|PostMapping|PutMapping|PatchMapping|DeleteMapping|RequestMapping)\s*\(\s*(?:value\s*=\s*|path\s*=\s*)?["']([^"']+)["'][^)]*\)/g;
115
- let match;
116
- while ((match = mappingRegex.exec(safe)) !== null) {
117
- const [, mappingName, routePath] = match;
118
- const line = safe.slice(0, match.index).split('\n').length;
119
- const method = mappingName === 'RequestMapping' ? 'ANY' : mappingName.replace(/Mapping$/, '').toUpperCase();
120
- const routeNode = {
121
- id: `route:${filePath}:${line}:${method}:${routePath}`,
122
- kind: 'route',
123
- name: `${method} ${routePath}`,
124
- qualifiedName: `${filePath}::route:${routePath}`,
125
- filePath,
126
- startLine: line,
127
- endLine: line,
128
- startColumn: 0,
129
- endColumn: match[0].length,
130
- language: 'java',
131
- updatedAt: now,
132
- };
133
- nodes.push(routeNode);
134
- // Look for the next public/private/protected method after the annotation
135
- const tail = safe.slice(match.index + match[0].length);
136
- const methodMatch = tail.match(/\b(?:public|private|protected)\s+[^;{]*?\s+(\w+)\s*\(/);
137
- if (methodMatch) {
138
- references.push({
139
- fromNodeId: routeNode.id,
140
- referenceName: methodMatch[1],
141
- referenceKind: 'references',
142
- line,
143
- column: 0,
144
- filePath,
145
- language: 'java',
146
- });
147
- }
148
- }
149
- return { nodes, references };
150
- },
151
- };
152
- // Directory patterns
153
- const SERVICE_DIRS = ['/service/', '/services/'];
154
- const REPO_DIRS = ['/repository/', '/repositories/'];
155
- const CONTROLLER_DIRS = ['/controller/', '/controllers/'];
156
- const ENTITY_DIRS = ['/entity/', '/entities/', '/model/', '/models/', '/domain/'];
157
- const COMPONENT_DIRS = ['/component/', '/components/', '/config/'];
158
- const CLASS_KINDS = new Set(['class']);
159
- const SERVICE_KINDS = new Set(['class', 'interface']);
160
- /**
161
- * Resolve a symbol by name using indexed queries instead of scanning all files.
162
- */
163
- function resolveByNameAndKind(name, kinds, preferredDirPatterns, context) {
164
- const candidates = context.getNodesByName(name);
165
- if (candidates.length === 0)
166
- return null;
167
- const kindFiltered = candidates.filter((n) => kinds.has(n.kind));
168
- if (kindFiltered.length === 0)
169
- return null;
170
- // Prefer candidates in framework-conventional directories
171
- const preferred = kindFiltered.filter((n) => preferredDirPatterns.some((d) => n.filePath.includes(d)));
172
- if (preferred.length > 0)
173
- return preferred[0].id;
174
- // Fall back to any match
175
- return kindFiltered[0].id;
176
- }
177
- //# sourceMappingURL=java.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/java.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Laravel Framework Resolver
3
- *
4
- * Handles Laravel-specific patterns for reference resolution.
5
- */
6
- import { FrameworkResolver } from '../types';
7
- /**
8
- * Laravel facade mappings to underlying classes
9
- * Exported for potential use in facade resolution
10
- */
11
- export declare const FACADE_MAPPINGS: Record<string, string>;
12
- export declare const laravelResolver: FrameworkResolver;
13
- //# sourceMappingURL=laravel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"laravel.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/laravel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBlD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,iBA2I7B,CAAC"}
@@ -1,248 +0,0 @@
1
- "use strict";
2
- /**
3
- * Laravel Framework Resolver
4
- *
5
- * Handles Laravel-specific patterns for reference resolution.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.laravelResolver = exports.FACADE_MAPPINGS = void 0;
9
- const strip_comments_1 = require("../strip-comments");
10
- /**
11
- * Laravel facade mappings to underlying classes
12
- * Exported for potential use in facade resolution
13
- */
14
- exports.FACADE_MAPPINGS = {
15
- Auth: 'Illuminate\\Auth\\AuthManager',
16
- Cache: 'Illuminate\\Cache\\CacheManager',
17
- Config: 'Illuminate\\Config\\Repository',
18
- DB: 'Illuminate\\Database\\DatabaseManager',
19
- Event: 'Illuminate\\Events\\Dispatcher',
20
- File: 'Illuminate\\Filesystem\\Filesystem',
21
- Gate: 'Illuminate\\Auth\\Access\\Gate',
22
- Hash: 'Illuminate\\Hashing\\HashManager',
23
- Log: 'Illuminate\\Log\\LogManager',
24
- Mail: 'Illuminate\\Mail\\Mailer',
25
- Queue: 'Illuminate\\Queue\\QueueManager',
26
- Redis: 'Illuminate\\Redis\\RedisManager',
27
- Request: 'Illuminate\\Http\\Request',
28
- Response: 'Illuminate\\Http\\Response',
29
- Route: 'Illuminate\\Routing\\Router',
30
- Session: 'Illuminate\\Session\\SessionManager',
31
- Storage: 'Illuminate\\Filesystem\\FilesystemManager',
32
- URL: 'Illuminate\\Routing\\UrlGenerator',
33
- Validator: 'Illuminate\\Validation\\Factory',
34
- View: 'Illuminate\\View\\Factory',
35
- };
36
- exports.laravelResolver = {
37
- name: 'laravel',
38
- languages: ['php'],
39
- detect(context) {
40
- // Check for artisan file (Laravel signature)
41
- return context.fileExists('artisan') || context.fileExists('app/Http/Kernel.php');
42
- },
43
- resolve(ref, context) {
44
- // Pattern 1: Model::method() - Eloquent static calls
45
- const modelMatch = ref.referenceName.match(/^([A-Z][a-zA-Z]+)::(\w+)$/);
46
- if (modelMatch) {
47
- const [, className, methodName] = modelMatch;
48
- const result = resolveModelCall(className, methodName, context);
49
- if (result) {
50
- return {
51
- original: ref,
52
- targetNodeId: result,
53
- confidence: 0.85,
54
- resolvedBy: 'framework',
55
- };
56
- }
57
- }
58
- // Pattern 2: Facade calls - Auth::user(), Cache::get()
59
- const facadeMatch = ref.referenceName.match(/^(Auth|Cache|DB|Log|Mail|Queue|Session|Storage|Validator|Route|Request|Response)::(\w+)$/);
60
- if (facadeMatch) {
61
- // Facades typically resolve to external Laravel code
62
- // Mark as external but note the facade
63
- return null; // External, can't resolve to local node
64
- }
65
- // Pattern 3: Helper function calls - route(), view(), config()
66
- if (['route', 'view', 'config', 'env', 'app', 'abort', 'redirect', 'response', 'request', 'session', 'url', 'asset', 'mix'].includes(ref.referenceName)) {
67
- // These are Laravel helpers - external
68
- return null;
69
- }
70
- // Pattern 4: Controller method references
71
- const controllerMatch = ref.referenceName.match(/^([A-Z][a-zA-Z]+Controller)@(\w+)$/);
72
- if (controllerMatch) {
73
- const [, controller, method] = controllerMatch;
74
- const result = resolveControllerMethod(controller, method, context);
75
- if (result) {
76
- return {
77
- original: ref,
78
- targetNodeId: result,
79
- confidence: 0.9,
80
- resolvedBy: 'framework',
81
- };
82
- }
83
- }
84
- return null;
85
- },
86
- extract(filePath, content) {
87
- if (!filePath.endsWith('.php'))
88
- return { nodes: [], references: [] };
89
- const nodes = [];
90
- const references = [];
91
- const now = Date.now();
92
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'php');
93
- // Route::METHOD('/path', handler-expr)
94
- // handler-expr can be: [Class::class, 'method'] | 'Controller@method' | Closure | Class::class
95
- const routeRegex = /Route::(get|post|put|patch|delete|options|any)\s*\(\s*['"]([^'"]+)['"]\s*,\s*([^)]+)\)/g;
96
- let match;
97
- while ((match = routeRegex.exec(safe)) !== null) {
98
- const [, method, routePath, handlerExpr] = match;
99
- const line = safe.slice(0, match.index).split('\n').length;
100
- const upper = method.toUpperCase();
101
- const routeNode = {
102
- id: `route:${filePath}:${line}:${upper}:${routePath}`,
103
- kind: 'route',
104
- name: `${upper} ${routePath}`,
105
- qualifiedName: `${filePath}::route:${routePath}`,
106
- filePath,
107
- startLine: line,
108
- endLine: line,
109
- startColumn: 0,
110
- endColumn: match[0].length,
111
- language: 'php',
112
- updatedAt: now,
113
- };
114
- nodes.push(routeNode);
115
- const handlerName = extractLaravelHandler(handlerExpr);
116
- if (handlerName) {
117
- references.push({
118
- fromNodeId: routeNode.id,
119
- referenceName: handlerName,
120
- referenceKind: 'references',
121
- line,
122
- column: 0,
123
- filePath,
124
- language: 'php',
125
- });
126
- }
127
- }
128
- // Route::resource('name', Controller::class) / Route::apiResource('name', Controller::class)
129
- const resourceRegex = /Route::(resource|apiResource)\s*\(\s*['"]([^'"]+)['"]\s*(?:,\s*([^)]+))?\)/g;
130
- while ((match = resourceRegex.exec(safe)) !== null) {
131
- const [, _fn, resourceName, handlerExpr] = match;
132
- const line = safe.slice(0, match.index).split('\n').length;
133
- const routeNode = {
134
- id: `route:${filePath}:${line}:RESOURCE:${resourceName}`,
135
- kind: 'route',
136
- name: `resource:${resourceName}`,
137
- qualifiedName: `${filePath}::route:${resourceName}`,
138
- filePath,
139
- startLine: line,
140
- endLine: line,
141
- startColumn: 0,
142
- endColumn: match[0].length,
143
- language: 'php',
144
- updatedAt: now,
145
- };
146
- nodes.push(routeNode);
147
- if (handlerExpr) {
148
- const controllerName = extractLaravelHandler(handlerExpr);
149
- if (controllerName) {
150
- references.push({
151
- fromNodeId: routeNode.id,
152
- referenceName: controllerName,
153
- referenceKind: 'imports',
154
- line,
155
- column: 0,
156
- filePath,
157
- language: 'php',
158
- });
159
- }
160
- }
161
- }
162
- return { nodes, references };
163
- },
164
- };
165
- /**
166
- * Parse a Laravel route handler expression and return the symbol to link.
167
- * - `[Class::class, 'method']` -> `method`
168
- * - `'Controller@method'` -> `method`
169
- * - `Class::class` -> `Class`
170
- * - anything else (closure etc) -> null
171
- */
172
- function extractLaravelHandler(expr) {
173
- const trimmed = expr.trim();
174
- // [Class::class, 'method'] — grab the string literal
175
- const tupleMatch = trimmed.match(/^\[\s*[^,]+,\s*['"]([^'"]+)['"]\s*\]/);
176
- if (tupleMatch)
177
- return tupleMatch[1];
178
- // 'Controller@method'
179
- const atMatch = trimmed.match(/^['"]([^'"@]+)@([^'"]+)['"]$/);
180
- if (atMatch)
181
- return atMatch[2];
182
- // Controller::class
183
- const classMatch = trimmed.match(/^([A-Za-z_][A-Za-z0-9_]*)::class/);
184
- if (classMatch)
185
- return classMatch[1];
186
- return null;
187
- }
188
- /**
189
- * Resolve a Model::method() call
190
- */
191
- function resolveModelCall(className, methodName, context) {
192
- // Try app/Models/ first (Laravel 8+)
193
- let modelPath = `app/Models/${className}.php`;
194
- if (context.fileExists(modelPath)) {
195
- const nodes = context.getNodesInFile(modelPath);
196
- // Look for the method in this class
197
- const methodNode = nodes.find((n) => n.kind === 'method' && n.name === methodName);
198
- if (methodNode) {
199
- return methodNode.id;
200
- }
201
- // Return the class itself if method not found
202
- const classNode = nodes.find((n) => n.kind === 'class' && n.name === className);
203
- if (classNode) {
204
- return classNode.id;
205
- }
206
- }
207
- // Try app/ (Laravel 7 and below)
208
- modelPath = `app/${className}.php`;
209
- if (context.fileExists(modelPath)) {
210
- const nodes = context.getNodesInFile(modelPath);
211
- const methodNode = nodes.find((n) => n.kind === 'method' && n.name === methodName);
212
- if (methodNode) {
213
- return methodNode.id;
214
- }
215
- const classNode = nodes.find((n) => n.kind === 'class' && n.name === className);
216
- if (classNode) {
217
- return classNode.id;
218
- }
219
- }
220
- return null;
221
- }
222
- /**
223
- * Resolve a Controller@method reference
224
- */
225
- function resolveControllerMethod(controller, method, context) {
226
- // Try app/Http/Controllers/
227
- const controllerPath = `app/Http/Controllers/${controller}.php`;
228
- if (context.fileExists(controllerPath)) {
229
- const nodes = context.getNodesInFile(controllerPath);
230
- const methodNode = nodes.find((n) => n.kind === 'method' && n.name === method);
231
- if (methodNode) {
232
- return methodNode.id;
233
- }
234
- }
235
- // Try name-based lookup for namespaced controllers
236
- const controllerCandidates = context.getNodesByName(controller);
237
- for (const ctrl of controllerCandidates) {
238
- if (ctrl.kind === 'class' && ctrl.filePath.includes('Controllers')) {
239
- const nodesInFile = context.getNodesInFile(ctrl.filePath);
240
- const methodNode = nodesInFile.find((n) => n.kind === 'method' && n.name === method);
241
- if (methodNode) {
242
- return methodNode.id;
243
- }
244
- }
245
- }
246
- return null;
247
- }
248
- //# sourceMappingURL=laravel.js.map