@opencodehub/ingestion 0.1.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 (563) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +69 -0
  3. package/dist/extract/index.d.ts +8 -0
  4. package/dist/extract/index.d.ts.map +1 -0
  5. package/dist/extract/index.js +6 -0
  6. package/dist/extract/index.js.map +1 -0
  7. package/dist/extract/orm-detector.d.ts +19 -0
  8. package/dist/extract/orm-detector.d.ts.map +1 -0
  9. package/dist/extract/orm-detector.js +209 -0
  10. package/dist/extract/orm-detector.js.map +1 -0
  11. package/dist/extract/property-access.d.ts +76 -0
  12. package/dist/extract/property-access.d.ts.map +1 -0
  13. package/dist/extract/property-access.js +260 -0
  14. package/dist/extract/property-access.js.map +1 -0
  15. package/dist/extract/receiver-resolver.d.ts +86 -0
  16. package/dist/extract/receiver-resolver.d.ts.map +1 -0
  17. package/dist/extract/receiver-resolver.js +77 -0
  18. package/dist/extract/receiver-resolver.js.map +1 -0
  19. package/dist/extract/route-detector-java.d.ts +29 -0
  20. package/dist/extract/route-detector-java.d.ts.map +1 -0
  21. package/dist/extract/route-detector-java.js +190 -0
  22. package/dist/extract/route-detector-java.js.map +1 -0
  23. package/dist/extract/route-detector-nestjs.d.ts +30 -0
  24. package/dist/extract/route-detector-nestjs.d.ts.map +1 -0
  25. package/dist/extract/route-detector-nestjs.js +134 -0
  26. package/dist/extract/route-detector-nestjs.js.map +1 -0
  27. package/dist/extract/route-detector-python.d.ts +28 -0
  28. package/dist/extract/route-detector-python.d.ts.map +1 -0
  29. package/dist/extract/route-detector-python.js +100 -0
  30. package/dist/extract/route-detector-python.js.map +1 -0
  31. package/dist/extract/route-detector-rails.d.ts +28 -0
  32. package/dist/extract/route-detector-rails.d.ts.map +1 -0
  33. package/dist/extract/route-detector-rails.js +162 -0
  34. package/dist/extract/route-detector-rails.js.map +1 -0
  35. package/dist/extract/route-detector.d.ts +45 -0
  36. package/dist/extract/route-detector.d.ts.map +1 -0
  37. package/dist/extract/route-detector.js +467 -0
  38. package/dist/extract/route-detector.js.map +1 -0
  39. package/dist/extract/tool-detector.d.ts +26 -0
  40. package/dist/extract/tool-detector.d.ts.map +1 -0
  41. package/dist/extract/tool-detector.js +364 -0
  42. package/dist/extract/tool-detector.js.map +1 -0
  43. package/dist/extract/types.d.ts +89 -0
  44. package/dist/extract/types.d.ts.map +1 -0
  45. package/dist/extract/types.js +11 -0
  46. package/dist/extract/types.js.map +1 -0
  47. package/dist/index.d.ts +10 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +10 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/parse/cobol-regex.d.ts +85 -0
  52. package/dist/parse/cobol-regex.d.ts.map +1 -0
  53. package/dist/parse/cobol-regex.js +355 -0
  54. package/dist/parse/cobol-regex.js.map +1 -0
  55. package/dist/parse/grammar-registry.d.ts +115 -0
  56. package/dist/parse/grammar-registry.d.ts.map +1 -0
  57. package/dist/parse/grammar-registry.js +278 -0
  58. package/dist/parse/grammar-registry.js.map +1 -0
  59. package/dist/parse/index.d.ts +14 -0
  60. package/dist/parse/index.d.ts.map +1 -0
  61. package/dist/parse/index.js +10 -0
  62. package/dist/parse/index.js.map +1 -0
  63. package/dist/parse/language-detector.d.ts +17 -0
  64. package/dist/parse/language-detector.d.ts.map +1 -0
  65. package/dist/parse/language-detector.js +104 -0
  66. package/dist/parse/language-detector.js.map +1 -0
  67. package/dist/parse/parse-worker.d.ts +24 -0
  68. package/dist/parse/parse-worker.d.ts.map +1 -0
  69. package/dist/parse/parse-worker.js +230 -0
  70. package/dist/parse/parse-worker.js.map +1 -0
  71. package/dist/parse/types.d.ts +49 -0
  72. package/dist/parse/types.d.ts.map +1 -0
  73. package/dist/parse/types.js +11 -0
  74. package/dist/parse/types.js.map +1 -0
  75. package/dist/parse/unified-queries.d.ts +37 -0
  76. package/dist/parse/unified-queries.d.ts.map +1 -0
  77. package/dist/parse/unified-queries.js +623 -0
  78. package/dist/parse/unified-queries.js.map +1 -0
  79. package/dist/parse/wasm-fallback.d.ts +88 -0
  80. package/dist/parse/wasm-fallback.d.ts.map +1 -0
  81. package/dist/parse/wasm-fallback.js +258 -0
  82. package/dist/parse/wasm-fallback.js.map +1 -0
  83. package/dist/parse/worker-pool.d.ts +48 -0
  84. package/dist/parse/worker-pool.d.ts.map +1 -0
  85. package/dist/parse/worker-pool.js +97 -0
  86. package/dist/parse/worker-pool.js.map +1 -0
  87. package/dist/pipeline/dep-parsers/go.d.ts +25 -0
  88. package/dist/pipeline/dep-parsers/go.d.ts.map +1 -0
  89. package/dist/pipeline/dep-parsers/go.js +146 -0
  90. package/dist/pipeline/dep-parsers/go.js.map +1 -0
  91. package/dist/pipeline/dep-parsers/index.d.ts +17 -0
  92. package/dist/pipeline/dep-parsers/index.d.ts.map +1 -0
  93. package/dist/pipeline/dep-parsers/index.js +16 -0
  94. package/dist/pipeline/dep-parsers/index.js.map +1 -0
  95. package/dist/pipeline/dep-parsers/maven.d.ts +24 -0
  96. package/dist/pipeline/dep-parsers/maven.d.ts.map +1 -0
  97. package/dist/pipeline/dep-parsers/maven.js +131 -0
  98. package/dist/pipeline/dep-parsers/maven.js.map +1 -0
  99. package/dist/pipeline/dep-parsers/npm.d.ts +30 -0
  100. package/dist/pipeline/dep-parsers/npm.d.ts.map +1 -0
  101. package/dist/pipeline/dep-parsers/npm.js +309 -0
  102. package/dist/pipeline/dep-parsers/npm.js.map +1 -0
  103. package/dist/pipeline/dep-parsers/nuget.d.ts +24 -0
  104. package/dist/pipeline/dep-parsers/nuget.d.ts.map +1 -0
  105. package/dist/pipeline/dep-parsers/nuget.js +178 -0
  106. package/dist/pipeline/dep-parsers/nuget.js.map +1 -0
  107. package/dist/pipeline/dep-parsers/python.d.ts +21 -0
  108. package/dist/pipeline/dep-parsers/python.d.ts.map +1 -0
  109. package/dist/pipeline/dep-parsers/python.js +369 -0
  110. package/dist/pipeline/dep-parsers/python.js.map +1 -0
  111. package/dist/pipeline/dep-parsers/rust.d.ts +18 -0
  112. package/dist/pipeline/dep-parsers/rust.d.ts.map +1 -0
  113. package/dist/pipeline/dep-parsers/rust.js +134 -0
  114. package/dist/pipeline/dep-parsers/rust.js.map +1 -0
  115. package/dist/pipeline/dep-parsers/spdx-normalize.d.ts +15 -0
  116. package/dist/pipeline/dep-parsers/spdx-normalize.d.ts.map +1 -0
  117. package/dist/pipeline/dep-parsers/spdx-normalize.js +31 -0
  118. package/dist/pipeline/dep-parsers/spdx-normalize.js.map +1 -0
  119. package/dist/pipeline/dep-parsers/types.d.ts +63 -0
  120. package/dist/pipeline/dep-parsers/types.d.ts.map +1 -0
  121. package/dist/pipeline/dep-parsers/types.js +56 -0
  122. package/dist/pipeline/dep-parsers/types.js.map +1 -0
  123. package/dist/pipeline/gitignore-stack.d.ts +44 -0
  124. package/dist/pipeline/gitignore-stack.d.ts.map +1 -0
  125. package/dist/pipeline/gitignore-stack.js +69 -0
  126. package/dist/pipeline/gitignore-stack.js.map +1 -0
  127. package/dist/pipeline/gitignore.d.ts +67 -0
  128. package/dist/pipeline/gitignore.d.ts.map +1 -0
  129. package/dist/pipeline/gitignore.js +210 -0
  130. package/dist/pipeline/gitignore.js.map +1 -0
  131. package/dist/pipeline/index.d.ts +53 -0
  132. package/dist/pipeline/index.d.ts.map +1 -0
  133. package/dist/pipeline/index.js +29 -0
  134. package/dist/pipeline/index.js.map +1 -0
  135. package/dist/pipeline/orchestrator.d.ts +105 -0
  136. package/dist/pipeline/orchestrator.d.ts.map +1 -0
  137. package/dist/pipeline/orchestrator.js +175 -0
  138. package/dist/pipeline/orchestrator.js.map +1 -0
  139. package/dist/pipeline/ownership-helpers/drift.d.ts +41 -0
  140. package/dist/pipeline/ownership-helpers/drift.d.ts.map +1 -0
  141. package/dist/pipeline/ownership-helpers/drift.js +122 -0
  142. package/dist/pipeline/ownership-helpers/drift.js.map +1 -0
  143. package/dist/pipeline/ownership-helpers/gini-community.d.ts +24 -0
  144. package/dist/pipeline/ownership-helpers/gini-community.d.ts.map +1 -0
  145. package/dist/pipeline/ownership-helpers/gini-community.js +32 -0
  146. package/dist/pipeline/ownership-helpers/gini-community.js.map +1 -0
  147. package/dist/pipeline/ownership-helpers/git-blame-batcher.d.ts +71 -0
  148. package/dist/pipeline/ownership-helpers/git-blame-batcher.d.ts.map +1 -0
  149. package/dist/pipeline/ownership-helpers/git-blame-batcher.js +178 -0
  150. package/dist/pipeline/ownership-helpers/git-blame-batcher.js.map +1 -0
  151. package/dist/pipeline/ownership-helpers/line-overlap.d.ts +35 -0
  152. package/dist/pipeline/ownership-helpers/line-overlap.d.ts.map +1 -0
  153. package/dist/pipeline/ownership-helpers/line-overlap.js +62 -0
  154. package/dist/pipeline/ownership-helpers/line-overlap.js.map +1 -0
  155. package/dist/pipeline/ownership-helpers/orphan.d.ts +73 -0
  156. package/dist/pipeline/ownership-helpers/orphan.d.ts.map +1 -0
  157. package/dist/pipeline/ownership-helpers/orphan.js +117 -0
  158. package/dist/pipeline/ownership-helpers/orphan.js.map +1 -0
  159. package/dist/pipeline/phases/accesses.d.ts +44 -0
  160. package/dist/pipeline/phases/accesses.d.ts.map +1 -0
  161. package/dist/pipeline/phases/accesses.js +194 -0
  162. package/dist/pipeline/phases/accesses.js.map +1 -0
  163. package/dist/pipeline/phases/annotate.d.ts +28 -0
  164. package/dist/pipeline/phases/annotate.d.ts.map +1 -0
  165. package/dist/pipeline/phases/annotate.js +60 -0
  166. package/dist/pipeline/phases/annotate.js.map +1 -0
  167. package/dist/pipeline/phases/cochange.d.ts +42 -0
  168. package/dist/pipeline/phases/cochange.d.ts.map +1 -0
  169. package/dist/pipeline/phases/cochange.js +0 -0
  170. package/dist/pipeline/phases/cochange.js.map +1 -0
  171. package/dist/pipeline/phases/communities.d.ts +34 -0
  172. package/dist/pipeline/phases/communities.d.ts.map +1 -0
  173. package/dist/pipeline/phases/communities.js +412 -0
  174. package/dist/pipeline/phases/communities.js.map +1 -0
  175. package/dist/pipeline/phases/complexity.d.ts +50 -0
  176. package/dist/pipeline/phases/complexity.d.ts.map +1 -0
  177. package/dist/pipeline/phases/complexity.js +794 -0
  178. package/dist/pipeline/phases/complexity.js.map +1 -0
  179. package/dist/pipeline/phases/confidence-demote.d.ts +23 -0
  180. package/dist/pipeline/phases/confidence-demote.d.ts.map +1 -0
  181. package/dist/pipeline/phases/confidence-demote.js +113 -0
  182. package/dist/pipeline/phases/confidence-demote.js.map +1 -0
  183. package/dist/pipeline/phases/content-cache.d.ts +166 -0
  184. package/dist/pipeline/phases/content-cache.d.ts.map +1 -0
  185. package/dist/pipeline/phases/content-cache.js +323 -0
  186. package/dist/pipeline/phases/content-cache.js.map +1 -0
  187. package/dist/pipeline/phases/coverage-parsers/cobertura.d.ts +25 -0
  188. package/dist/pipeline/phases/coverage-parsers/cobertura.d.ts.map +1 -0
  189. package/dist/pipeline/phases/coverage-parsers/cobertura.js +139 -0
  190. package/dist/pipeline/phases/coverage-parsers/cobertura.js.map +1 -0
  191. package/dist/pipeline/phases/coverage-parsers/coverage-py.d.ts +25 -0
  192. package/dist/pipeline/phases/coverage-parsers/coverage-py.d.ts.map +1 -0
  193. package/dist/pipeline/phases/coverage-parsers/coverage-py.js +51 -0
  194. package/dist/pipeline/phases/coverage-parsers/coverage-py.js.map +1 -0
  195. package/dist/pipeline/phases/coverage-parsers/jacoco.d.ts +32 -0
  196. package/dist/pipeline/phases/coverage-parsers/jacoco.d.ts.map +1 -0
  197. package/dist/pipeline/phases/coverage-parsers/jacoco.js +98 -0
  198. package/dist/pipeline/phases/coverage-parsers/jacoco.js.map +1 -0
  199. package/dist/pipeline/phases/coverage-parsers/lcov.d.ts +21 -0
  200. package/dist/pipeline/phases/coverage-parsers/lcov.d.ts.map +1 -0
  201. package/dist/pipeline/phases/coverage-parsers/lcov.js +104 -0
  202. package/dist/pipeline/phases/coverage-parsers/lcov.js.map +1 -0
  203. package/dist/pipeline/phases/coverage-parsers/types.d.ts +27 -0
  204. package/dist/pipeline/phases/coverage-parsers/types.d.ts.map +1 -0
  205. package/dist/pipeline/phases/coverage-parsers/types.js +39 -0
  206. package/dist/pipeline/phases/coverage-parsers/types.js.map +1 -0
  207. package/dist/pipeline/phases/coverage.d.ts +39 -0
  208. package/dist/pipeline/phases/coverage.d.ts.map +1 -0
  209. package/dist/pipeline/phases/coverage.js +154 -0
  210. package/dist/pipeline/phases/coverage.js.map +1 -0
  211. package/dist/pipeline/phases/cross-file.d.ts +40 -0
  212. package/dist/pipeline/phases/cross-file.d.ts.map +1 -0
  213. package/dist/pipeline/phases/cross-file.js +411 -0
  214. package/dist/pipeline/phases/cross-file.js.map +1 -0
  215. package/dist/pipeline/phases/dead-code.d.ts +28 -0
  216. package/dist/pipeline/phases/dead-code.d.ts.map +1 -0
  217. package/dist/pipeline/phases/dead-code.js +157 -0
  218. package/dist/pipeline/phases/dead-code.js.map +1 -0
  219. package/dist/pipeline/phases/default-set.d.ts +24 -0
  220. package/dist/pipeline/phases/default-set.d.ts.map +1 -0
  221. package/dist/pipeline/phases/default-set.js +133 -0
  222. package/dist/pipeline/phases/default-set.js.map +1 -0
  223. package/dist/pipeline/phases/dependencies.d.ts +59 -0
  224. package/dist/pipeline/phases/dependencies.d.ts.map +1 -0
  225. package/dist/pipeline/phases/dependencies.js +281 -0
  226. package/dist/pipeline/phases/dependencies.js.map +1 -0
  227. package/dist/pipeline/phases/embedder-pool.d.ts +31 -0
  228. package/dist/pipeline/phases/embedder-pool.d.ts.map +1 -0
  229. package/dist/pipeline/phases/embedder-pool.js +79 -0
  230. package/dist/pipeline/phases/embedder-pool.js.map +1 -0
  231. package/dist/pipeline/phases/embedder-worker.d.ts +28 -0
  232. package/dist/pipeline/phases/embedder-worker.d.ts.map +1 -0
  233. package/dist/pipeline/phases/embedder-worker.js +43 -0
  234. package/dist/pipeline/phases/embedder-worker.js.map +1 -0
  235. package/dist/pipeline/phases/embeddings.d.ts +117 -0
  236. package/dist/pipeline/phases/embeddings.d.ts.map +1 -0
  237. package/dist/pipeline/phases/embeddings.js +697 -0
  238. package/dist/pipeline/phases/embeddings.js.map +1 -0
  239. package/dist/pipeline/phases/fetches.d.ts +47 -0
  240. package/dist/pipeline/phases/fetches.d.ts.map +1 -0
  241. package/dist/pipeline/phases/fetches.js +207 -0
  242. package/dist/pipeline/phases/fetches.js.map +1 -0
  243. package/dist/pipeline/phases/incremental-helper.d.ts +96 -0
  244. package/dist/pipeline/phases/incremental-helper.d.ts.map +1 -0
  245. package/dist/pipeline/phases/incremental-helper.js +125 -0
  246. package/dist/pipeline/phases/incremental-helper.js.map +1 -0
  247. package/dist/pipeline/phases/incremental-scope.d.ts +67 -0
  248. package/dist/pipeline/phases/incremental-scope.d.ts.map +1 -0
  249. package/dist/pipeline/phases/incremental-scope.js +225 -0
  250. package/dist/pipeline/phases/incremental-scope.js.map +1 -0
  251. package/dist/pipeline/phases/markdown.d.ts +29 -0
  252. package/dist/pipeline/phases/markdown.d.ts.map +1 -0
  253. package/dist/pipeline/phases/markdown.js +298 -0
  254. package/dist/pipeline/phases/markdown.js.map +1 -0
  255. package/dist/pipeline/phases/mro.d.ts +24 -0
  256. package/dist/pipeline/phases/mro.d.ts.map +1 -0
  257. package/dist/pipeline/phases/mro.js +303 -0
  258. package/dist/pipeline/phases/mro.js.map +1 -0
  259. package/dist/pipeline/phases/openapi.d.ts +52 -0
  260. package/dist/pipeline/phases/openapi.d.ts.map +1 -0
  261. package/dist/pipeline/phases/openapi.js +285 -0
  262. package/dist/pipeline/phases/openapi.js.map +1 -0
  263. package/dist/pipeline/phases/orm.d.ts +26 -0
  264. package/dist/pipeline/phases/orm.d.ts.map +1 -0
  265. package/dist/pipeline/phases/orm.js +183 -0
  266. package/dist/pipeline/phases/orm.js.map +1 -0
  267. package/dist/pipeline/phases/ownership.d.ts +88 -0
  268. package/dist/pipeline/phases/ownership.d.ts.map +1 -0
  269. package/dist/pipeline/phases/ownership.js +479 -0
  270. package/dist/pipeline/phases/ownership.js.map +1 -0
  271. package/dist/pipeline/phases/parse.d.ts +63 -0
  272. package/dist/pipeline/phases/parse.d.ts.map +1 -0
  273. package/dist/pipeline/phases/parse.js +994 -0
  274. package/dist/pipeline/phases/parse.js.map +1 -0
  275. package/dist/pipeline/phases/processes.d.ts +47 -0
  276. package/dist/pipeline/phases/processes.d.ts.map +1 -0
  277. package/dist/pipeline/phases/processes.js +620 -0
  278. package/dist/pipeline/phases/processes.js.map +1 -0
  279. package/dist/pipeline/phases/profile.d.ts +33 -0
  280. package/dist/pipeline/phases/profile.d.ts.map +1 -0
  281. package/dist/pipeline/phases/profile.js +91 -0
  282. package/dist/pipeline/phases/profile.js.map +1 -0
  283. package/dist/pipeline/phases/repo-node.d.ts +112 -0
  284. package/dist/pipeline/phases/repo-node.d.ts.map +1 -0
  285. package/dist/pipeline/phases/repo-node.js +272 -0
  286. package/dist/pipeline/phases/repo-node.js.map +1 -0
  287. package/dist/pipeline/phases/risk-snapshot.d.ts +34 -0
  288. package/dist/pipeline/phases/risk-snapshot.d.ts.map +1 -0
  289. package/dist/pipeline/phases/risk-snapshot.js +63 -0
  290. package/dist/pipeline/phases/risk-snapshot.js.map +1 -0
  291. package/dist/pipeline/phases/routes.d.ts +31 -0
  292. package/dist/pipeline/phases/routes.d.ts.map +1 -0
  293. package/dist/pipeline/phases/routes.js +262 -0
  294. package/dist/pipeline/phases/routes.js.map +1 -0
  295. package/dist/pipeline/phases/sbom.d.ts +45 -0
  296. package/dist/pipeline/phases/sbom.d.ts.map +1 -0
  297. package/dist/pipeline/phases/sbom.js +289 -0
  298. package/dist/pipeline/phases/sbom.js.map +1 -0
  299. package/dist/pipeline/phases/scan.d.ts +54 -0
  300. package/dist/pipeline/phases/scan.d.ts.map +1 -0
  301. package/dist/pipeline/phases/scan.js +340 -0
  302. package/dist/pipeline/phases/scan.js.map +1 -0
  303. package/dist/pipeline/phases/scip-index.d.ts +54 -0
  304. package/dist/pipeline/phases/scip-index.d.ts.map +1 -0
  305. package/dist/pipeline/phases/scip-index.js +469 -0
  306. package/dist/pipeline/phases/scip-index.js.map +1 -0
  307. package/dist/pipeline/phases/structure.d.ts +21 -0
  308. package/dist/pipeline/phases/structure.d.ts.map +1 -0
  309. package/dist/pipeline/phases/structure.js +115 -0
  310. package/dist/pipeline/phases/structure.js.map +1 -0
  311. package/dist/pipeline/phases/summarize.d.ts +126 -0
  312. package/dist/pipeline/phases/summarize.d.ts.map +1 -0
  313. package/dist/pipeline/phases/summarize.js +401 -0
  314. package/dist/pipeline/phases/summarize.js.map +1 -0
  315. package/dist/pipeline/phases/temporal-helpers/branch-divergence.d.ts +42 -0
  316. package/dist/pipeline/phases/temporal-helpers/branch-divergence.d.ts.map +1 -0
  317. package/dist/pipeline/phases/temporal-helpers/branch-divergence.js +96 -0
  318. package/dist/pipeline/phases/temporal-helpers/branch-divergence.js.map +1 -0
  319. package/dist/pipeline/phases/temporal-helpers/churn-decay.d.ts +22 -0
  320. package/dist/pipeline/phases/temporal-helpers/churn-decay.d.ts.map +1 -0
  321. package/dist/pipeline/phases/temporal-helpers/churn-decay.js +32 -0
  322. package/dist/pipeline/phases/temporal-helpers/churn-decay.js.map +1 -0
  323. package/dist/pipeline/phases/temporal-helpers/conventional-commits.d.ts +21 -0
  324. package/dist/pipeline/phases/temporal-helpers/conventional-commits.d.ts.map +1 -0
  325. package/dist/pipeline/phases/temporal-helpers/conventional-commits.js +37 -0
  326. package/dist/pipeline/phases/temporal-helpers/conventional-commits.js.map +1 -0
  327. package/dist/pipeline/phases/temporal-helpers/gini.d.ts +32 -0
  328. package/dist/pipeline/phases/temporal-helpers/gini.d.ts.map +1 -0
  329. package/dist/pipeline/phases/temporal-helpers/gini.js +78 -0
  330. package/dist/pipeline/phases/temporal-helpers/gini.js.map +1 -0
  331. package/dist/pipeline/phases/temporal-helpers/revert-detect.d.ts +14 -0
  332. package/dist/pipeline/phases/temporal-helpers/revert-detect.d.ts.map +1 -0
  333. package/dist/pipeline/phases/temporal-helpers/revert-detect.js +25 -0
  334. package/dist/pipeline/phases/temporal-helpers/revert-detect.js.map +1 -0
  335. package/dist/pipeline/phases/temporal-helpers/test-pair.d.ts +18 -0
  336. package/dist/pipeline/phases/temporal-helpers/test-pair.d.ts.map +1 -0
  337. package/dist/pipeline/phases/temporal-helpers/test-pair.js +119 -0
  338. package/dist/pipeline/phases/temporal-helpers/test-pair.js.map +1 -0
  339. package/dist/pipeline/phases/temporal.d.ts +65 -0
  340. package/dist/pipeline/phases/temporal.d.ts.map +1 -0
  341. package/dist/pipeline/phases/temporal.js +621 -0
  342. package/dist/pipeline/phases/temporal.js.map +1 -0
  343. package/dist/pipeline/phases/tools.d.ts +21 -0
  344. package/dist/pipeline/phases/tools.d.ts.map +1 -0
  345. package/dist/pipeline/phases/tools.js +118 -0
  346. package/dist/pipeline/phases/tools.js.map +1 -0
  347. package/dist/pipeline/profile-detectors/api-contracts.d.ts +18 -0
  348. package/dist/pipeline/profile-detectors/api-contracts.d.ts.map +1 -0
  349. package/dist/pipeline/profile-detectors/api-contracts.js +78 -0
  350. package/dist/pipeline/profile-detectors/api-contracts.js.map +1 -0
  351. package/dist/pipeline/profile-detectors/framework-detector.d.ts +11 -0
  352. package/dist/pipeline/profile-detectors/framework-detector.d.ts.map +1 -0
  353. package/dist/pipeline/profile-detectors/framework-detector.js +11 -0
  354. package/dist/pipeline/profile-detectors/framework-detector.js.map +1 -0
  355. package/dist/pipeline/profile-detectors/frameworks-catalog.d.ts +7 -0
  356. package/dist/pipeline/profile-detectors/frameworks-catalog.d.ts.map +1 -0
  357. package/dist/pipeline/profile-detectors/frameworks-catalog.js +7 -0
  358. package/dist/pipeline/profile-detectors/frameworks-catalog.js.map +1 -0
  359. package/dist/pipeline/profile-detectors/frameworks.d.ts +7 -0
  360. package/dist/pipeline/profile-detectors/frameworks.d.ts.map +1 -0
  361. package/dist/pipeline/profile-detectors/frameworks.js +7 -0
  362. package/dist/pipeline/profile-detectors/frameworks.js.map +1 -0
  363. package/dist/pipeline/profile-detectors/iac.d.ts +22 -0
  364. package/dist/pipeline/profile-detectors/iac.d.ts.map +1 -0
  365. package/dist/pipeline/profile-detectors/iac.js +97 -0
  366. package/dist/pipeline/profile-detectors/iac.js.map +1 -0
  367. package/dist/pipeline/profile-detectors/languages.d.ts +18 -0
  368. package/dist/pipeline/profile-detectors/languages.d.ts.map +1 -0
  369. package/dist/pipeline/profile-detectors/languages.js +60 -0
  370. package/dist/pipeline/profile-detectors/languages.js.map +1 -0
  371. package/dist/pipeline/profile-detectors/manifests.d.ts +7 -0
  372. package/dist/pipeline/profile-detectors/manifests.d.ts.map +1 -0
  373. package/dist/pipeline/profile-detectors/manifests.js +7 -0
  374. package/dist/pipeline/profile-detectors/manifests.js.map +1 -0
  375. package/dist/pipeline/profile-detectors/src-dirs.d.ts +17 -0
  376. package/dist/pipeline/profile-detectors/src-dirs.d.ts.map +1 -0
  377. package/dist/pipeline/profile-detectors/src-dirs.js +89 -0
  378. package/dist/pipeline/profile-detectors/src-dirs.js.map +1 -0
  379. package/dist/pipeline/profile-detectors/variant-detectors.d.ts +7 -0
  380. package/dist/pipeline/profile-detectors/variant-detectors.d.ts.map +1 -0
  381. package/dist/pipeline/profile-detectors/variant-detectors.js +7 -0
  382. package/dist/pipeline/profile-detectors/variant-detectors.js.map +1 -0
  383. package/dist/pipeline/runner.d.ts +54 -0
  384. package/dist/pipeline/runner.d.ts.map +1 -0
  385. package/dist/pipeline/runner.js +247 -0
  386. package/dist/pipeline/runner.js.map +1 -0
  387. package/dist/pipeline/types.d.ts +235 -0
  388. package/dist/pipeline/types.d.ts.map +1 -0
  389. package/dist/pipeline/types.js +15 -0
  390. package/dist/pipeline/types.js.map +1 -0
  391. package/dist/providers/c.d.ts +3 -0
  392. package/dist/providers/c.d.ts.map +1 -0
  393. package/dist/providers/c.js +162 -0
  394. package/dist/providers/c.js.map +1 -0
  395. package/dist/providers/cobol.d.ts +19 -0
  396. package/dist/providers/cobol.d.ts.map +1 -0
  397. package/dist/providers/cobol.js +44 -0
  398. package/dist/providers/cobol.js.map +1 -0
  399. package/dist/providers/cpp.d.ts +3 -0
  400. package/dist/providers/cpp.d.ts.map +1 -0
  401. package/dist/providers/cpp.js +200 -0
  402. package/dist/providers/cpp.js.map +1 -0
  403. package/dist/providers/csharp.d.ts +3 -0
  404. package/dist/providers/csharp.d.ts.map +1 -0
  405. package/dist/providers/csharp.js +292 -0
  406. package/dist/providers/csharp.js.map +1 -0
  407. package/dist/providers/dart.d.ts +3 -0
  408. package/dist/providers/dart.d.ts.map +1 -0
  409. package/dist/providers/dart.js +214 -0
  410. package/dist/providers/dart.js.map +1 -0
  411. package/dist/providers/definition-ids.d.ts +18 -0
  412. package/dist/providers/definition-ids.d.ts.map +1 -0
  413. package/dist/providers/definition-ids.js +23 -0
  414. package/dist/providers/definition-ids.js.map +1 -0
  415. package/dist/providers/extract-helpers.d.ts +60 -0
  416. package/dist/providers/extract-helpers.d.ts.map +1 -0
  417. package/dist/providers/extract-helpers.js +296 -0
  418. package/dist/providers/extract-helpers.js.map +1 -0
  419. package/dist/providers/extraction-types.d.ts +85 -0
  420. package/dist/providers/extraction-types.d.ts.map +1 -0
  421. package/dist/providers/extraction-types.js +13 -0
  422. package/dist/providers/extraction-types.js.map +1 -0
  423. package/dist/providers/go.d.ts +3 -0
  424. package/dist/providers/go.d.ts.map +1 -0
  425. package/dist/providers/go.js +359 -0
  426. package/dist/providers/go.js.map +1 -0
  427. package/dist/providers/http-detect.d.ts +44 -0
  428. package/dist/providers/http-detect.d.ts.map +1 -0
  429. package/dist/providers/http-detect.js +307 -0
  430. package/dist/providers/http-detect.js.map +1 -0
  431. package/dist/providers/index.d.ts +38 -0
  432. package/dist/providers/index.d.ts.map +1 -0
  433. package/dist/providers/index.js +33 -0
  434. package/dist/providers/index.js.map +1 -0
  435. package/dist/providers/java.d.ts +3 -0
  436. package/dist/providers/java.d.ts.map +1 -0
  437. package/dist/providers/java.js +259 -0
  438. package/dist/providers/java.js.map +1 -0
  439. package/dist/providers/javascript.d.ts +3 -0
  440. package/dist/providers/javascript.d.ts.map +1 -0
  441. package/dist/providers/javascript.js +139 -0
  442. package/dist/providers/javascript.js.map +1 -0
  443. package/dist/providers/kotlin.d.ts +3 -0
  444. package/dist/providers/kotlin.d.ts.map +1 -0
  445. package/dist/providers/kotlin.js +175 -0
  446. package/dist/providers/kotlin.js.map +1 -0
  447. package/dist/providers/php.d.ts +3 -0
  448. package/dist/providers/php.d.ts.map +1 -0
  449. package/dist/providers/php.js +218 -0
  450. package/dist/providers/php.js.map +1 -0
  451. package/dist/providers/python-accesses.d.ts +9 -0
  452. package/dist/providers/python-accesses.d.ts.map +1 -0
  453. package/dist/providers/python-accesses.js +22 -0
  454. package/dist/providers/python-accesses.js.map +1 -0
  455. package/dist/providers/python.d.ts +3 -0
  456. package/dist/providers/python.d.ts.map +1 -0
  457. package/dist/providers/python.js +323 -0
  458. package/dist/providers/python.js.map +1 -0
  459. package/dist/providers/registry.d.ts +4 -0
  460. package/dist/providers/registry.d.ts.map +1 -0
  461. package/dist/providers/registry.js +46 -0
  462. package/dist/providers/registry.js.map +1 -0
  463. package/dist/providers/resolution/c3.d.ts +6 -0
  464. package/dist/providers/resolution/c3.d.ts.map +1 -0
  465. package/dist/providers/resolution/c3.js +76 -0
  466. package/dist/providers/resolution/c3.js.map +1 -0
  467. package/dist/providers/resolution/context.d.ts +38 -0
  468. package/dist/providers/resolution/context.d.ts.map +1 -0
  469. package/dist/providers/resolution/context.js +45 -0
  470. package/dist/providers/resolution/context.js.map +1 -0
  471. package/dist/providers/resolution/first-wins.d.ts +3 -0
  472. package/dist/providers/resolution/first-wins.d.ts.map +1 -0
  473. package/dist/providers/resolution/first-wins.js +27 -0
  474. package/dist/providers/resolution/first-wins.js.map +1 -0
  475. package/dist/providers/resolution/mro.d.ts +16 -0
  476. package/dist/providers/resolution/mro.d.ts.map +1 -0
  477. package/dist/providers/resolution/mro.js +14 -0
  478. package/dist/providers/resolution/mro.js.map +1 -0
  479. package/dist/providers/resolution/none.d.ts +3 -0
  480. package/dist/providers/resolution/none.d.ts.map +1 -0
  481. package/dist/providers/resolution/none.js +11 -0
  482. package/dist/providers/resolution/none.js.map +1 -0
  483. package/dist/providers/resolution/python-all-filter.d.ts +25 -0
  484. package/dist/providers/resolution/python-all-filter.d.ts.map +1 -0
  485. package/dist/providers/resolution/python-all-filter.js +64 -0
  486. package/dist/providers/resolution/python-all-filter.js.map +1 -0
  487. package/dist/providers/resolution/resolver-strategy.d.ts +42 -0
  488. package/dist/providers/resolution/resolver-strategy.d.ts.map +1 -0
  489. package/dist/providers/resolution/resolver-strategy.js +50 -0
  490. package/dist/providers/resolution/resolver-strategy.js.map +1 -0
  491. package/dist/providers/resolution/single-inheritance.d.ts +3 -0
  492. package/dist/providers/resolution/single-inheritance.d.ts.map +1 -0
  493. package/dist/providers/resolution/single-inheritance.js +21 -0
  494. package/dist/providers/resolution/single-inheritance.js.map +1 -0
  495. package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.d.ts +16 -0
  496. package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.d.ts.map +1 -0
  497. package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.js +50 -0
  498. package/dist/providers/resolution/stack-graphs/__fixtures__/mock-tree.js.map +1 -0
  499. package/dist/providers/resolution/stack-graphs/glue.d.ts +15 -0
  500. package/dist/providers/resolution/stack-graphs/glue.d.ts.map +1 -0
  501. package/dist/providers/resolution/stack-graphs/glue.js +44 -0
  502. package/dist/providers/resolution/stack-graphs/glue.js.map +1 -0
  503. package/dist/providers/resolution/stack-graphs/node-edge-builder.d.ts +30 -0
  504. package/dist/providers/resolution/stack-graphs/node-edge-builder.d.ts.map +1 -0
  505. package/dist/providers/resolution/stack-graphs/node-edge-builder.js +366 -0
  506. package/dist/providers/resolution/stack-graphs/node-edge-builder.js.map +1 -0
  507. package/dist/providers/resolution/stack-graphs/partial-path-engine.d.ts +9 -0
  508. package/dist/providers/resolution/stack-graphs/partial-path-engine.d.ts.map +1 -0
  509. package/dist/providers/resolution/stack-graphs/partial-path-engine.js +152 -0
  510. package/dist/providers/resolution/stack-graphs/partial-path-engine.js.map +1 -0
  511. package/dist/providers/resolution/stack-graphs/rule-parser.d.ts +11 -0
  512. package/dist/providers/resolution/stack-graphs/rule-parser.d.ts.map +1 -0
  513. package/dist/providers/resolution/stack-graphs/rule-parser.js +247 -0
  514. package/dist/providers/resolution/stack-graphs/rule-parser.js.map +1 -0
  515. package/dist/providers/resolution/stack-graphs/types.d.ts +93 -0
  516. package/dist/providers/resolution/stack-graphs/types.d.ts.map +1 -0
  517. package/dist/providers/resolution/stack-graphs/types.js +11 -0
  518. package/dist/providers/resolution/stack-graphs/types.js.map +1 -0
  519. package/dist/providers/resolution/stack-graphs-python.d.ts +27 -0
  520. package/dist/providers/resolution/stack-graphs-python.d.ts.map +1 -0
  521. package/dist/providers/resolution/stack-graphs-python.js +104 -0
  522. package/dist/providers/resolution/stack-graphs-python.js.map +1 -0
  523. package/dist/providers/resolution/stack-graphs-ts.d.ts +134 -0
  524. package/dist/providers/resolution/stack-graphs-ts.d.ts.map +1 -0
  525. package/dist/providers/resolution/stack-graphs-ts.js +372 -0
  526. package/dist/providers/resolution/stack-graphs-ts.js.map +1 -0
  527. package/dist/providers/ruby.d.ts +3 -0
  528. package/dist/providers/ruby.d.ts.map +1 -0
  529. package/dist/providers/ruby.js +259 -0
  530. package/dist/providers/ruby.js.map +1 -0
  531. package/dist/providers/rust.d.ts +3 -0
  532. package/dist/providers/rust.d.ts.map +1 -0
  533. package/dist/providers/rust.js +318 -0
  534. package/dist/providers/rust.js.map +1 -0
  535. package/dist/providers/swift.d.ts +3 -0
  536. package/dist/providers/swift.d.ts.map +1 -0
  537. package/dist/providers/swift.js +177 -0
  538. package/dist/providers/swift.js.map +1 -0
  539. package/dist/providers/test-helpers.d.ts +24 -0
  540. package/dist/providers/test-helpers.d.ts.map +1 -0
  541. package/dist/providers/test-helpers.js +33 -0
  542. package/dist/providers/test-helpers.js.map +1 -0
  543. package/dist/providers/ts-shared.d.ts +30 -0
  544. package/dist/providers/ts-shared.d.ts.map +1 -0
  545. package/dist/providers/ts-shared.js +328 -0
  546. package/dist/providers/ts-shared.js.map +1 -0
  547. package/dist/providers/tsx.d.ts +7 -0
  548. package/dist/providers/tsx.d.ts.map +1 -0
  549. package/dist/providers/tsx.js +79 -0
  550. package/dist/providers/tsx.js.map +1 -0
  551. package/dist/providers/types.d.ts +166 -0
  552. package/dist/providers/types.d.ts.map +1 -0
  553. package/dist/providers/types.js +7 -0
  554. package/dist/providers/types.js.map +1 -0
  555. package/dist/providers/typescript-family-accesses.d.ts +14 -0
  556. package/dist/providers/typescript-family-accesses.d.ts.map +1 -0
  557. package/dist/providers/typescript-family-accesses.js +27 -0
  558. package/dist/providers/typescript-family-accesses.js.map +1 -0
  559. package/dist/providers/typescript.d.ts +9 -0
  560. package/dist/providers/typescript.d.ts.map +1 -0
  561. package/dist/providers/typescript.js +84 -0
  562. package/dist/providers/typescript.js.map +1 -0
  563. package/package.json +108 -0
