kirograph 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/README.md +1171 -0
  2. package/dist/architecture/index.d.ts +11 -0
  3. package/dist/architecture/index.d.ts.map +1 -0
  4. package/dist/architecture/index.js +207 -0
  5. package/dist/architecture/index.js.map +7 -0
  6. package/dist/architecture/layers/csharp.d.ts +6 -0
  7. package/dist/architecture/layers/csharp.d.ts.map +1 -0
  8. package/dist/architecture/layers/csharp.js +100 -0
  9. package/dist/architecture/layers/csharp.js.map +7 -0
  10. package/dist/architecture/layers/elixir.js +116 -0
  11. package/dist/architecture/layers/elixir.js.map +7 -0
  12. package/dist/architecture/layers/go.d.ts +7 -0
  13. package/dist/architecture/layers/go.d.ts.map +1 -0
  14. package/dist/architecture/layers/go.js +117 -0
  15. package/dist/architecture/layers/go.js.map +7 -0
  16. package/dist/architecture/layers/index.d.ts +30 -0
  17. package/dist/architecture/layers/index.d.ts.map +1 -0
  18. package/dist/architecture/layers/index.js +100 -0
  19. package/dist/architecture/layers/index.js.map +7 -0
  20. package/dist/architecture/layers/java.d.ts +7 -0
  21. package/dist/architecture/layers/java.d.ts.map +1 -0
  22. package/dist/architecture/layers/java.js +119 -0
  23. package/dist/architecture/layers/java.js.map +7 -0
  24. package/dist/architecture/layers/python.d.ts +7 -0
  25. package/dist/architecture/layers/python.d.ts.map +1 -0
  26. package/dist/architecture/layers/python.js +111 -0
  27. package/dist/architecture/layers/python.js.map +7 -0
  28. package/dist/architecture/layers/ruby.d.ts +6 -0
  29. package/dist/architecture/layers/ruby.d.ts.map +1 -0
  30. package/dist/architecture/layers/ruby.js +95 -0
  31. package/dist/architecture/layers/ruby.js.map +7 -0
  32. package/dist/architecture/layers/rust.d.ts +6 -0
  33. package/dist/architecture/layers/rust.d.ts.map +1 -0
  34. package/dist/architecture/layers/rust.js +98 -0
  35. package/dist/architecture/layers/rust.js.map +7 -0
  36. package/dist/architecture/layers/types.d.ts +2 -0
  37. package/dist/architecture/layers/types.d.ts.map +1 -0
  38. package/dist/architecture/layers/types.js +17 -0
  39. package/dist/architecture/layers/types.js.map +7 -0
  40. package/dist/architecture/layers/typescript.d.ts +9 -0
  41. package/dist/architecture/layers/typescript.d.ts.map +1 -0
  42. package/dist/architecture/layers/typescript.js +143 -0
  43. package/dist/architecture/layers/typescript.js.map +7 -0
  44. package/dist/architecture/manifest/cargo.d.ts +3 -0
  45. package/dist/architecture/manifest/cargo.d.ts.map +1 -0
  46. package/dist/architecture/manifest/cargo.js +94 -0
  47. package/dist/architecture/manifest/cargo.js.map +7 -0
  48. package/dist/architecture/manifest/csproj.d.ts +3 -0
  49. package/dist/architecture/manifest/csproj.d.ts.map +1 -0
  50. package/dist/architecture/manifest/csproj.js +75 -0
  51. package/dist/architecture/manifest/csproj.js.map +7 -0
  52. package/dist/architecture/manifest/go.d.ts +3 -0
  53. package/dist/architecture/manifest/go.d.ts.map +1 -0
  54. package/dist/architecture/manifest/go.js +85 -0
  55. package/dist/architecture/manifest/go.js.map +7 -0
  56. package/dist/architecture/manifest/gradle.d.ts +3 -0
  57. package/dist/architecture/manifest/gradle.d.ts.map +1 -0
  58. package/dist/architecture/manifest/gradle.js +80 -0
  59. package/dist/architecture/manifest/gradle.js.map +7 -0
  60. package/dist/architecture/manifest/index.d.ts +12 -0
  61. package/dist/architecture/manifest/index.d.ts.map +1 -0
  62. package/dist/architecture/manifest/index.js +130 -0
  63. package/dist/architecture/manifest/index.js.map +7 -0
  64. package/dist/architecture/manifest/maven.d.ts +3 -0
  65. package/dist/architecture/manifest/maven.d.ts.map +1 -0
  66. package/dist/architecture/manifest/maven.js +76 -0
  67. package/dist/architecture/manifest/maven.js.map +7 -0
  68. package/dist/architecture/manifest/npm.d.ts +3 -0
  69. package/dist/architecture/manifest/npm.d.ts.map +1 -0
  70. package/dist/architecture/manifest/npm.js +103 -0
  71. package/dist/architecture/manifest/npm.js.map +7 -0
  72. package/dist/architecture/manifest/python.d.ts +3 -0
  73. package/dist/architecture/manifest/python.d.ts.map +1 -0
  74. package/dist/architecture/manifest/python.js +105 -0
  75. package/dist/architecture/manifest/python.js.map +7 -0
  76. package/dist/architecture/manifest/types.d.ts +2 -0
  77. package/dist/architecture/manifest/types.d.ts.map +1 -0
  78. package/dist/architecture/manifest/types.js +17 -0
  79. package/dist/architecture/manifest/types.js.map +7 -0
  80. package/dist/architecture/types.d.ts +91 -0
  81. package/dist/architecture/types.d.ts.map +1 -0
  82. package/dist/architecture/types.js +17 -0
  83. package/dist/architecture/types.js.map +7 -0
  84. package/dist/assets/logo.png +0 -0
  85. package/dist/banner.d.ts +6 -0
  86. package/dist/banner.d.ts.map +1 -0
  87. package/dist/banner.js +67 -0
  88. package/dist/banner.js.map +1 -0
  89. package/dist/bin/banner.d.ts +6 -0
  90. package/dist/bin/banner.d.ts.map +1 -0
  91. package/dist/bin/banner.js +88 -0
  92. package/dist/bin/banner.js.map +7 -0
  93. package/dist/bin/commands/affected.d.ts +3 -0
  94. package/dist/bin/commands/affected.d.ts.map +1 -0
  95. package/dist/bin/commands/affected.js +78 -0
  96. package/dist/bin/commands/affected.js.map +7 -0
  97. package/dist/bin/commands/architecture.d.ts +3 -0
  98. package/dist/bin/commands/architecture.d.ts.map +1 -0
  99. package/dist/bin/commands/architecture.js +125 -0
  100. package/dist/bin/commands/architecture.js.map +7 -0
  101. package/dist/bin/commands/caveman.js +136 -0
  102. package/dist/bin/commands/caveman.js.map +7 -0
  103. package/dist/bin/commands/context.d.ts +3 -0
  104. package/dist/bin/commands/context.d.ts.map +1 -0
  105. package/dist/bin/commands/context.js +81 -0
  106. package/dist/bin/commands/context.js.map +7 -0
  107. package/dist/bin/commands/coupling.d.ts +3 -0
  108. package/dist/bin/commands/coupling.d.ts.map +1 -0
  109. package/dist/bin/commands/coupling.js +164 -0
  110. package/dist/bin/commands/coupling.js.map +7 -0
  111. package/dist/bin/commands/dashboard.d.ts +3 -0
  112. package/dist/bin/commands/dashboard.d.ts.map +1 -0
  113. package/dist/bin/commands/dashboard.js +209 -0
  114. package/dist/bin/commands/dashboard.js.map +7 -0
  115. package/dist/bin/commands/dead-code.js +77 -0
  116. package/dist/bin/commands/dead-code.js.map +7 -0
  117. package/dist/bin/commands/export.js +2620 -0
  118. package/dist/bin/commands/export.js.map +7 -0
  119. package/dist/bin/commands/files.d.ts +3 -0
  120. package/dist/bin/commands/files.d.ts.map +1 -0
  121. package/dist/bin/commands/files.js +104 -0
  122. package/dist/bin/commands/files.js.map +7 -0
  123. package/dist/bin/commands/help.d.ts +4 -0
  124. package/dist/bin/commands/help.d.ts.map +1 -0
  125. package/dist/bin/commands/help.js +212 -0
  126. package/dist/bin/commands/help.js.map +7 -0
  127. package/dist/bin/commands/hotspots.js +77 -0
  128. package/dist/bin/commands/hotspots.js.map +7 -0
  129. package/dist/bin/commands/index.d.ts +3 -0
  130. package/dist/bin/commands/index.d.ts.map +1 -0
  131. package/dist/bin/commands/index.js +58 -0
  132. package/dist/bin/commands/index.js.map +7 -0
  133. package/dist/bin/commands/init.d.ts +3 -0
  134. package/dist/bin/commands/init.d.ts.map +1 -0
  135. package/dist/bin/commands/init.js +68 -0
  136. package/dist/bin/commands/init.js.map +7 -0
  137. package/dist/bin/commands/install.d.ts +3 -0
  138. package/dist/bin/commands/install.d.ts.map +1 -0
  139. package/dist/bin/commands/install.js +34 -0
  140. package/dist/bin/commands/install.js.map +7 -0
  141. package/dist/bin/commands/mark-dirty.d.ts +3 -0
  142. package/dist/bin/commands/mark-dirty.d.ts.map +1 -0
  143. package/dist/bin/commands/mark-dirty.js +51 -0
  144. package/dist/bin/commands/mark-dirty.js.map +7 -0
  145. package/dist/bin/commands/package.d.ts +3 -0
  146. package/dist/bin/commands/package.d.ts.map +1 -0
  147. package/dist/bin/commands/package.js +139 -0
  148. package/dist/bin/commands/package.js.map +7 -0
  149. package/dist/bin/commands/path.js +93 -0
  150. package/dist/bin/commands/path.js.map +7 -0
  151. package/dist/bin/commands/qdrant.d.ts +3 -0
  152. package/dist/bin/commands/qdrant.d.ts.map +1 -0
  153. package/dist/bin/commands/qdrant.js +159 -0
  154. package/dist/bin/commands/qdrant.js.map +1 -0
  155. package/dist/bin/commands/query.d.ts +3 -0
  156. package/dist/bin/commands/query.d.ts.map +1 -0
  157. package/dist/bin/commands/query.js +47 -0
  158. package/dist/bin/commands/query.js.map +7 -0
  159. package/dist/bin/commands/serve.d.ts +3 -0
  160. package/dist/bin/commands/serve.d.ts.map +1 -0
  161. package/dist/bin/commands/serve.js +59 -0
  162. package/dist/bin/commands/serve.js.map +7 -0
  163. package/dist/bin/commands/snapshot.js +122 -0
  164. package/dist/bin/commands/snapshot.js.map +7 -0
  165. package/dist/bin/commands/status.d.ts +3 -0
  166. package/dist/bin/commands/status.d.ts.map +1 -0
  167. package/dist/bin/commands/status.js +107 -0
  168. package/dist/bin/commands/status.js.map +7 -0
  169. package/dist/bin/commands/stop.d.ts +3 -0
  170. package/dist/bin/commands/stop.d.ts.map +1 -0
  171. package/dist/bin/commands/stop.js +81 -0
  172. package/dist/bin/commands/stop.js.map +1 -0
  173. package/dist/bin/commands/surprising.js +79 -0
  174. package/dist/bin/commands/surprising.js.map +7 -0
  175. package/dist/bin/commands/sync-if-dirty.d.ts +3 -0
  176. package/dist/bin/commands/sync-if-dirty.d.ts.map +1 -0
  177. package/dist/bin/commands/sync-if-dirty.js +67 -0
  178. package/dist/bin/commands/sync-if-dirty.js.map +7 -0
  179. package/dist/bin/commands/sync.d.ts +3 -0
  180. package/dist/bin/commands/sync.d.ts.map +1 -0
  181. package/dist/bin/commands/sync.js +81 -0
  182. package/dist/bin/commands/sync.js.map +7 -0
  183. package/dist/bin/commands/typesense.d.ts +3 -0
  184. package/dist/bin/commands/typesense.d.ts.map +1 -0
  185. package/dist/bin/commands/typesense.js +126 -0
  186. package/dist/bin/commands/typesense.js.map +1 -0
  187. package/dist/bin/commands/uninit.d.ts +4 -0
  188. package/dist/bin/commands/uninit.d.ts.map +1 -0
  189. package/dist/bin/commands/uninit.js +123 -0
  190. package/dist/bin/commands/uninit.js.map +7 -0
  191. package/dist/bin/commands/unlock.d.ts +3 -0
  192. package/dist/bin/commands/unlock.d.ts.map +1 -0
  193. package/dist/bin/commands/unlock.js +53 -0
  194. package/dist/bin/commands/unlock.js.map +7 -0
  195. package/dist/bin/commands/utils.d.ts +12 -0
  196. package/dist/bin/commands/utils.d.ts.map +1 -0
  197. package/dist/bin/commands/utils.js +56 -0
  198. package/dist/bin/commands/utils.js.map +7 -0
  199. package/dist/bin/installer/archive.js +230 -0
  200. package/dist/bin/installer/archive.js.map +7 -0
  201. package/dist/bin/installer/caveman.js +57 -0
  202. package/dist/bin/installer/caveman.js.map +7 -0
  203. package/dist/bin/installer/cli-agent.d.ts +15 -0
  204. package/dist/bin/installer/cli-agent.d.ts.map +1 -0
  205. package/dist/bin/installer/cli-agent.js +89 -0
  206. package/dist/bin/installer/cli-agent.js.map +7 -0
  207. package/dist/bin/installer/config-prompt.d.ts +13 -0
  208. package/dist/bin/installer/config-prompt.d.ts.map +1 -0
  209. package/dist/bin/installer/config-prompt.js +158 -0
  210. package/dist/bin/installer/config-prompt.js.map +7 -0
  211. package/dist/bin/installer/dashboard.d.ts +3 -0
  212. package/dist/bin/installer/dashboard.d.ts.map +1 -0
  213. package/dist/bin/installer/dashboard.js +149 -0
  214. package/dist/bin/installer/dashboard.js.map +7 -0
  215. package/dist/bin/installer/hooks.d.ts +5 -0
  216. package/dist/bin/installer/hooks.d.ts.map +1 -0
  217. package/dist/bin/installer/hooks.js +155 -0
  218. package/dist/bin/installer/hooks.js.map +7 -0
  219. package/dist/bin/installer/index.d.ts +11 -0
  220. package/dist/bin/installer/index.d.ts.map +1 -0
  221. package/dist/bin/installer/index.js +228 -0
  222. package/dist/bin/installer/index.js.map +7 -0
  223. package/dist/bin/installer/mcp.d.ts +5 -0
  224. package/dist/bin/installer/mcp.d.ts.map +1 -0
  225. package/dist/bin/installer/mcp.js +80 -0
  226. package/dist/bin/installer/mcp.js.map +7 -0
  227. package/dist/bin/installer/prompts.d.ts +28 -0
  228. package/dist/bin/installer/prompts.d.ts.map +1 -0
  229. package/dist/bin/installer/prompts.js +134 -0
  230. package/dist/bin/installer/prompts.js.map +7 -0
  231. package/dist/bin/installer/qdrant-dashboard.d.ts +4 -0
  232. package/dist/bin/installer/qdrant-dashboard.d.ts.map +1 -0
  233. package/dist/bin/installer/qdrant-dashboard.js +115 -0
  234. package/dist/bin/installer/qdrant-dashboard.js.map +7 -0
  235. package/dist/bin/installer/steering.d.ts +5 -0
  236. package/dist/bin/installer/steering.d.ts.map +1 -0
  237. package/dist/bin/installer/steering.js +283 -0
  238. package/dist/bin/installer/steering.js.map +7 -0
  239. package/dist/bin/kirograph.d.ts +6 -0
  240. package/dist/bin/kirograph.d.ts.map +1 -0
  241. package/dist/bin/kirograph.js +95 -0
  242. package/dist/bin/kirograph.js.map +7 -0
  243. package/dist/bin/progress.d.ts +14 -0
  244. package/dist/bin/progress.d.ts.map +1 -0
  245. package/dist/bin/progress.js +201 -0
  246. package/dist/bin/progress.js.map +7 -0
  247. package/dist/bin/ui.d.ts +11 -0
  248. package/dist/bin/ui.d.ts.map +1 -0
  249. package/dist/bin/ui.js +71 -0
  250. package/dist/bin/ui.js.map +7 -0
  251. package/dist/config.d.ts +48 -0
  252. package/dist/config.d.ts.map +1 -0
  253. package/dist/config.js +273 -0
  254. package/dist/config.js.map +7 -0
  255. package/dist/context/index.d.ts +61 -0
  256. package/dist/context/index.d.ts.map +1 -0
  257. package/dist/context/index.js +224 -0
  258. package/dist/context/index.js.map +7 -0
  259. package/dist/core/file-tree.d.ts +15 -0
  260. package/dist/core/file-tree.d.ts.map +1 -0
  261. package/dist/core/file-tree.js +69 -0
  262. package/dist/core/file-tree.js.map +7 -0
  263. package/dist/core/lock-manager.d.ts +20 -0
  264. package/dist/core/lock-manager.d.ts.map +1 -0
  265. package/dist/core/lock-manager.js +120 -0
  266. package/dist/core/lock-manager.js.map +7 -0
  267. package/dist/core/pipeline.d.ts +37 -0
  268. package/dist/core/pipeline.d.ts.map +1 -0
  269. package/dist/core/pipeline.js +375 -0
  270. package/dist/core/pipeline.js.map +7 -0
  271. package/dist/core/snapshot.js +141 -0
  272. package/dist/core/snapshot.js.map +7 -0
  273. package/dist/db/database.d.ts +133 -0
  274. package/dist/db/database.d.ts.map +1 -0
  275. package/dist/db/database.js +929 -0
  276. package/dist/db/database.js.map +7 -0
  277. package/dist/db/schema.sql +174 -0
  278. package/dist/errors.d.ts +49 -0
  279. package/dist/errors.d.ts.map +1 -0
  280. package/dist/errors.js +160 -0
  281. package/dist/errors.js.map +7 -0
  282. package/dist/extraction/extractor.d.ts +29 -0
  283. package/dist/extraction/extractor.d.ts.map +1 -0
  284. package/dist/extraction/extractor.js +764 -0
  285. package/dist/extraction/extractor.js.map +7 -0
  286. package/dist/extraction/grammars.d.ts +48 -0
  287. package/dist/extraction/grammars.d.ts.map +1 -0
  288. package/dist/extraction/grammars.js +166 -0
  289. package/dist/extraction/grammars.js.map +7 -0
  290. package/dist/extraction/languages.d.ts +9 -0
  291. package/dist/extraction/languages.d.ts.map +1 -0
  292. package/dist/extraction/languages.js +103 -0
  293. package/dist/extraction/languages.js.map +7 -0
  294. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  295. package/dist/frameworks/csharp.d.ts +8 -0
  296. package/dist/frameworks/csharp.d.ts.map +1 -0
  297. package/dist/frameworks/csharp.js +93 -0
  298. package/dist/frameworks/csharp.js.map +7 -0
  299. package/dist/frameworks/elixir.js +142 -0
  300. package/dist/frameworks/elixir.js.map +7 -0
  301. package/dist/frameworks/express.d.ts +8 -0
  302. package/dist/frameworks/express.d.ts.map +1 -0
  303. package/dist/frameworks/express.js +143 -0
  304. package/dist/frameworks/express.js.map +7 -0
  305. package/dist/frameworks/go.d.ts +8 -0
  306. package/dist/frameworks/go.d.ts.map +1 -0
  307. package/dist/frameworks/go.js +85 -0
  308. package/dist/frameworks/go.js.map +7 -0
  309. package/dist/frameworks/index.d.ts +30 -0
  310. package/dist/frameworks/index.d.ts.map +1 -0
  311. package/dist/frameworks/index.js +243 -0
  312. package/dist/frameworks/index.js.map +7 -0
  313. package/dist/frameworks/java.d.ts +8 -0
  314. package/dist/frameworks/java.d.ts.map +1 -0
  315. package/dist/frameworks/java.js +87 -0
  316. package/dist/frameworks/java.js.map +7 -0
  317. package/dist/frameworks/laravel.d.ts +9 -0
  318. package/dist/frameworks/laravel.d.ts.map +1 -0
  319. package/dist/frameworks/laravel.js +115 -0
  320. package/dist/frameworks/laravel.js.map +7 -0
  321. package/dist/frameworks/python.d.ts +10 -0
  322. package/dist/frameworks/python.d.ts.map +1 -0
  323. package/dist/frameworks/python.js +158 -0
  324. package/dist/frameworks/python.js.map +7 -0
  325. package/dist/frameworks/react.d.ts +9 -0
  326. package/dist/frameworks/react.d.ts.map +1 -0
  327. package/dist/frameworks/react.js +230 -0
  328. package/dist/frameworks/react.js.map +7 -0
  329. package/dist/frameworks/ruby.d.ts +8 -0
  330. package/dist/frameworks/ruby.d.ts.map +1 -0
  331. package/dist/frameworks/ruby.js +136 -0
  332. package/dist/frameworks/ruby.js.map +7 -0
  333. package/dist/frameworks/rust.d.ts +8 -0
  334. package/dist/frameworks/rust.d.ts.map +1 -0
  335. package/dist/frameworks/rust.js +82 -0
  336. package/dist/frameworks/rust.js.map +7 -0
  337. package/dist/frameworks/svelte.d.ts +8 -0
  338. package/dist/frameworks/svelte.d.ts.map +1 -0
  339. package/dist/frameworks/svelte.js +174 -0
  340. package/dist/frameworks/svelte.js.map +7 -0
  341. package/dist/frameworks/swift.d.ts +10 -0
  342. package/dist/frameworks/swift.d.ts.map +1 -0
  343. package/dist/frameworks/swift.js +151 -0
  344. package/dist/frameworks/swift.js.map +7 -0
  345. package/dist/frameworks/types.d.ts +37 -0
  346. package/dist/frameworks/types.d.ts.map +1 -0
  347. package/dist/frameworks/types.js +17 -0
  348. package/dist/frameworks/types.js.map +7 -0
  349. package/dist/graph/queries.d.ts +53 -0
  350. package/dist/graph/queries.d.ts.map +1 -0
  351. package/dist/graph/queries.js +224 -0
  352. package/dist/graph/queries.js.map +7 -0
  353. package/dist/graph/traversal.d.ts +35 -0
  354. package/dist/graph/traversal.d.ts.map +1 -0
  355. package/dist/graph/traversal.js +148 -0
  356. package/dist/graph/traversal.js.map +7 -0
  357. package/dist/index.d.ts +102 -0
  358. package/dist/index.d.ts.map +1 -0
  359. package/dist/index.js +303 -0
  360. package/dist/index.js.map +7 -0
  361. package/dist/installer/index.d.ts +10 -0
  362. package/dist/installer/index.d.ts.map +1 -0
  363. package/dist/installer/index.js +526 -0
  364. package/dist/installer/index.js.map +1 -0
  365. package/dist/mcp/server.d.ts +16 -0
  366. package/dist/mcp/server.d.ts.map +1 -0
  367. package/dist/mcp/server.js +116 -0
  368. package/dist/mcp/server.js.map +7 -0
  369. package/dist/mcp/tools.d.ts +37 -0
  370. package/dist/mcp/tools.d.ts.map +1 -0
  371. package/dist/mcp/tools.js +779 -0
  372. package/dist/mcp/tools.js.map +7 -0
  373. package/dist/mcp/transport.d.ts +29 -0
  374. package/dist/mcp/transport.d.ts.map +1 -0
  375. package/dist/mcp/transport.js +70 -0
  376. package/dist/mcp/transport.js.map +7 -0
  377. package/dist/resolution/index.d.ts +56 -0
  378. package/dist/resolution/index.d.ts.map +1 -0
  379. package/dist/resolution/index.js +384 -0
  380. package/dist/resolution/index.js.map +7 -0
  381. package/dist/resolution/name-matcher.d.ts +25 -0
  382. package/dist/resolution/name-matcher.d.ts.map +1 -0
  383. package/dist/resolution/name-matcher.js +60 -0
  384. package/dist/resolution/name-matcher.js.map +7 -0
  385. package/dist/scripts/postinstall.js +64 -0
  386. package/dist/search/query-utils.d.ts +21 -0
  387. package/dist/search/query-utils.d.ts.map +1 -0
  388. package/dist/search/query-utils.js +219 -0
  389. package/dist/search/query-utils.js.map +7 -0
  390. package/dist/search/searcher.d.ts +15 -0
  391. package/dist/search/searcher.d.ts.map +1 -0
  392. package/dist/search/searcher.js +49 -0
  393. package/dist/search/searcher.js.map +7 -0
  394. package/dist/sync/index.d.ts +33 -0
  395. package/dist/sync/index.d.ts.map +1 -0
  396. package/dist/sync/index.js +200 -0
  397. package/dist/sync/index.js.map +7 -0
  398. package/dist/types.d.ts +131 -0
  399. package/dist/types.d.ts.map +1 -0
  400. package/dist/types.js +37 -0
  401. package/dist/types.js.map +7 -0
  402. package/dist/utils.d.ts +52 -0
  403. package/dist/utils.d.ts.map +1 -0
  404. package/dist/utils.js +254 -0
  405. package/dist/utils.js.map +7 -0
  406. package/dist/vectors/index.d.ts +71 -0
  407. package/dist/vectors/index.d.ts.map +1 -0
  408. package/dist/vectors/index.js +480 -0
  409. package/dist/vectors/index.js.map +7 -0
  410. package/dist/vectors/lancedb-index.d.ts +50 -0
  411. package/dist/vectors/lancedb-index.d.ts.map +1 -0
  412. package/dist/vectors/lancedb-index.js +153 -0
  413. package/dist/vectors/lancedb-index.js.map +7 -0
  414. package/dist/vectors/orama-index.d.ts +54 -0
  415. package/dist/vectors/orama-index.d.ts.map +1 -0
  416. package/dist/vectors/orama-index.js +213 -0
  417. package/dist/vectors/orama-index.js.map +7 -0
  418. package/dist/vectors/pglite-index.d.ts +53 -0
  419. package/dist/vectors/pglite-index.d.ts.map +1 -0
  420. package/dist/vectors/pglite-index.js +194 -0
  421. package/dist/vectors/pglite-index.js.map +7 -0
  422. package/dist/vectors/qdrant-index.d.ts +70 -0
  423. package/dist/vectors/qdrant-index.d.ts.map +1 -0
  424. package/dist/vectors/qdrant-index.js +364 -0
  425. package/dist/vectors/qdrant-index.js.map +7 -0
  426. package/dist/vectors/typesense-index.d.ts +75 -0
  427. package/dist/vectors/typesense-index.d.ts.map +1 -0
  428. package/dist/vectors/typesense-index.js +453 -0
  429. package/dist/vectors/typesense-index.js.map +7 -0
  430. package/dist/vectors/vec-index.d.ts +52 -0
  431. package/dist/vectors/vec-index.d.ts.map +1 -0
  432. package/dist/vectors/vec-index.js +198 -0
  433. package/dist/vectors/vec-index.js.map +7 -0
  434. package/package.json +67 -0
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var frameworks_exports = {};
30
+ __export(frameworks_exports, {
31
+ FACADE_MAPPINGS: () => import_laravel.FACADE_MAPPINGS,
32
+ aspnetResolver: () => import_csharp.aspnetResolver,
33
+ detectFrameworks: () => detectFrameworks,
34
+ djangoResolver: () => import_python.djangoResolver,
35
+ expressResolver: () => import_express.expressResolver,
36
+ fastapiResolver: () => import_python.fastapiResolver,
37
+ flaskResolver: () => import_python.flaskResolver,
38
+ getAllFrameworkResolvers: () => getAllFrameworkResolvers,
39
+ getFrameworkResolver: () => getFrameworkResolver,
40
+ goResolver: () => import_go.goResolver,
41
+ laravelResolver: () => import_laravel.laravelResolver,
42
+ phoenixResolver: () => import_elixir.phoenixResolver,
43
+ railsResolver: () => import_ruby.railsResolver,
44
+ reactResolver: () => import_react.reactResolver,
45
+ registerFrameworkResolver: () => registerFrameworkResolver,
46
+ rustResolver: () => import_rust.rustResolver,
47
+ springResolver: () => import_java.springResolver,
48
+ svelteResolver: () => import_svelte.svelteResolver,
49
+ swiftUIResolver: () => import_swift.swiftUIResolver,
50
+ uikitResolver: () => import_swift.uikitResolver,
51
+ vaporResolver: () => import_swift.vaporResolver
52
+ });
53
+ module.exports = __toCommonJS(frameworks_exports);
54
+ var fs = __toESM(require("fs"));
55
+ var path = __toESM(require("path"));
56
+ var import_errors = require("../errors");
57
+ var import_config = require("../config");
58
+ var import_react = require("./react");
59
+ var import_svelte = require("./svelte");
60
+ var import_express = require("./express");
61
+ var import_python = require("./python");
62
+ var import_ruby = require("./ruby");
63
+ var import_java = require("./java");
64
+ var import_go = require("./go");
65
+ var import_rust = require("./rust");
66
+ var import_csharp = require("./csharp");
67
+ var import_swift = require("./swift");
68
+ var import_laravel = require("./laravel");
69
+ var import_elixir = require("./elixir");
70
+ var import_react2 = require("./react");
71
+ var import_svelte2 = require("./svelte");
72
+ var import_express2 = require("./express");
73
+ var import_python2 = require("./python");
74
+ var import_ruby2 = require("./ruby");
75
+ var import_java2 = require("./java");
76
+ var import_go2 = require("./go");
77
+ var import_rust2 = require("./rust");
78
+ var import_csharp2 = require("./csharp");
79
+ var import_swift2 = require("./swift");
80
+ var import_laravel2 = require("./laravel");
81
+ var import_elixir2 = require("./elixir");
82
+ const FRAMEWORK_RESOLVERS = [
83
+ // PHP
84
+ import_laravel2.laravelResolver,
85
+ // JavaScript / TypeScript
86
+ import_express2.expressResolver,
87
+ import_react2.reactResolver,
88
+ import_svelte2.svelteResolver,
89
+ // Python
90
+ import_python2.djangoResolver,
91
+ import_python2.flaskResolver,
92
+ import_python2.fastapiResolver,
93
+ // Ruby
94
+ import_ruby2.railsResolver,
95
+ // Java
96
+ import_java2.springResolver,
97
+ // Go
98
+ import_go2.goResolver,
99
+ // Rust
100
+ import_rust2.rustResolver,
101
+ // C#
102
+ import_csharp2.aspnetResolver,
103
+ // Swift
104
+ import_swift2.swiftUIResolver,
105
+ import_swift2.uikitResolver,
106
+ import_swift2.vaporResolver,
107
+ // Elixir
108
+ import_elixir2.phoenixResolver
109
+ ];
110
+ function getAllFrameworkResolvers() {
111
+ return FRAMEWORK_RESOLVERS;
112
+ }
113
+ function getFrameworkResolver(name) {
114
+ return FRAMEWORK_RESOLVERS.find((r) => r.name === name);
115
+ }
116
+ function registerFrameworkResolver(resolver) {
117
+ const index = FRAMEWORK_RESOLVERS.findIndex((r) => r.name === resolver.name);
118
+ if (index !== -1) FRAMEWORK_RESOLVERS.splice(index, 1);
119
+ FRAMEWORK_RESOLVERS.push(resolver);
120
+ }
121
+ function buildResolutionContext(projectRoot, db) {
122
+ const fileCache = /* @__PURE__ */ new Map();
123
+ const nodeCache = /* @__PURE__ */ new Map();
124
+ return {
125
+ getNodesInFile(filePath) {
126
+ if (!nodeCache.has(filePath)) {
127
+ nodeCache.set(filePath, db.getNodesByFile(filePath));
128
+ }
129
+ return nodeCache.get(filePath);
130
+ },
131
+ getNodesByName(name) {
132
+ return db.findNodesByExactName(name);
133
+ },
134
+ getNodesByKind(kind) {
135
+ return db.getNodesByKind(kind);
136
+ },
137
+ fileExists(filePath) {
138
+ return fs.existsSync(path.join(projectRoot, filePath));
139
+ },
140
+ readFile(filePath) {
141
+ if (fileCache.has(filePath)) return fileCache.get(filePath);
142
+ try {
143
+ const content = fs.readFileSync(path.join(projectRoot, filePath), "utf8");
144
+ fileCache.set(filePath, content);
145
+ return content;
146
+ } catch {
147
+ fileCache.set(filePath, null);
148
+ return null;
149
+ }
150
+ },
151
+ getProjectRoot() {
152
+ return projectRoot;
153
+ },
154
+ getAllFiles() {
155
+ return db.getAllFiles().map((f) => f.path);
156
+ }
157
+ };
158
+ }
159
+ async function detectFrameworks(projectRoot, db) {
160
+ if (!db) {
161
+ return detectFromPackageJson(projectRoot);
162
+ }
163
+ const context = buildResolutionContext(projectRoot, db);
164
+ const detected = [];
165
+ for (const resolver of FRAMEWORK_RESOLVERS) {
166
+ try {
167
+ if (resolver.detect(context)) {
168
+ (0, import_errors.logDebug)(`detectFrameworks: detected ${resolver.name}`);
169
+ detected.push(resolver);
170
+ }
171
+ } catch (err) {
172
+ (0, import_errors.logWarn)(`detectFrameworks: error detecting ${resolver.name}`, { error: String(err) });
173
+ }
174
+ }
175
+ if (detected.length > 0) {
176
+ await (0, import_config.updateConfig)(projectRoot, { frameworkHints: detected.map((f) => f.name) });
177
+ }
178
+ return detected;
179
+ }
180
+ async function detectFromPackageJson(projectRoot) {
181
+ const pkgPath = path.join(projectRoot, "package.json");
182
+ if (!fs.existsSync(pkgPath)) return [];
183
+ let pkg;
184
+ try {
185
+ pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
186
+ } catch {
187
+ return [];
188
+ }
189
+ const deps = {
190
+ ...pkg.dependencies ?? {},
191
+ ...pkg.devDependencies ?? {}
192
+ };
193
+ const PACKAGE_TO_RESOLVER = {
194
+ react: "react",
195
+ next: "react",
196
+ "react-native": "react",
197
+ svelte: "svelte",
198
+ "@sveltejs/kit": "svelte",
199
+ express: "express",
200
+ fastify: "express",
201
+ koa: "express"
202
+ };
203
+ const detectedNames = /* @__PURE__ */ new Set();
204
+ const detected = [];
205
+ for (const [pkg2, resolverName] of Object.entries(PACKAGE_TO_RESOLVER)) {
206
+ if (Object.prototype.hasOwnProperty.call(deps, pkg2) && !detectedNames.has(resolverName)) {
207
+ const resolver = getFrameworkResolver(resolverName);
208
+ if (resolver) {
209
+ detectedNames.add(resolverName);
210
+ detected.push(resolver);
211
+ }
212
+ }
213
+ }
214
+ if (detected.length > 0) {
215
+ await (0, import_config.updateConfig)(projectRoot, { frameworkHints: detected.map((f) => f.name) });
216
+ }
217
+ return detected;
218
+ }
219
+ // Annotate the CommonJS export names for ESM import in node:
220
+ 0 && (module.exports = {
221
+ FACADE_MAPPINGS,
222
+ aspnetResolver,
223
+ detectFrameworks,
224
+ djangoResolver,
225
+ expressResolver,
226
+ fastapiResolver,
227
+ flaskResolver,
228
+ getAllFrameworkResolvers,
229
+ getFrameworkResolver,
230
+ goResolver,
231
+ laravelResolver,
232
+ phoenixResolver,
233
+ railsResolver,
234
+ reactResolver,
235
+ registerFrameworkResolver,
236
+ rustResolver,
237
+ springResolver,
238
+ svelteResolver,
239
+ swiftUIResolver,
240
+ uikitResolver,
241
+ vaporResolver
242
+ });
243
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/frameworks/index.ts"],
4
+ "sourcesContent": ["/**\n * Framework Resolver Registry\n *\n * Mirrors CodeGraph src/resolution/frameworks/index.ts\n * Manages framework-specific resolvers and detection.\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { logDebug, logWarn } from '../errors';\nimport { updateConfig } from '../config';\nimport type { Node } from '../types';\nimport type { GraphDatabase } from '../db/database';\nimport type { FrameworkResolver, ResolutionContext } from './types';\n\n// Re-export types\nexport type { FrameworkResolver, ResolutionContext, UnresolvedRef, ResolvedRef } from './types';\n\n// Re-export individual resolvers\nexport { reactResolver } from './react';\nexport { svelteResolver } from './svelte';\nexport { expressResolver } from './express';\nexport { djangoResolver, flaskResolver, fastapiResolver } from './python';\nexport { railsResolver } from './ruby';\nexport { springResolver } from './java';\nexport { goResolver } from './go';\nexport { rustResolver } from './rust';\nexport { aspnetResolver } from './csharp';\nexport { swiftUIResolver, uikitResolver, vaporResolver } from './swift';\nexport { laravelResolver, FACADE_MAPPINGS } from './laravel';\nexport { phoenixResolver } from './elixir';\n\n// \u2500\u2500 Registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nimport { reactResolver } from './react';\nimport { svelteResolver } from './svelte';\nimport { expressResolver } from './express';\nimport { djangoResolver, flaskResolver, fastapiResolver } from './python';\nimport { railsResolver } from './ruby';\nimport { springResolver } from './java';\nimport { goResolver } from './go';\nimport { rustResolver } from './rust';\nimport { aspnetResolver } from './csharp';\nimport { swiftUIResolver, uikitResolver, vaporResolver } from './swift';\nimport { laravelResolver } from './laravel';\nimport { phoenixResolver } from './elixir';\n\nconst FRAMEWORK_RESOLVERS: FrameworkResolver[] = [\n // PHP\n laravelResolver,\n // JavaScript / TypeScript\n expressResolver,\n reactResolver,\n svelteResolver,\n // Python\n djangoResolver,\n flaskResolver,\n fastapiResolver,\n // Ruby\n railsResolver,\n // Java\n springResolver,\n // Go\n goResolver,\n // Rust\n rustResolver,\n // C#\n aspnetResolver,\n // Swift\n swiftUIResolver,\n uikitResolver,\n vaporResolver,\n // Elixir\n phoenixResolver,\n];\n\nexport function getAllFrameworkResolvers(): FrameworkResolver[] {\n return FRAMEWORK_RESOLVERS;\n}\n\nexport function getFrameworkResolver(name: string): FrameworkResolver | undefined {\n return FRAMEWORK_RESOLVERS.find(r => r.name === name);\n}\n\nexport function registerFrameworkResolver(resolver: FrameworkResolver): void {\n const index = FRAMEWORK_RESOLVERS.findIndex(r => r.name === resolver.name);\n if (index !== -1) FRAMEWORK_RESOLVERS.splice(index, 1);\n FRAMEWORK_RESOLVERS.push(resolver);\n}\n\n// \u2500\u2500 Context builder \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction buildResolutionContext(projectRoot: string, db: GraphDatabase): ResolutionContext {\n const fileCache = new Map<string, string | null>();\n const nodeCache = new Map<string, Node[]>();\n\n return {\n getNodesInFile(filePath: string): Node[] {\n if (!nodeCache.has(filePath)) {\n nodeCache.set(filePath, db.getNodesByFile(filePath));\n }\n return nodeCache.get(filePath)!;\n },\n getNodesByName(name: string): Node[] {\n return db.findNodesByExactName(name);\n },\n getNodesByKind(kind: Node['kind']): Node[] {\n return db.getNodesByKind(kind);\n },\n fileExists(filePath: string): boolean {\n return fs.existsSync(path.join(projectRoot, filePath));\n },\n readFile(filePath: string): string | null {\n if (fileCache.has(filePath)) return fileCache.get(filePath)!;\n try {\n const content = fs.readFileSync(path.join(projectRoot, filePath), 'utf8');\n fileCache.set(filePath, content);\n return content;\n } catch {\n fileCache.set(filePath, null);\n return null;\n }\n },\n getProjectRoot(): string {\n return projectRoot;\n },\n getAllFiles(): string[] {\n return db.getAllFiles().map(f => f.path);\n },\n };\n}\n\n// \u2500\u2500 detectFrameworks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Detect which frameworks are used in a project.\n * Mirrors CodeGraph detectFrameworks() \u2014 uses ResolutionContext for file access.\n * Records detected framework names in config via updateConfig().\n */\nexport async function detectFrameworks(projectRoot: string, db?: GraphDatabase): Promise<FrameworkResolver[]> {\n // If no db provided, fall back to package.json-only detection\n if (!db) {\n return detectFromPackageJson(projectRoot);\n }\n\n const context = buildResolutionContext(projectRoot, db);\n const detected: FrameworkResolver[] = [];\n\n for (const resolver of FRAMEWORK_RESOLVERS) {\n try {\n if (resolver.detect(context)) {\n logDebug(`detectFrameworks: detected ${resolver.name}`);\n detected.push(resolver);\n }\n } catch (err) {\n logWarn(`detectFrameworks: error detecting ${resolver.name}`, { error: String(err) });\n }\n }\n\n if (detected.length > 0) {\n await updateConfig(projectRoot, { frameworkHints: detected.map(f => f.name) });\n }\n\n return detected;\n}\n\n/**\n * Lightweight fallback: detect frameworks from package.json only (no DB needed).\n */\nasync function detectFromPackageJson(projectRoot: string): Promise<FrameworkResolver[]> {\n const pkgPath = path.join(projectRoot, 'package.json');\n if (!fs.existsSync(pkgPath)) return [];\n\n let pkg: Record<string, unknown>;\n try {\n pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')) as Record<string, unknown>;\n } catch {\n return [];\n }\n\n const deps: Record<string, string> = {\n ...((pkg.dependencies as Record<string, string>) ?? {}),\n ...((pkg.devDependencies as Record<string, string>) ?? {}),\n };\n\n const PACKAGE_TO_RESOLVER: Record<string, string> = {\n react: 'react', next: 'react', 'react-native': 'react',\n svelte: 'svelte', '@sveltejs/kit': 'svelte',\n express: 'express', fastify: 'express', koa: 'express',\n };\n\n const detectedNames = new Set<string>();\n const detected: FrameworkResolver[] = [];\n\n for (const [pkg, resolverName] of Object.entries(PACKAGE_TO_RESOLVER)) {\n if (Object.prototype.hasOwnProperty.call(deps, pkg) && !detectedNames.has(resolverName)) {\n const resolver = getFrameworkResolver(resolverName);\n if (resolver) {\n detectedNames.add(resolverName);\n detected.push(resolver);\n }\n }\n }\n\n if (detected.length > 0) {\n await updateConfig(projectRoot, { frameworkHints: detected.map(f => f.name) });\n }\n\n return detected;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAoB;AACpB,WAAsB;AACtB,oBAAkC;AAClC,oBAA6B;AAS7B,mBAA8B;AAC9B,oBAA+B;AAC/B,qBAAgC;AAChC,oBAA+D;AAC/D,kBAA8B;AAC9B,kBAA+B;AAC/B,gBAA2B;AAC3B,kBAA6B;AAC7B,oBAA+B;AAC/B,mBAA8D;AAC9D,qBAAiD;AACjD,oBAAgC;AAIhC,IAAAA,gBAA8B;AAC9B,IAAAC,iBAA+B;AAC/B,IAAAC,kBAAgC;AAChC,IAAAC,iBAA+D;AAC/D,IAAAC,eAA8B;AAC9B,IAAAC,eAA+B;AAC/B,IAAAC,aAA2B;AAC3B,IAAAC,eAA6B;AAC7B,IAAAC,iBAA+B;AAC/B,IAAAC,gBAA8D;AAC9D,IAAAC,kBAAgC;AAChC,IAAAC,iBAAgC;AAEhC,MAAM,sBAA2C;AAAA;AAAA,EAE/C;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AACF;AAEO,SAAS,2BAAgD;AAC9D,SAAO;AACT;AAEO,SAAS,qBAAqB,MAA6C;AAChF,SAAO,oBAAoB,KAAK,OAAK,EAAE,SAAS,IAAI;AACtD;AAEO,SAAS,0BAA0B,UAAmC;AAC3E,QAAM,QAAQ,oBAAoB,UAAU,OAAK,EAAE,SAAS,SAAS,IAAI;AACzE,MAAI,UAAU,GAAI,qBAAoB,OAAO,OAAO,CAAC;AACrD,sBAAoB,KAAK,QAAQ;AACnC;AAIA,SAAS,uBAAuB,aAAqB,IAAsC;AACzF,QAAM,YAAY,oBAAI,IAA2B;AACjD,QAAM,YAAY,oBAAI,IAAoB;AAE1C,SAAO;AAAA,IACL,eAAe,UAA0B;AACvC,UAAI,CAAC,UAAU,IAAI,QAAQ,GAAG;AAC5B,kBAAU,IAAI,UAAU,GAAG,eAAe,QAAQ,CAAC;AAAA,MACrD;AACA,aAAO,UAAU,IAAI,QAAQ;AAAA,IAC/B;AAAA,IACA,eAAe,MAAsB;AACnC,aAAO,GAAG,qBAAqB,IAAI;AAAA,IACrC;AAAA,IACA,eAAe,MAA4B;AACzC,aAAO,GAAG,eAAe,IAAI;AAAA,IAC/B;AAAA,IACA,WAAW,UAA2B;AACpC,aAAO,GAAG,WAAW,KAAK,KAAK,aAAa,QAAQ,CAAC;AAAA,IACvD;AAAA,IACA,SAAS,UAAiC;AACxC,UAAI,UAAU,IAAI,QAAQ,EAAG,QAAO,UAAU,IAAI,QAAQ;AAC1D,UAAI;AACF,cAAM,UAAU,GAAG,aAAa,KAAK,KAAK,aAAa,QAAQ,GAAG,MAAM;AACxE,kBAAU,IAAI,UAAU,OAAO;AAC/B,eAAO;AAAA,MACT,QAAQ;AACN,kBAAU,IAAI,UAAU,IAAI;AAC5B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAyB;AACvB,aAAO;AAAA,IACT;AAAA,IACA,cAAwB;AACtB,aAAO,GAAG,YAAY,EAAE,IAAI,OAAK,EAAE,IAAI;AAAA,IACzC;AAAA,EACF;AACF;AASA,eAAsB,iBAAiB,aAAqB,IAAkD;AAE5G,MAAI,CAAC,IAAI;AACP,WAAO,sBAAsB,WAAW;AAAA,EAC1C;AAEA,QAAM,UAAU,uBAAuB,aAAa,EAAE;AACtD,QAAM,WAAgC,CAAC;AAEvC,aAAW,YAAY,qBAAqB;AAC1C,QAAI;AACF,UAAI,SAAS,OAAO,OAAO,GAAG;AAC5B,oCAAS,8BAA8B,SAAS,IAAI,EAAE;AACtD,iBAAS,KAAK,QAAQ;AAAA,MACxB;AAAA,IACF,SAAS,KAAK;AACZ,iCAAQ,qCAAqC,SAAS,IAAI,IAAI,EAAE,OAAO,OAAO,GAAG,EAAE,CAAC;AAAA,IACtF;AAAA,EACF;AAEA,MAAI,SAAS,SAAS,GAAG;AACvB,cAAM,4BAAa,aAAa,EAAE,gBAAgB,SAAS,IAAI,OAAK,EAAE,IAAI,EAAE,CAAC;AAAA,EAC/E;AAEA,SAAO;AACT;AAKA,eAAe,sBAAsB,aAAmD;AACtF,QAAM,UAAU,KAAK,KAAK,aAAa,cAAc;AACrD,MAAI,CAAC,GAAG,WAAW,OAAO,EAAG,QAAO,CAAC;AAErC,MAAI;AACJ,MAAI;AACF,UAAM,KAAK,MAAM,GAAG,aAAa,SAAS,MAAM,CAAC;AAAA,EACnD,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,OAA+B;AAAA,IACnC,GAAK,IAAI,gBAA2C,CAAC;AAAA,IACrD,GAAK,IAAI,mBAA8C,CAAC;AAAA,EAC1D;AAEA,QAAM,sBAA8C;AAAA,IAClD,OAAO;AAAA,IAAS,MAAM;AAAA,IAAS,gBAAgB;AAAA,IAC/C,QAAQ;AAAA,IAAU,iBAAiB;AAAA,IACnC,SAAS;AAAA,IAAW,SAAS;AAAA,IAAW,KAAK;AAAA,EAC/C;AAEA,QAAM,gBAAgB,oBAAI,IAAY;AACtC,QAAM,WAAgC,CAAC;AAEvC,aAAW,CAACC,MAAK,YAAY,KAAK,OAAO,QAAQ,mBAAmB,GAAG;AACrE,QAAI,OAAO,UAAU,eAAe,KAAK,MAAMA,IAAG,KAAK,CAAC,cAAc,IAAI,YAAY,GAAG;AACvF,YAAM,WAAW,qBAAqB,YAAY;AAClD,UAAI,UAAU;AACZ,sBAAc,IAAI,YAAY;AAC9B,iBAAS,KAAK,QAAQ;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS,SAAS,GAAG;AACvB,cAAM,4BAAa,aAAa,EAAE,gBAAgB,SAAS,IAAI,OAAK,EAAE,IAAI,EAAE,CAAC;AAAA,EAC/E;AAEA,SAAO;AACT;",
6
+ "names": ["import_react", "import_svelte", "import_express", "import_python", "import_ruby", "import_java", "import_go", "import_rust", "import_csharp", "import_swift", "import_laravel", "import_elixir", "pkg"]
7
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Java / Spring Boot Framework Resolver
3
+ *
4
+ * Mirrors CodeGraph src/resolution/frameworks/java.ts
5
+ */
6
+ import type { FrameworkResolver } from './types';
7
+ export declare const springResolver: FrameworkResolver;
8
+ //# sourceMappingURL=java.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../src/frameworks/java.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAiD,MAAM,SAAS,CAAC;AAEhG,eAAO,MAAM,cAAc,EAAE,iBAgD5B,CAAC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var java_exports = {};
20
+ __export(java_exports, {
21
+ springResolver: () => springResolver
22
+ });
23
+ module.exports = __toCommonJS(java_exports);
24
+ const springResolver = {
25
+ name: "spring",
26
+ detect(context) {
27
+ for (const file of ["pom.xml", "build.gradle", "build.gradle.kts"]) {
28
+ const content = context.readFile(file);
29
+ if (content && (content.includes("spring-boot") || content.includes("springframework"))) return true;
30
+ }
31
+ for (const file of context.getAllFiles()) {
32
+ if (file.endsWith(".java")) {
33
+ const content = context.readFile(file);
34
+ if (content && (content.includes("@SpringBootApplication") || content.includes("@RestController") || content.includes("@Service") || content.includes("@Repository"))) return true;
35
+ }
36
+ }
37
+ return false;
38
+ },
39
+ resolve(ref, context) {
40
+ if (ref.referenceName.endsWith("Service")) {
41
+ const id = resolveInDirs(ref.referenceName, ["service", "services"], ".java", context);
42
+ if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: "framework" };
43
+ }
44
+ if (ref.referenceName.endsWith("Repository")) {
45
+ const id = resolveInDirs(ref.referenceName, ["repository", "repositories"], ".java", context);
46
+ if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: "framework" };
47
+ }
48
+ if (ref.referenceName.endsWith("Controller")) {
49
+ const id = resolveInDirs(ref.referenceName, ["controller", "controllers"], ".java", context);
50
+ if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: "framework" };
51
+ }
52
+ if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
53
+ const id = resolveInDirs(ref.referenceName, ["entity", "entities", "model", "models", "domain"], ".java", context);
54
+ if (id) return { original: ref, targetNodeId: id, confidence: 0.7, resolvedBy: "framework" };
55
+ }
56
+ return null;
57
+ },
58
+ extractNodes(filePath, content) {
59
+ const nodes = [];
60
+ const now = Date.now();
61
+ const mappingPattern = /@(Get|Post|Put|Patch|Delete|Request)Mapping\s*\(\s*(?:(?:value|path)\s*=\s*)?["']([^"']+)["']/g;
62
+ let match;
63
+ while ((match = mappingPattern.exec(content)) !== null) {
64
+ const [, type, path] = match;
65
+ const method = type === "Request" ? "ANY" : type.toUpperCase();
66
+ const line = content.slice(0, match.index).split("\n").length;
67
+ nodes.push({ id: `route:${filePath}:${method}:${path}:${line}`, kind: "route", name: `${method} ${path}`, qualifiedName: `${filePath}::${method}:${path}`, filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length, language: "java", updatedAt: now });
68
+ }
69
+ return nodes;
70
+ }
71
+ };
72
+ function resolveInDirs(name, dirs, ext, context) {
73
+ for (const file of context.getAllFiles()) {
74
+ if (file.endsWith(ext) && dirs.some((d) => file.includes(`/${d}/`))) {
75
+ const node = context.getNodesInFile(file).find(
76
+ (n) => (n.kind === "class" || n.kind === "interface") && n.name === name
77
+ );
78
+ if (node) return node.id;
79
+ }
80
+ }
81
+ return null;
82
+ }
83
+ // Annotate the CommonJS export names for ESM import in node:
84
+ 0 && (module.exports = {
85
+ springResolver
86
+ });
87
+ //# sourceMappingURL=java.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/frameworks/java.ts"],
4
+ "sourcesContent": ["/**\n * Java / Spring Boot Framework Resolver\n *\n * Mirrors CodeGraph src/resolution/frameworks/java.ts\n */\n\nimport type { Node } from '../types';\nimport type { FrameworkResolver, UnresolvedRef, ResolvedRef, ResolutionContext } from './types';\n\nexport const springResolver: FrameworkResolver = {\n name: 'spring',\n detect(context: ResolutionContext): boolean {\n for (const file of ['pom.xml','build.gradle','build.gradle.kts']) {\n const content = context.readFile(file);\n if (content && (content.includes('spring-boot') || content.includes('springframework'))) return true;\n }\n for (const file of context.getAllFiles()) {\n if (file.endsWith('.java')) {\n const content = context.readFile(file);\n if (content && (content.includes('@SpringBootApplication') || content.includes('@RestController') ||\n content.includes('@Service') || content.includes('@Repository'))) return true;\n }\n }\n return false;\n },\n resolve(ref: UnresolvedRef, context: ResolutionContext): ResolvedRef | null {\n if (ref.referenceName.endsWith('Service')) {\n const id = resolveInDirs(ref.referenceName, ['service','services'], '.java', context);\n if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: 'framework' };\n }\n if (ref.referenceName.endsWith('Repository')) {\n const id = resolveInDirs(ref.referenceName, ['repository','repositories'], '.java', context);\n if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: 'framework' };\n }\n if (ref.referenceName.endsWith('Controller')) {\n const id = resolveInDirs(ref.referenceName, ['controller','controllers'], '.java', context);\n if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: 'framework' };\n }\n if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {\n const id = resolveInDirs(ref.referenceName, ['entity','entities','model','models','domain'], '.java', context);\n if (id) return { original: ref, targetNodeId: id, confidence: 0.7, resolvedBy: 'framework' };\n }\n return null;\n },\n extractNodes(filePath: string, content: string): Node[] {\n const nodes: Node[] = [];\n const now = Date.now();\n const mappingPattern = /@(Get|Post|Put|Patch|Delete|Request)Mapping\\s*\\(\\s*(?:(?:value|path)\\s*=\\s*)?[\"']([^\"']+)[\"']/g;\n let match;\n while ((match = mappingPattern.exec(content)) !== null) {\n const [, type, path] = match;\n const method = type === 'Request' ? 'ANY' : type!.toUpperCase();\n const line = content.slice(0, match.index).split('\\n').length;\n nodes.push({ id: `route:${filePath}:${method}:${path}:${line}`, kind: 'route', name: `${method} ${path}`, qualifiedName: `${filePath}::${method}:${path}`, filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length, language: 'java', updatedAt: now });\n }\n return nodes;\n },\n};\n\nfunction resolveInDirs(name: string, dirs: string[], ext: string, context: ResolutionContext): string | null {\n for (const file of context.getAllFiles()) {\n if (file.endsWith(ext) && dirs.some(d => file.includes(`/${d}/`))) {\n const node = context.getNodesInFile(file).find(\n n => (n.kind === 'class' || n.kind === 'interface') && n.name === name\n );\n if (node) return node.id;\n }\n }\n return null;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Laravel Framework Resolver
3
+ *
4
+ * Mirrors CodeGraph src/resolution/frameworks/laravel.ts
5
+ */
6
+ import type { FrameworkResolver } from './types';
7
+ export declare const FACADE_MAPPINGS: Record<string, string>;
8
+ export declare const laravelResolver: FrameworkResolver;
9
+ //# sourceMappingURL=laravel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laravel.d.ts","sourceRoot":"","sources":["../../src/frameworks/laravel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAiD,MAAM,SAAS,CAAC;AAEhG,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBlD,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,iBAqC7B,CAAC"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var laravel_exports = {};
20
+ __export(laravel_exports, {
21
+ FACADE_MAPPINGS: () => FACADE_MAPPINGS,
22
+ laravelResolver: () => laravelResolver
23
+ });
24
+ module.exports = __toCommonJS(laravel_exports);
25
+ const FACADE_MAPPINGS = {
26
+ Auth: "Illuminate\\Auth\\AuthManager",
27
+ Cache: "Illuminate\\Cache\\CacheManager",
28
+ Config: "Illuminate\\Config\\Repository",
29
+ DB: "Illuminate\\Database\\DatabaseManager",
30
+ Event: "Illuminate\\Events\\Dispatcher",
31
+ File: "Illuminate\\Filesystem\\Filesystem",
32
+ Gate: "Illuminate\\Auth\\Access\\Gate",
33
+ Hash: "Illuminate\\Hashing\\HashManager",
34
+ Log: "Illuminate\\Log\\LogManager",
35
+ Mail: "Illuminate\\Mail\\Mailer",
36
+ Queue: "Illuminate\\Queue\\QueueManager",
37
+ Redis: "Illuminate\\Redis\\RedisManager",
38
+ Request: "Illuminate\\Http\\Request",
39
+ Response: "Illuminate\\Http\\Response",
40
+ Route: "Illuminate\\Routing\\Router",
41
+ Session: "Illuminate\\Session\\SessionManager",
42
+ Storage: "Illuminate\\Filesystem\\FilesystemManager",
43
+ URL: "Illuminate\\Routing\\UrlGenerator",
44
+ Validator: "Illuminate\\Validation\\Factory",
45
+ View: "Illuminate\\View\\Factory"
46
+ };
47
+ const LARAVEL_HELPERS = /* @__PURE__ */ new Set(["route", "view", "config", "env", "app", "abort", "redirect", "response", "request", "session", "url", "asset", "mix"]);
48
+ const laravelResolver = {
49
+ name: "laravel",
50
+ detect(context) {
51
+ return context.fileExists("artisan") || context.fileExists("app/Http/Kernel.php");
52
+ },
53
+ resolve(ref, context) {
54
+ const modelMatch = ref.referenceName.match(/^([A-Z][a-zA-Z]+)::(\w+)$/);
55
+ if (modelMatch) {
56
+ const id = resolveModelCall(modelMatch[1], modelMatch[2], context);
57
+ if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: "framework" };
58
+ }
59
+ if (LARAVEL_HELPERS.has(ref.referenceName)) return null;
60
+ const controllerMatch = ref.referenceName.match(/^([A-Z][a-zA-Z]+Controller)@(\w+)$/);
61
+ if (controllerMatch) {
62
+ const id = resolveControllerMethod(controllerMatch[1], controllerMatch[2], context);
63
+ if (id) return { original: ref, targetNodeId: id, confidence: 0.9, resolvedBy: "framework" };
64
+ }
65
+ return null;
66
+ },
67
+ extractNodes(filePath, content) {
68
+ const nodes = [];
69
+ const now = Date.now();
70
+ const routePattern = /Route::(get|post|put|patch|delete|options|any)\(\s*['"]([^'"]+)['"]/g;
71
+ const resourcePattern = /Route::(?:api)?[Rr]esource\(\s*['"]([^'"]+)['"]/g;
72
+ let match;
73
+ while ((match = routePattern.exec(content)) !== null) {
74
+ const [, method, path] = match;
75
+ const line = content.slice(0, match.index).split("\n").length;
76
+ nodes.push({ id: `route:${filePath}:${method.toUpperCase()}:${path}:${line}`, kind: "route", name: `${method.toUpperCase()} ${path}`, qualifiedName: `${filePath}::${method.toUpperCase()}:${path}`, filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length, language: "php", updatedAt: now });
77
+ }
78
+ while ((match = resourcePattern.exec(content)) !== null) {
79
+ const [, name] = match;
80
+ const line = content.slice(0, match.index).split("\n").length;
81
+ nodes.push({ id: `route:${filePath}:resource:${name}:${line}`, kind: "route", name: `resource:${name}`, qualifiedName: `${filePath}::resource:${name}`, filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length, language: "php", updatedAt: now });
82
+ }
83
+ return nodes;
84
+ }
85
+ };
86
+ function resolveModelCall(className, methodName, context) {
87
+ for (const modelPath of [`app/Models/${className}.php`, `app/${className}.php`]) {
88
+ if (context.fileExists(modelPath)) {
89
+ const nodes = context.getNodesInFile(modelPath);
90
+ const node = nodes.find((n) => n.kind === "method" && n.name === methodName) ?? nodes.find((n) => n.kind === "class" && n.name === className);
91
+ if (node) return node.id;
92
+ }
93
+ }
94
+ return null;
95
+ }
96
+ function resolveControllerMethod(controller, method, context) {
97
+ const controllerPath = `app/Http/Controllers/${controller}.php`;
98
+ if (context.fileExists(controllerPath)) {
99
+ const node = context.getNodesInFile(controllerPath).find((n) => n.kind === "method" && n.name === method);
100
+ if (node) return node.id;
101
+ }
102
+ for (const file of context.getAllFiles()) {
103
+ if (file.endsWith(`${controller}.php`) && file.includes("Controllers")) {
104
+ const node = context.getNodesInFile(file).find((n) => n.kind === "method" && n.name === method);
105
+ if (node) return node.id;
106
+ }
107
+ }
108
+ return null;
109
+ }
110
+ // Annotate the CommonJS export names for ESM import in node:
111
+ 0 && (module.exports = {
112
+ FACADE_MAPPINGS,
113
+ laravelResolver
114
+ });
115
+ //# sourceMappingURL=laravel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/frameworks/laravel.ts"],
4
+ "sourcesContent": ["/**\n * Laravel Framework Resolver\n *\n * Mirrors CodeGraph src/resolution/frameworks/laravel.ts\n */\n\nimport type { Node } from '../types';\nimport type { FrameworkResolver, UnresolvedRef, ResolvedRef, ResolutionContext } from './types';\n\nexport const FACADE_MAPPINGS: Record<string, string> = {\n Auth: 'Illuminate\\\\Auth\\\\AuthManager',\n Cache: 'Illuminate\\\\Cache\\\\CacheManager',\n Config: 'Illuminate\\\\Config\\\\Repository',\n DB: 'Illuminate\\\\Database\\\\DatabaseManager',\n Event: 'Illuminate\\\\Events\\\\Dispatcher',\n File: 'Illuminate\\\\Filesystem\\\\Filesystem',\n Gate: 'Illuminate\\\\Auth\\\\Access\\\\Gate',\n Hash: 'Illuminate\\\\Hashing\\\\HashManager',\n Log: 'Illuminate\\\\Log\\\\LogManager',\n Mail: 'Illuminate\\\\Mail\\\\Mailer',\n Queue: 'Illuminate\\\\Queue\\\\QueueManager',\n Redis: 'Illuminate\\\\Redis\\\\RedisManager',\n Request: 'Illuminate\\\\Http\\\\Request',\n Response: 'Illuminate\\\\Http\\\\Response',\n Route: 'Illuminate\\\\Routing\\\\Router',\n Session: 'Illuminate\\\\Session\\\\SessionManager',\n Storage: 'Illuminate\\\\Filesystem\\\\FilesystemManager',\n URL: 'Illuminate\\\\Routing\\\\UrlGenerator',\n Validator: 'Illuminate\\\\Validation\\\\Factory',\n View: 'Illuminate\\\\View\\\\Factory',\n};\n\nconst LARAVEL_HELPERS = new Set(['route','view','config','env','app','abort','redirect','response','request','session','url','asset','mix']);\n\nexport const laravelResolver: FrameworkResolver = {\n name: 'laravel',\n detect(context: ResolutionContext): boolean {\n return context.fileExists('artisan') || context.fileExists('app/Http/Kernel.php');\n },\n resolve(ref: UnresolvedRef, context: ResolutionContext): ResolvedRef | null {\n const modelMatch = ref.referenceName.match(/^([A-Z][a-zA-Z]+)::(\\w+)$/);\n if (modelMatch) {\n const id = resolveModelCall(modelMatch[1]!, modelMatch[2]!, context);\n if (id) return { original: ref, targetNodeId: id, confidence: 0.85, resolvedBy: 'framework' };\n }\n if (LARAVEL_HELPERS.has(ref.referenceName)) return null;\n const controllerMatch = ref.referenceName.match(/^([A-Z][a-zA-Z]+Controller)@(\\w+)$/);\n if (controllerMatch) {\n const id = resolveControllerMethod(controllerMatch[1]!, controllerMatch[2]!, context);\n if (id) return { original: ref, targetNodeId: id, confidence: 0.9, resolvedBy: 'framework' };\n }\n return null;\n },\n extractNodes(filePath: string, content: string): Node[] {\n const nodes: Node[] = [];\n const now = Date.now();\n const routePattern = /Route::(get|post|put|patch|delete|options|any)\\(\\s*['\"]([^'\"]+)['\"]/g;\n const resourcePattern = /Route::(?:api)?[Rr]esource\\(\\s*['\"]([^'\"]+)['\"]/g;\n let match;\n while ((match = routePattern.exec(content)) !== null) {\n const [, method, path] = match;\n const line = content.slice(0, match.index).split('\\n').length;\n nodes.push({ id: `route:${filePath}:${method!.toUpperCase()}:${path}:${line}`, kind: 'route', name: `${method!.toUpperCase()} ${path}`, qualifiedName: `${filePath}::${method!.toUpperCase()}:${path}`, filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length, language: 'php', updatedAt: now });\n }\n while ((match = resourcePattern.exec(content)) !== null) {\n const [, name] = match;\n const line = content.slice(0, match.index).split('\\n').length;\n nodes.push({ id: `route:${filePath}:resource:${name}:${line}`, kind: 'route', name: `resource:${name}`, qualifiedName: `${filePath}::resource:${name}`, filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length, language: 'php', updatedAt: now });\n }\n return nodes;\n },\n};\n\nfunction resolveModelCall(className: string, methodName: string, context: ResolutionContext): string | null {\n for (const modelPath of [`app/Models/${className}.php`, `app/${className}.php`]) {\n if (context.fileExists(modelPath)) {\n const nodes = context.getNodesInFile(modelPath);\n const node = nodes.find(n => n.kind === 'method' && n.name === methodName) ??\n nodes.find(n => n.kind === 'class' && n.name === className);\n if (node) return node.id;\n }\n }\n return null;\n}\n\nfunction resolveControllerMethod(controller: string, method: string, context: ResolutionContext): string | null {\n const controllerPath = `app/Http/Controllers/${controller}.php`;\n if (context.fileExists(controllerPath)) {\n const node = context.getNodesInFile(controllerPath).find(n => n.kind === 'method' && n.name === method);\n if (node) return node.id;\n }\n for (const file of context.getAllFiles()) {\n if (file.endsWith(`${controller}.php`) && file.includes('Controllers')) {\n const node = context.getNodesInFile(file).find(n => n.kind === 'method' && n.name === method);\n if (node) return node.id;\n }\n }\n return null;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Python Framework Resolver (Django, Flask, FastAPI)
3
+ *
4
+ * Mirrors CodeGraph src/resolution/frameworks/python.ts
5
+ */
6
+ import type { FrameworkResolver } from './types';
7
+ export declare const djangoResolver: FrameworkResolver;
8
+ export declare const flaskResolver: FrameworkResolver;
9
+ export declare const fastapiResolver: FrameworkResolver;
10
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/frameworks/python.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAiD,MAAM,SAAS,CAAC;AAEhG,eAAO,MAAM,cAAc,EAAE,iBAuC5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBAoC3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,iBAqC7B,CAAC"}