cgraphx 2.0.2 → 2.0.3

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 (680) hide show
  1. package/dist/core/code/engine/cli/analyze-config.js +320 -0
  2. package/dist/core/code/engine/cli/analyze.js +1086 -0
  3. package/dist/core/code/engine/cli/cli-message.js +83 -0
  4. package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
  5. package/dist/core/code/engine/cli/embedding-dims.js +43 -0
  6. package/dist/core/code/engine/cli/format-elapsed.js +12 -0
  7. package/dist/core/code/engine/cli/help-i18n.js +144 -0
  8. package/dist/core/code/engine/cli/i18n/en.js +110 -0
  9. package/dist/core/code/engine/cli/i18n/index.js +47 -0
  10. package/dist/core/code/engine/cli/i18n/resources.js +9 -0
  11. package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
  12. package/dist/core/code/engine/cli/lazy-action.js +67 -0
  13. package/dist/core/code/engine/cli/optional-grammars.js +136 -0
  14. package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
  15. package/dist/core/code/engine/cli/status.js +156 -0
  16. package/dist/core/code/engine/cli/tool.js +384 -0
  17. package/dist/core/code/engine/config/ignore-service.js +511 -0
  18. package/dist/core/code/engine/config/supported-languages.js +17 -0
  19. package/dist/core/code/engine/core/analysis-features.js +64 -0
  20. package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
  21. package/dist/core/code/engine/core/git-staleness.js +180 -0
  22. package/dist/core/code/engine/core/graph/graph.js +180 -0
  23. package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
  24. package/dist/core/code/engine/core/graph/types.js +2 -0
  25. package/dist/core/code/engine/core/index-freshness.js +12 -0
  26. package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
  27. package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
  28. package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
  29. package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
  30. package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
  31. package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
  32. package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
  33. package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
  34. package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
  35. package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
  36. package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
  37. package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
  38. package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
  39. package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
  40. package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
  41. package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
  42. package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
  43. package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
  44. package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
  45. package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
  46. package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
  47. package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
  48. package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
  49. package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
  50. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
  51. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
  52. package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
  53. package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
  54. package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
  55. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
  56. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
  57. package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
  58. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
  59. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
  60. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
  61. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
  62. package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
  63. package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
  64. package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
  65. package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
  66. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
  67. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
  68. package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
  69. package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
  70. package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
  71. package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
  72. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
  73. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
  74. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
  75. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
  76. package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
  77. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
  78. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
  79. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
  80. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
  81. package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
  82. package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
  83. package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
  84. package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
  85. package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
  86. package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
  87. package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
  88. package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
  89. package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
  90. package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
  91. package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
  92. package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
  93. package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
  94. package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
  95. package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
  96. package/dist/core/code/engine/core/ingestion/constants.js +26 -0
  97. package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
  98. package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
  99. package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
  100. package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
  101. package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
  102. package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
  103. package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
  104. package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
  105. package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
  106. package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
  107. package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
  108. package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
  109. package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
  110. package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
  111. package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
  112. package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
  113. package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
  114. package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
  115. package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
  116. package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
  117. package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
  118. package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
  119. package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
  120. package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
  121. package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
  122. package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
  123. package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
  124. package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
  125. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
  126. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
  127. package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
  128. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
  129. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
  130. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
  131. package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
  132. package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
  133. package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
  134. package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
  135. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
  136. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
  137. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
  138. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
  139. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
  140. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
  141. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
  142. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
  143. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
  144. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
  145. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
  146. package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
  147. package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
  148. package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
  149. package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
  150. package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
  151. package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
  152. package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
  153. package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
  154. package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
  155. package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
  156. package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
  157. package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
  158. package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
  159. package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
  160. package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
  161. package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
  162. package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
  163. package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
  164. package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
  165. package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
  166. package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
  167. package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
  168. package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
  169. package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
  170. package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
  171. package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
  172. package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
  173. package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
  174. package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
  175. package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
  176. package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
  177. package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
  178. package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
  179. package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
  180. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
  181. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
  182. package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
  183. package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
  184. package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
  185. package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
  186. package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
  187. package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
  188. package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
  189. package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
  190. package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
  191. package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
  192. package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
  193. package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
  194. package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
  195. package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
  196. package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
  197. package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
  198. package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
  199. package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
  200. package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
  201. package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
  202. package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
  203. package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
  204. package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
  205. package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
  206. package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
  207. package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
  208. package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
  209. package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
  210. package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
  211. package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
  212. package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
  213. package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
  214. package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
  215. package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
  216. package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
  217. package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
  218. package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
  219. package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
  220. package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
  221. package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
  222. package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
  223. package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
  224. package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
  225. package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
  226. package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
  227. package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
  228. package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
  229. package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
  230. package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
  231. package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
  232. package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
  233. package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
  234. package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
  235. package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
  236. package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
  237. package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
  238. package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
  239. package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
  240. package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
  241. package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
  242. package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
  243. package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
  244. package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
  245. package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
  246. package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
  247. package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
  248. package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
  249. package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
  250. package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
  251. package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
  252. package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
  253. package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
  254. package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
  255. package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
  256. package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
  257. package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
  258. package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
  259. package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
  260. package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
  261. package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
  262. package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
  263. package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
  264. package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
  265. package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
  266. package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
  267. package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
  268. package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
  269. package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
  270. package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
  271. package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
  272. package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
  273. package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
  274. package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
  275. package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
  276. package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
  277. package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
  278. package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
  279. package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
  280. package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
  281. package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
  282. package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
  283. package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
  284. package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
  285. package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
  286. package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
  287. package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
  288. package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
  289. package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
  290. package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
  291. package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
  292. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
  293. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
  294. package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
  295. package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
  296. package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
  297. package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
  298. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
  299. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
  300. package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
  301. package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
  302. package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
  303. package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
  304. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
  305. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
  306. package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
  307. package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
  308. package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
  309. package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
  310. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
  311. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
  312. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
  313. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
  314. package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
  315. package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
  316. package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
  317. package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
  318. package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
  319. package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
  320. package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
  321. package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
  322. package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
  323. package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
  324. package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
  325. package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
  326. package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
  327. package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
  328. package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
  329. package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
  330. package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
  331. package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
  332. package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
  333. package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
  334. package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
  335. package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
  336. package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
  337. package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
  338. package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
  339. package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
  340. package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
  341. package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
  342. package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
  343. package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
  344. package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
  345. package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
  346. package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
  347. package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
  348. package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
  349. package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
  350. package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
  351. package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
  352. package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
  353. package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
  354. package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
  355. package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
  356. package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
  357. package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
  358. package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
  359. package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
  360. package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
  361. package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
  362. package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
  363. package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
  364. package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
  365. package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
  366. package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
  367. package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
  368. package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
  369. package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
  370. package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
  371. package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
  372. package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
  373. package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
  374. package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
  375. package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
  376. package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
  377. package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
  378. package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
  379. package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
  380. package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
  381. package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
  382. package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
  383. package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
  384. package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
  385. package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
  386. package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
  387. package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
  388. package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
  389. package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
  390. package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
  391. package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
  392. package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
  393. package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
  394. package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
  395. package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
  396. package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
  397. package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
  398. package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
  399. package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
  400. package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
  401. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
  402. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
  403. package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
  404. package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
  405. package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
  406. package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
  407. package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
  408. package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
  409. package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
  410. package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
  411. package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
  412. package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
  413. package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
  414. package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
  415. package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
  416. package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
  417. package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
  418. package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
  419. package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
  420. package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
  421. package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
  422. package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
  423. package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
  424. package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
  425. package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
  426. package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
  427. package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
  428. package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
  429. package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
  430. package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
  431. package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
  432. package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
  433. package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
  434. package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
  435. package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
  436. package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
  437. package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
  438. package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
  439. package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
  440. package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
  441. package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
  442. package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
  443. package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
  444. package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
  445. package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
  446. package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
  447. package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
  448. package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
  449. package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
  450. package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
  451. package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
  452. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
  453. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
  454. package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
  455. package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
  456. package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
  457. package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
  458. package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
  459. package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
  460. package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
  461. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
  462. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
  463. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
  464. package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
  465. package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
  466. package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
  467. package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
  468. package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
  469. package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
  470. package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
  471. package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
  472. package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
  473. package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
  474. package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
  475. package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
  476. package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
  477. package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
  478. package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
  479. package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
  480. package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
  481. package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
  482. package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
  483. package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
  484. package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
  485. package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
  486. package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
  487. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
  488. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
  489. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
  490. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
  491. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
  492. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
  493. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
  494. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
  495. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
  496. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
  497. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
  498. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
  499. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
  500. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
  501. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
  502. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
  503. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
  504. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
  505. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
  506. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
  507. package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
  508. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
  509. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
  510. package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
  511. package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
  512. package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
  513. package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
  514. package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
  515. package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
  516. package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
  517. package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
  518. package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
  519. package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
  520. package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
  521. package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
  522. package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
  523. package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
  524. package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
  525. package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
  526. package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
  527. package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
  528. package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
  529. package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
  530. package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
  531. package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
  532. package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
  533. package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
  534. package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
  535. package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
  536. package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
  537. package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
  538. package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
  539. package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
  540. package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
  541. package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
  542. package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
  543. package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
  544. package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
  545. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
  546. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
  547. package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
  548. package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
  549. package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
  550. package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
  551. package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
  552. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
  553. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
  554. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
  555. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
  556. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
  557. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
  558. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
  559. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
  560. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
  561. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
  562. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
  563. package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
  564. package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
  565. package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
  566. package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
  567. package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
  568. package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
  569. package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
  570. package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
  571. package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
  572. package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
  573. package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
  574. package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
  575. package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
  576. package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
  577. package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
  578. package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
  579. package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
  580. package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
  581. package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
  582. package/dist/core/code/engine/core/lbug/native-check.js +435 -0
  583. package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
  584. package/dist/core/code/engine/core/lbug/query-params.js +25 -0
  585. package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
  586. package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
  587. package/dist/core/code/engine/core/lbug/schema.js +771 -0
  588. package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
  589. package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
  590. package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
  591. package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
  592. package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
  593. package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
  594. package/dist/core/code/engine/core/logger.js +339 -0
  595. package/dist/core/code/engine/core/platform/capabilities.js +91 -0
  596. package/dist/core/code/engine/core/run-analyze.js +1098 -0
  597. package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
  598. package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
  599. package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
  600. package/dist/core/code/engine/lib/utils.js +121 -0
  601. package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
  602. package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
  603. package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
  604. package/dist/core/code/engine/mcp/local/limits.js +15 -0
  605. package/dist/core/code/engine/mcp/local/line-display.js +6 -0
  606. package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
  607. package/dist/core/code/engine/storage/branch-index.js +72 -0
  608. package/dist/core/code/engine/storage/file-hash.js +95 -0
  609. package/dist/core/code/engine/storage/fs-atomic.js +34 -0
  610. package/dist/core/code/engine/storage/git.js +555 -0
  611. package/dist/core/code/engine/storage/index-lock.js +664 -0
  612. package/dist/core/code/engine/storage/parse-cache.js +650 -0
  613. package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
  614. package/dist/core/code/engine/storage/repo-manager.js +1061 -0
  615. package/dist/core/code/engine/storage/scope-index-store.js +247 -0
  616. package/dist/core/code/engine/types/pipeline.js +2 -0
  617. package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
  618. package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
  619. package/dist/core/code/shared/graph/types.js +8 -0
  620. package/dist/core/code/shared/index.js +105 -0
  621. package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
  622. package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
  623. package/dist/core/code/shared/integrations/retry.js +70 -0
  624. package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
  625. package/dist/core/code/shared/language-detection.js +162 -0
  626. package/dist/core/code/shared/languages.js +27 -0
  627. package/dist/core/code/shared/lbug/schema-constants.js +98 -0
  628. package/dist/core/code/shared/mro-strategy.js +2 -0
  629. package/dist/core/code/shared/pipeline.js +5 -0
  630. package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
  631. package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
  632. package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
  633. package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
  634. package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
  635. package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
  636. package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
  637. package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
  638. package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
  639. package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
  640. package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
  641. package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
  642. package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
  643. package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
  644. package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
  645. package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
  646. package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
  647. package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
  648. package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
  649. package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
  650. package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
  651. package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
  652. package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
  653. package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
  654. package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
  655. package/dist/core/code/shared/scope-resolution/types.js +25 -0
  656. package/dist/core/code/shared/test-helpers.js +17 -0
  657. package/dist/core/code/vendor/leiden/index.cjs +355 -0
  658. package/dist/core/code/vendor/leiden/utils.cjs +419 -0
  659. package/dist/core/timeline/cli.d.ts.map +1 -1
  660. package/dist/core/timeline/cli.js +13 -6
  661. package/dist/core/timeline/cli.js.map +1 -1
  662. package/dist/core/timeline/debris.d.ts +20 -0
  663. package/dist/core/timeline/debris.d.ts.map +1 -0
  664. package/dist/core/timeline/debris.js +124 -0
  665. package/dist/core/timeline/debris.js.map +1 -0
  666. package/dist/core/timeline/hook-runner.d.ts.map +1 -1
  667. package/dist/core/timeline/hook-runner.js +3 -1
  668. package/dist/core/timeline/hook-runner.js.map +1 -1
  669. package/dist/core/timeline/hooks.d.ts.map +1 -1
  670. package/dist/core/timeline/hooks.js +13 -5
  671. package/dist/core/timeline/hooks.js.map +1 -1
  672. package/dist/core/timeline/installer.d.ts +2 -0
  673. package/dist/core/timeline/installer.d.ts.map +1 -1
  674. package/dist/core/timeline/installer.js +12 -0
  675. package/dist/core/timeline/installer.js.map +1 -1
  676. package/dist/core/timeline/project-root.d.ts +21 -0
  677. package/dist/core/timeline/project-root.d.ts.map +1 -0
  678. package/dist/core/timeline/project-root.js +83 -0
  679. package/dist/core/timeline/project-root.js.map +1 -0
  680. package/package.json +1 -1
