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,34 @@
1
+ "use strict";
2
+ /**
3
+ * Enumerate the names a Dart `import '...'` brings into scope — every PUBLIC
4
+ * top-level symbol of the target library. Dart imports are whole-library
5
+ * (wildcard) and library-private (leading-underscore) members are not
6
+ * exported, so they are filtered out. Mirror of Ruby's
7
+ * `expandRubyWildcardNames`.
8
+ *
9
+ * Without this hook the shared `propagateImportedReturnTypes` pass has no
10
+ * importer-scope binding to hang an imported function's return type on, so a
11
+ * cross-file `var u = getUser(); u.save()` never resolves `u`'s type.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.expandDartWildcardNames = expandDartWildcardNames;
15
+ function expandDartWildcardNames(targetModuleScope, parsedFiles) {
16
+ const target = parsedFiles.find((p) => p.moduleScope === targetModuleScope);
17
+ if (target === undefined)
18
+ return [];
19
+ const seen = new Set();
20
+ const names = [];
21
+ for (const def of target.localDefs) {
22
+ const qn = def.qualifiedName;
23
+ if (qn === undefined || qn.length === 0)
24
+ continue;
25
+ const name = qn.split('.').pop() ?? qn;
26
+ if (name === '' || name.startsWith('_'))
27
+ continue; // library-private
28
+ if (seen.has(name))
29
+ continue;
30
+ seen.add(name);
31
+ names.push(name);
32
+ }
33
+ return names;
34
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preprocessDartExtensionTypes = preprocessDartExtensionTypes;
4
+ const DART_EXTENSION_TYPE_HEADER = /\b(extension)([ \t]+type[ \t]+(?:const[ \t]+)?)([A-Za-z_$][A-Za-z0-9_$]*)([ \t]*<[^()\r\n]*>)?([ \t]*)\(([^()\r\n]*)\)/g;
5
+ function representationType(representation) {
6
+ const trimmed = representation.trim();
7
+ const match = /^(.*\S)\s+[A-Za-z_$][A-Za-z0-9_$]*$/.exec(trimmed);
8
+ const typeName = match?.[1]?.trim();
9
+ return typeName && typeName.length > 0 ? typeName : null;
10
+ }
11
+ /**
12
+ * Rewrites Dart 3.3 `extension type Name(Type value)` headers into ordinary
13
+ * extension headers before tree-sitter sees the source. The vendored grammar
14
+ * currently recovers these declarations through an ERROR subtree, while the
15
+ * existing Dart ingestion path already handles `extension Name on Type`.
16
+ */
17
+ function preprocessDartExtensionTypes(sourceText) {
18
+ return sourceText.replace(DART_EXTENSION_TYPE_HEADER, (match, extensionKeyword, extensionTypeGap, name, typeParameters, beforeRepresentation, representation) => {
19
+ const typeName = representationType(representation);
20
+ if (typeName === null)
21
+ return match;
22
+ const representationSpanLength = beforeRepresentation.length + representation.length + 2;
23
+ const rewrittenRepresentation = ` on ${typeName}`;
24
+ if (rewrittenRepresentation.length > representationSpanLength)
25
+ return match;
26
+ return (extensionKeyword +
27
+ ' '.repeat(extensionTypeGap.length) +
28
+ name +
29
+ (typeParameters ?? '') +
30
+ rewrittenRepresentation +
31
+ ' '.repeat(representationSpanLength - rewrittenRepresentation.length));
32
+ });
33
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /**
3
+ * `resolveImportTarget` adapter for the Dart `ScopeResolver`. Ports the
4
+ * legacy-DAG Dart import logic (`import-resolvers/configs/dart.ts`):
5
+ *
6
+ * - `dart:` SDK imports → `null` (external, no edge)
7
+ * - `package:pkg/path` → `lib/path` (or bare `path`) matched
8
+ * against the workspace file set
9
+ * - relative `'foo/bar.dart'` → resolved against the importer's dir
10
+ * - `__heritage__:` markers → `null` (synthetic heritage carrier,
11
+ * consumed by `emitDartHeritageEdges`)
12
+ *
13
+ * The `ScopeResolver` hook signature is `(targetRaw, fromFile, allFilePaths)`;
14
+ * `targetRaw` arrives already quote-stripped from `interpretDartImport`.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.resolveDartImportTarget = resolveDartImportTarget;
18
+ const interpret_js_1 = require("./interpret.js");
19
+ /** Resolve a relative path against the importer's directory, normalizing
20
+ * `.`/`..` segments, then confirm it exists in the workspace file set. */
21
+ function resolveRelative(rel, fromFile, allFilePaths) {
22
+ const normFrom = fromFile.replace(/\\/g, '/');
23
+ const fromDir = normFrom.includes('/') ? normFrom.slice(0, normFrom.lastIndexOf('/')) : '';
24
+ const parts = fromDir.length > 0 ? fromDir.split('/') : [];
25
+ for (const seg of rel.replace(/\\/g, '/').split('/')) {
26
+ if (seg === '' || seg === '.')
27
+ continue;
28
+ if (seg === '..')
29
+ parts.pop();
30
+ else
31
+ parts.push(seg);
32
+ }
33
+ const target = parts.join('/');
34
+ if (allFilePaths.has(target))
35
+ return target;
36
+ // Suffix fallback for absolute/rooted workspace paths.
37
+ for (const fp of allFilePaths) {
38
+ if (fp === target || fp.endsWith('/' + target))
39
+ return fp;
40
+ }
41
+ return null;
42
+ }
43
+ function resolveDartImportTarget(targetRaw, fromFile, allFilePaths) {
44
+ if (targetRaw.startsWith(interpret_js_1.DART_HERITAGE_PREFIX))
45
+ return null;
46
+ // `targetRaw` already arrives quote-stripped from `interpretDartImport`.
47
+ if (targetRaw === '')
48
+ return null;
49
+ // Dart SDK imports never resolve to a repo file.
50
+ if (targetRaw.startsWith('dart:'))
51
+ return null;
52
+ // `package:pkg/path.dart` → `lib/path.dart` (or bare `path.dart`).
53
+ if (targetRaw.startsWith('package:')) {
54
+ const slash = targetRaw.indexOf('/');
55
+ if (slash === -1)
56
+ return null;
57
+ const relPath = targetRaw.slice(slash + 1);
58
+ for (const candidate of [`lib/${relPath}`, relPath]) {
59
+ for (const fp of allFilePaths) {
60
+ if (fp === candidate || fp.endsWith('/' + candidate))
61
+ return fp;
62
+ }
63
+ }
64
+ return null; // external package
65
+ }
66
+ // Relative import.
67
+ return resolveRelative(targetRaw, fromFile, allFilePaths);
68
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Dart scope-resolution hooks (RFC #909 Ring 3, issue #939).
4
+ *
5
+ * Public API barrel. Consumers import from this file rather than the
6
+ * individual modules.
7
+ *
8
+ * Module layout (each file is a single concern):
9
+ *
10
+ * - `query.ts` — tree-sitter scope query + lazy parser/query
11
+ * - `captures.ts` — `emitDartScopeCaptures` orchestrator
12
+ * - `interpret.ts` — capture-match → `ParsedImport` / `ParsedTypeBinding`
13
+ * - `import-target.ts` — `(targetRaw, fromFile, allFilePaths) → file path`
14
+ * - `receiver-binding.ts` — synthesize `this` / `super` type-bindings
15
+ * - `signature-bindings.ts`— synthesize parameter / return type-bindings
16
+ * - `arity.ts` — Dart arity compatibility (count-primary)
17
+ * - `arity-metadata.ts` — synthesize arity metadata from declarations
18
+ * - `merge-bindings.ts` — Dart import-vs-local precedence
19
+ * - `simple-hooks.ts` — `bindingScopeFor` / `importOwningScope` / `receiverBinding`
20
+ * - `scope-resolver.ts` — `ScopeResolver` registered in `SCOPE_RESOLVERS`
21
+ * - `cache-stats.ts` — PROF_SCOPE_RESOLUTION cache hit/miss counters
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.dartReceiverBinding = exports.dartImportOwningScope = exports.dartBindingScopeFor = exports.resolveDartImportTarget = exports.dartArityCompatibility = exports.dartMergeBindings = exports.DART_HERITAGE_PREFIX = exports.normalizeDartType = exports.interpretDartTypeBinding = exports.interpretDartImport = exports.resetDartCaptureCacheStats = exports.getDartCaptureCacheStats = exports.dartScopeOwnsReceivers = exports.emitDartScopeCaptures = void 0;
25
+ var captures_js_1 = require("./captures.js");
26
+ Object.defineProperty(exports, "emitDartScopeCaptures", { enumerable: true, get: function () { return captures_js_1.emitDartScopeCaptures; } });
27
+ Object.defineProperty(exports, "dartScopeOwnsReceivers", { enumerable: true, get: function () { return captures_js_1.dartScopeOwnsReceivers; } });
28
+ var cache_stats_js_1 = require("./cache-stats.js");
29
+ Object.defineProperty(exports, "getDartCaptureCacheStats", { enumerable: true, get: function () { return cache_stats_js_1.getDartCaptureCacheStats; } });
30
+ Object.defineProperty(exports, "resetDartCaptureCacheStats", { enumerable: true, get: function () { return cache_stats_js_1.resetDartCaptureCacheStats; } });
31
+ var interpret_js_1 = require("./interpret.js");
32
+ Object.defineProperty(exports, "interpretDartImport", { enumerable: true, get: function () { return interpret_js_1.interpretDartImport; } });
33
+ Object.defineProperty(exports, "interpretDartTypeBinding", { enumerable: true, get: function () { return interpret_js_1.interpretDartTypeBinding; } });
34
+ Object.defineProperty(exports, "normalizeDartType", { enumerable: true, get: function () { return interpret_js_1.normalizeDartType; } });
35
+ Object.defineProperty(exports, "DART_HERITAGE_PREFIX", { enumerable: true, get: function () { return interpret_js_1.DART_HERITAGE_PREFIX; } });
36
+ var merge_bindings_js_1 = require("./merge-bindings.js");
37
+ Object.defineProperty(exports, "dartMergeBindings", { enumerable: true, get: function () { return merge_bindings_js_1.dartMergeBindings; } });
38
+ var arity_js_1 = require("./arity.js");
39
+ Object.defineProperty(exports, "dartArityCompatibility", { enumerable: true, get: function () { return arity_js_1.dartArityCompatibility; } });
40
+ var import_target_js_1 = require("./import-target.js");
41
+ Object.defineProperty(exports, "resolveDartImportTarget", { enumerable: true, get: function () { return import_target_js_1.resolveDartImportTarget; } });
42
+ var simple_hooks_js_1 = require("./simple-hooks.js");
43
+ Object.defineProperty(exports, "dartBindingScopeFor", { enumerable: true, get: function () { return simple_hooks_js_1.dartBindingScopeFor; } });
44
+ Object.defineProperty(exports, "dartImportOwningScope", { enumerable: true, get: function () { return simple_hooks_js_1.dartImportOwningScope; } });
45
+ Object.defineProperty(exports, "dartReceiverBinding", { enumerable: true, get: function () { return simple_hooks_js_1.dartReceiverBinding; } });
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * Dart `CaptureMatch` → semantic-shape interpreters.
4
+ *
5
+ * - `interpretDartImport` — `@import.source` → a whole-library
6
+ * `ParsedImport` (Dart `import`/`export` bring every public top-level
7
+ * symbol of the target into scope — whole-library / wildcard-leaf semantics).
8
+ * `@import.heritage` markers (synthesized by `captures.ts` for
9
+ * `implements`/`with` clauses) become side-effect imports carrying a
10
+ * `__heritage__:` payload that `emitDartHeritageEdges` consumes; they
11
+ * never produce a real IMPORTS edge (`resolveDartImportTarget` returns
12
+ * `null` for them).
13
+ * - `interpretDartTypeBinding` — `@type-binding.*` → a `ParsedTypeBinding`,
14
+ * normalizing the Dart type (strip nullable `?`, unwrap single-arg
15
+ * container generics like `Future<X>`/`List<X>`, drop library prefixes).
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DART_HERITAGE_PREFIX = void 0;
19
+ exports.interpretDartImport = interpretDartImport;
20
+ exports.normalizeDartType = normalizeDartType;
21
+ exports.interpretDartTypeBinding = interpretDartTypeBinding;
22
+ const heritage_marker_js_1 = require("../../utils/heritage-marker.js");
23
+ /** Marker prefix carried on a side-effect `ParsedImport.targetRaw` for
24
+ * `implements`/`with` heritage, consumed by `emitDartHeritageEdges`. Aliased to
25
+ * the shared codec prefix (#1994) so the Dart wire prefix has a single source of
26
+ * truth and cannot desync from `encodeMarker`/`decodeMarker`. */
27
+ exports.DART_HERITAGE_PREFIX = heritage_marker_js_1.HERITAGE_MARKER_PREFIX;
28
+ function stripQuotes(s) {
29
+ return s.replace(/^['"]|['"]$/g, '');
30
+ }
31
+ function interpretDartImport(captures) {
32
+ const heritageCap = captures['@import.heritage'];
33
+ if (heritageCap !== undefined) {
34
+ return { kind: 'side-effect', targetRaw: heritageCap.text };
35
+ }
36
+ const sourceCap = captures['@import.source'];
37
+ if (sourceCap === undefined)
38
+ return null;
39
+ const raw = stripQuotes(sourceCap.text);
40
+ // Dart `import '...'` brings every PUBLIC top-level symbol of the target
41
+ // library directly into scope (no prefix) — wildcard semantics. The
42
+ // `expandsWildcardTo` hook enumerates those names so cross-file return
43
+ // types propagate (`var u = importedFn(); u.m()`).
44
+ return { kind: 'wildcard', targetRaw: raw };
45
+ }
46
+ /** Container generics whose single type argument is the runtime element
47
+ * type a receiver resolves against (`Future<User>` → `User`). */
48
+ const SINGLE_ARG_CONTAINERS = /^(?:Future|FutureOr|List|Iterable|Set|Stream|Optional)<(.+)>$/;
49
+ /** Bare container names. When a type normalizes to one of these (e.g. the
50
+ * generic args were stripped upstream so `Future<User>` arrived as `Future`),
51
+ * binding to it would let a same-named user class capture the receiver — a
52
+ * wrong edge. We suppress the binding instead (leaving the call unresolved,
53
+ * matching the legacy DAG) rather than bind to the container name. */
54
+ const BARE_CONTAINER_TYPES = new Set([
55
+ 'Future',
56
+ 'FutureOr',
57
+ 'List',
58
+ 'Iterable',
59
+ 'Set',
60
+ 'Stream',
61
+ 'Optional',
62
+ ]);
63
+ function normalizeDartType(text) {
64
+ let s = text.trim();
65
+ // Strip nullable suffix (`User?` → `User`).
66
+ s = s.replace(/\?+$/, '');
67
+ // Unwrap a single-arg container generic once (`Future<User>` → `User`).
68
+ const gen = SINGLE_ARG_CONTAINERS.exec(s);
69
+ if (gen !== null && gen[1] !== undefined)
70
+ s = gen[1].trim().replace(/\?+$/, '');
71
+ // Drop a library/namespace prefix (`prefix.User` → `User`).
72
+ const dot = s.lastIndexOf('.');
73
+ if (dot !== -1)
74
+ s = s.slice(dot + 1);
75
+ return s;
76
+ }
77
+ function interpretDartTypeBinding(captures) {
78
+ const nameCap = captures['@type-binding.name'];
79
+ const typeCap = captures['@type-binding.type'];
80
+ if (nameCap === undefined || typeCap === undefined)
81
+ return null;
82
+ const rawType = normalizeDartType(typeCap.text);
83
+ if (rawType === '' ||
84
+ rawType === 'void' ||
85
+ rawType === 'dynamic' ||
86
+ BARE_CONTAINER_TYPES.has(rawType)) {
87
+ return null;
88
+ }
89
+ let source = 'annotation';
90
+ if (captures['@type-binding.self'] !== undefined)
91
+ source = 'self';
92
+ else if (captures['@type-binding.constructor'] !== undefined)
93
+ source = 'constructor-inferred';
94
+ else if (captures['@type-binding.parameter'] !== undefined)
95
+ source = 'parameter-annotation';
96
+ else if (captures['@type-binding.return'] !== undefined)
97
+ source = 'return-annotation';
98
+ else if (captures['@type-binding.annotation'] !== undefined)
99
+ source = 'annotation';
100
+ return { boundName: nameCap.text, rawTypeName: rawType, source };
101
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * Shadowing precedence for the Dart `mergeBindings` hook. Three tiers:
4
+ * 0 local, 1 import/namespace/reexport, 2 wildcard. Keeps only the best
5
+ * (lowest) tier present, then de-dups survivors by `def.nodeId`
6
+ * (last-write-wins). Mirror of `languages/swift/merge-bindings.ts` — Dart
7
+ * imports bring a whole library namespace into scope (wildcard-leaf), so
8
+ * local declarations always shadow imported names.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.dartMergeBindings = dartMergeBindings;
12
+ // Named tiers (lower = stronger), matching `languages/swift/merge-bindings.ts`.
13
+ const TIER_LOCAL = 0;
14
+ const TIER_IMPORT = 1;
15
+ const TIER_WILDCARD = 2;
16
+ const TIER_UNKNOWN = 3;
17
+ function tierOf(b) {
18
+ switch (b.origin) {
19
+ case 'local':
20
+ return TIER_LOCAL;
21
+ case 'import':
22
+ case 'namespace':
23
+ case 'reexport':
24
+ return TIER_IMPORT;
25
+ case 'wildcard':
26
+ return TIER_WILDCARD;
27
+ default:
28
+ return TIER_UNKNOWN;
29
+ }
30
+ }
31
+ function dartMergeBindings(bindings) {
32
+ if (bindings.length === 0)
33
+ return bindings;
34
+ let bestTier = Number.POSITIVE_INFINITY;
35
+ for (const b of bindings)
36
+ bestTier = Math.min(bestTier, tierOf(b));
37
+ const survivors = bindings.filter((b) => tierOf(b) === bestTier);
38
+ const seen = new Map();
39
+ for (const b of survivors)
40
+ seen.set(b.def.nodeId, b);
41
+ return [...seen.values()];
42
+ }
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ /**
3
+ * The Dart scope-capture tree-sitter query (`DART_SCOPE_QUERY`) plus lazy
4
+ * `Parser`/`Query` singletons. Mirror of `languages/swift/query.ts`.
5
+ *
6
+ * Verified against tree-sitter-dart 1.0.0 (UserNobody14, commit 80e23c07,
7
+ * ABI 14) — every node type below also appears in the legacy `DART_QUERIES`,
8
+ * which is validated against the same grammar.
9
+ *
10
+ * NOTE: This query intentionally covers ONLY the constructs that map cleanly
11
+ * to a single node + the suffix-driven scope-extractor vocabulary:
12
+ * - `@scope.module` / `@scope.class` (type bodies)
13
+ * - `@declaration.{class,trait,enum,function,method,constructor,property}`
14
+ * - `@import.source`
15
+ *
16
+ * The hard parts are synthesized in `captures.ts` instead of queried, because
17
+ * Dart's grammar can't express them as a single node:
18
+ * - Function/method SCOPES — `function_signature` and `function_body` are
19
+ * SIBLINGS, so the Function scope must span both (range composition).
20
+ * - Calls / member reads — Dart's postfix `identifier (selector …)` chains
21
+ * have no `call_expression` node; the receiver is a sibling run.
22
+ * - Heritage references (`extends`/`implements`/`with`).
23
+ * - Parameter / return / receiver type bindings and arity metadata.
24
+ */
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.getDartParser = getDartParser;
30
+ exports.getDartScopeQuery = getDartScopeQuery;
31
+ const tree_sitter_1 = __importDefault(require("tree-sitter"));
32
+ const index_js_1 = require("../../../../../shared/index.js");
33
+ // `tree-sitter-dart` is an optional/vendored grammar that may be absent on a
34
+ // default install. Loaded lazily + guarded via parser-loader rather than
35
+ // statically imported: this module is pulled onto the main thread eagerly by
36
+ // the scope-resolution registry and the language-provider index, so a top-level
37
+ // `import Dart from 'tree-sitter-dart'` would throw ERR_MODULE_NOT_FOUND at
38
+ // module-load and crash `analyze` even for repos with no Dart files (#2091,
39
+ // #2093). The grammar is only ever needed inside the lazy getters below.
40
+ const parser_loader_js_1 = require("../../../tree-sitter/parser-loader.js");
41
+ const DART_SCOPE_QUERY = `
42
+ ; ── Scopes ───────────────────────────────────────────────────────────────────
43
+ (program) @scope.module
44
+ (class_definition) @scope.class
45
+ (mixin_declaration) @scope.class
46
+ (extension_declaration) @scope.class
47
+ (enum_declaration) @scope.class
48
+
49
+ ; ── Declarations — types ─────────────────────────────────────────────────────
50
+ (class_definition name: (identifier) @declaration.name) @declaration.class
51
+ (mixin_declaration (identifier) @declaration.name) @declaration.trait
52
+ (extension_declaration name: (identifier) @declaration.name) @declaration.class
53
+ (enum_declaration name: (identifier) @declaration.name) @declaration.enum
54
+
55
+ ; ── Declarations — type aliases (old-style + new-style function typedefs) ────
56
+ ; Both forms parse as type_alias; the name position differs, and a generic
57
+ ; <T> parameter list intervenes for the generic variants. Per #1919 review CF2,
58
+ ; a generic type_parameters node sits between the name and the next anchor, so
59
+ ; the non-generic adjacency patterns silently drop the generic forms. Four
60
+ ; standalone patterns (NOT one alternation — the tree-sitter 0.21 hazard drops
61
+ ; sibling branches) keep the name capture unambiguous and single-match per form:
62
+ ; non-generic old-style typedef int Cmp(int a, int b);
63
+ ; children: return-type, NAME, formal_parameter_list
64
+ ; generic old-style typedef int Cmp<T>(T a, T b); (CF2)
65
+ ; children: return-type, NAME, type_parameters, formal_parameter_list
66
+ ; non-generic new-style typedef Pred = bool Function(int);
67
+ ; children: NAME, "=", function_type
68
+ ; generic new-style typedef Mapper<T> = T Function(T);
69
+ ; children: NAME, type_parameters, "=", function_type
70
+ ; The alias name is the type_identifier immediately before the param list (old)
71
+ ; or before "=" (new); for the generic forms it is the one immediately before
72
+ ; the intervening type_parameters. Mirrors Kotlin's @declaration.type_alias
73
+ ; rule; the generic scope-extractor maps "type_alias" → TypeAlias.
74
+ (type_alias
75
+ (type_identifier) @declaration.name
76
+ .
77
+ (formal_parameter_list)) @declaration.type_alias
78
+ (type_alias
79
+ (type_identifier) @declaration.name
80
+ .
81
+ (type_parameters)
82
+ .
83
+ (formal_parameter_list)) @declaration.type_alias
84
+ (type_alias
85
+ (type_identifier) @declaration.name
86
+ .
87
+ "=") @declaration.type_alias
88
+ (type_alias
89
+ (type_identifier) @declaration.name
90
+ .
91
+ (type_parameters)
92
+ .
93
+ "=") @declaration.type_alias
94
+
95
+ ; ── Declarations — top-level functions (parent is program, not method) ───────
96
+ (program
97
+ (function_signature
98
+ name: (identifier) @declaration.name) @declaration.function)
99
+
100
+ ; ── Declarations — closure bound to a local ──────────────────────────────────
101
+ ;
102
+ ; var handler = (int x) => target(x); / var blk = (int y) { ... };
103
+ ;
104
+ ; Anchor discipline (same contract as javascript/query.ts): @declaration.function
105
+ ; sits on the INNER function_expression, NOT on the local_variable_declaration
106
+ ; wrapper. Dart is the one language that declares NO @scope.function in this
107
+ ; file — its function scopes are SYNTHESIZED in captures.ts from
108
+ ; declNode + findFunctionBody(declNode). So this rule deliberately does not add
109
+ ; a @scope.function of its own: doing that would collide with the synthesized
110
+ ; one at identical range, and duplicate scope ids make buildScopeTree throw,
111
+ ; which drops the whole file. Instead findFunctionBody now understands a
112
+ ; closure's child function_expression_body, so the existing synthesis produces
113
+ ; exactly one scope, anchored on the same node as the declaration (#2699 S4).
114
+ ;; THREE binding shapes, not one. Dart wraps only the FIRST local declarator in
115
+ ;; initialized_variable_definition; a top-level var and every later declarator
116
+ ;; are initialized_identifier, and a top-level final/const is
117
+ ;; static_final_declaration. Matching only the first shape left idiomatic
118
+ ;; top-level closures and the g of "var f = ..., g = ..." with no declaration
119
+ ;; capture, so findFunctionBody never synthesized their scope and they could
120
+ ;; never be call SOURCES.
121
+ ;;
122
+ ;; This mirrors DART_CALLABLE_CAPTURE_OPTIONS.bindingNodeTypes in captures.ts,
123
+ ;; which already listed all three for callable-flow. The two lists must stay in
124
+ ;; step; dart-closure-binding-shapes.test.ts pins that.
125
+ (initialized_variable_definition
126
+ (identifier) @declaration.name
127
+ (function_expression) @declaration.function)
128
+
129
+ (initialized_identifier
130
+ (identifier) @declaration.name
131
+ (function_expression) @declaration.function)
132
+
133
+ (static_final_declaration
134
+ (identifier) @declaration.name
135
+ (function_expression) @declaration.function)
136
+
137
+ ; ── Declarations — methods (inside class/mixin/extension bodies) ─────────────
138
+ (method_signature
139
+ (function_signature
140
+ name: (identifier) @declaration.name)) @declaration.method
141
+
142
+ ; ── Declarations — abstract methods (bodyless) ───────────────────────────────
143
+ (declaration
144
+ (function_signature
145
+ name: (identifier) @declaration.name)) @declaration.method
146
+
147
+ ; ── Declarations — constructors ──────────────────────────────────────────────
148
+ (constructor_signature
149
+ name: (identifier) @declaration.name) @declaration.constructor
150
+
151
+ ; ── Declarations — getters / setters (Property, like the legacy DAG) ─────────
152
+ (method_signature
153
+ (getter_signature
154
+ name: (identifier) @declaration.name)) @declaration.property
155
+ (method_signature
156
+ (setter_signature
157
+ name: (identifier) @declaration.name)) @declaration.property
158
+
159
+ ; ── Declarations — class fields ──────────────────────────────────────────────
160
+ (declaration
161
+ (type_identifier)
162
+ (initialized_identifier_list
163
+ (initialized_identifier
164
+ . (identifier) @declaration.name))) @declaration.property
165
+ (declaration
166
+ (nullable_type)
167
+ (initialized_identifier_list
168
+ (initialized_identifier
169
+ . (identifier) @declaration.name))) @declaration.property
170
+
171
+ ; Inference-typed fields — \`var b = Outer();\`, \`final b = Outer();\`,
172
+ ; \`late final b = Outer();\`, \`static var b = Outer();\` (#2807). The two
173
+ ; patterns above require a written type, so a field whose type comes from its
174
+ ; initializer produced NO property declaration at all — no Property node, and
175
+ ; nothing for captures.ts to hang a type binding on, so \`b.inner()\` could not
176
+ ; resolve its receiver while the annotated twin resolved fine.
177
+ ;
178
+ ; Dart spells the keyword as \`inferred_type\` for \`var\` and \`final_builtin\`
179
+ ; for \`final\` / \`late final\`; both are class fields and both are idiomatic,
180
+ ; so covering only one would leave the more common Dart style broken.
181
+ (declaration
182
+ (inferred_type)
183
+ (initialized_identifier_list
184
+ (initialized_identifier
185
+ . (identifier) @declaration.name))) @declaration.property
186
+ (declaration
187
+ (final_builtin)
188
+ (initialized_identifier_list
189
+ (initialized_identifier
190
+ . (identifier) @declaration.name))) @declaration.property
191
+
192
+ ; ── Declarations — closure bindings (#2693) ──────────────────────────────────
193
+ ; \`var f = (x) => x;\` binds a callable. Without a declaration the binding has
194
+ ; no SymbolDefinition, so callable-value-flow has nothing to attach its seed to
195
+ ; and \`f()\` stays unresolved even though the graph emits a Function node for it.
196
+ ;
197
+ ; Restricted to a function_expression value on purpose: declaring every Dart
198
+ ; variable would mint defs repo-wide for no resolution benefit. The top-level
199
+ ; rule is anchored under (program) — the same disambiguation the graph-node
200
+ ; query uses — so class-body fields, which reuse initialized_identifier_list
201
+ ; and are already @declaration.property, are never matched twice.
202
+ (program
203
+ (initialized_identifier_list
204
+ (initialized_identifier
205
+ (identifier) @declaration.name
206
+ (function_expression))) @declaration.variable)
207
+ (program
208
+ (static_final_declaration_list
209
+ (static_final_declaration
210
+ (identifier) @declaration.name
211
+ (function_expression))) @declaration.variable)
212
+ (initialized_variable_definition
213
+ name: (identifier) @declaration.name
214
+ value: (function_expression)) @declaration.variable
215
+ ; Second and later declarators of \`var f = .., g = ..;\` are nested
216
+ ; initialized_identifier children of the same initialized_variable_definition,
217
+ ; which the field-based rule above only reaches for the first name.
218
+ (initialized_variable_definition
219
+ (initialized_identifier
220
+ (identifier) @declaration.name
221
+ (function_expression)) @declaration.variable)
222
+
223
+ ; ── Imports / re-exports ─────────────────────────────────────────────────────
224
+ (import_or_export
225
+ (library_import
226
+ (import_specification
227
+ (configurable_uri) @import.source))) @import.statement
228
+ (import_or_export
229
+ (library_export
230
+ (configurable_uri) @import.source)) @import.statement
231
+ `;
232
+ let _parser = null;
233
+ let _query = null;
234
+ function getDartParser() {
235
+ if (_parser === null) {
236
+ _parser = new tree_sitter_1.default();
237
+ _parser.setLanguage((0, parser_loader_js_1.getLanguageGrammar)(index_js_1.SupportedLanguages.Dart));
238
+ }
239
+ return _parser;
240
+ }
241
+ function getDartScopeQuery() {
242
+ if (_query === null) {
243
+ _query = new tree_sitter_1.default.Query((0, parser_loader_js_1.getLanguageGrammar)(index_js_1.SupportedLanguages.Dart), DART_SCOPE_QUERY);
244
+ }
245
+ return _query;
246
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * Synthesize the implicit `this` (and `super`) receiver type-binding for a
4
+ * Dart instance method — tree-sitter can't express the implicit receiver via
5
+ * a static query pattern. Mirror of `languages/swift/receiver-binding.ts`,
6
+ * adapted for Dart's grammar:
7
+ *
8
+ * - The receiver name is `this` (Swift's `self`); `super` is the
9
+ * superclass receiver.
10
+ * - Dart's `function_signature`/`function_body` are SIBLINGS (not a
11
+ * `body:` field), so the caller passes the resolved `function_body`
12
+ * node explicitly as the anchor — anchoring the binding inside the body
13
+ * guarantees it lands in the (synthesized) Function scope, not the
14
+ * enclosing Class scope.
15
+ * - Static methods (`dartMethodConfig.isStatic`) and bodyless declarations
16
+ * get no receiver binding.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.synthesizeDartReceiverBinding = synthesizeDartReceiverBinding;
20
+ const ast_helpers_js_1 = require("../../utils/ast-helpers.js");
21
+ const dart_js_1 = require("../../method-extractors/configs/dart.js");
22
+ const TYPE_DECL_TYPES = new Set([
23
+ 'class_definition',
24
+ 'mixin_declaration',
25
+ 'extension_declaration',
26
+ 'enum_declaration',
27
+ ]);
28
+ /** Walk up from a method declaration node to its enclosing type declaration. */
29
+ function findEnclosingTypeDeclaration(node) {
30
+ let cur = node.parent;
31
+ while (cur !== null) {
32
+ if (TYPE_DECL_TYPES.has(cur.type))
33
+ return cur;
34
+ cur = cur.parent;
35
+ }
36
+ return null;
37
+ }
38
+ /** The bare type name for a type declaration (`class Foo` → `Foo`). */
39
+ function enclosingTypeName(typeNode) {
40
+ if (typeNode.type === 'mixin_declaration') {
41
+ // mixin has no `name:` field — first identifier child is the name.
42
+ for (let i = 0; i < typeNode.namedChildCount; i++) {
43
+ const c = typeNode.namedChild(i);
44
+ if (c !== null && c.type === 'identifier')
45
+ return c.text;
46
+ }
47
+ return null;
48
+ }
49
+ const nameNode = typeNode.childForFieldName('name');
50
+ return nameNode !== null ? nameNode.text : null;
51
+ }
52
+ /** The first `extends` superclass type name, if any (for `super`). */
53
+ function firstSuperType(typeNode) {
54
+ const superclass = typeNode.childForFieldName('superclass');
55
+ if (superclass === null)
56
+ return null;
57
+ for (let i = 0; i < superclass.namedChildCount; i++) {
58
+ const c = superclass.namedChild(i);
59
+ if (c !== null && c.type === 'type_identifier')
60
+ return c.text;
61
+ }
62
+ return null;
63
+ }
64
+ function buildReceiverMatch(anchor, name, typeText) {
65
+ return {
66
+ '@type-binding.self': (0, ast_helpers_js_1.nodeToCapture)('@type-binding.self', anchor),
67
+ '@type-binding.name': (0, ast_helpers_js_1.syntheticCapture)('@type-binding.name', anchor, name),
68
+ '@type-binding.type': (0, ast_helpers_js_1.syntheticCapture)('@type-binding.type', anchor, typeText),
69
+ };
70
+ }
71
+ /**
72
+ * `declNode` is the method declaration wrapper (`method_signature` /
73
+ * `declaration` / top-level `function_signature`). `bodyNode` is the
74
+ * resolved sibling `function_body` (the anchor for Function-scope landing).
75
+ */
76
+ function synthesizeDartReceiverBinding(declNode, bodyNode) {
77
+ if (dart_js_1.dartMethodConfig.isStatic(declNode))
78
+ return [];
79
+ const enclosingType = findEnclosingTypeDeclaration(declNode);
80
+ if (enclosingType === null)
81
+ return []; // top-level function — no receiver
82
+ const typeName = enclosingTypeName(enclosingType);
83
+ if (typeName === null)
84
+ return [];
85
+ const out = [buildReceiverMatch(bodyNode, 'this', typeName)];
86
+ const superType = firstSuperType(enclosingType);
87
+ if (superType !== null)
88
+ out.push(buildReceiverMatch(bodyNode, 'super', superType));
89
+ return out;
90
+ }