cotx-engine 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 (501) hide show
  1. package/LICENSE +94 -0
  2. package/README.md +103 -0
  3. package/dist/commands/compile.d.ts +3 -0
  4. package/dist/commands/compile.js +93 -0
  5. package/dist/commands/compile.js.map +1 -0
  6. package/dist/commands/context.d.ts +1 -0
  7. package/dist/commands/context.js +98 -0
  8. package/dist/commands/context.js.map +1 -0
  9. package/dist/commands/diff.d.ts +19 -0
  10. package/dist/commands/diff.js +127 -0
  11. package/dist/commands/diff.js.map +1 -0
  12. package/dist/commands/impact.d.ts +3 -0
  13. package/dist/commands/impact.js +91 -0
  14. package/dist/commands/impact.js.map +1 -0
  15. package/dist/commands/init.d.ts +1 -0
  16. package/dist/commands/init.js +13 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/commands/lint.d.ts +13 -0
  19. package/dist/commands/lint.js +290 -0
  20. package/dist/commands/lint.js.map +1 -0
  21. package/dist/commands/map.d.ts +6 -0
  22. package/dist/commands/map.js +409 -0
  23. package/dist/commands/map.js.map +1 -0
  24. package/dist/commands/migrate.d.ts +16 -0
  25. package/dist/commands/migrate.js +150 -0
  26. package/dist/commands/migrate.js.map +1 -0
  27. package/dist/commands/query.d.ts +3 -0
  28. package/dist/commands/query.js +47 -0
  29. package/dist/commands/query.js.map +1 -0
  30. package/dist/commands/rename.d.ts +5 -0
  31. package/dist/commands/rename.js +163 -0
  32. package/dist/commands/rename.js.map +1 -0
  33. package/dist/commands/snapshot.d.ts +6 -0
  34. package/dist/commands/snapshot.js +48 -0
  35. package/dist/commands/snapshot.js.map +1 -0
  36. package/dist/commands/status.d.ts +1 -0
  37. package/dist/commands/status.js +72 -0
  38. package/dist/commands/status.js.map +1 -0
  39. package/dist/commands/update.d.ts +8 -0
  40. package/dist/commands/update.js +163 -0
  41. package/dist/commands/update.js.map +1 -0
  42. package/dist/commands/write.d.ts +6 -0
  43. package/dist/commands/write.js +221 -0
  44. package/dist/commands/write.js.map +1 -0
  45. package/dist/compiler/auto-describe.d.ts +13 -0
  46. package/dist/compiler/auto-describe.js +91 -0
  47. package/dist/compiler/auto-describe.js.map +1 -0
  48. package/dist/compiler/concept-compiler.d.ts +21 -0
  49. package/dist/compiler/concept-compiler.js +125 -0
  50. package/dist/compiler/concept-compiler.js.map +1 -0
  51. package/dist/compiler/contract-compiler.d.ts +16 -0
  52. package/dist/compiler/contract-compiler.js +90 -0
  53. package/dist/compiler/contract-compiler.js.map +1 -0
  54. package/dist/compiler/delta-detector.d.ts +8 -0
  55. package/dist/compiler/delta-detector.js +34 -0
  56. package/dist/compiler/delta-detector.js.map +1 -0
  57. package/dist/compiler/flow-compiler.d.ts +18 -0
  58. package/dist/compiler/flow-compiler.js +69 -0
  59. package/dist/compiler/flow-compiler.js.map +1 -0
  60. package/dist/compiler/module-compiler.d.ts +18 -0
  61. package/dist/compiler/module-compiler.js +420 -0
  62. package/dist/compiler/module-compiler.js.map +1 -0
  63. package/dist/compiler/stale-detector.d.ts +22 -0
  64. package/dist/compiler/stale-detector.js +79 -0
  65. package/dist/compiler/stale-detector.js.map +1 -0
  66. package/dist/config/ignore-service.d.ts +26 -0
  67. package/dist/config/ignore-service.js +366 -0
  68. package/dist/config/ignore-service.js.map +1 -0
  69. package/dist/core/analysis/cluster-enricher.d.ts +38 -0
  70. package/dist/core/analysis/cluster-enricher.js +169 -0
  71. package/dist/core/analysis/cluster-enricher.js.map +1 -0
  72. package/dist/core/analysis/community-processor.d.ts +39 -0
  73. package/dist/core/analysis/community-processor.js +319 -0
  74. package/dist/core/analysis/community-processor.js.map +1 -0
  75. package/dist/core/analysis/process-processor.d.ts +51 -0
  76. package/dist/core/analysis/process-processor.js +318 -0
  77. package/dist/core/analysis/process-processor.js.map +1 -0
  78. package/dist/core/bridge.d.ts +15 -0
  79. package/dist/core/bridge.js +63 -0
  80. package/dist/core/bridge.js.map +1 -0
  81. package/dist/core/export/json-exporter.d.ts +43 -0
  82. package/dist/core/export/json-exporter.js +13 -0
  83. package/dist/core/export/json-exporter.js.map +1 -0
  84. package/dist/core/graph/graph.d.ts +2 -0
  85. package/dist/core/graph/graph.js +79 -0
  86. package/dist/core/graph/graph.js.map +1 -0
  87. package/dist/core/graph/types.d.ts +25 -0
  88. package/dist/core/graph/types.js +2 -0
  89. package/dist/core/graph/types.js.map +1 -0
  90. package/dist/core/parser/ast-cache.d.ts +11 -0
  91. package/dist/core/parser/ast-cache.js +36 -0
  92. package/dist/core/parser/ast-cache.js.map +1 -0
  93. package/dist/core/parser/call-processor.d.ts +105 -0
  94. package/dist/core/parser/call-processor.js +1807 -0
  95. package/dist/core/parser/call-processor.js.map +1 -0
  96. package/dist/core/parser/call-routing.d.ts +55 -0
  97. package/dist/core/parser/call-routing.js +113 -0
  98. package/dist/core/parser/call-routing.js.map +1 -0
  99. package/dist/core/parser/call-sites/extract-language-call-site.d.ts +10 -0
  100. package/dist/core/parser/call-sites/extract-language-call-site.js +23 -0
  101. package/dist/core/parser/call-sites/extract-language-call-site.js.map +1 -0
  102. package/dist/core/parser/call-sites/java.d.ts +9 -0
  103. package/dist/core/parser/call-sites/java.js +31 -0
  104. package/dist/core/parser/call-sites/java.js.map +1 -0
  105. package/dist/core/parser/cluster-enricher.d.ts +38 -0
  106. package/dist/core/parser/cluster-enricher.js +169 -0
  107. package/dist/core/parser/cluster-enricher.js.map +1 -0
  108. package/dist/core/parser/community-processor.d.ts +39 -0
  109. package/dist/core/parser/community-processor.js +321 -0
  110. package/dist/core/parser/community-processor.js.map +1 -0
  111. package/dist/core/parser/constants.d.ts +16 -0
  112. package/dist/core/parser/constants.js +17 -0
  113. package/dist/core/parser/constants.js.map +1 -0
  114. package/dist/core/parser/entry-point-scoring.d.ts +57 -0
  115. package/dist/core/parser/entry-point-scoring.js +377 -0
  116. package/dist/core/parser/entry-point-scoring.js.map +1 -0
  117. package/dist/core/parser/export-detection.d.ts +57 -0
  118. package/dist/core/parser/export-detection.js +234 -0
  119. package/dist/core/parser/export-detection.js.map +1 -0
  120. package/dist/core/parser/field-extractor.d.ts +34 -0
  121. package/dist/core/parser/field-extractor.js +33 -0
  122. package/dist/core/parser/field-extractor.js.map +1 -0
  123. package/dist/core/parser/field-extractors/configs/c-cpp.d.ts +16 -0
  124. package/dist/core/parser/field-extractors/configs/c-cpp.js +129 -0
  125. package/dist/core/parser/field-extractors/configs/c-cpp.js.map +1 -0
  126. package/dist/core/parser/field-extractors/configs/csharp.d.ts +15 -0
  127. package/dist/core/parser/field-extractors/configs/csharp.js +129 -0
  128. package/dist/core/parser/field-extractors/configs/csharp.js.map +1 -0
  129. package/dist/core/parser/field-extractors/configs/dart.d.ts +12 -0
  130. package/dist/core/parser/field-extractors/configs/dart.js +93 -0
  131. package/dist/core/parser/field-extractors/configs/dart.js.map +1 -0
  132. package/dist/core/parser/field-extractors/configs/go.d.ts +12 -0
  133. package/dist/core/parser/field-extractors/configs/go.js +66 -0
  134. package/dist/core/parser/field-extractors/configs/go.js.map +1 -0
  135. package/dist/core/parser/field-extractors/configs/helpers.d.ts +40 -0
  136. package/dist/core/parser/field-extractors/configs/helpers.js +118 -0
  137. package/dist/core/parser/field-extractors/configs/helpers.js.map +1 -0
  138. package/dist/core/parser/field-extractors/configs/jvm.d.ts +17 -0
  139. package/dist/core/parser/field-extractors/configs/jvm.js +139 -0
  140. package/dist/core/parser/field-extractors/configs/jvm.js.map +1 -0
  141. package/dist/core/parser/field-extractors/configs/php.d.ts +12 -0
  142. package/dist/core/parser/field-extractors/configs/php.js +69 -0
  143. package/dist/core/parser/field-extractors/configs/php.js.map +1 -0
  144. package/dist/core/parser/field-extractors/configs/python.d.ts +15 -0
  145. package/dist/core/parser/field-extractors/configs/python.js +92 -0
  146. package/dist/core/parser/field-extractors/configs/python.js.map +1 -0
  147. package/dist/core/parser/field-extractors/configs/ruby.d.ts +15 -0
  148. package/dist/core/parser/field-extractors/configs/ruby.js +68 -0
  149. package/dist/core/parser/field-extractors/configs/ruby.js.map +1 -0
  150. package/dist/core/parser/field-extractors/configs/rust.d.ts +12 -0
  151. package/dist/core/parser/field-extractors/configs/rust.js +58 -0
  152. package/dist/core/parser/field-extractors/configs/rust.js.map +1 -0
  153. package/dist/core/parser/field-extractors/configs/swift.d.ts +15 -0
  154. package/dist/core/parser/field-extractors/configs/swift.js +75 -0
  155. package/dist/core/parser/field-extractors/configs/swift.js.map +1 -0
  156. package/dist/core/parser/field-extractors/configs/typescript-javascript.d.ts +14 -0
  157. package/dist/core/parser/field-extractors/configs/typescript-javascript.js +72 -0
  158. package/dist/core/parser/field-extractors/configs/typescript-javascript.js.map +1 -0
  159. package/dist/core/parser/field-extractors/generic.d.ts +61 -0
  160. package/dist/core/parser/field-extractors/generic.js +170 -0
  161. package/dist/core/parser/field-extractors/generic.js.map +1 -0
  162. package/dist/core/parser/field-extractors/typescript.d.ts +16 -0
  163. package/dist/core/parser/field-extractors/typescript.js +167 -0
  164. package/dist/core/parser/field-extractors/typescript.js.map +1 -0
  165. package/dist/core/parser/field-types.d.ts +46 -0
  166. package/dist/core/parser/field-types.js +2 -0
  167. package/dist/core/parser/field-types.js.map +1 -0
  168. package/dist/core/parser/filesystem-walker.d.ts +28 -0
  169. package/dist/core/parser/filesystem-walker.js +82 -0
  170. package/dist/core/parser/filesystem-walker.js.map +1 -0
  171. package/dist/core/parser/framework-detection.d.ts +149 -0
  172. package/dist/core/parser/framework-detection.js +782 -0
  173. package/dist/core/parser/framework-detection.js.map +1 -0
  174. package/dist/core/parser/heritage-processor.d.ts +52 -0
  175. package/dist/core/parser/heritage-processor.js +339 -0
  176. package/dist/core/parser/heritage-processor.js.map +1 -0
  177. package/dist/core/parser/import-processor.d.ts +33 -0
  178. package/dist/core/parser/import-processor.js +382 -0
  179. package/dist/core/parser/import-processor.js.map +1 -0
  180. package/dist/core/parser/import-resolvers/csharp.d.ts +19 -0
  181. package/dist/core/parser/import-resolvers/csharp.js +132 -0
  182. package/dist/core/parser/import-resolvers/csharp.js.map +1 -0
  183. package/dist/core/parser/import-resolvers/dart.d.ts +7 -0
  184. package/dist/core/parser/import-resolvers/dart.js +45 -0
  185. package/dist/core/parser/import-resolvers/dart.js.map +1 -0
  186. package/dist/core/parser/import-resolvers/go.d.ts +18 -0
  187. package/dist/core/parser/import-resolvers/go.js +62 -0
  188. package/dist/core/parser/import-resolvers/go.js.map +1 -0
  189. package/dist/core/parser/import-resolvers/jvm.d.ts +32 -0
  190. package/dist/core/parser/import-resolvers/jvm.js +160 -0
  191. package/dist/core/parser/import-resolvers/jvm.js.map +1 -0
  192. package/dist/core/parser/import-resolvers/php.d.ts +25 -0
  193. package/dist/core/parser/import-resolvers/php.js +81 -0
  194. package/dist/core/parser/import-resolvers/php.js.map +1 -0
  195. package/dist/core/parser/import-resolvers/python.d.ts +25 -0
  196. package/dist/core/parser/import-resolvers/python.js +85 -0
  197. package/dist/core/parser/import-resolvers/python.js.map +1 -0
  198. package/dist/core/parser/import-resolvers/ruby.d.ts +15 -0
  199. package/dist/core/parser/import-resolvers/ruby.js +21 -0
  200. package/dist/core/parser/import-resolvers/ruby.js.map +1 -0
  201. package/dist/core/parser/import-resolvers/rust.d.ts +18 -0
  202. package/dist/core/parser/import-resolvers/rust.js +119 -0
  203. package/dist/core/parser/import-resolvers/rust.js.map +1 -0
  204. package/dist/core/parser/import-resolvers/standard.d.ts +36 -0
  205. package/dist/core/parser/import-resolvers/standard.js +144 -0
  206. package/dist/core/parser/import-resolvers/standard.js.map +1 -0
  207. package/dist/core/parser/import-resolvers/swift.d.ts +7 -0
  208. package/dist/core/parser/import-resolvers/swift.js +25 -0
  209. package/dist/core/parser/import-resolvers/swift.js.map +1 -0
  210. package/dist/core/parser/import-resolvers/types.d.ts +44 -0
  211. package/dist/core/parser/import-resolvers/types.js +7 -0
  212. package/dist/core/parser/import-resolvers/types.js.map +1 -0
  213. package/dist/core/parser/import-resolvers/utils.d.ts +35 -0
  214. package/dist/core/parser/import-resolvers/utils.js +150 -0
  215. package/dist/core/parser/import-resolvers/utils.js.map +1 -0
  216. package/dist/core/parser/import-resolvers/vue.d.ts +8 -0
  217. package/dist/core/parser/import-resolvers/vue.js +10 -0
  218. package/dist/core/parser/import-resolvers/vue.js.map +1 -0
  219. package/dist/core/parser/language-config.d.ts +52 -0
  220. package/dist/core/parser/language-config.js +182 -0
  221. package/dist/core/parser/language-config.js.map +1 -0
  222. package/dist/core/parser/language-provider.d.ts +126 -0
  223. package/dist/core/parser/language-provider.js +25 -0
  224. package/dist/core/parser/language-provider.js.map +1 -0
  225. package/dist/core/parser/languages/c-cpp.d.ts +12 -0
  226. package/dist/core/parser/languages/c-cpp.js +312 -0
  227. package/dist/core/parser/languages/c-cpp.js.map +1 -0
  228. package/dist/core/parser/languages/csharp.d.ts +8 -0
  229. package/dist/core/parser/languages/csharp.js +127 -0
  230. package/dist/core/parser/languages/csharp.js.map +1 -0
  231. package/dist/core/parser/languages/dart.d.ts +12 -0
  232. package/dist/core/parser/languages/dart.js +91 -0
  233. package/dist/core/parser/languages/dart.js.map +1 -0
  234. package/dist/core/parser/languages/go.d.ts +11 -0
  235. package/dist/core/parser/languages/go.js +32 -0
  236. package/dist/core/parser/languages/go.js.map +1 -0
  237. package/dist/core/parser/languages/index.d.ts +38 -0
  238. package/dist/core/parser/languages/index.js +63 -0
  239. package/dist/core/parser/languages/index.js.map +1 -0
  240. package/dist/core/parser/languages/java.d.ts +9 -0
  241. package/dist/core/parser/languages/java.js +33 -0
  242. package/dist/core/parser/languages/java.js.map +1 -0
  243. package/dist/core/parser/languages/kotlin.d.ts +9 -0
  244. package/dist/core/parser/languages/kotlin.js +112 -0
  245. package/dist/core/parser/languages/kotlin.js.map +1 -0
  246. package/dist/core/parser/languages/php.d.ts +8 -0
  247. package/dist/core/parser/languages/php.js +226 -0
  248. package/dist/core/parser/languages/php.js.map +1 -0
  249. package/dist/core/parser/languages/python.d.ts +12 -0
  250. package/dist/core/parser/languages/python.js +66 -0
  251. package/dist/core/parser/languages/python.js.map +1 -0
  252. package/dist/core/parser/languages/ruby.d.ts +9 -0
  253. package/dist/core/parser/languages/ruby.js +109 -0
  254. package/dist/core/parser/languages/ruby.js.map +1 -0
  255. package/dist/core/parser/languages/rust.d.ts +12 -0
  256. package/dist/core/parser/languages/rust.js +121 -0
  257. package/dist/core/parser/languages/rust.js.map +1 -0
  258. package/dist/core/parser/languages/swift.d.ts +12 -0
  259. package/dist/core/parser/languages/swift.js +233 -0
  260. package/dist/core/parser/languages/swift.js.map +1 -0
  261. package/dist/core/parser/languages/typescript.d.ts +11 -0
  262. package/dist/core/parser/languages/typescript.js +169 -0
  263. package/dist/core/parser/languages/typescript.js.map +1 -0
  264. package/dist/core/parser/languages/vue.d.ts +13 -0
  265. package/dist/core/parser/languages/vue.js +65 -0
  266. package/dist/core/parser/languages/vue.js.map +1 -0
  267. package/dist/core/parser/markdown-processor.d.ts +17 -0
  268. package/dist/core/parser/markdown-processor.js +125 -0
  269. package/dist/core/parser/markdown-processor.js.map +1 -0
  270. package/dist/core/parser/method-extractors/configs/c-cpp.d.ts +3 -0
  271. package/dist/core/parser/method-extractors/configs/c-cpp.js +276 -0
  272. package/dist/core/parser/method-extractors/configs/c-cpp.js.map +1 -0
  273. package/dist/core/parser/method-extractors/configs/csharp.d.ts +2 -0
  274. package/dist/core/parser/method-extractors/configs/csharp.js +243 -0
  275. package/dist/core/parser/method-extractors/configs/csharp.js.map +1 -0
  276. package/dist/core/parser/method-extractors/configs/dart.d.ts +2 -0
  277. package/dist/core/parser/method-extractors/configs/dart.js +263 -0
  278. package/dist/core/parser/method-extractors/configs/dart.js.map +1 -0
  279. package/dist/core/parser/method-extractors/configs/go.d.ts +2 -0
  280. package/dist/core/parser/method-extractors/configs/go.js +120 -0
  281. package/dist/core/parser/method-extractors/configs/go.js.map +1 -0
  282. package/dist/core/parser/method-extractors/configs/jvm.d.ts +3 -0
  283. package/dist/core/parser/method-extractors/configs/jvm.js +309 -0
  284. package/dist/core/parser/method-extractors/configs/jvm.js.map +1 -0
  285. package/dist/core/parser/method-extractors/configs/php.d.ts +2 -0
  286. package/dist/core/parser/method-extractors/configs/php.js +243 -0
  287. package/dist/core/parser/method-extractors/configs/php.js.map +1 -0
  288. package/dist/core/parser/method-extractors/configs/python.d.ts +2 -0
  289. package/dist/core/parser/method-extractors/configs/python.js +219 -0
  290. package/dist/core/parser/method-extractors/configs/python.js.map +1 -0
  291. package/dist/core/parser/method-extractors/configs/ruby.d.ts +2 -0
  292. package/dist/core/parser/method-extractors/configs/ruby.js +201 -0
  293. package/dist/core/parser/method-extractors/configs/ruby.js.map +1 -0
  294. package/dist/core/parser/method-extractors/configs/rust.d.ts +2 -0
  295. package/dist/core/parser/method-extractors/configs/rust.js +120 -0
  296. package/dist/core/parser/method-extractors/configs/rust.js.map +1 -0
  297. package/dist/core/parser/method-extractors/configs/swift.d.ts +2 -0
  298. package/dist/core/parser/method-extractors/configs/swift.js +191 -0
  299. package/dist/core/parser/method-extractors/configs/swift.js.map +1 -0
  300. package/dist/core/parser/method-extractors/configs/typescript-javascript.d.ts +3 -0
  301. package/dist/core/parser/method-extractors/configs/typescript-javascript.js +231 -0
  302. package/dist/core/parser/method-extractors/configs/typescript-javascript.js.map +1 -0
  303. package/dist/core/parser/method-extractors/generic.d.ts +11 -0
  304. package/dist/core/parser/method-extractors/generic.js +162 -0
  305. package/dist/core/parser/method-extractors/generic.js.map +1 -0
  306. package/dist/core/parser/method-types.d.ts +110 -0
  307. package/dist/core/parser/method-types.js +2 -0
  308. package/dist/core/parser/method-types.js.map +1 -0
  309. package/dist/core/parser/mro-processor.d.ts +46 -0
  310. package/dist/core/parser/mro-processor.js +677 -0
  311. package/dist/core/parser/mro-processor.js.map +1 -0
  312. package/dist/core/parser/named-binding-processor.d.ts +18 -0
  313. package/dist/core/parser/named-binding-processor.js +43 -0
  314. package/dist/core/parser/named-binding-processor.js.map +1 -0
  315. package/dist/core/parser/named-bindings/csharp.d.ts +3 -0
  316. package/dist/core/parser/named-bindings/csharp.js +38 -0
  317. package/dist/core/parser/named-bindings/csharp.js.map +1 -0
  318. package/dist/core/parser/named-bindings/java.d.ts +3 -0
  319. package/dist/core/parser/named-bindings/java.js +30 -0
  320. package/dist/core/parser/named-bindings/java.js.map +1 -0
  321. package/dist/core/parser/named-bindings/kotlin.d.ts +3 -0
  322. package/dist/core/parser/named-bindings/kotlin.js +37 -0
  323. package/dist/core/parser/named-bindings/kotlin.js.map +1 -0
  324. package/dist/core/parser/named-bindings/php.d.ts +3 -0
  325. package/dist/core/parser/named-bindings/php.js +62 -0
  326. package/dist/core/parser/named-bindings/php.js.map +1 -0
  327. package/dist/core/parser/named-bindings/python.d.ts +3 -0
  328. package/dist/core/parser/named-bindings/python.js +50 -0
  329. package/dist/core/parser/named-bindings/python.js.map +1 -0
  330. package/dist/core/parser/named-bindings/rust.d.ts +3 -0
  331. package/dist/core/parser/named-bindings/rust.js +67 -0
  332. package/dist/core/parser/named-bindings/rust.js.map +1 -0
  333. package/dist/core/parser/named-bindings/types.d.ts +16 -0
  334. package/dist/core/parser/named-bindings/types.js +7 -0
  335. package/dist/core/parser/named-bindings/types.js.map +1 -0
  336. package/dist/core/parser/named-bindings/typescript.d.ts +3 -0
  337. package/dist/core/parser/named-bindings/typescript.js +59 -0
  338. package/dist/core/parser/named-bindings/typescript.js.map +1 -0
  339. package/dist/core/parser/parsing-processor.d.ts +23 -0
  340. package/dist/core/parser/parsing-processor.js +464 -0
  341. package/dist/core/parser/parsing-processor.js.map +1 -0
  342. package/dist/core/parser/pipeline.d.ts +17 -0
  343. package/dist/core/parser/pipeline.js +1405 -0
  344. package/dist/core/parser/pipeline.js.map +1 -0
  345. package/dist/core/parser/process-processor.d.ts +51 -0
  346. package/dist/core/parser/process-processor.js +318 -0
  347. package/dist/core/parser/process-processor.js.map +1 -0
  348. package/dist/core/parser/resolution-context.d.ts +58 -0
  349. package/dist/core/parser/resolution-context.js +136 -0
  350. package/dist/core/parser/resolution-context.js.map +1 -0
  351. package/dist/core/parser/route-extractors/expo.d.ts +1 -0
  352. package/dist/core/parser/route-extractors/expo.js +37 -0
  353. package/dist/core/parser/route-extractors/expo.js.map +1 -0
  354. package/dist/core/parser/route-extractors/middleware.d.ts +47 -0
  355. package/dist/core/parser/route-extractors/middleware.js +168 -0
  356. package/dist/core/parser/route-extractors/middleware.js.map +1 -0
  357. package/dist/core/parser/route-extractors/nextjs.d.ts +3 -0
  358. package/dist/core/parser/route-extractors/nextjs.js +77 -0
  359. package/dist/core/parser/route-extractors/nextjs.js.map +1 -0
  360. package/dist/core/parser/route-extractors/php.d.ts +7 -0
  361. package/dist/core/parser/route-extractors/php.js +23 -0
  362. package/dist/core/parser/route-extractors/php.js.map +1 -0
  363. package/dist/core/parser/route-extractors/response-shapes.d.ts +20 -0
  364. package/dist/core/parser/route-extractors/response-shapes.js +295 -0
  365. package/dist/core/parser/route-extractors/response-shapes.js.map +1 -0
  366. package/dist/core/parser/structure-processor.d.ts +2 -0
  367. package/dist/core/parser/structure-processor.js +37 -0
  368. package/dist/core/parser/structure-processor.js.map +1 -0
  369. package/dist/core/parser/symbol-table.d.ts +79 -0
  370. package/dist/core/parser/symbol-table.js +116 -0
  371. package/dist/core/parser/symbol-table.js.map +1 -0
  372. package/dist/core/parser/tree-sitter-queries.d.ts +16 -0
  373. package/dist/core/parser/tree-sitter-queries.js +1180 -0
  374. package/dist/core/parser/tree-sitter-queries.js.map +1 -0
  375. package/dist/core/parser/type-env.d.ts +81 -0
  376. package/dist/core/parser/type-env.js +1048 -0
  377. package/dist/core/parser/type-env.js.map +1 -0
  378. package/dist/core/parser/type-extractors/c-cpp.d.ts +7 -0
  379. package/dist/core/parser/type-extractors/c-cpp.js +533 -0
  380. package/dist/core/parser/type-extractors/c-cpp.js.map +1 -0
  381. package/dist/core/parser/type-extractors/csharp.d.ts +2 -0
  382. package/dist/core/parser/type-extractors/csharp.js +584 -0
  383. package/dist/core/parser/type-extractors/csharp.js.map +1 -0
  384. package/dist/core/parser/type-extractors/dart.d.ts +15 -0
  385. package/dist/core/parser/type-extractors/dart.js +370 -0
  386. package/dist/core/parser/type-extractors/dart.js.map +1 -0
  387. package/dist/core/parser/type-extractors/go.d.ts +2 -0
  388. package/dist/core/parser/type-extractors/go.js +514 -0
  389. package/dist/core/parser/type-extractors/go.js.map +1 -0
  390. package/dist/core/parser/type-extractors/jvm.d.ts +3 -0
  391. package/dist/core/parser/type-extractors/jvm.js +857 -0
  392. package/dist/core/parser/type-extractors/jvm.js.map +1 -0
  393. package/dist/core/parser/type-extractors/php.d.ts +2 -0
  394. package/dist/core/parser/type-extractors/php.js +535 -0
  395. package/dist/core/parser/type-extractors/php.js.map +1 -0
  396. package/dist/core/parser/type-extractors/python.d.ts +2 -0
  397. package/dist/core/parser/type-extractors/python.js +475 -0
  398. package/dist/core/parser/type-extractors/python.js.map +1 -0
  399. package/dist/core/parser/type-extractors/ruby.d.ts +2 -0
  400. package/dist/core/parser/type-extractors/ruby.js +378 -0
  401. package/dist/core/parser/type-extractors/ruby.js.map +1 -0
  402. package/dist/core/parser/type-extractors/rust.d.ts +2 -0
  403. package/dist/core/parser/type-extractors/rust.js +516 -0
  404. package/dist/core/parser/type-extractors/rust.js.map +1 -0
  405. package/dist/core/parser/type-extractors/shared.d.ts +131 -0
  406. package/dist/core/parser/type-extractors/shared.js +797 -0
  407. package/dist/core/parser/type-extractors/shared.js.map +1 -0
  408. package/dist/core/parser/type-extractors/swift.d.ts +2 -0
  409. package/dist/core/parser/type-extractors/swift.js +485 -0
  410. package/dist/core/parser/type-extractors/swift.js.map +1 -0
  411. package/dist/core/parser/type-extractors/types.d.ts +172 -0
  412. package/dist/core/parser/type-extractors/types.js +2 -0
  413. package/dist/core/parser/type-extractors/types.js.map +1 -0
  414. package/dist/core/parser/type-extractors/typescript.d.ts +2 -0
  415. package/dist/core/parser/type-extractors/typescript.js +662 -0
  416. package/dist/core/parser/type-extractors/typescript.js.map +1 -0
  417. package/dist/core/parser/utils/ast-helpers.d.ts +73 -0
  418. package/dist/core/parser/utils/ast-helpers.js +415 -0
  419. package/dist/core/parser/utils/ast-helpers.js.map +1 -0
  420. package/dist/core/parser/utils/call-analysis.d.ts +75 -0
  421. package/dist/core/parser/utils/call-analysis.js +575 -0
  422. package/dist/core/parser/utils/call-analysis.js.map +1 -0
  423. package/dist/core/parser/utils/event-loop.d.ts +5 -0
  424. package/dist/core/parser/utils/event-loop.js +6 -0
  425. package/dist/core/parser/utils/event-loop.js.map +1 -0
  426. package/dist/core/parser/utils/method-props.d.ts +8 -0
  427. package/dist/core/parser/utils/method-props.js +39 -0
  428. package/dist/core/parser/utils/method-props.js.map +1 -0
  429. package/dist/core/parser/utils/verbose.d.ts +1 -0
  430. package/dist/core/parser/utils/verbose.js +8 -0
  431. package/dist/core/parser/utils/verbose.js.map +1 -0
  432. package/dist/core/parser/vue-sfc-extractor.d.ts +44 -0
  433. package/dist/core/parser/vue-sfc-extractor.js +95 -0
  434. package/dist/core/parser/vue-sfc-extractor.js.map +1 -0
  435. package/dist/core/parser/workers/parse-worker.d.ts +171 -0
  436. package/dist/core/parser/workers/parse-worker.js +1724 -0
  437. package/dist/core/parser/workers/parse-worker.js.map +1 -0
  438. package/dist/core/parser/workers/worker-pool.d.ts +16 -0
  439. package/dist/core/parser/workers/worker-pool.js +124 -0
  440. package/dist/core/parser/workers/worker-pool.js.map +1 -0
  441. package/dist/core/shared/graph-types.d.ts +61 -0
  442. package/dist/core/shared/graph-types.js +5 -0
  443. package/dist/core/shared/graph-types.js.map +1 -0
  444. package/dist/core/shared/index.d.ts +4 -0
  445. package/dist/core/shared/index.js +4 -0
  446. package/dist/core/shared/index.js.map +1 -0
  447. package/dist/core/shared/language-detection.d.ts +22 -0
  448. package/dist/core/shared/language-detection.js +137 -0
  449. package/dist/core/shared/language-detection.js.map +1 -0
  450. package/dist/core/shared/languages.d.ts +23 -0
  451. package/dist/core/shared/languages.js +25 -0
  452. package/dist/core/shared/languages.js.map +1 -0
  453. package/dist/core/shared/pipeline.d.ts +15 -0
  454. package/dist/core/shared/pipeline.js +5 -0
  455. package/dist/core/shared/pipeline.js.map +1 -0
  456. package/dist/core/tree-sitter/parser-loader.d.ts +5 -0
  457. package/dist/core/tree-sitter/parser-loader.js +71 -0
  458. package/dist/core/tree-sitter/parser-loader.js.map +1 -0
  459. package/dist/index.d.ts +2 -0
  460. package/dist/index.js +132 -0
  461. package/dist/index.js.map +1 -0
  462. package/dist/lib/hash.d.ts +1 -0
  463. package/dist/lib/hash.js +6 -0
  464. package/dist/lib/hash.js.map +1 -0
  465. package/dist/lib/naming.d.ts +12 -0
  466. package/dist/lib/naming.js +28 -0
  467. package/dist/lib/naming.js.map +1 -0
  468. package/dist/lib/utils.d.ts +1 -0
  469. package/dist/lib/utils.js +4 -0
  470. package/dist/lib/utils.js.map +1 -0
  471. package/dist/mcp/server.d.ts +26 -0
  472. package/dist/mcp/server.js +282 -0
  473. package/dist/mcp/server.js.map +1 -0
  474. package/dist/mcp/tools.d.ts +37 -0
  475. package/dist/mcp/tools.js +650 -0
  476. package/dist/mcp/tools.js.map +1 -0
  477. package/dist/query/bm25.d.ts +19 -0
  478. package/dist/query/bm25.js +60 -0
  479. package/dist/query/bm25.js.map +1 -0
  480. package/dist/query/graph-index.d.ts +40 -0
  481. package/dist/query/graph-index.js +178 -0
  482. package/dist/query/graph-index.js.map +1 -0
  483. package/dist/store/derived-index.d.ts +4 -0
  484. package/dist/store/derived-index.js +68 -0
  485. package/dist/store/derived-index.js.map +1 -0
  486. package/dist/store/meta.d.ts +1 -0
  487. package/dist/store/meta.js +3 -0
  488. package/dist/store/meta.js.map +1 -0
  489. package/dist/store/schema.d.ts +135 -0
  490. package/dist/store/schema.js +2 -0
  491. package/dist/store/schema.js.map +1 -0
  492. package/dist/store/store.d.ts +49 -0
  493. package/dist/store/store.js +254 -0
  494. package/dist/store/store.js.map +1 -0
  495. package/dist/types/pipeline.d.ts +12 -0
  496. package/dist/types/pipeline.js +2 -0
  497. package/dist/types/pipeline.js.map +1 -0
  498. package/package.json +69 -0
  499. package/skills/cotx-enrich/SKILL.md +59 -0
  500. package/vendor/leiden/index.cjs +355 -0
  501. package/vendor/leiden/utils.cjs +392 -0