@@ -0,0 +1,455 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript and JavaScript language providers.
4
+ *
5
+ * Both languages share the same type extraction config (typescriptConfig)
6
+ * and export checker (tsExportChecker). They differ in file extensions, tree-sitter
7
+ * queries (TypeScript grammar has interface/type nodes), and language ID.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.javascriptProvider = exports.typescriptProvider = exports.BUILT_INS = void 0;
11
+ const index_js_1 = require("../../../../shared/index.js");
12
+ const language_provider_js_1 = require("../language-provider.js");
13
+ const generic_js_1 = require("../class-extractors/generic.js");
14
+ const typescript_javascript_js_1 = require("../class-extractors/configs/typescript-javascript.js");
15
+ const ast_helpers_js_1 = require("../utils/ast-helpers.js");
16
+ const cjs_export_assignment_js_1 = require("./typescript/cjs-export-assignment.js");
17
+ const rootOf = (node) => node.tree?.rootNode;
18
+ /** `exports.X = fn` where the module already declares `X` — see #2723. */
19
+ const isShadowedCjsExportNode = (node) => {
20
+ const root = rootOf(node);
21
+ return root !== undefined && (0, cjs_export_assignment_js_1.isShadowedCjsExportAssignmentNode)(node, root);
22
+ };
23
+ /**
24
+ * Label for a `<receiver>.<member> = <function>` capture (#2723 follow-up).
25
+ *
26
+ * The member-assignment queries match ANY identifier receiver, because an
27
+ * `exports` alias (`const e = exports; e.foo = fn`) cannot be pinned in the
28
+ * query. Everything that is not a recognised shape is dropped HERE — without
29
+ * that, every `obj.handler = function () {}` in every JS/TS file would emit a
30
+ * spurious top-level `Function` named `handler`.
31
+ *
32
+ * Recognised: a CJS export (direct, `module.exports`, or via a module-scope
33
+ * alias) stays a Function; a prototype or `this` member becomes a Method; a
34
+ * CJS export shadowing a name the module already declares emits nothing.
35
+ */
36
+ const memberAssignmentLabel = (node) => {
37
+ const root = rootOf(node);
38
+ // Module-level `this.X = fn` in CommonJS IS `module.exports.X = fn`, so it
39
+ // is an exported Function, not an instance member. Checked before the
40
+ // Method branch, which would otherwise claim every `this` receiver.
41
+ if (root !== undefined && (0, cjs_export_assignment_js_1.isModuleLevelThisExport)(node, root))
42
+ return 'Function';
43
+ // `module.exports = fn` — the module itself is the callable.
44
+ if ((0, ast_helpers_js_1.isCjsDefaultExportAssignment)(node))
45
+ return 'Function';
46
+ // A module-level `this` member in ESM or a no-signal file is neither an
47
+ // export (top-level `this` is undefined) nor an instance member. Emitting a
48
+ // Method there minted an ownerless node (#2729 review F13).
49
+ if ((0, cjs_export_assignment_js_1.isModuleLevelThisAssignment)(node))
50
+ return null;
51
+ if ((0, ast_helpers_js_1.isPrototypeMemberAssignmentNode)(node))
52
+ return 'Method';
53
+ if (isShadowedCjsExportNode(node))
54
+ return null;
55
+ const value = node.childForFieldName('right');
56
+ if (root === undefined || value === null)
57
+ return null;
58
+ return (0, cjs_export_assignment_js_1.cjsExportedNameFor)(value, root) !== null ? 'Function' : null;
59
+ };
60
+ const typescript_js_1 = require("../cfg/visitors/typescript.js");
61
+ const typescript_js_2 = require("../type-extractors/typescript.js");
62
+ const export_detection_js_1 = require("../export-detection.js");
63
+ const resolver_factory_js_1 = require("../import-resolvers/resolver-factory.js");
64
+ const typescript_javascript_js_2 = require("../import-resolvers/configs/typescript-javascript.js");
65
+ const tree_sitter_queries_js_1 = require("../tree-sitter-queries.js");
66
+ const typescript_js_3 = require("../field-extractors/typescript.js");
67
+ const generic_js_2 = require("../field-extractors/generic.js");
68
+ const typescript_javascript_js_3 = require("../field-extractors/configs/typescript-javascript.js");
69
+ const generic_js_3 = require("../method-extractors/generic.js");
70
+ const typescript_javascript_js_4 = require("../method-extractors/configs/typescript-javascript.js");
71
+ const generic_js_4 = require("../variable-extractors/generic.js");
72
+ const typescript_javascript_js_5 = require("../variable-extractors/configs/typescript-javascript.js");
73
+ const generic_js_5 = require("../call-extractors/generic.js");
74
+ const typescript_javascript_js_6 = require("../call-extractors/configs/typescript-javascript.js");
75
+ const ts_js_hoc_utils_js_1 = require("../ts-js-hoc-utils.js");
76
+ const index_js_2 = require("./typescript/index.js");
77
+ const index_js_3 = require("./javascript/index.js");
78
+ /**
79
+ * TypeScript/JavaScript: arrow_function and function_expression are
80
+ * anonymous AST nodes — they take their name from the surrounding
81
+ * declarative context.
82
+ *
83
+ * Recognised contexts:
84
+ * - `const foo = () => {}` (variable_declarator) → "foo"
85
+ * - `{ addItem: (item) => ... }` (pair / property_assignment) → "addItem"
86
+ * Covers Zustand stores, TanStack Query factories, React Context
87
+ * providers, and most other HOF-heavy idioms (issue #1166).
88
+ * - `const X = HOC((args) => { ... })` (arguments → call_expression →
89
+ * variable_declarator) → "X". Covers `React.forwardRef`, `memo`,
90
+ * `useCallback`, `useMemo`, `observer`, `debounce`, and other HOC
91
+ * factories that wrap their behaviour-defining arrow. Without this
92
+ * branch, every shadcn/Radix UI component (`const Button =
93
+ * React.forwardRef(...)`) registered as an anonymous arrow with
94
+ * calls inside falling back to File-level attribution. The same
95
+ * applied to all `useCallback` / `useMemo` callbacks bound to a
96
+ * const — the sole way to give them a named caller anchor.
97
+ *
98
+ * Returns `null` for funcName when the arrow lives in a context that has
99
+ * no static name — bare call arguments (not bound to a const), computed
100
+ * keys, return-from-arrow positions. The parent walk in
101
+ * findEnclosingFunctionId then continues up to the next named ancestor
102
+ * (or to the file).
103
+ */
104
+ const tsExtractFunctionName = (node, filePath) => {
105
+ if (node.type !== 'arrow_function' && node.type !== 'function_expression')
106
+ return null;
107
+ const parent = node.parent;
108
+ if (!parent)
109
+ return null;
110
+ if (parent.type === 'variable_declarator') {
111
+ let nameNode = parent.childForFieldName?.('name');
112
+ if (!nameNode) {
113
+ for (let i = 0; i < parent.childCount; i++) {
114
+ const c = parent.child(i);
115
+ if (c?.type === 'identifier') {
116
+ nameNode = c;
117
+ break;
118
+ }
119
+ }
120
+ }
121
+ return { funcName: nameNode?.text ?? null, label: 'Function' };
122
+ }
123
+ // Object property pair: `{ addItem: (item) => ... }`.
124
+ // tree-sitter-typescript uses `pair`; tree-sitter-javascript also exposes
125
+ // `pair`. (Older grammars used `property_assignment`; we accept both.)
126
+ if (parent.type === 'pair' || parent.type === 'property_assignment') {
127
+ const keyNode = parent.childForFieldName?.('key');
128
+ if (!keyNode)
129
+ return { funcName: null, label: 'Function' };
130
+ if (keyNode.type === 'property_identifier' || keyNode.type === 'identifier') {
131
+ return { funcName: keyNode.text, label: 'Function' };
132
+ }
133
+ if (keyNode.type === 'string') {
134
+ // `"add-item": () => ...` — the literal text inside the quotes.
135
+ const fragment = keyNode.children?.find((c) => c.type === 'string_fragment');
136
+ const text = fragment?.text ?? null;
137
+ return { funcName: text, label: 'Function' };
138
+ }
139
+ // computed_property_name (`[ACTION_KEY]`) and other dynamic keys have
140
+ // no static name — fall through anonymous.
141
+ return { funcName: null, label: 'Function' };
142
+ }
143
+ // HOC-wrapped variable declarations: `const Button = forwardRef((p, r) => { ... })`,
144
+ // `const handleClick = useCallback(() => doStuff(), [deps])`,
145
+ // `const Card = React.memo((props) => { ... })`. The arrow's `parent` is
146
+ // `arguments`, grandparent is `call_expression`, great-grandparent is
147
+ // `variable_declarator`. Walk the chain up and take the variable's name
148
+ // — the meaningful identifier the developer wrote on the LHS. Mirrors
149
+ // the four registry-primary patterns in `typescript/query.ts`.
150
+ //
151
+ // NOTE: Excludes common array methods (map, filter, reduce, etc.) to avoid
152
+ // false positives like `const x = arr.map(a => ...)` being classified as
153
+ // Function when it's actually a Const holding an array.
154
+ if (parent.type === 'arguments') {
155
+ const callExpr = parent.parent;
156
+ if (!callExpr || callExpr.type !== 'call_expression') {
157
+ return { funcName: null, label: 'Function' };
158
+ }
159
+ // Check if callee is a member_expression calling an array method
160
+ const callee = callExpr.childForFieldName?.('function');
161
+ if (callee?.type === 'member_expression') {
162
+ const property = callee.childForFieldName?.('property');
163
+ if (property?.type === 'property_identifier' &&
164
+ ts_js_hoc_utils_js_1.ARRAY_METHOD_HOC_BLOCKLIST_SET.has(property.text)) {
165
+ return { funcName: null, label: 'Function' };
166
+ }
167
+ }
168
+ const declarator = callExpr.parent;
169
+ // Existing path: const X = HOC(arrow)
170
+ if (declarator?.type === 'variable_declarator') {
171
+ const nameNode = declarator.childForFieldName?.('name');
172
+ if (nameNode?.type === 'identifier') {
173
+ return { funcName: nameNode.text, label: 'Function' };
174
+ }
175
+ return { funcName: null, label: 'Function' };
176
+ }
177
+ // export default HOC(arrow) — name it from the file, not the wrapper.
178
+ // This keeps route handlers and wrapped defaults navigable without
179
+ // collapsing every file onto names like `memo` or `defineEventHandler`.
180
+ if (declarator?.type === 'export_statement') {
181
+ if (callee?.type === 'identifier') {
182
+ if (ts_js_hoc_utils_js_1.DEFAULT_EXPORT_IDENTIFIER_BLOCKLIST_SET.has(callee.text)) {
183
+ return { funcName: null, label: 'Function' };
184
+ }
185
+ return {
186
+ funcName: filePath ? (0, ts_js_hoc_utils_js_1.deriveDefaultExportHocName)(filePath) : null,
187
+ label: 'Function',
188
+ };
189
+ }
190
+ // Member-expression callees like React.memo keep the same file-derived
191
+ // name, with array-like helpers excluded above.
192
+ if (callee?.type === 'member_expression') {
193
+ return {
194
+ funcName: filePath ? (0, ts_js_hoc_utils_js_1.deriveDefaultExportHocName)(filePath) : null,
195
+ label: 'Function',
196
+ };
197
+ }
198
+ return { funcName: null, label: 'Function' };
199
+ }
200
+ return { funcName: null, label: 'Function' };
201
+ }
202
+ return { funcName: null, label: 'Function' };
203
+ };
204
+ exports.BUILT_INS = new Set([
205
+ 'console',
206
+ 'log',
207
+ 'warn',
208
+ 'error',
209
+ 'info',
210
+ 'debug',
211
+ 'setTimeout',
212
+ 'setInterval',
213
+ 'clearTimeout',
214
+ 'clearInterval',
215
+ 'parseInt',
216
+ 'parseFloat',
217
+ 'isNaN',
218
+ 'isFinite',
219
+ 'encodeURI',
220
+ 'decodeURI',
221
+ 'encodeURIComponent',
222
+ 'decodeURIComponent',
223
+ 'JSON',
224
+ 'parse',
225
+ 'stringify',
226
+ 'Object',
227
+ 'Array',
228
+ 'String',
229
+ 'Number',
230
+ 'Boolean',
231
+ 'Symbol',
232
+ 'BigInt',
233
+ 'Map',
234
+ 'Set',
235
+ 'WeakMap',
236
+ 'WeakSet',
237
+ 'Promise',
238
+ 'resolve',
239
+ 'reject',
240
+ 'then',
241
+ 'catch',
242
+ 'finally',
243
+ 'Math',
244
+ 'Date',
245
+ 'RegExp',
246
+ 'Error',
247
+ 'require',
248
+ 'import',
249
+ 'export',
250
+ 'fetch',
251
+ 'Response',
252
+ 'Request',
253
+ 'useState',
254
+ 'useEffect',
255
+ 'useCallback',
256
+ 'useMemo',
257
+ 'useRef',
258
+ 'useContext',
259
+ 'useReducer',
260
+ 'useLayoutEffect',
261
+ 'useImperativeHandle',
262
+ 'useDebugValue',
263
+ 'createElement',
264
+ 'createContext',
265
+ 'createRef',
266
+ 'forwardRef',
267
+ 'memo',
268
+ 'lazy',
269
+ 'map',
270
+ 'filter',
271
+ 'reduce',
272
+ 'forEach',
273
+ 'find',
274
+ 'findIndex',
275
+ 'some',
276
+ 'every',
277
+ 'includes',
278
+ 'indexOf',
279
+ 'slice',
280
+ 'splice',
281
+ 'concat',
282
+ 'join',
283
+ 'split',
284
+ 'push',
285
+ 'pop',
286
+ 'shift',
287
+ 'unshift',
288
+ 'sort',
289
+ 'reverse',
290
+ 'keys',
291
+ 'values',
292
+ 'entries',
293
+ 'assign',
294
+ 'freeze',
295
+ 'seal',
296
+ 'hasOwnProperty',
297
+ 'toString',
298
+ 'valueOf',
299
+ ]);
300
+ /**
301
+ * `this` is the only receiver keyword JavaScript and TypeScript bind, and it
302
+ * is bound by every function form except an arrow (#2701). The query files
303
+ * tag those forms with `@receiver-owner.this`; this hook just reads the tag,
304
+ * so the node-type list stays in the one place that already names grammar
305
+ * nodes. See `Scope.ownsReceivers` for what the marker does to the walk.
306
+ */
307
+ const TS_OWNED_RECEIVERS = new Set(['this']);
308
+ const tsScopeOwnsReceivers = (match) => match['@receiver-owner.this'] === undefined ? undefined : TS_OWNED_RECEIVERS;
309
+ exports.typescriptProvider = (0, language_provider_js_1.defineLanguage)({
310
+ id: index_js_1.SupportedLanguages.TypeScript,
311
+ extensions: ['.ts', '.tsx'],
312
+ entryPointPatterns: [/^use[A-Z]/],
313
+ astFrameworkPatterns: [
314
+ {
315
+ framework: 'nestjs',
316
+ entryPointMultiplier: 3.2,
317
+ reason: 'nestjs-decorator',
318
+ patterns: ['@Controller', '@Get', '@Post', '@Put', '@Delete', '@Patch'],
319
+ },
320
+ {
321
+ framework: 'expo-router',
322
+ entryPointMultiplier: 2.5,
323
+ reason: 'expo-router-navigation',
324
+ patterns: [
325
+ 'router.push',
326
+ 'router.replace',
327
+ 'router.navigate',
328
+ 'useRouter',
329
+ 'useLocalSearchParams',
330
+ 'useSegments',
331
+ 'expo-router',
332
+ ],
333
+ },
334
+ ],
335
+ treeSitterQueries: tree_sitter_queries_js_1.TYPESCRIPT_QUERIES,
336
+ typeConfig: typescript_js_2.typeConfig,
337
+ scopeOwnsReceivers: tsScopeOwnsReceivers,
338
+ exportChecker: export_detection_js_1.tsExportChecker,
339
+ importResolver: (0, resolver_factory_js_1.createImportResolver)(typescript_javascript_js_2.typescriptImportConfig),
340
+ callExtractor: (0, generic_js_5.createCallExtractor)(typescript_javascript_js_6.typescriptCallConfig),
341
+ fieldExtractor: typescript_js_3.typescriptFieldExtractor,
342
+ methodExtractor: (0, generic_js_3.createMethodExtractor)({
343
+ ...typescript_javascript_js_4.typescriptMethodConfig,
344
+ extractFunctionName: tsExtractFunctionName,
345
+ }),
346
+ variableExtractor: (0, generic_js_4.createVariableExtractor)(typescript_javascript_js_5.typescriptVariableConfig),
347
+ classExtractor: (0, generic_js_1.createClassExtractor)(typescript_javascript_js_1.typescriptClassConfig),
348
+ // ── JSDoc → description (issue #2270). An exported decl is captured as the
349
+ // inner declaration; its JSDoc precedes the wrapping `export_statement`. ──
350
+ descriptionExtractor: (0, ast_helpers_js_1.createLeadingDocDescriptionExtractor)({
351
+ wrapperNodeTypes: ['export_statement'],
352
+ }),
353
+ builtInNames: exports.BUILT_INS,
354
+ // Member-assignment shapes are not free functions (#2723 follow-up). The
355
+ // capture arrives anchored on the assignment, so the shape is decided from
356
+ // the left-hand side:
357
+ // - `Foo.prototype.bar = fn` / `this.bar = fn` -> a Method
358
+ // - a CJS export shadowing a name the module already declares -> no node
359
+ // at all, since the scope declaration that would reach it is suppressed
360
+ // too (an orphan `Function` twin beside `class Dup {}` otherwise).
361
+ // Every other `definition.function` capture keeps its default label.
362
+ labelOverride: (functionNode, defaultLabel) => defaultLabel !== 'Function'
363
+ ? defaultLabel
364
+ : functionNode.type === 'assignment_expression'
365
+ ? memberAssignmentLabel(functionNode)
366
+ : defaultLabel,
367
+ // ── RFC #909 Ring 3: scope-based resolution hooks (RFC §5) ──────────
368
+ // TypeScript is the third migration after Python and C#. See
369
+ // ./typescript/index.ts for the full per-hook rationale and the
370
+ // canonical capture vocabulary in ./typescript/query.ts
371
+ // (TYPESCRIPT_SCOPE_QUERY constant).
372
+ emitScopeCaptures: index_js_2.emitTsScopeCaptures,
373
+ // CFG/PDG substrate (#2081 M1) — runs in the worker on a --pdg run.
374
+ cfgVisitor: (0, typescript_js_1.createTypeScriptCfgVisitor)(),
375
+ interpretImport: index_js_2.interpretTsImport,
376
+ interpretTypeBinding: index_js_2.interpretTsTypeBinding,
377
+ bindingScopeFor: index_js_2.tsBindingScopeFor,
378
+ importOwningScope: index_js_2.tsImportOwningScope,
379
+ // Merge precedence is decided from BindingRef origin + declaration
380
+ // space only. The central finalizer already calls this per (scope,
381
+ // name), so the Scope object itself intentionally does not affect
382
+ // TypeScript declaration merging.
383
+ mergeBindings: (_scope, bindings) => (0, index_js_2.typescriptMergeBindings)(bindings),
384
+ receiverBinding: index_js_2.tsReceiverBinding,
385
+ arityCompatibility: index_js_2.typescriptArityCompatibility,
386
+ resolveImportTarget: index_js_2.resolveTsImportTarget,
387
+ });
388
+ exports.javascriptProvider = (0, language_provider_js_1.defineLanguage)({
389
+ id: index_js_1.SupportedLanguages.JavaScript,
390
+ extensions: ['.js', '.jsx'],
391
+ entryPointPatterns: [/^use[A-Z]/],
392
+ astFrameworkPatterns: [
393
+ {
394
+ framework: 'nestjs',
395
+ entryPointMultiplier: 3.2,
396
+ reason: 'nestjs-decorator',
397
+ patterns: ['@Controller', '@Get', '@Post', '@Put', '@Delete', '@Patch'],
398
+ },
399
+ {
400
+ framework: 'expo-router',
401
+ entryPointMultiplier: 2.5,
402
+ reason: 'expo-router-navigation',
403
+ patterns: [
404
+ 'router.push',
405
+ 'router.replace',
406
+ 'router.navigate',
407
+ 'useRouter',
408
+ 'useLocalSearchParams',
409
+ 'useSegments',
410
+ 'expo-router',
411
+ ],
412
+ },
413
+ ],
414
+ treeSitterQueries: tree_sitter_queries_js_1.JAVASCRIPT_QUERIES,
415
+ typeConfig: typescript_js_2.typeConfig,
416
+ scopeOwnsReceivers: tsScopeOwnsReceivers,
417
+ exportChecker: export_detection_js_1.tsExportChecker,
418
+ importResolver: (0, resolver_factory_js_1.createImportResolver)(typescript_javascript_js_2.javascriptImportConfig),
419
+ callExtractor: (0, generic_js_5.createCallExtractor)(typescript_javascript_js_6.javascriptCallConfig),
420
+ fieldExtractor: (0, generic_js_2.createFieldExtractor)(typescript_javascript_js_3.javascriptConfig),
421
+ methodExtractor: (0, generic_js_3.createMethodExtractor)({
422
+ ...typescript_javascript_js_4.javascriptMethodConfig,
423
+ extractFunctionName: tsExtractFunctionName,
424
+ }),
425
+ variableExtractor: (0, generic_js_4.createVariableExtractor)(typescript_javascript_js_5.javascriptVariableConfig),
426
+ classExtractor: (0, generic_js_1.createClassExtractor)(typescript_javascript_js_1.javascriptClassConfig),
427
+ // ── JSDoc → description (issue #2270). An exported decl is captured as the
428
+ // inner declaration; its JSDoc precedes the wrapping `export_statement`. ──
429
+ descriptionExtractor: (0, ast_helpers_js_1.createLeadingDocDescriptionExtractor)({
430
+ wrapperNodeTypes: ['export_statement'],
431
+ }),
432
+ builtInNames: exports.BUILT_INS,
433
+ // Member-assignment shapes — see the TypeScript provider above.
434
+ labelOverride: (functionNode, defaultLabel) => defaultLabel !== 'Function'
435
+ ? defaultLabel
436
+ : functionNode.type === 'assignment_expression'
437
+ ? memberAssignmentLabel(functionNode)
438
+ : defaultLabel,
439
+ // ── RFC #909 Ring 3: scope-based resolution hooks (RFC §5) ──────────
440
+ // JavaScript is the fourth migration after Python, C#, and TypeScript.
441
+ // Hooks are thin wrappers over the TypeScript implementations where
442
+ // semantics are identical; JS-specific additions (CJS require(),
443
+ // JSDoc type bindings) live in ./javascript/captures.ts.
444
+ // See ./javascript/index.ts for the full per-module rationale.
445
+ emitScopeCaptures: index_js_3.emitJsScopeCaptures,
446
+ // CFG/PDG substrate (#2081 M1) — TS and JS share the same grammar family.
447
+ cfgVisitor: (0, typescript_js_1.createTypeScriptCfgVisitor)(),
448
+ interpretImport: index_js_3.interpretJsImport,
449
+ interpretTypeBinding: index_js_3.interpretJsTypeBinding,
450
+ bindingScopeFor: index_js_3.jsBindingScopeFor,
451
+ importOwningScope: index_js_3.jsImportOwningScope,
452
+ mergeBindings: (_scope, bindings) => (0, index_js_3.jsMergeBindings)(bindings),
453
+ receiverBinding: index_js_3.jsReceiverBinding,
454
+ arityCompatibility: index_js_3.jsArityCompatibility,
455
+ });
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Vue SFC scope captures (RFC #909 Ring 3, issue #940).
4
+ *
5
+ * Extracts the `<script>` / `<script setup>` block from the SFC source
6
+ * and delegates to `emitTsScopeCaptures`. The parse-worker builds the
7
+ * cached tree from the extracted script content using the TypeScript
8
+ * grammar (see `[SupportedLanguages.Vue]: TypeScript.typescript` in
9
+ * `parse-worker.ts`), so passing that tree here keeps grammar identity
10
+ * consistent and avoids a redundant re-parse.
11
+ *
12
+ * Template expressions are intentionally out-of-scope: component-
13
+ * reference CALLS edges are already emitted by the legacy template
14
+ * extractor in the parse worker and would be double-counted here.
15
+ *
16
+ * Position note: all capture positions are relative to the *extracted*
17
+ * script block, not the full .vue file. This is consistent with the
18
+ * cached tree and with how the scope model uses positions (only for
19
+ * scope-containment walks within a single file), so no offset
20
+ * translation is required for graph-edge correctness.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.emitVueScopeCaptures = emitVueScopeCaptures;
24
+ const vue_sfc_extractor_js_1 = require("../../vue-sfc-extractor.js");
25
+ const captures_js_1 = require("../typescript/captures.js");
26
+ const captures_js_2 = require("../javascript/captures.js");
27
+ /**
28
+ * Emit scope captures for a Vue SFC.
29
+ *
30
+ * Handles three call-site shapes:
31
+ *
32
+ * 1. **Full SFC content** (sequential path, <15 files): `sourceText`
33
+ * contains the whole `.vue` file with `<template>`, `<script>`, etc.
34
+ * `extractVueScript` extracts the script block and we delegate to
35
+ * `emitTsScopeCaptures` or `emitJsScopeCaptures` based on `lang`.
36
+ *
37
+ * 2. **Already-extracted script content** (worker-mode path, ≥15 files):
38
+ * the parse worker calls `extractVueScript` itself before calling
39
+ * `extractParsedFile`, so `sourceText` is already the bare script
40
+ * text with no `<script>` tags. The caller marks this explicitly via
41
+ * `sourceMeta.sourceKind === 'pre-extracted-script'`.
42
+ *
43
+ * 3. **Supporting TS/JS files** included in Vue scope-resolution runs:
44
+ * when `filePath` is not `.vue`, delegate straight to TypeScript captures.
45
+ *
46
+ * Returns an empty array for render-function-only SFCs (no `<script>` block).
47
+ */
48
+ function emitVueScopeCaptures(sourceText, filePath, cachedTree, sourceMeta) {
49
+ // Vue resolver may include supporting TS/JS files in the same run to
50
+ // preserve cross-file import/type context for `.vue` callers. These are
51
+ // already plain script files, so no SFC extraction is needed.
52
+ if (!filePath.endsWith('.vue')) {
53
+ return (0, captures_js_1.emitTsScopeCaptures)(sourceText, filePath, cachedTree);
54
+ }
55
+ if (sourceMeta?.sourceKind === 'pre-extracted-script') {
56
+ // Worker-mode path: the parse worker always uses TypeScript grammar for
57
+ // .vue files. Lang-based grammar selection is a sequential-path feature.
58
+ return (0, captures_js_1.emitTsScopeCaptures)(sourceText, filePath, cachedTree);
59
+ }
60
+ const extracted = (0, vue_sfc_extractor_js_1.extractVueScript)(sourceText);
61
+ if (extracted === null)
62
+ return [];
63
+ // Select captures based on script lang attribute.
64
+ // Use TS grammar unless ALL blocks explicitly request JS/JSX.
65
+ // Mixed-lang: TS handles JS natively; JS grammar chokes on TS syntax.
66
+ if (extracted.lang === 'js' || extracted.lang === 'jsx') {
67
+ return (0, captures_js_2.emitJsScopeCaptures)(extracted.scriptContent, filePath, cachedTree);
68
+ }
69
+ return (0, captures_js_1.emitTsScopeCaptures)(extracted.scriptContent, filePath, cachedTree);
70
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ /**
3
+ * Import-target resolver for Vue SFCs (RFC #909 Ring 3, issue #940).
4
+ *
5
+ * Vue `<script>` / `<script setup>` blocks are TypeScript (or plain
6
+ * JavaScript), so the resolver delegates to `resolveTsTarget` with
7
+ * `language: SupportedLanguages.TypeScript` to get:
8
+ *
9
+ * - tsconfig path-alias rewriting (Vue projects universally use TS)
10
+ * - `.ts` / `.tsx` / `.js` / `.jsx` extension-suffix fallback
11
+ *
12
+ * `.vue` imports are written with explicit extensions (`'./Button.vue'`),
13
+ * so no Vue-specific suffix guessing is required: the standard
14
+ * resolver finds them via the exact-path branch before any extension
15
+ * logic fires.
16
+ *
17
+ * Memoization mirrors the TypeScript adapter: workspace file-list
18
+ * arrays, the suffix index, and the per-pass resolve cache are rebuilt
19
+ * lazily when `allFilePaths` reference changes (once per workspace pass).
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.makeVueResolveImportTarget = makeVueResolveImportTarget;
23
+ const index_js_1 = require("../../../../../shared/index.js");
24
+ const import_target_js_1 = require("../typescript/import-target.js");
25
+ const utils_js_1 = require("../../import-resolvers/utils.js");
26
+ /**
27
+ * Build a memoized `resolveImportTarget` adapter for Vue SFCs.
28
+ *
29
+ * Uses `SupportedLanguages.TypeScript` so tsconfig path-alias resolution
30
+ * and `.ts`/`.tsx` extension guessing fire for relative and bare-specifier
31
+ * imports inside `<script>` blocks.
32
+ */
33
+ function makeVueResolveImportTarget() {
34
+ let cached = null;
35
+ return (targetRaw, fromFile, allFilePaths, resolutionConfig) => {
36
+ if (cached === null || cached.key !== allFilePaths) {
37
+ const allFileList = Array.from(allFilePaths);
38
+ const normalizedFileList = allFileList.map((f) => f.toLowerCase());
39
+ cached = {
40
+ key: allFilePaths,
41
+ allFilePaths: new Set(allFilePaths),
42
+ allFileList,
43
+ normalizedFileList,
44
+ index: (0, utils_js_1.buildSuffixIndex)(normalizedFileList, allFileList),
45
+ resolveCache: new Map(),
46
+ };
47
+ }
48
+ const cfg = resolutionConfig;
49
+ const ws = {
50
+ fromFile,
51
+ language: index_js_1.SupportedLanguages.TypeScript,
52
+ allFilePaths: cached.allFilePaths,
53
+ allFileList: cached.allFileList,
54
+ normalizedFileList: cached.normalizedFileList,
55
+ index: cached.index,
56
+ resolveCache: cached.resolveCache,
57
+ tsconfigPaths: cfg?.tsconfigPaths ?? null,
58
+ };
59
+ return (0, import_target_js_1.resolveTsTarget)(targetRaw, ws);
60
+ };
61
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * Vue SFC scope-resolution hooks (RFC #909 Ring 3, issue #940).
4
+ *
5
+ * Public API barrel. Consumers should import from this file rather
6
+ * than the individual modules.
7
+ *
8
+ * Module layout (each file is a single concern):
9
+ *
10
+ * - `captures.ts` — `emitVueScopeCaptures` — extracts the
11
+ * `<script>` / `<script setup>` block and
12
+ * delegates to `emitTsScopeCaptures` (TypeScript
13
+ * grammar, same grammar the parse-worker uses).
14
+ * - `import-target.ts` — `makeVueResolveImportTarget` — memoized
15
+ * adapter using the TypeScript resolver with
16
+ * tsconfig path-alias support.
17
+ * - `scope-resolver.ts` — `vueScopeResolver` wiring object.
18
+ *
19
+ * ## Known limitations
20
+ *
21
+ * 1. **Template expressions** — Full template AST parsing is not performed.
22
+ * `vueScopeResolver.emitPostResolutionEdges` extracts five categories of
23
+ * template-derived edges via lightweight regex, all emitted after standard
24
+ * scope-resolution passes complete:
25
+ * - PascalCase/kebab-case component references → `vue-template-component` `CALLS`
26
+ * - `@event="handler"` on **native** elements → `vue-template-callback` `CALLS`
27
+ * - `@event="handler"` on **component** elements → `vue-event: @<name>` `BINDS_EVENT_HANDLER`
28
+ * - `emit(...)` / `this.$emit(...)` in script → `vue-emit: <name>` `EMITS_EVENT`
29
+ * - `:prop="varName"` single-identifier bindings → `vue-template-attribute` `ACCESSES`
30
+ * `BINDS_EVENT_HANDLER` and `EMITS_EVENT` are complementary "hanging" edges:
31
+ * a Cypher query joining on the shared component File node reveals which
32
+ * handlers receive which component's emitted events.
33
+ * Complex inline expressions (`@click="toggle(item)"`, `{{ a + b }}`,
34
+ * member-access bindings `:key="post.id"`) are intentionally excluded
35
+ * because they cannot be resolved to a single call/access target without
36
+ * a full template AST. Tracked in #1647.
37
+ * 2. **Options API `this` resolution** — `this.X()` in Options API
38
+ * components does not resolve through type-binding when the component
39
+ * uses a plain object literal rather than a class. `fieldFallbackOnMethodLookup`
40
+ * recovers common cases via field-name matching.
41
+ * 3. **`<script setup>` + `<script>` dual-block** — When both blocks are
42
+ * present, only `<script setup>` is processed (per `extractVueScript`
43
+ * priority). The non-setup block is skipped.
44
+ * 4. **JSX in `<template>`** — Vue's template compiler is not a
45
+ * tree-sitter grammar; JSX-style bindings inside templates are not
46
+ * processed by the scope-resolution pipeline.
47
+ */
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.vueScopeResolver = exports.makeVueResolveImportTarget = exports.emitVueScopeCaptures = void 0;
50
+ var captures_js_1 = require("./captures.js");
51
+ Object.defineProperty(exports, "emitVueScopeCaptures", { enumerable: true, get: function () { return captures_js_1.emitVueScopeCaptures; } });
52
+ var import_target_js_1 = require("./import-target.js");
53
+ Object.defineProperty(exports, "makeVueResolveImportTarget", { enumerable: true, get: function () { return import_target_js_1.makeVueResolveImportTarget; } });
54
+ var scope_resolver_js_1 = require("./scope-resolver.js");
55
+ Object.defineProperty(exports, "vueScopeResolver", { enumerable: true, get: function () { return scope_resolver_js_1.vueScopeResolver; } });