@@ -0,0 +1,214 @@
1
+ import { innermostEnclosingContainer, innermostEnclosingDef, isInside, pairDefinitionsWithNames, stripComments, } from "./extract-helpers.js";
2
+ /**
3
+ * Dart provider.
4
+ *
5
+ * Definitions: classes, mixins, extensions, functions, methods, enums.
6
+ * Dart's grammar uses `class_definition`, `mixin_declaration`,
7
+ * `extension_declaration`, `function_signature`, `method_signature`.
8
+ *
9
+ * Heritage: `class Foo extends Parent with M1 implements I1, I2` — the
10
+ * three forms surface as:
11
+ * - `superclass` → @reference.class (EXTENDS)
12
+ * - `mixins` → @reference.mixin (IMPLEMENTS, for MRO linearization)
13
+ * - `interfaces` → @reference.interface (IMPLEMENTS)
14
+ *
15
+ * Imports: `import 'package:…' as foo show a, b;` — one import per `import`
16
+ * directive. Also `part of …` and `export …`, but those are ignored at MVP
17
+ * since they do not participate in the dependency graph the same way.
18
+ *
19
+ * Exports: Dart uses a leading-underscore convention for library-private
20
+ * symbols. We treat `_foo` as not exported, everything else as exported.
21
+ */
22
+ const DART_DEF_KIND_MAP = {
23
+ "definition.class": "Class",
24
+ "definition.interface": "Interface",
25
+ "definition.mixin": "Trait",
26
+ "definition.function": "Function",
27
+ "definition.method": "Method",
28
+ "definition.constructor": "Constructor",
29
+ "definition.module": "Module",
30
+ "definition.enum": "Enum",
31
+ "definition.constant": "Const",
32
+ "definition.property": "Property",
33
+ };
34
+ function extractDartDefinitions(input) {
35
+ const { filePath, captures } = input;
36
+ const paired = pairDefinitionsWithNames(captures);
37
+ const defCaptures = captures.filter((c) => c.tag.startsWith("definition."));
38
+ const out = [];
39
+ for (const { def, name } of paired) {
40
+ let kind = DART_DEF_KIND_MAP[def.tag];
41
+ if (kind === undefined)
42
+ continue;
43
+ let owner;
44
+ const ownerDef = innermostEnclosingDef(def, defCaptures);
45
+ if (ownerDef !== undefined) {
46
+ const ownerPaired = paired.find((p) => p.def === ownerDef);
47
+ if (ownerPaired !== undefined)
48
+ owner = ownerPaired.name.text;
49
+ }
50
+ if (def.tag === "definition.function" &&
51
+ (ownerDef?.tag === "definition.class" ||
52
+ ownerDef?.tag === "definition.interface" ||
53
+ ownerDef?.tag === "definition.mixin")) {
54
+ kind = "Method";
55
+ }
56
+ const qualifiedName = owner !== undefined ? `${owner}.${name.text}` : name.text;
57
+ const isExported = !name.text.startsWith("_");
58
+ out.push({
59
+ kind,
60
+ name: name.text,
61
+ qualifiedName,
62
+ filePath,
63
+ startLine: def.startLine,
64
+ endLine: def.endLine,
65
+ isExported,
66
+ ...(owner !== undefined ? { owner } : {}),
67
+ });
68
+ }
69
+ return out;
70
+ }
71
+ function extractDartCalls(input) {
72
+ const { filePath, captures, definitions } = input;
73
+ const defCaptures = captures.filter((c) => c.tag.startsWith("definition."));
74
+ const callRefs = captures.filter((c) => c.tag === "reference.call");
75
+ const out = [];
76
+ for (const ref of callRefs) {
77
+ const innerName = findNameInside(captures, ref);
78
+ const calleeName = innerName?.text ?? ref.text;
79
+ const enclosingDef = innermostEnclosingDef(ref, defCaptures);
80
+ const callerQualifiedName = enclosingDef
81
+ ? qualifiedForCapture(enclosingDef, definitions)
82
+ : "<module>";
83
+ let receiver;
84
+ if (innerName !== undefined) {
85
+ const idx = ref.text.lastIndexOf(`.${innerName.text}`);
86
+ if (idx > 0) {
87
+ const prefix = ref.text.slice(0, idx).trim();
88
+ if (prefix !== "" && /^[A-Za-z_][\w.]*$/.test(prefix))
89
+ receiver = prefix;
90
+ }
91
+ }
92
+ out.push({
93
+ callerQualifiedName,
94
+ calleeName,
95
+ filePath,
96
+ startLine: ref.startLine,
97
+ ...(receiver !== undefined ? { calleeOwner: receiver } : {}),
98
+ });
99
+ }
100
+ return out;
101
+ }
102
+ function findNameInside(captures, outer) {
103
+ let best;
104
+ for (const c of captures) {
105
+ if (c.tag !== "name")
106
+ continue;
107
+ if (!isInside(c, outer))
108
+ continue;
109
+ if (best === undefined || c.startLine < best.startLine)
110
+ best = c;
111
+ }
112
+ return best;
113
+ }
114
+ function qualifiedForCapture(def, definitions) {
115
+ for (const d of definitions) {
116
+ if (d.startLine === def.startLine)
117
+ return d.qualifiedName;
118
+ }
119
+ return "<module>";
120
+ }
121
+ function extractDartImports(input) {
122
+ const { filePath, sourceText } = input;
123
+ const stripped = stripComments(sourceText);
124
+ const out = [];
125
+ // `import 'package:foo/bar.dart' as foo show A, B hide C;`
126
+ const re = /^\s*import\s+['"]([^'"]+)['"](?:\s+as\s+([A-Za-z_][\w]*))?(?:\s+(?:show|hide)\s+[\w, ]+)?\s*;/gm;
127
+ for (const m of stripped.matchAll(re)) {
128
+ const source = m[1];
129
+ const alias = m[2];
130
+ out.push({
131
+ filePath,
132
+ source,
133
+ kind: "namespace",
134
+ ...(alias !== undefined ? { localAlias: alias } : {}),
135
+ });
136
+ }
137
+ return out;
138
+ }
139
+ function extractDartHeritage(input) {
140
+ const { filePath, captures, definitions } = input;
141
+ const out = [];
142
+ const classDefs = captures.filter((c) => c.tag === "definition.class" ||
143
+ c.tag === "definition.interface" ||
144
+ c.tag === "definition.mixin");
145
+ // superclass: `extends Parent`
146
+ const extendsRefs = captures.filter((c) => c.tag === "reference.class");
147
+ for (const ref of extendsRefs) {
148
+ const enclosing = innermostEnclosingContainer(ref, classDefs);
149
+ if (enclosing === undefined)
150
+ continue;
151
+ const child = definitions.find((d) => (d.kind === "Class" || d.kind === "Interface" || d.kind === "Trait") &&
152
+ d.startLine === enclosing.startLine);
153
+ if (child === undefined)
154
+ continue;
155
+ out.push({
156
+ childQualifiedName: child.qualifiedName,
157
+ parentName: ref.text,
158
+ filePath,
159
+ relation: "EXTENDS",
160
+ startLine: ref.startLine,
161
+ });
162
+ }
163
+ // implements: `implements I1, I2`
164
+ const implementsRefs = captures.filter((c) => c.tag === "reference.interface");
165
+ for (const ref of implementsRefs) {
166
+ const enclosing = innermostEnclosingContainer(ref, classDefs);
167
+ if (enclosing === undefined)
168
+ continue;
169
+ const child = definitions.find((d) => (d.kind === "Class" || d.kind === "Interface") && d.startLine === enclosing.startLine);
170
+ if (child === undefined)
171
+ continue;
172
+ out.push({
173
+ childQualifiedName: child.qualifiedName,
174
+ parentName: ref.text,
175
+ filePath,
176
+ relation: "IMPLEMENTS",
177
+ startLine: ref.startLine,
178
+ });
179
+ }
180
+ // mixins: `with M1, M2`
181
+ const mixinRefs = captures.filter((c) => c.tag === "reference.mixin");
182
+ for (const ref of mixinRefs) {
183
+ const enclosing = innermostEnclosingContainer(ref, classDefs);
184
+ if (enclosing === undefined)
185
+ continue;
186
+ const child = definitions.find((d) => (d.kind === "Class" || d.kind === "Trait") && d.startLine === enclosing.startLine);
187
+ if (child === undefined)
188
+ continue;
189
+ out.push({
190
+ childQualifiedName: child.qualifiedName,
191
+ parentName: ref.text,
192
+ filePath,
193
+ relation: "IMPLEMENTS",
194
+ startLine: ref.startLine,
195
+ });
196
+ }
197
+ return out;
198
+ }
199
+ export const dartProvider = {
200
+ id: "dart",
201
+ extensions: [".dart"],
202
+ importSemantics: "package-wildcard",
203
+ mroStrategy: "c3",
204
+ typeConfig: { structural: false, nominal: true, generics: true },
205
+ heritageEdge: "EXTENDS",
206
+ inferImplicitReceiver: () => "this",
207
+ isExportedIdentifier: (name) => !name.startsWith("_"),
208
+ extractDefinitions: extractDartDefinitions,
209
+ extractCalls: extractDartCalls,
210
+ extractImports: extractDartImports,
211
+ isExported: (def) => def.isExported,
212
+ extractHeritage: extractDartHeritage,
213
+ };
214
+ //# sourceMappingURL=dart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dart.js","sourceRoot":"","sources":["../../src/providers/dart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Stable NodeId derivation for extracted symbol definitions.
3
+ *
4
+ * Kept in the providers directory (not pipeline/phases) so every provider
5
+ * that needs an enclosing-symbol id can import it without dragging in the
6
+ * parse-phase's full transitive graph. The phase-level consumer
7
+ * (`pipeline/phases/parse.ts`) re-exports this for backward compatibility.
8
+ */
9
+ import { type NodeId } from "@opencodehub/core-types";
10
+ import type { ExtractedDefinition } from "./extraction-types.js";
11
+ /**
12
+ * Deterministic NodeId for an extracted definition. Mirrors the encoding
13
+ * the parse phase uses when emitting graph nodes, so downstream extractors
14
+ * that never see the graph can still produce matching ids for `from` /
15
+ * `to` endpoints on derived edges (e.g. ACCESSES, QUERIES).
16
+ */
17
+ export declare function idForDefinition(d: ExtractedDefinition): NodeId;
18
+ //# sourceMappingURL=definition-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-ids.d.ts","sourceRoot":"","sources":["../../src/providers/definition-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAM9D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Stable NodeId derivation for extracted symbol definitions.
3
+ *
4
+ * Kept in the providers directory (not pipeline/phases) so every provider
5
+ * that needs an enclosing-symbol id can import it without dragging in the
6
+ * parse-phase's full transitive graph. The phase-level consumer
7
+ * (`pipeline/phases/parse.ts`) re-exports this for backward compatibility.
8
+ */
9
+ import { makeNodeId } from "@opencodehub/core-types";
10
+ /**
11
+ * Deterministic NodeId for an extracted definition. Mirrors the encoding
12
+ * the parse phase uses when emitting graph nodes, so downstream extractors
13
+ * that never see the graph can still produce matching ids for `from` /
14
+ * `to` endpoints on derived edges (e.g. ACCESSES, QUERIES).
15
+ */
16
+ export function idForDefinition(d) {
17
+ return makeNodeId(d.kind, d.filePath, d.qualifiedName, {
18
+ ...(d.parameterCount !== undefined ? { parameterCount: d.parameterCount } : {}),
19
+ ...(d.parameterTypes !== undefined ? { parameterTypes: d.parameterTypes } : {}),
20
+ ...(d.isConst !== undefined ? { isConst: d.isConst } : {}),
21
+ });
22
+ }
23
+ //# sourceMappingURL=definition-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-ids.js","sourceRoot":"","sources":["../../src/providers/definition-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAe,MAAM,yBAAyB,CAAC;AAGlE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,CAAsB;IACpD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,aAAa,EAAE;QACrD,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Shared helpers used by per-language extractors.
3
+ *
4
+ * Kept intentionally generic: none of these functions know about a specific
5
+ * language's grammar. Per-language providers feed them filtered subsets of
6
+ * {@link ParseCapture} and receive back plain records.
7
+ */
8
+ import type { ParseCapture } from "../parse/types.js";
9
+ /** One definition capture plus its inner `@name` capture (resolved by range). */
10
+ export interface PairedDefinition {
11
+ readonly def: ParseCapture;
12
+ readonly name: ParseCapture;
13
+ }
14
+ /**
15
+ * Pair every `@definition.*` capture with the `@name` capture that lies
16
+ * within its source range. Robust against match reordering: we use
17
+ * positional containment rather than list adjacency.
18
+ *
19
+ * When multiple `@name` captures fall inside a single definition range
20
+ * (e.g. a class body with methods), we pick the earliest `@name` whose
21
+ * start line matches the definition's start line. Falls back to the
22
+ * first inner `@name`.
23
+ */
24
+ export declare function pairDefinitionsWithNames(captures: readonly ParseCapture[], defTagPrefix?: string): readonly PairedDefinition[];
25
+ /** True if `inner`'s range is inside `outer`'s range. */
26
+ export declare function isInside(inner: ParseCapture, outer: ParseCapture): boolean;
27
+ /**
28
+ * Return the tightest-span capture from `containers` that contains `inner`.
29
+ * Used by heritage extraction to attribute a base-class / interface
30
+ * reference to the innermost enclosing class/struct/interface definition
31
+ * rather than the outermost one. Without this, a nested class's base is
32
+ * attributed to its enclosing parent, producing spurious MRO conflicts
33
+ * (see strands-agents/sdk-python `LiteLLMModel.LiteLLMConfig`).
34
+ */
35
+ export declare function innermostEnclosingContainer(inner: ParseCapture, containers: readonly ParseCapture[]): ParseCapture | undefined;
36
+ export declare function innermostEnclosingDef(inner: ParseCapture, defs: readonly ParseCapture[]): ParseCapture | undefined;
37
+ /**
38
+ * Read a single 1-indexed line from `sourceText`. Returns `""` when the
39
+ * line is out of range (defensive against stale captures).
40
+ */
41
+ export declare function getLine(sourceText: string, line1Indexed: number): string;
42
+ /**
43
+ * Strip line + block comments from a source string. Used by import scanners
44
+ * where a commented-out import would otherwise produce a spurious edge.
45
+ *
46
+ * Language-neutral implementation: understands `//` line comments, `/* ...`
47
+ * block comments, and `#` line comments. Leaves string contents alone
48
+ * (tracks single/double/backtick quotes).
49
+ */
50
+ export declare function stripComments(src: string): string;
51
+ /**
52
+ * Split a `foo, bar as baz, qux` list into per-entry records.
53
+ * Used by TS/JS named-import parsing.
54
+ */
55
+ export interface NamedImportEntry {
56
+ readonly name: string;
57
+ readonly alias?: string;
58
+ }
59
+ export declare function splitNamedImports(body: string): readonly NamedImportEntry[];
60
+ //# sourceMappingURL=extract-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-helpers.d.ts","sourceRoot":"","sources":["../../src/providers/extract-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,YAAY,SAAgB,GAC3B,SAAS,gBAAgB,EAAE,CA0D7B;AA6CD,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAW1E;AA8BD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,SAAS,YAAY,EAAE,GAClC,YAAY,GAAG,SAAS,CAa1B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,SAAS,YAAY,EAAE,GAC5B,YAAY,GAAG,SAAS,CAsB1B;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAkBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoDjD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAc3E"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Shared helpers used by per-language extractors.
3
+ *
4
+ * Kept intentionally generic: none of these functions know about a specific
5
+ * language's grammar. Per-language providers feed them filtered subsets of
6
+ * {@link ParseCapture} and receive back plain records.
7
+ */
8
+ /**
9
+ * Pair every `@definition.*` capture with the `@name` capture that lies
10
+ * within its source range. Robust against match reordering: we use
11
+ * positional containment rather than list adjacency.
12
+ *
13
+ * When multiple `@name` captures fall inside a single definition range
14
+ * (e.g. a class body with methods), we pick the earliest `@name` whose
15
+ * start line matches the definition's start line. Falls back to the
16
+ * first inner `@name`.
17
+ */
18
+ export function pairDefinitionsWithNames(captures, defTagPrefix = "definition.") {
19
+ const defs = captures.filter((c) => c.tag.startsWith(defTagPrefix));
20
+ // Build the set of source positions that are ALSO tagged as a reference.
21
+ // A `@name` that coincides with a `@reference.*` capture is almost always
22
+ // a referenced type identifier (e.g. the receiver type in a Go method)
23
+ // rather than the identifier we want to bind to the definition.
24
+ const referencePositions = new Set();
25
+ for (const c of captures) {
26
+ if (c.tag.startsWith("reference.")) {
27
+ referencePositions.add(positionKey(c));
28
+ }
29
+ }
30
+ // Deduplicate `@name` captures at the same source position — tree-sitter
31
+ // can emit the same node under multiple patterns.
32
+ const uniqueNames = dedupeByPosition(captures.filter((c) => c.tag === "name"));
33
+ const declarationNames = uniqueNames.filter((c) => !referencePositions.has(positionKey(c)));
34
+ const paired = [];
35
+ for (const def of defs) {
36
+ // Priority 1: a declaration name (not coinciding with a reference) on
37
+ // the def's header line. This correctly picks `Greet` out of
38
+ // `func (g *Greeter) Greet(...)` — `Greeter` is a reference-typed
39
+ // identifier, `Greet` is the declaration.
40
+ const headerDecls = declarationNames.filter((n) => n.startLine === def.startLine && isInside(n, def));
41
+ if (headerDecls.length > 0) {
42
+ // Earliest column — definitions tend to have their name earlier than
43
+ // any trailing parameter identifiers on the same line.
44
+ const sorted = [...headerDecls].sort((a, b) => a.startCol - b.startCol);
45
+ paired.push({ def, name: sorted[0] });
46
+ continue;
47
+ }
48
+ // Priority 2: any name on the header line (recovers class/interface
49
+ // declarations whose name is tagged with a `@reference.type` overlay).
50
+ const headerNames = uniqueNames.filter((n) => n.startLine === def.startLine && isInside(n, def));
51
+ if (headerNames.length > 0) {
52
+ const sorted = [...headerNames].sort((a, b) => a.startCol - b.startCol);
53
+ paired.push({ def, name: sorted[0] });
54
+ continue;
55
+ }
56
+ // Priority 3: declaration names anywhere inside the def range. Handles
57
+ // module-scope `@definition.*` captures that span the whole file.
58
+ let best = pickBestName(def, declarationNames);
59
+ // Priority 4: fall back to any name at all.
60
+ if (best === undefined) {
61
+ best = pickBestName(def, uniqueNames);
62
+ }
63
+ if (best !== undefined) {
64
+ paired.push({ def, name: best });
65
+ }
66
+ }
67
+ return paired;
68
+ }
69
+ function pickBestName(def, candidates) {
70
+ let best;
71
+ for (const n of candidates) {
72
+ if (!isInside(n, def))
73
+ continue;
74
+ if (best === undefined) {
75
+ best = n;
76
+ continue;
77
+ }
78
+ const bestAtHeader = best.startLine === def.startLine;
79
+ const candAtHeader = n.startLine === def.startLine;
80
+ if (candAtHeader && !bestAtHeader) {
81
+ best = n;
82
+ }
83
+ else if (candAtHeader === bestAtHeader) {
84
+ if (n.startLine < best.startLine ||
85
+ (n.startLine === best.startLine && n.startCol < best.startCol)) {
86
+ best = n;
87
+ }
88
+ }
89
+ }
90
+ return best;
91
+ }
92
+ function dedupeByPosition(captures) {
93
+ const seen = new Set();
94
+ const out = [];
95
+ for (const c of captures) {
96
+ const k = positionKey(c);
97
+ if (seen.has(k))
98
+ continue;
99
+ seen.add(k);
100
+ out.push(c);
101
+ }
102
+ return out;
103
+ }
104
+ function positionKey(c) {
105
+ return `${c.startLine}:${c.startCol}:${c.endLine}:${c.endCol}`;
106
+ }
107
+ /** True if `inner`'s range is inside `outer`'s range. */
108
+ export function isInside(inner, outer) {
109
+ if (inner.startLine < outer.startLine || inner.endLine > outer.endLine) {
110
+ return false;
111
+ }
112
+ if (inner.startLine === outer.startLine && inner.startCol < outer.startCol) {
113
+ return false;
114
+ }
115
+ if (inner.endLine === outer.endLine && inner.endCol > outer.endCol) {
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ /**
121
+ * Return the innermost (smallest enclosing) definition that contains `inner`.
122
+ *
123
+ * Skips:
124
+ * - `inner` itself.
125
+ * - Any `@definition.module` capture — module/file-scoped defs are logical
126
+ * containers, not semantic owners.
127
+ * - Captures with an identical source range to `inner`. A grammar query
128
+ * can attach multiple `@definition.*` tags to the same node (e.g. a Go
129
+ * `type_declaration` hitting both `@definition.type` and
130
+ * `@definition.class`). Those are sibling records, not parent/child.
131
+ */
132
+ // Tags that CAN be call-edge endpoints. `definition.property`,
133
+ // `definition.variable`, and `definition.constant` are deliberately excluded:
134
+ // attributing a call like `x = foo()` inside a class body to the assignment
135
+ // target `x` (which would tightly wrap the call site) instead of the
136
+ // enclosing method is almost never what callers of impact/context analysis
137
+ // want. The enclosing scope is what owns the call.
138
+ const CALLABLE_SCOPE_TAGS = new Set([
139
+ "definition.class",
140
+ "definition.function",
141
+ "definition.method",
142
+ "definition.constructor",
143
+ "definition.interface",
144
+ "definition.type",
145
+ "definition.trait",
146
+ ]);
147
+ /**
148
+ * Return the tightest-span capture from `containers` that contains `inner`.
149
+ * Used by heritage extraction to attribute a base-class / interface
150
+ * reference to the innermost enclosing class/struct/interface definition
151
+ * rather than the outermost one. Without this, a nested class's base is
152
+ * attributed to its enclosing parent, producing spurious MRO conflicts
153
+ * (see strands-agents/sdk-python `LiteLLMModel.LiteLLMConfig`).
154
+ */
155
+ export function innermostEnclosingContainer(inner, containers) {
156
+ let best;
157
+ let bestSpan = Number.POSITIVE_INFINITY;
158
+ for (const c of containers) {
159
+ if (c === inner)
160
+ continue;
161
+ if (inner.startLine < c.startLine || inner.endLine > c.endLine)
162
+ continue;
163
+ const span = (c.endLine - c.startLine) * 1_000_000 + (c.endCol - c.startCol);
164
+ if (span < bestSpan) {
165
+ best = c;
166
+ bestSpan = span;
167
+ }
168
+ }
169
+ return best;
170
+ }
171
+ export function innermostEnclosingDef(inner, defs) {
172
+ let best;
173
+ let bestSpan = Infinity;
174
+ for (const d of defs) {
175
+ if (d === inner)
176
+ continue;
177
+ if (!CALLABLE_SCOPE_TAGS.has(d.tag))
178
+ continue;
179
+ if (d.startLine === inner.startLine &&
180
+ d.endLine === inner.endLine &&
181
+ d.startCol === inner.startCol &&
182
+ d.endCol === inner.endCol) {
183
+ continue;
184
+ }
185
+ if (!isInside(inner, d))
186
+ continue;
187
+ const span = (d.endLine - d.startLine) * 1_000_000 + (d.endCol - d.startCol);
188
+ if (span < bestSpan) {
189
+ best = d;
190
+ bestSpan = span;
191
+ }
192
+ }
193
+ return best;
194
+ }
195
+ /**
196
+ * Read a single 1-indexed line from `sourceText`. Returns `""` when the
197
+ * line is out of range (defensive against stale captures).
198
+ */
199
+ export function getLine(sourceText, line1Indexed) {
200
+ if (line1Indexed <= 0)
201
+ return "";
202
+ // Split lazily: we only call this per-capture, usually small N.
203
+ let current = 1;
204
+ let start = 0;
205
+ for (let i = 0; i < sourceText.length; i += 1) {
206
+ if (sourceText.charCodeAt(i) === 10) {
207
+ if (current === line1Indexed) {
208
+ return sourceText.slice(start, i);
209
+ }
210
+ current += 1;
211
+ start = i + 1;
212
+ }
213
+ }
214
+ if (current === line1Indexed) {
215
+ return sourceText.slice(start);
216
+ }
217
+ return "";
218
+ }
219
+ /**
220
+ * Strip line + block comments from a source string. Used by import scanners
221
+ * where a commented-out import would otherwise produce a spurious edge.
222
+ *
223
+ * Language-neutral implementation: understands `//` line comments, `/* ...`
224
+ * block comments, and `#` line comments. Leaves string contents alone
225
+ * (tracks single/double/backtick quotes).
226
+ */
227
+ export function stripComments(src) {
228
+ const out = [];
229
+ let i = 0;
230
+ const n = src.length;
231
+ while (i < n) {
232
+ const c = src[i];
233
+ const next = src[i + 1];
234
+ // Block comment
235
+ if (c === "/" && next === "*") {
236
+ const end = src.indexOf("*/", i + 2);
237
+ if (end === -1)
238
+ break;
239
+ // Preserve newlines so line numbers in later extracts are stable.
240
+ for (let j = i; j < end + 2; j += 1) {
241
+ if (src.charCodeAt(j) === 10)
242
+ out.push("\n");
243
+ }
244
+ i = end + 2;
245
+ continue;
246
+ }
247
+ // Line comment (`//` or `#`). For `#`, only treat as comment when not
248
+ // part of a `#!` shebang at file start — caller passes stripped text
249
+ // otherwise. We keep the rule simple: both begin a line comment here.
250
+ if ((c === "/" && next === "/") || c === "#") {
251
+ while (i < n && src.charCodeAt(i) !== 10)
252
+ i += 1;
253
+ continue;
254
+ }
255
+ // Strings: skip the body verbatim, honoring escape sequences.
256
+ if (c === '"' || c === "'" || c === "`") {
257
+ const quote = c;
258
+ out.push(c);
259
+ i += 1;
260
+ while (i < n) {
261
+ const ch = src[i];
262
+ out.push(ch);
263
+ if (ch === "\\" && i + 1 < n) {
264
+ // Preserve the escaped char.
265
+ out.push(src[i + 1]);
266
+ i += 2;
267
+ continue;
268
+ }
269
+ i += 1;
270
+ if (ch === quote)
271
+ break;
272
+ }
273
+ continue;
274
+ }
275
+ out.push(c);
276
+ i += 1;
277
+ }
278
+ return out.join("");
279
+ }
280
+ export function splitNamedImports(body) {
281
+ const parts = body
282
+ .split(",")
283
+ .map((p) => p.trim())
284
+ .filter((p) => p.length > 0);
285
+ const out = [];
286
+ for (const p of parts) {
287
+ const m = /^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/.exec(p);
288
+ if (m === null)
289
+ continue;
290
+ const name = m[1];
291
+ const alias = m[2];
292
+ out.push(alias !== undefined ? { name, alias } : { name });
293
+ }
294
+ return out;
295
+ }
296
+ //# sourceMappingURL=extract-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-helpers.js","sourceRoot":"","sources":["../../src/providers/extract-helpers.ts"],"names":[],"mappings":"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"}