@@ -0,0 +1,382 @@
1
+ import Parser from 'tree-sitter';
2
+ import { isLanguageAvailable, loadParser, loadLanguage } from '../tree-sitter/parser-loader.js';
3
+ import { getProvider, getProviderForFile, providersWithImplicitWiring } from './languages/index.js';
4
+ import { generateId } from '../../lib/utils.js';
5
+ import { getLanguageFromFilename } from '../shared/index.js';
6
+ import { isVerboseIngestionEnabled } from './utils/verbose.js';
7
+ import { yieldToEventLoop } from './utils/event-loop.js';
8
+ import { getTreeSitterBufferSize } from './constants.js';
9
+ import { loadImportConfigs } from './language-config.js';
10
+ import { buildSuffixIndex } from './import-resolvers/utils.js';
11
+ const isDev = process.env.NODE_ENV === 'development';
12
+ /** Group files by provider (only those with implicit import wiring), then call each wirer
13
+ * with its own language's files. O(n) over files, O(1) per provider lookup. */
14
+ function wireImplicitImports(files, importMap, addImportEdge, projectConfig) {
15
+ if (providersWithImplicitWiring.length === 0)
16
+ return;
17
+ const grouped = new Map();
18
+ for (const file of files) {
19
+ const provider = getProviderForFile(file);
20
+ if (!provider?.implicitImportWirer)
21
+ continue;
22
+ let list = grouped.get(provider);
23
+ if (!list) {
24
+ list = [];
25
+ grouped.set(provider, list);
26
+ }
27
+ list.push(file);
28
+ }
29
+ for (const [provider, langFiles] of grouped) {
30
+ if (langFiles.length > 1) {
31
+ provider.implicitImportWirer(langFiles, importMap, addImportEdge, projectConfig);
32
+ }
33
+ }
34
+ }
35
+ /**
36
+ * Check if a file path is directly inside a package directory identified by its suffix.
37
+ * Used by the symbol resolver for Go and C# directory-level import matching.
38
+ */
39
+ export function isFileInPackageDir(filePath, dirSuffix) {
40
+ // Prepend '/' so paths like "internal/auth/service.go" match suffix "/internal/auth/"
41
+ const normalized = '/' + filePath.replace(/\\/g, '/');
42
+ if (!normalized.includes(dirSuffix))
43
+ return false;
44
+ const afterDir = normalized.substring(normalized.indexOf(dirSuffix) + dirSuffix.length);
45
+ return !afterDir.includes('/');
46
+ }
47
+ // ImportResolutionContext is defined in ./import-resolvers/types.ts — re-exported here for consumers.
48
+ export function buildImportResolutionContext(allPaths) {
49
+ const allFileList = allPaths;
50
+ const normalizedFileList = allFileList.map((p) => p.replace(/\\/g, '/'));
51
+ const allFilePaths = new Set(allFileList);
52
+ const index = buildSuffixIndex(normalizedFileList, allFileList);
53
+ return { allFilePaths, allFileList, normalizedFileList, index, resolveCache: new Map() };
54
+ }
55
+ // Config loaders extracted to ./language-config.ts (Phase 2 refactor)
56
+ // Resolver types are in ./import-resolvers/types.ts; named binding types in ./named-bindings/types.ts
57
+ // ============================================================================
58
+ // Import path preprocessing
59
+ // ============================================================================
60
+ /**
61
+ * Clean and preprocess a raw import source text into a resolved import path.
62
+ * Strips quotes/angle brackets (universal) and applies provider-specific
63
+ * transformations (currently only Kotlin wildcard import detection).
64
+ */
65
+ export function preprocessImportPath(sourceText, importNode, provider) {
66
+ const cleaned = sourceText.replace(/['"<>]/g, '');
67
+ // Defense-in-depth: reject null bytes and control characters (matches Ruby call-routing pattern)
68
+ if (!cleaned || cleaned.length > 2048 || /[\x00-\x1f]/.test(cleaned))
69
+ return null;
70
+ if (provider.importPathPreprocessor) {
71
+ return provider.importPathPreprocessor(cleaned, importNode);
72
+ }
73
+ return cleaned;
74
+ }
75
+ /** Create IMPORTS edge helpers that share a resolved-count tracker. */
76
+ function createImportEdgeHelpers(graph, importMap) {
77
+ let totalImportsResolved = 0;
78
+ const addImportGraphEdge = (filePath, resolvedPath) => {
79
+ const sourceId = generateId('File', filePath);
80
+ const targetId = generateId('File', resolvedPath);
81
+ const relId = generateId('IMPORTS', `${filePath}->${resolvedPath}`);
82
+ totalImportsResolved++;
83
+ graph.addRelationship({
84
+ id: relId,
85
+ sourceId,
86
+ targetId,
87
+ type: 'IMPORTS',
88
+ confidence: 1.0,
89
+ reason: '',
90
+ });
91
+ };
92
+ const addImportEdge = (filePath, resolvedPath) => {
93
+ addImportGraphEdge(filePath, resolvedPath);
94
+ if (!importMap.has(filePath))
95
+ importMap.set(filePath, new Set());
96
+ importMap.get(filePath).add(resolvedPath);
97
+ };
98
+ return { addImportEdge, addImportGraphEdge, getResolvedCount: () => totalImportsResolved };
99
+ }
100
+ /**
101
+ * Apply an ImportResult: emit graph edges and update ImportMap/PackageMap.
102
+ * If namedBindings are provided and the import resolves to a single file,
103
+ * also populate the NamedImportMap for precise Tier 2a resolution.
104
+ * Bindings tagged with `isModuleAlias` are routed to moduleAliasMap instead.
105
+ */
106
+ function applyImportResult(result, filePath, importMap, packageMap, addImportEdge, addImportGraphEdge, namedBindings, namedImportMap, moduleAliasMap) {
107
+ if (!result)
108
+ return;
109
+ if (result.kind === 'package' && packageMap) {
110
+ // Store directory suffix in PackageMap (skip ImportMap expansion)
111
+ for (const resolvedFile of result.files) {
112
+ addImportGraphEdge(filePath, resolvedFile);
113
+ }
114
+ if (!packageMap.has(filePath))
115
+ packageMap.set(filePath, new Set());
116
+ packageMap.get(filePath).add(result.dirSuffix);
117
+ }
118
+ else {
119
+ // 'files' kind, or 'package' without PackageMap — use ImportMap directly
120
+ const files = result.files;
121
+ for (const resolvedFile of files) {
122
+ addImportEdge(filePath, resolvedFile);
123
+ }
124
+ // Route module aliases (import X as Y) directly to moduleAliasMap.
125
+ // These are module-level aliases, not symbol bindings — they don't belong in namedImportMap.
126
+ if (namedBindings && moduleAliasMap && files.length === 1) {
127
+ const resolvedFile = files[0];
128
+ for (const binding of namedBindings) {
129
+ if (!binding.isModuleAlias)
130
+ continue;
131
+ let aliasMap = moduleAliasMap.get(filePath);
132
+ if (!aliasMap) {
133
+ aliasMap = new Map();
134
+ moduleAliasMap.set(filePath, aliasMap);
135
+ }
136
+ aliasMap.set(binding.local, resolvedFile);
137
+ }
138
+ }
139
+ // Record named bindings for precise Tier 2a resolution.
140
+ // If the same local name is imported from multiple files (e.g., Java static imports
141
+ // of overloaded methods), remove the entry so resolution falls through to Tier 2a
142
+ // import-scoped which sees all candidates and can apply arity narrowing.
143
+ if (namedBindings && namedImportMap) {
144
+ if (!namedImportMap.has(filePath))
145
+ namedImportMap.set(filePath, new Map());
146
+ const fileBindings = namedImportMap.get(filePath);
147
+ if (files.length === 1) {
148
+ const resolvedFile = files[0];
149
+ for (const binding of namedBindings) {
150
+ if (binding.isModuleAlias)
151
+ continue; // already routed to moduleAliasMap
152
+ const existing = fileBindings.get(binding.local);
153
+ if (existing && existing.sourcePath !== resolvedFile) {
154
+ fileBindings.delete(binding.local);
155
+ }
156
+ else {
157
+ fileBindings.set(binding.local, {
158
+ sourcePath: resolvedFile,
159
+ exportedName: binding.exported,
160
+ });
161
+ }
162
+ }
163
+ }
164
+ else {
165
+ // Multi-file resolution (e.g., Rust `use crate::models::{User, Repo}`).
166
+ // Match each binding to a resolved file by comparing the lowercase binding name
167
+ // to the file's basename (without extension). If no match, skip the binding.
168
+ for (const binding of namedBindings) {
169
+ if (binding.isModuleAlias)
170
+ continue;
171
+ const lowerName = binding.exported.toLowerCase();
172
+ const matchedFile = files.find((f) => {
173
+ const base = f.replace(/\\/g, '/').split('/').pop() ?? '';
174
+ const nameWithoutExt = base.substring(0, base.lastIndexOf('.')).toLowerCase();
175
+ return nameWithoutExt === lowerName;
176
+ });
177
+ if (matchedFile) {
178
+ const existing = fileBindings.get(binding.local);
179
+ if (existing && existing.sourcePath !== matchedFile) {
180
+ fileBindings.delete(binding.local);
181
+ }
182
+ else {
183
+ fileBindings.set(binding.local, {
184
+ sourcePath: matchedFile,
185
+ exportedName: binding.exported,
186
+ });
187
+ }
188
+ }
189
+ }
190
+ }
191
+ }
192
+ }
193
+ }
194
+ // ============================================================================
195
+ // MAIN IMPORT PROCESSOR
196
+ // ============================================================================
197
+ export const processImports = async (graph, files, astCache, ctx, onProgress, repoRoot, allPaths) => {
198
+ const importMap = ctx.importMap;
199
+ const packageMap = ctx.packageMap;
200
+ const namedImportMap = ctx.namedImportMap;
201
+ const moduleAliasMap = ctx.moduleAliasMap;
202
+ // Use allPaths (full repo) when available for cross-chunk resolution, else fall back to chunk files
203
+ const allFileList = allPaths ?? files.map((f) => f.path);
204
+ const allFilePaths = new Set(allFileList);
205
+ const parser = await loadParser();
206
+ const logSkipped = isVerboseIngestionEnabled();
207
+ const skippedByLang = logSkipped ? new Map() : null;
208
+ const resolveCache = new Map();
209
+ // Pre-compute normalized file list once (forward slashes)
210
+ const normalizedFileList = allFileList.map((p) => p.replace(/\\/g, '/'));
211
+ // Build suffix index for O(1) lookups
212
+ const index = buildSuffixIndex(normalizedFileList, allFileList);
213
+ // Track import statistics
214
+ let totalImportsFound = 0;
215
+ // Load language-specific configs once before the file loop
216
+ const configs = await loadImportConfigs(repoRoot || '');
217
+ const resolveCtx = {
218
+ allFilePaths,
219
+ allFileList,
220
+ normalizedFileList,
221
+ index,
222
+ resolveCache,
223
+ configs,
224
+ };
225
+ const { addImportEdge, addImportGraphEdge, getResolvedCount } = createImportEdgeHelpers(graph, importMap);
226
+ for (let i = 0; i < files.length; i++) {
227
+ const file = files[i];
228
+ onProgress?.(i + 1, files.length);
229
+ if (i % 20 === 0)
230
+ await yieldToEventLoop();
231
+ // 1. Check language support first
232
+ const language = getLanguageFromFilename(file.path);
233
+ if (!language)
234
+ continue;
235
+ if (!isLanguageAvailable(language)) {
236
+ if (skippedByLang) {
237
+ skippedByLang.set(language, (skippedByLang.get(language) ?? 0) + 1);
238
+ }
239
+ continue;
240
+ }
241
+ const provider = getProvider(language);
242
+ const queryStr = provider.treeSitterQueries;
243
+ if (!queryStr)
244
+ continue;
245
+ // 2. ALWAYS load the language before querying (parser is stateful)
246
+ await loadLanguage(language, file.path);
247
+ // 3. Get AST (Try Cache First)
248
+ let tree = astCache.get(file.path);
249
+ let wasReparsed = false;
250
+ if (!tree) {
251
+ try {
252
+ tree = parser.parse(file.content, undefined, {
253
+ bufferSize: getTreeSitterBufferSize(file.content.length),
254
+ });
255
+ }
256
+ catch (parseError) {
257
+ continue;
258
+ }
259
+ wasReparsed = true;
260
+ // Cache re-parsed tree so call/heritage phases get hits
261
+ astCache.set(file.path, tree);
262
+ }
263
+ let query;
264
+ let matches;
265
+ try {
266
+ const lang = parser.getLanguage();
267
+ query = new Parser.Query(lang, queryStr);
268
+ matches = query.matches(tree.rootNode);
269
+ }
270
+ catch (queryError) {
271
+ if (isDev) {
272
+ console.group(`🔴 Query Error: ${file.path}`);
273
+ console.log('Language:', language);
274
+ console.log('Query (first 200 chars):', queryStr.substring(0, 200) + '...');
275
+ console.log('Error:', queryError?.message || queryError);
276
+ console.log('File content (first 300 chars):', file.content.substring(0, 300));
277
+ console.log('AST root type:', tree.rootNode?.type);
278
+ console.log('AST has errors:', tree.rootNode?.hasError);
279
+ console.groupEnd();
280
+ }
281
+ if (wasReparsed)
282
+ tree.delete?.();
283
+ continue;
284
+ }
285
+ matches.forEach((match) => {
286
+ const captureMap = {};
287
+ match.captures.forEach((c) => (captureMap[c.name] = c.node));
288
+ if (captureMap['import']) {
289
+ const sourceNode = captureMap['import.source'];
290
+ if (!sourceNode) {
291
+ if (isDev) {
292
+ console.log(`⚠️ Import captured but no source node in ${file.path}`);
293
+ }
294
+ return;
295
+ }
296
+ const rawImportPath = preprocessImportPath(sourceNode.text, captureMap['import'], provider);
297
+ if (!rawImportPath)
298
+ return;
299
+ totalImportsFound++;
300
+ const result = provider.importResolver(rawImportPath, file.path, resolveCtx);
301
+ const extractor = provider.namedBindingExtractor;
302
+ const bindings = namedImportMap && extractor ? extractor(captureMap['import']) : undefined;
303
+ applyImportResult(result, file.path, importMap, packageMap, addImportEdge, addImportGraphEdge, bindings, namedImportMap, moduleAliasMap);
304
+ }
305
+ // ---- Language-specific call-as-import routing (Ruby require, etc.) ----
306
+ if (captureMap['call']) {
307
+ const callNameNode = captureMap['call.name'];
308
+ if (callNameNode) {
309
+ const routed = provider.callRouter?.(callNameNode.text, captureMap['call']);
310
+ if (routed && routed.kind === 'import') {
311
+ totalImportsFound++;
312
+ const result = provider.importResolver(routed.importPath, file.path, resolveCtx);
313
+ applyImportResult(result, file.path, importMap, packageMap, addImportEdge, addImportGraphEdge);
314
+ }
315
+ }
316
+ }
317
+ });
318
+ // Tree is now owned by the LRU cache — no manual delete needed
319
+ }
320
+ wireImplicitImports(allFileList, importMap, addImportEdge, configs);
321
+ if (skippedByLang && skippedByLang.size > 0) {
322
+ for (const [lang, count] of skippedByLang.entries()) {
323
+ console.warn(`[ingestion] Skipped ${count} ${lang} file(s) in import processing — ${lang} parser not available.`);
324
+ }
325
+ }
326
+ if (isDev) {
327
+ console.log(`📊 Import processing complete: ${getResolvedCount()}/${totalImportsFound} imports resolved to graph edges`);
328
+ }
329
+ };
330
+ // ============================================================================
331
+ // FAST PATH: Resolve pre-extracted imports (no parsing needed)
332
+ // ============================================================================
333
+ export const processImportsFromExtracted = async (graph, files, extractedImports, ctx, onProgress, repoRoot, prebuiltCtx) => {
334
+ const importMap = ctx.importMap;
335
+ const packageMap = ctx.packageMap;
336
+ const namedImportMap = ctx.namedImportMap;
337
+ const moduleAliasMap = ctx.moduleAliasMap;
338
+ const importCtx = prebuiltCtx ?? buildImportResolutionContext(files.map((f) => f.path));
339
+ const { allFilePaths, allFileList, normalizedFileList, index, resolveCache } = importCtx;
340
+ let totalImportsFound = 0;
341
+ const configs = await loadImportConfigs(repoRoot || '');
342
+ const resolveCtx = {
343
+ allFilePaths,
344
+ allFileList,
345
+ normalizedFileList,
346
+ index,
347
+ resolveCache,
348
+ configs,
349
+ };
350
+ const { addImportEdge, addImportGraphEdge, getResolvedCount } = createImportEdgeHelpers(graph, importMap);
351
+ // Group by file for progress reporting (users see file count, not import count)
352
+ const importsByFile = new Map();
353
+ for (const imp of extractedImports) {
354
+ let list = importsByFile.get(imp.filePath);
355
+ if (!list) {
356
+ list = [];
357
+ importsByFile.set(imp.filePath, list);
358
+ }
359
+ list.push(imp);
360
+ }
361
+ const totalFiles = importsByFile.size;
362
+ let filesProcessed = 0;
363
+ for (const [filePath, fileImports] of importsByFile) {
364
+ filesProcessed++;
365
+ if (filesProcessed % 100 === 0) {
366
+ onProgress?.(filesProcessed, totalFiles);
367
+ await yieldToEventLoop();
368
+ }
369
+ for (const imp of fileImports) {
370
+ totalImportsFound++;
371
+ const provider = getProvider(imp.language);
372
+ const result = provider.importResolver(imp.rawImportPath, filePath, resolveCtx);
373
+ applyImportResult(result, filePath, importMap, packageMap, addImportEdge, addImportGraphEdge, imp.namedBindings, namedImportMap, moduleAliasMap);
374
+ }
375
+ }
376
+ onProgress?.(totalFiles, totalFiles);
377
+ wireImplicitImports(files.map((f) => f.path), importMap, addImportEdge, configs);
378
+ if (isDev) {
379
+ console.log(`📊 Import processing (fast path): ${getResolvedCount()}/${totalImportsFound} imports resolved to graph edges`);
380
+ }
381
+ };
382
+ //# sourceMappingURL=import-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-processor.js","sourceRoot":"","sources":["../../../src/core/parser/import-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * C# namespace import resolution.
3
+ * Handles using-directive resolution via .csproj root namespace stripping.
4
+ */
5
+ import type { SuffixIndex } from './utils.js';
6
+ import type { ImportResult, ResolveCtx } from './types.js';
7
+ import type { CSharpProjectConfig } from '../language-config.js';
8
+ /**
9
+ * Resolve a C# using-directive import path to matching .cs files (low-level helper).
10
+ * Tries single-file match first, then directory match for namespace imports.
11
+ */
12
+ export declare function resolveCSharpImportInternal(importPath: string, csharpConfigs: CSharpProjectConfig[], normalizedFileList: string[], allFileList: string[], index?: SuffixIndex): string[];
13
+ /**
14
+ * Compute the directory suffix for a C# namespace import (for PackageMap).
15
+ * Returns a suffix like "/ProjectDir/Models/" or null if no config matches.
16
+ */
17
+ export declare function resolveCSharpNamespaceDir(importPath: string, csharpConfigs: CSharpProjectConfig[]): string | null;
18
+ /** C#: namespace-based resolution via .csproj configs, with suffix-match fallback. */
19
+ export declare function resolveCSharpImport(rawImportPath: string, filePath: string, ctx: ResolveCtx): ImportResult;
@@ -0,0 +1,132 @@
1
+ /**
2
+ * C# namespace import resolution.
3
+ * Handles using-directive resolution via .csproj root namespace stripping.
4
+ */
5
+ import { suffixResolve } from './utils.js';
6
+ import { SupportedLanguages } from '../../shared/index.js';
7
+ import { resolveStandard } from './standard.js';
8
+ /**
9
+ * Resolve a C# using-directive import path to matching .cs files (low-level helper).
10
+ * Tries single-file match first, then directory match for namespace imports.
11
+ */
12
+ export function resolveCSharpImportInternal(importPath, csharpConfigs, normalizedFileList, allFileList, index) {
13
+ const namespacePath = importPath.replace(/\./g, '/');
14
+ const results = [];
15
+ for (const config of csharpConfigs) {
16
+ const nsPath = config.rootNamespace.replace(/\./g, '/');
17
+ let relative;
18
+ if (namespacePath.startsWith(nsPath + '/')) {
19
+ relative = namespacePath.slice(nsPath.length + 1);
20
+ }
21
+ else if (namespacePath === nsPath) {
22
+ // The import IS the root namespace — resolve to all .cs files in project root
23
+ relative = '';
24
+ }
25
+ else {
26
+ continue;
27
+ }
28
+ const dirPrefix = config.projectDir
29
+ ? relative
30
+ ? config.projectDir + '/' + relative
31
+ : config.projectDir
32
+ : relative;
33
+ // 1. Try as single file: relative.cs (e.g., "Models/DlqMessage.cs")
34
+ if (relative) {
35
+ const candidate = dirPrefix + '.cs';
36
+ if (index) {
37
+ const result = index.get(candidate) || index.getInsensitive(candidate);
38
+ if (result)
39
+ return [result];
40
+ }
41
+ // Also try suffix match
42
+ const suffixResult = index?.get(relative + '.cs') || index?.getInsensitive(relative + '.cs');
43
+ if (suffixResult)
44
+ return [suffixResult];
45
+ }
46
+ // 2. Try as directory: all .cs files directly inside (namespace import)
47
+ if (index) {
48
+ const dirFiles = index.getFilesInDir(dirPrefix, '.cs');
49
+ for (const f of dirFiles) {
50
+ const normalized = f.replace(/\\/g, '/');
51
+ // Check it's a direct child by finding the dirPrefix and ensuring no deeper slashes
52
+ const prefixIdx = normalized.indexOf(dirPrefix + '/');
53
+ if (prefixIdx < 0)
54
+ continue;
55
+ const afterDir = normalized.substring(prefixIdx + dirPrefix.length + 1);
56
+ if (!afterDir.includes('/')) {
57
+ results.push(f);
58
+ }
59
+ }
60
+ if (results.length > 0)
61
+ return results;
62
+ }
63
+ // 3. Linear scan fallback for directory matching
64
+ if (results.length === 0) {
65
+ const dirTrail = dirPrefix + '/';
66
+ for (let i = 0; i < normalizedFileList.length; i++) {
67
+ const normalized = normalizedFileList[i];
68
+ if (!normalized.endsWith('.cs'))
69
+ continue;
70
+ const prefixIdx = normalized.indexOf(dirTrail);
71
+ if (prefixIdx < 0)
72
+ continue;
73
+ const afterDir = normalized.substring(prefixIdx + dirTrail.length);
74
+ if (!afterDir.includes('/')) {
75
+ results.push(allFileList[i]);
76
+ }
77
+ }
78
+ if (results.length > 0)
79
+ return results;
80
+ }
81
+ }
82
+ // Fallback: suffix matching without namespace stripping (single file)
83
+ const pathParts = namespacePath.split('/').filter(Boolean);
84
+ const fallback = suffixResolve(pathParts, normalizedFileList, allFileList, index);
85
+ return fallback ? [fallback] : [];
86
+ }
87
+ /**
88
+ * Compute the directory suffix for a C# namespace import (for PackageMap).
89
+ * Returns a suffix like "/ProjectDir/Models/" or null if no config matches.
90
+ */
91
+ export function resolveCSharpNamespaceDir(importPath, csharpConfigs) {
92
+ const namespacePath = importPath.replace(/\./g, '/');
93
+ for (const config of csharpConfigs) {
94
+ const nsPath = config.rootNamespace.replace(/\./g, '/');
95
+ let relative;
96
+ if (namespacePath.startsWith(nsPath + '/')) {
97
+ relative = namespacePath.slice(nsPath.length + 1);
98
+ }
99
+ else if (namespacePath === nsPath) {
100
+ relative = '';
101
+ }
102
+ else {
103
+ continue;
104
+ }
105
+ const dirPrefix = config.projectDir
106
+ ? relative
107
+ ? config.projectDir + '/' + relative
108
+ : config.projectDir
109
+ : relative;
110
+ if (!dirPrefix)
111
+ continue;
112
+ return '/' + dirPrefix + '/';
113
+ }
114
+ return null;
115
+ }
116
+ /** C#: namespace-based resolution via .csproj configs, with suffix-match fallback. */
117
+ export function resolveCSharpImport(rawImportPath, filePath, ctx) {
118
+ const csharpConfigs = ctx.configs.csharpConfigs;
119
+ if (csharpConfigs.length > 0) {
120
+ const resolvedFiles = resolveCSharpImportInternal(rawImportPath, csharpConfigs, ctx.normalizedFileList, ctx.allFileList, ctx.index);
121
+ if (resolvedFiles.length > 1) {
122
+ const dirSuffix = resolveCSharpNamespaceDir(rawImportPath, csharpConfigs);
123
+ if (dirSuffix) {
124
+ return { kind: 'package', files: resolvedFiles, dirSuffix };
125
+ }
126
+ }
127
+ if (resolvedFiles.length > 0)
128
+ return { kind: 'files', files: resolvedFiles };
129
+ }
130
+ return resolveStandard(rawImportPath, filePath, ctx, SupportedLanguages.CSharp);
131
+ }
132
+ //# sourceMappingURL=csharp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../../src/core/parser/import-resolvers/csharp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Dart import resolution.
3
+ * Handles package: imports (local packages) and relative imports.
4
+ * SDK imports (dart:*) and external packages are skipped.
5
+ */
6
+ import type { ImportResult, ResolveCtx } from './types.js';
7
+ export declare function resolveDartImport(rawImportPath: string, filePath: string, ctx: ResolveCtx): ImportResult;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Dart import resolution.
3
+ * Handles package: imports (local packages) and relative imports.
4
+ * SDK imports (dart:*) and external packages are skipped.
5
+ */
6
+ import { resolveStandard } from './standard.js';
7
+ import { SupportedLanguages } from '../../shared/index.js';
8
+ export function resolveDartImport(rawImportPath, filePath, ctx) {
9
+ // Strip surrounding quotes from configurable_uri capture
10
+ const stripped = rawImportPath.replace(/^['"]|['"]$/g, '');
11
+ // Skip dart: SDK imports (dart:async, dart:io, etc.)
12
+ if (stripped.startsWith('dart:'))
13
+ return null;
14
+ // Local package: imports → resolve to lib/<path>
15
+ if (stripped.startsWith('package:')) {
16
+ const slashIdx = stripped.indexOf('/');
17
+ if (slashIdx === -1)
18
+ return null;
19
+ const relPath = stripped.slice(slashIdx + 1);
20
+ const candidates = [`lib/${relPath}`, relPath];
21
+ const files = [];
22
+ for (const candidate of candidates) {
23
+ for (const fp of ctx.allFileList) {
24
+ if (fp.endsWith('/' + candidate) || fp === candidate) {
25
+ files.push(fp);
26
+ break;
27
+ }
28
+ }
29
+ if (files.length > 0)
30
+ break;
31
+ }
32
+ if (files.length > 0)
33
+ return { kind: 'files', files };
34
+ return null;
35
+ }
36
+ // Relative imports — use standard resolution.
37
+ // Dart relative imports don't require a leading "./" (e.g. `import 'models.dart'`).
38
+ // The standard resolver only recognises paths starting with "." as relative, so
39
+ // prepend "./" when the path doesn't already start with "." to ensure correct
40
+ // same-directory resolution (without this, "models.dart" would be mangled by the
41
+ // generic dot-to-slash conversion intended for Java-style package imports).
42
+ const relPath = stripped.startsWith('.') ? stripped : './' + stripped;
43
+ return resolveStandard(relPath, filePath, ctx, SupportedLanguages.Dart);
44
+ }
45
+ //# sourceMappingURL=dart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../../src/core/parser/import-resolvers/dart.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,UAAU,iBAAiB,CAC/B,aAAqB,EACrB,QAAgB,EAChB,GAAe;IAEf,yDAAyD;IACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAE3D,qDAAqD;IACrD,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9C,iDAAiD;IACjD,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,CAAC,OAAO,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM;QAC9B,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8CAA8C;IAC9C,oFAAoF;IACpF,gFAAgF;IAChF,8EAA8E;IAC9E,iFAAiF;IACjF,4EAA4E;IAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;IACtE,OAAO,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Go package import resolution.
3
+ * Handles Go module path-based package imports.
4
+ */
5
+ import type { ImportResult, ResolveCtx } from './types.js';
6
+ import type { GoModuleConfig } from '../language-config.js';
7
+ /**
8
+ * Extract the package directory suffix from a Go import path.
9
+ * Returns the suffix string (e.g., "/internal/auth/") or null if invalid.
10
+ */
11
+ export declare function resolveGoPackageDir(importPath: string, goModule: GoModuleConfig): string | null;
12
+ /**
13
+ * Resolve a Go internal package import to all .go files in the package directory.
14
+ * Returns an array of file paths.
15
+ */
16
+ export declare function resolveGoPackage(importPath: string, goModule: GoModuleConfig, normalizedFileList: string[], allFileList: string[]): string[];
17
+ /** Go: package-level imports via go.mod module path. */
18
+ export declare function resolveGoImport(rawImportPath: string, filePath: string, ctx: ResolveCtx): ImportResult;