@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,328 @@
1
+ /**
2
+ * Shared TypeScript/TSX extraction logic.
3
+ *
4
+ * Both `.ts` and `.tsx` files share grammar semantics for imports, classes,
5
+ * interfaces, and type aliases — the only difference is JSX parsing, which
6
+ * the parse worker handles by selecting the `tsx` grammar. So both providers
7
+ * delegate to the functions in this file.
8
+ */
9
+ import { getLine, innermostEnclosingDef, isInside, pairDefinitionsWithNames, splitNamedImports, stripComments, } from "./extract-helpers.js";
10
+ // ---------------------------------------------------------------------------
11
+ // Definitions
12
+ // ---------------------------------------------------------------------------
13
+ const TS_DEF_KIND_MAP = {
14
+ "definition.class": "Class",
15
+ "definition.interface": "Interface",
16
+ "definition.function": "Function",
17
+ "definition.method": "Method",
18
+ "definition.type": "TypeAlias",
19
+ "definition.constant": "Const",
20
+ "definition.module": "Namespace",
21
+ };
22
+ export function extractTsDefinitions(input) {
23
+ const { filePath, captures, sourceText } = input;
24
+ const paired = pairDefinitionsWithNames(captures);
25
+ const defCaptures = captures.filter((c) => c.tag.startsWith("definition."));
26
+ const out = [];
27
+ for (const { def, name } of paired) {
28
+ const kind = TS_DEF_KIND_MAP[def.tag];
29
+ if (kind === undefined)
30
+ continue;
31
+ // Derive owner for nested definitions (e.g. methods inside a class).
32
+ const ownerDef = innermostEnclosingDef(def, defCaptures);
33
+ let owner;
34
+ if (ownerDef !== undefined) {
35
+ const ownerPaired = paired.find((p) => p.def === ownerDef);
36
+ if (ownerPaired !== undefined)
37
+ owner = ownerPaired.name.text;
38
+ }
39
+ const qualifiedName = owner !== undefined ? `${owner}.${name.text}` : name.text;
40
+ // Use the header line for export/declaration analysis.
41
+ const headerLine = getLine(sourceText, def.startLine);
42
+ const exported = isTsDefExported(headerLine, kind, ownerDef !== undefined);
43
+ const rec = {
44
+ kind,
45
+ name: name.text,
46
+ qualifiedName,
47
+ filePath,
48
+ startLine: def.startLine,
49
+ endLine: def.endLine,
50
+ isExported: exported,
51
+ ...(owner !== undefined ? { owner } : {}),
52
+ ...(kind === "Const" ? { isConst: /\bconst\b/.test(headerLine) } : {}),
53
+ };
54
+ out.push(rec);
55
+ }
56
+ return out;
57
+ }
58
+ /**
59
+ * TS/JS export detection. A declaration is exported when the header line
60
+ * contains an `export` keyword. For class members the parent's export state
61
+ * controls visibility — downstream phases may re-check via `isExported()`.
62
+ */
63
+ function isTsDefExported(headerLine, _kind, isNested) {
64
+ if (isNested) {
65
+ // Method/field visibility is governed by its class, not the member line.
66
+ // Treat as exported when `public` or no explicit modifier (TS default).
67
+ if (/\bprivate\b/.test(headerLine) || /\bprotected\b/.test(headerLine))
68
+ return false;
69
+ return true;
70
+ }
71
+ return /\bexport\b/.test(headerLine);
72
+ }
73
+ // ---------------------------------------------------------------------------
74
+ // Calls
75
+ // ---------------------------------------------------------------------------
76
+ export function extractTsCalls(input) {
77
+ const { filePath, captures, definitions } = input;
78
+ const defCaptures = captures.filter((c) => c.tag.startsWith("definition."));
79
+ const callRefs = captures.filter((c) => c.tag === "reference.call");
80
+ const out = [];
81
+ for (const ref of callRefs) {
82
+ // The `@name` capture sits inside the `@reference.call` range.
83
+ const innerName = findNameInside(captures, ref);
84
+ const calleeName = innerName?.text ?? ref.text;
85
+ const enclosingDef = innermostEnclosingDef(ref, defCaptures);
86
+ const callerQualifiedName = enclosingDef
87
+ ? qualifiedForCapture(enclosingDef, definitions)
88
+ : "<module>";
89
+ // Distinguish `obj.method()` from bare `fn()`: the call capture range
90
+ // starts where the member expression begins, so reading the source line
91
+ // in front of the name lets us infer a receiver.
92
+ const receiver = inferTsReceiver(ref, innerName);
93
+ out.push({
94
+ callerQualifiedName,
95
+ calleeName,
96
+ filePath,
97
+ startLine: ref.startLine,
98
+ ...(receiver !== undefined ? { calleeOwner: receiver } : {}),
99
+ });
100
+ }
101
+ return out;
102
+ }
103
+ function findNameInside(captures, outer) {
104
+ let best;
105
+ for (const c of captures) {
106
+ if (c.tag !== "name")
107
+ continue;
108
+ if (!isInside(c, outer))
109
+ continue;
110
+ if (best === undefined || c.startLine < best.startLine)
111
+ best = c;
112
+ }
113
+ return best;
114
+ }
115
+ function inferTsReceiver(ref, name) {
116
+ if (name === undefined)
117
+ return undefined;
118
+ // `ref.text` is the full call expression source (e.g. `this.foo(x)` or
119
+ // `obj.method(y)`). Everything before the last `.` ahead of the callee
120
+ // name is the receiver expression.
121
+ const text = ref.text;
122
+ const nameText = name.text;
123
+ const idx = text.lastIndexOf(`.${nameText}`);
124
+ if (idx <= 0)
125
+ return undefined;
126
+ const receiverExpr = text.slice(0, idx).trim();
127
+ if (receiverExpr === "")
128
+ return undefined;
129
+ // We only keep simple receivers (identifiers or `this`). Chained
130
+ // expressions like `a.b.c.method()` surface the full chain — keep the
131
+ // full prefix so downstream typing can further resolve it.
132
+ if (receiverExpr === "this")
133
+ return "this";
134
+ // A pure identifier receiver is the most common and useful case.
135
+ if (/^[A-Za-z_$][\w$]*$/.test(receiverExpr))
136
+ return receiverExpr;
137
+ return receiverExpr;
138
+ }
139
+ function qualifiedForCapture(def, definitions) {
140
+ for (const d of definitions) {
141
+ if (d.startLine === def.startLine)
142
+ return d.qualifiedName;
143
+ }
144
+ return "<module>";
145
+ }
146
+ // ---------------------------------------------------------------------------
147
+ // Imports
148
+ // ---------------------------------------------------------------------------
149
+ const IMPORT_NAMED_OR_NS = /^\s*import\s+(.+?)\s+from\s+(['"])([^'"]+)\2\s*;?\s*$/;
150
+ const IMPORT_BARE = /^\s*import\s+(['"])([^'"]+)\1\s*;?\s*$/;
151
+ const DYNAMIC_IMPORT = /import\s*\(\s*(['"])([^'"]+)\1\s*\)/g;
152
+ const REQUIRE_CALL = /require\s*\(\s*(['"])([^'"]+)\1\s*\)/g;
153
+ /**
154
+ * Parse TS/JS import statements. Covers:
155
+ * - `import X from "m"`
156
+ * - `import { a, b as c } from "m"`
157
+ * - `import * as ns from "m"`
158
+ * - `import X, { a } from "m"`
159
+ * - `import "side-effect"`
160
+ * - `import("dyn")` anywhere in source
161
+ * - `require("x")` for CommonJS
162
+ *
163
+ * `.js` / `.ts` / `.mjs` / `.cjs` suffixes are preserved verbatim in `source`;
164
+ * consumers can strip via `provider.preprocessImportPath`.
165
+ */
166
+ export function extractTsImports(input) {
167
+ const { filePath, sourceText } = input;
168
+ const stripped = stripComments(sourceText);
169
+ const lines = stripped.split("\n");
170
+ const out = [];
171
+ for (const rawLine of lines) {
172
+ const line = rawLine.trim();
173
+ if (line === "" || !line.startsWith("import")) {
174
+ // still handle dynamic imports / requires below via file-level scan
175
+ continue;
176
+ }
177
+ const bare = IMPORT_BARE.exec(line);
178
+ if (bare !== null) {
179
+ out.push({ filePath, source: bare[2], kind: "named" });
180
+ continue;
181
+ }
182
+ const named = IMPORT_NAMED_OR_NS.exec(line);
183
+ if (named === null)
184
+ continue;
185
+ const clause = named[1].trim();
186
+ const source = named[3];
187
+ for (const entry of parseTsImportClause(clause)) {
188
+ out.push({ filePath, source, ...entry });
189
+ }
190
+ }
191
+ // Dynamic imports + CommonJS requires: scan the whole stripped source.
192
+ for (const m of stripped.matchAll(DYNAMIC_IMPORT)) {
193
+ out.push({ filePath, source: m[2], kind: "namespace" });
194
+ }
195
+ for (const m of stripped.matchAll(REQUIRE_CALL)) {
196
+ out.push({ filePath, source: m[2], kind: "namespace" });
197
+ }
198
+ return out;
199
+ }
200
+ function parseTsImportClause(clause) {
201
+ const out = [];
202
+ let remaining = clause;
203
+ // `import X` followed optionally by `, { a, b }` or `, * as ns`
204
+ const defaultMatch = /^([A-Za-z_$][\w$]*)(\s*,\s*)?/.exec(remaining);
205
+ if (defaultMatch !== null && !/^[A-Za-z_$][\w$]*\s*\{/.test(remaining)) {
206
+ const defaultName = defaultMatch[1];
207
+ // Must not be `from` (which would indicate no default and we mis-matched).
208
+ if (defaultName !== "from") {
209
+ out.push({ kind: "default", localAlias: defaultName });
210
+ remaining = remaining.slice(defaultMatch[0].length).trim();
211
+ }
212
+ }
213
+ // `* as ns`
214
+ const nsMatch = /^\*\s+as\s+([A-Za-z_$][\w$]*)\s*$/.exec(remaining);
215
+ if (nsMatch !== null) {
216
+ out.push({
217
+ kind: "namespace",
218
+ isWildcard: true,
219
+ localAlias: nsMatch[1],
220
+ });
221
+ return out;
222
+ }
223
+ // `{ a, b as c }`
224
+ const namedMatch = /^\{([\s\S]*)\}\s*$/.exec(remaining);
225
+ if (namedMatch !== null) {
226
+ const entries = splitNamedImports(namedMatch[1]);
227
+ const names = entries.map((e) => e.alias ?? e.name);
228
+ if (names.length > 0) {
229
+ out.push({ kind: "named", importedNames: names });
230
+ }
231
+ }
232
+ return out;
233
+ }
234
+ export function preprocessTsImportPath(raw) {
235
+ // Strip `.js` / `.ts` / `.mjs` / `.cjs` / `.tsx` / `.jsx` suffixes so TS
236
+ // import specifiers collapse onto their source-side files during symbol
237
+ // lookup. Only strip when the suffix is a known script extension.
238
+ return raw.replace(/\.(?:js|ts|mjs|cjs|jsx|tsx)$/, "");
239
+ }
240
+ // ---------------------------------------------------------------------------
241
+ // Heritage
242
+ // ---------------------------------------------------------------------------
243
+ export function extractTsHeritage(input) {
244
+ const { filePath, captures, definitions } = input;
245
+ // The unified query emits:
246
+ // `(implements_clause (type_identifier) @name @reference.interface)`
247
+ // for `implements I1, I2`. For `extends Parent` we don't have a dedicated
248
+ // capture — fall back to regex-scanning the class/interface header line.
249
+ const out = [];
250
+ // IMPLEMENTS via capture.
251
+ const implementsRefs = captures.filter((c) => c.tag === "reference.interface");
252
+ for (const ref of implementsRefs) {
253
+ const child = findChildDef(ref, definitions);
254
+ if (child === undefined)
255
+ continue;
256
+ out.push({
257
+ childQualifiedName: child,
258
+ parentName: ref.text,
259
+ filePath,
260
+ relation: "IMPLEMENTS",
261
+ startLine: ref.startLine,
262
+ });
263
+ }
264
+ // EXTENDS via regex on definition header lines. Covers:
265
+ // `class Foo extends Bar { ... }`
266
+ // `interface Foo extends A, B { ... }`
267
+ for (const def of definitions) {
268
+ if (def.kind !== "Class" && def.kind !== "Interface")
269
+ continue;
270
+ const headerLine = getLine(input.captures[0]?.text ?? "", 0); // dummy; replaced below
271
+ const rawLine = readHeaderFromCaptures(input, def.startLine);
272
+ const extendsMatch = /extends\s+([^\s{]+(?:\s*,\s*[^\s{]+)*)/.exec(rawLine ?? headerLine);
273
+ if (extendsMatch === null)
274
+ continue;
275
+ const list = extendsMatch[1]
276
+ .split(",")
277
+ .map((s) => s.trim())
278
+ .filter((s) => s.length > 0);
279
+ for (const parent of list) {
280
+ // Strip generic args: `Bar<T>` -> `Bar`.
281
+ const bare = parent.replace(/<.*$/, "").trim();
282
+ if (bare.length === 0)
283
+ continue;
284
+ out.push({
285
+ childQualifiedName: def.qualifiedName,
286
+ parentName: bare,
287
+ filePath,
288
+ relation: "EXTENDS",
289
+ startLine: def.startLine,
290
+ });
291
+ }
292
+ }
293
+ return out;
294
+ }
295
+ function readHeaderFromCaptures(input, startLine) {
296
+ // The extract-heritage inputs don't include `sourceText`; we fall back
297
+ // to reconstructing from the largest capture's text. Providers pass the
298
+ // class/interface definition capture whose text starts at startLine.
299
+ for (const c of input.captures) {
300
+ if (c.tag.startsWith("definition.") && c.startLine === startLine) {
301
+ // Return only the first line of the capture text (the header).
302
+ const idx = c.text.indexOf("\n");
303
+ return idx === -1 ? c.text : c.text.slice(0, idx);
304
+ }
305
+ }
306
+ return "";
307
+ }
308
+ function findChildDef(ref, definitions) {
309
+ // Walk definitions and find the one whose range contains `ref.startLine`
310
+ // and is a class/interface. Prefer the nearest enclosing one.
311
+ let best;
312
+ for (const d of definitions) {
313
+ if (d.kind !== "Class" && d.kind !== "Interface")
314
+ continue;
315
+ if (ref.startLine < d.startLine || ref.startLine > d.endLine)
316
+ continue;
317
+ if (best === undefined || d.startLine > best.startLine)
318
+ best = d;
319
+ }
320
+ return best?.qualifiedName;
321
+ }
322
+ // ---------------------------------------------------------------------------
323
+ // isExported bridge
324
+ // ---------------------------------------------------------------------------
325
+ export function tsIsExported(def) {
326
+ return def.isExported;
327
+ }
328
+ //# sourceMappingURL=ts-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-shared.js","sourceRoot":"","sources":["../../src/providers/ts-shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { LanguageProvider } from "./types.js";
2
+ /**
3
+ * TSX provider. Same semantics as TypeScript for imports/classes/types;
4
+ * the parse worker already selects the `tsx` grammar for JSX-aware AST.
5
+ */
6
+ export declare const tsxProvider: LanguageProvider;
7
+ //# sourceMappingURL=tsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsx.d.ts","sourceRoot":"","sources":["../../src/providers/tsx.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,gBAuEzB,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { detectHttpCallsTsJs } from "./http-detect.js";
2
+ import { extractTsCalls, extractTsDefinitions, extractTsHeritage, extractTsImports, preprocessTsImportPath, tsIsExported, } from "./ts-shared.js";
3
+ import { extractTsFamilyPropertyAccesses } from "./typescript-family-accesses.js";
4
+ /**
5
+ * TSX provider. Same semantics as TypeScript for imports/classes/types;
6
+ * the parse worker already selects the `tsx` grammar for JSX-aware AST.
7
+ */
8
+ export const tsxProvider = {
9
+ id: "tsx",
10
+ extensions: [".tsx"],
11
+ importSemantics: "named",
12
+ mroStrategy: "first-wins",
13
+ typeConfig: { structural: true, nominal: false, generics: true },
14
+ heritageEdge: "EXTENDS",
15
+ inferImplicitReceiver: () => "this",
16
+ preprocessImportPath: preprocessTsImportPath,
17
+ isExportedIdentifier: (_name, context) => context === "top-level",
18
+ // Shares the TS-family stack-graphs backend — see typescript.ts.
19
+ resolverStrategyName: "stack-graphs",
20
+ complexityDefinitionKinds: [
21
+ "function_declaration",
22
+ "function_expression",
23
+ "arrow_function",
24
+ "method_definition",
25
+ "method_signature",
26
+ "generator_function_declaration",
27
+ "generator_function",
28
+ ],
29
+ halsteadOperatorKinds: [
30
+ "+",
31
+ "-",
32
+ "*",
33
+ "/",
34
+ "%",
35
+ "=",
36
+ "==",
37
+ "===",
38
+ "!=",
39
+ "!==",
40
+ "<",
41
+ ">",
42
+ "<=",
43
+ ">=",
44
+ "&&",
45
+ "||",
46
+ "!",
47
+ "&",
48
+ "|",
49
+ "^",
50
+ "~",
51
+ "<<",
52
+ ">>",
53
+ ">>>",
54
+ "+=",
55
+ "-=",
56
+ "*=",
57
+ "/=",
58
+ "%=",
59
+ "&=",
60
+ "|=",
61
+ "^=",
62
+ "<<=",
63
+ ">>=",
64
+ "?",
65
+ ":",
66
+ "??",
67
+ "?.",
68
+ "...",
69
+ "=>",
70
+ ],
71
+ extractDefinitions: extractTsDefinitions,
72
+ extractCalls: extractTsCalls,
73
+ extractImports: extractTsImports,
74
+ isExported: (def) => tsIsExported(def),
75
+ extractHeritage: extractTsHeritage,
76
+ detectOutboundHttp: ({ sourceText }) => detectHttpCallsTsJs(sourceText),
77
+ extractPropertyAccesses: extractTsFamilyPropertyAccesses,
78
+ };
79
+ //# sourceMappingURL=tsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsx.js","sourceRoot":"","sources":["../../src/providers/tsx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAElF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO;IACxB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChE,YAAY,EAAE,SAAS;IACvB,qBAAqB,EAAE,GAAG,EAAE,CAAC,MAAM;IACnC,oBAAoB,EAAE,sBAAsB;IAC5C,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,WAAW;IACjE,iEAAiE;IACjE,oBAAoB,EAAE,cAAc;IACpC,yBAAyB,EAAE;QACzB,sBAAsB;QACtB,qBAAqB;QACrB,gBAAgB;QAChB,mBAAmB;QACnB,kBAAkB;QAClB,gCAAgC;QAChC,oBAAoB;KACrB;IACD,qBAAqB,EAAE;QACrB,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;KACL;IAED,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,CAAC,GAAwB,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;IAC3D,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC;IACvE,uBAAuB,EAAE,+BAA+B;CACzD,CAAC"}
@@ -0,0 +1,166 @@
1
+ import type { LanguageId } from "@opencodehub/core-types";
2
+ import type { ParseCapture } from "../parse/types.js";
3
+ import type { ExtractedCall, ExtractedDefinition, ExtractedHeritage, ExtractedImport, PropertyAccess } from "./extraction-types.js";
4
+ export type { LanguageId } from "@opencodehub/core-types";
5
+ /**
6
+ * Strategy used to linearize a class's method resolution order.
7
+ * - `c3`: Python / Dylan — full C3 linearization, raises on ambiguity.
8
+ * - `first-wins`: TypeScript / JavaScript / Rust — left-to-right source order.
9
+ * - `single-inheritance`: Java / C# / Kotlin — single `extends` chain.
10
+ * - `none`: Go and similar — no traditional inheritance walk.
11
+ */
12
+ export type MroStrategyName = "c3" | "first-wins" | "single-inheritance" | "none";
13
+ /**
14
+ * Shape of how the language expresses module-to-module imports.
15
+ * - `named`: `import { foo } from "bar";` (TS/JS/Java/C#/Rust).
16
+ * - `namespace`: `import mod` / `from mod import x` (Python).
17
+ * - `package-wildcard`: `import "fmt"` pulls the whole package symbol set (Go).
18
+ */
19
+ export type ImportSemantics = "named" | "namespace" | "package-wildcard";
20
+ export interface TypeExtractionConfig {
21
+ /** Structural typing (TS interfaces, Python duck typing). */
22
+ readonly structural: boolean;
23
+ /** Nominal typing (Java / C# / Rust / Go). */
24
+ readonly nominal: boolean;
25
+ /** Language has generics / parametric polymorphism. */
26
+ readonly generics: boolean;
27
+ }
28
+ /** Inputs to {@link LanguageProvider.extractDefinitions}. */
29
+ export interface ExtractDefinitionsInput {
30
+ readonly filePath: string;
31
+ readonly captures: readonly ParseCapture[];
32
+ readonly sourceText: string;
33
+ }
34
+ /** Inputs to {@link LanguageProvider.extractCalls}. */
35
+ export interface ExtractCallsInput {
36
+ readonly filePath: string;
37
+ readonly captures: readonly ParseCapture[];
38
+ readonly definitions: readonly ExtractedDefinition[];
39
+ }
40
+ /** Inputs to {@link LanguageProvider.extractImports}. */
41
+ export interface ExtractImportsInput {
42
+ readonly filePath: string;
43
+ readonly sourceText: string;
44
+ }
45
+ /** Inputs to {@link LanguageProvider.extractHeritage}. */
46
+ export interface ExtractHeritageInput {
47
+ readonly filePath: string;
48
+ readonly captures: readonly ParseCapture[];
49
+ readonly definitions: readonly ExtractedDefinition[];
50
+ }
51
+ /**
52
+ * An outbound HTTP call site detected statically from source.
53
+ *
54
+ * `urlTemplate` preserves the literal URL or template (e.g. `"/users/:id"`,
55
+ * `"https://api.example.com/users/{id}"`). Downstream phases normalize path
56
+ * templates so `{id}` and `:id` hash to the same route target.
57
+ */
58
+ export interface HttpCall {
59
+ readonly method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | "TRACE";
60
+ readonly urlTemplate: string;
61
+ readonly startLine: number;
62
+ readonly endLine: number;
63
+ /** Client library: `fetch`, `axios`, `requests`, `httpx`, `restTemplate`, `okhttp`, etc. */
64
+ readonly clientLibrary: string;
65
+ }
66
+ /** Inputs to {@link LanguageProvider.detectOutboundHttp}. */
67
+ export interface DetectOutboundHttpInput {
68
+ readonly filePath: string;
69
+ readonly captures: readonly ParseCapture[];
70
+ readonly sourceText: string;
71
+ }
72
+ /**
73
+ * Inputs to {@link LanguageProvider.extractPropertyAccesses}. Per-file bundle
74
+ * feeding the ACCESSES-edge walker. `definitions` are the extract output of
75
+ * this same file so the walker can attach every access to an enclosing
76
+ * symbol by (startLine <= line <= endLine) containment.
77
+ */
78
+ export interface ExtractionContext {
79
+ readonly filePath: string;
80
+ readonly captures: readonly ParseCapture[];
81
+ readonly sourceText: string;
82
+ readonly definitions: readonly ExtractedDefinition[];
83
+ }
84
+ export interface LanguageProvider {
85
+ readonly id: LanguageId;
86
+ readonly extensions: readonly string[];
87
+ readonly importSemantics: ImportSemantics;
88
+ readonly mroStrategy: MroStrategyName;
89
+ readonly typeConfig: TypeExtractionConfig;
90
+ /**
91
+ * Edge label used to express the type-hierarchy relation. Go has neither
92
+ * extends nor implements, so it is `null`.
93
+ */
94
+ readonly heritageEdge: "EXTENDS" | "IMPLEMENTS" | null;
95
+ /** Strip `.js` suffix for TS, resolve `__init__.py`, etc. */
96
+ readonly preprocessImportPath?: (raw: string) => string;
97
+ /** Is this identifier exported from its declaration site? */
98
+ readonly isExportedIdentifier?: (name: string, context: "top-level" | "class-member") => boolean;
99
+ /** Name used for the implicit receiver inside a method body. */
100
+ readonly inferImplicitReceiver?: (callerKind: string) => "self" | "this" | undefined;
101
+ /**
102
+ * Optional opt-in for an alternative reference-resolution backend. Unset
103
+ * providers use the three-tier walker (`"three-tier-default"`). Known
104
+ * values map to the registry in `resolution/resolver-strategy.ts`:
105
+ * - `"stack-graphs"` — clean-room stack-graphs evaluator (Python only).
106
+ * Unknown values silently fall back to the default.
107
+ */
108
+ readonly resolverStrategyName?: string;
109
+ /**
110
+ * Tree-sitter node-type names that start a new function/method/constructor
111
+ * body for complexity counting. The complexity phase dispatches on these;
112
+ * providers without a table are silently skipped by the phase.
113
+ */
114
+ readonly complexityDefinitionKinds?: readonly string[];
115
+ /**
116
+ * Tree-sitter node-type names that count as Halstead operators. Every other
117
+ * leaf/identifier in the body counts as an operand. Omission disables the
118
+ * Halstead-volume computation for that language (phase emits complexity
119
+ * only).
120
+ */
121
+ readonly halsteadOperatorKinds?: readonly string[];
122
+ /**
123
+ * Given unified parse captures for a file, emit one record per symbol
124
+ * defined in the file. Qualified names encode nesting (e.g. `Foo.bar`).
125
+ */
126
+ extractDefinitions(input: ExtractDefinitionsInput): readonly ExtractedDefinition[];
127
+ /**
128
+ * Emit one record per call site. Downstream phases apply 3-tier + MRO
129
+ * resolution; this hook only identifies the callee name plus any
130
+ * inferrable receiver (`this` / `self` / typed prefix).
131
+ */
132
+ extractCalls(input: ExtractCallsInput): readonly ExtractedCall[];
133
+ /**
134
+ * Parse import statements from source text. Regex-based rather than AST-
135
+ * based because the captures we have today are symbol-oriented; imports
136
+ * add very little parse-cost on top at MVP.
137
+ */
138
+ extractImports(input: ExtractImportsInput): readonly ExtractedImport[];
139
+ /**
140
+ * Predicate companion to {@link ExtractedDefinition.isExported} — useful
141
+ * when downstream phases want to re-check a bare definition record.
142
+ */
143
+ isExported(def: ExtractedDefinition): boolean;
144
+ /**
145
+ * Emit inheritance, trait-impl, and interface-implements edges.
146
+ */
147
+ extractHeritage(input: ExtractHeritageInput): readonly ExtractedHeritage[];
148
+ /**
149
+ * Detect outbound HTTP call sites: `fetch("/api/users")`,
150
+ * `axios.post(url, body)`, `requests.get(url)`, `restTemplate.getForObject(url)`, etc.
151
+ *
152
+ * Optional: providers that do not implement this hook are treated as
153
+ * "no outbound HTTP detection" silently. Return an empty array for
154
+ * languages / client libraries the provider does not recognise.
155
+ */
156
+ detectOutboundHttp?(input: DetectOutboundHttpInput): readonly HttpCall[];
157
+ /**
158
+ * Emit one {@link PropertyAccess} record per `receiver.property` read or
159
+ * write observed inside a function/method body. Providers that do not
160
+ * implement this hook emit no ACCESSES edges. Returned records must be
161
+ * sorted by `(enclosingSymbolId, propertyName, startLine)` for
162
+ * downstream determinism.
163
+ */
164
+ extractPropertyAccesses?(input: ExtractionContext): readonly PropertyAccess[];
165
+ }
166
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ // Clean-room language-provider types for OpenCodeHub ingestion.
2
+ //
3
+ // `LanguageId` has a single source of truth in `@opencodehub/core-types`;
4
+ // this module re-exports it for providers that still reach for
5
+ // `../providers/types.js`.
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,+DAA+D;AAC/D,2BAA2B"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared property-access extractor for TypeScript / TSX / JavaScript.
3
+ *
4
+ * All three languages use the same member-expression surface syntax and the
5
+ * same assignment operators. This module wires the generic walker in
6
+ * `extract/property-access.ts` to that dialect and converts the walker's
7
+ * output into {@link PropertyAccess} records anchored to the enclosing
8
+ * Function / Method / Constructor's `NodeId`.
9
+ */
10
+ import type { PropertyAccess } from "./extraction-types.js";
11
+ import type { ExtractionContext } from "./types.js";
12
+ /** Entry point wired into TS, TSX, and JS provider objects. */
13
+ export declare function extractTsFamilyPropertyAccesses(input: ExtractionContext): readonly PropertyAccess[];
14
+ //# sourceMappingURL=typescript-family-accesses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-family-accesses.d.ts","sourceRoot":"","sources":["../../src/providers/typescript-family-accesses.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAuB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,+DAA+D;AAC/D,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,iBAAiB,GACvB,SAAS,cAAc,EAAE,CAE3B"}