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,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeCDeclarationArity = computeCDeclarationArity;
4
+ exports.computeCCallArity = computeCCallArity;
5
+ /**
6
+ * Compute declaration arity from a C function definition or declaration node.
7
+ */
8
+ function computeCDeclarationArity(node) {
9
+ // Find the function_declarator child (may be wrapped in pointer_declarator)
10
+ const funcDecl = findFuncDeclarator(node);
11
+ if (funcDecl === null)
12
+ return {};
13
+ const paramList = funcDecl.childForFieldName('parameters');
14
+ if (paramList === null)
15
+ return {};
16
+ const params = [];
17
+ for (let i = 0; i < paramList.childCount; i++) {
18
+ const child = paramList.child(i);
19
+ if (child === null)
20
+ continue;
21
+ if (child.type === 'parameter_declaration' || child.type === 'variadic_parameter') {
22
+ params.push(child);
23
+ }
24
+ }
25
+ // K&R old-style declaration: `int foo()` has an empty parameter_list with
26
+ // no parameter_declaration or variadic_parameter children. Per C89/C99,
27
+ // this means the function accepts an unspecified number/types of arguments —
28
+ // NOT zero arguments. Return unknown arity to avoid false 'incompatible'.
29
+ // `int foo(void)` is the explicit zero-parameter form and is handled below.
30
+ if (params.length === 0)
31
+ return {};
32
+ // (void) means zero parameters
33
+ if (params.length === 1 && params[0].type === 'parameter_declaration') {
34
+ const typeNode = params[0].childForFieldName('type');
35
+ const hasDeclarator = params[0].childForFieldName('declarator') !== null;
36
+ if (typeNode !== null && typeNode.text === 'void' && !hasDeclarator) {
37
+ return { parameterCount: 0, requiredParameterCount: 0, parameterTypes: [] };
38
+ }
39
+ }
40
+ const isVariadic = params.some((p) => p.type === 'variadic_parameter');
41
+ const nonVariadicCount = params.filter((p) => p.type !== 'variadic_parameter').length;
42
+ const types = [];
43
+ for (const p of params) {
44
+ if (p.type === 'variadic_parameter') {
45
+ types.push('...');
46
+ }
47
+ else {
48
+ const typeNode = p.childForFieldName('type');
49
+ types.push(typeNode?.text ?? 'unknown');
50
+ }
51
+ }
52
+ return {
53
+ parameterCount: isVariadic ? undefined : nonVariadicCount,
54
+ requiredParameterCount: nonVariadicCount,
55
+ parameterTypes: types,
56
+ };
57
+ }
58
+ /**
59
+ * Compute call-site arity from a call_expression node.
60
+ */
61
+ function computeCCallArity(node) {
62
+ const argList = node.childForFieldName('arguments');
63
+ if (argList === null)
64
+ return 0;
65
+ let count = 0;
66
+ for (let i = 0; i < argList.childCount; i++) {
67
+ const child = argList.child(i);
68
+ if (child === null)
69
+ continue;
70
+ // Skip punctuation (commas, parens)
71
+ if (child.type !== ',' && child.type !== '(' && child.type !== ')') {
72
+ count++;
73
+ }
74
+ }
75
+ return count;
76
+ }
77
+ function findFuncDeclarator(node) {
78
+ // Direct child
79
+ let decl = node.childForFieldName('declarator');
80
+ if (decl === null) {
81
+ for (let i = 0; i < node.childCount; i++) {
82
+ const c = node.child(i);
83
+ if (c?.type === 'function_declarator')
84
+ return c;
85
+ }
86
+ return null;
87
+ }
88
+ // Unwrap pointer_declarator
89
+ while (decl.type === 'pointer_declarator') {
90
+ const next = decl.childForFieldName('declarator');
91
+ if (next === null)
92
+ break;
93
+ decl = next;
94
+ }
95
+ if (decl.type === 'function_declarator')
96
+ return decl;
97
+ return null;
98
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cArityCompatibility = cArityCompatibility;
4
+ /**
5
+ * C arity compatibility: no overloading. Variadic functions detected
6
+ * via '...' in parameterTypes. Otherwise exact match or unknown.
7
+ */
8
+ function cArityCompatibility(def, callsite) {
9
+ const max = def.parameterCount;
10
+ const min = def.requiredParameterCount;
11
+ if (max === undefined && min === undefined)
12
+ return 'unknown';
13
+ if (!Number.isFinite(callsite.arity) || callsite.arity < 0)
14
+ return 'unknown';
15
+ const variadic = def.parameterTypes?.some((t) => t === '...') ?? false;
16
+ if (min !== undefined && callsite.arity < min)
17
+ return 'incompatible';
18
+ if (max !== undefined && callsite.arity > max && !variadic)
19
+ return 'incompatible';
20
+ return 'compatible';
21
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /**
3
+ * C capture-time side-channel serialization (#1983).
4
+ *
5
+ * `emitCScopeCaptures` populates one MODULE-LEVEL, per-file map as a side
6
+ * effect that is NOT part of the returned `ParsedFile`'s scopes/defs:
7
+ *
8
+ * - `staticNames` (static-linkage.ts) — the simple names of functions
9
+ * declared with `static` storage class (file-local / translation-unit
10
+ * linkage in C), recorded via `markStaticName` from the
11
+ * `@declaration.name` capture when the function node has a `static`
12
+ * storage-class specifier.
13
+ *
14
+ * On the worker path that map is filled in the WORKER process and lost across
15
+ * the worker→main MessageChannel (and the disk-backed parsedfile-store),
16
+ * because scope-resolution reuses the serialized `ParsedFile` and SKIPS the
17
+ * main-thread re-extraction (the #1983 fix that avoids a main-thread
18
+ * tree-sitter re-parse / OOM on huge repos — e.g. the Linux kernel). The main
19
+ * thread then reads the map empty in `isStaticName` (consulted by
20
+ * `isFileLocalDef` in `c/scope-resolver.ts` and by `expandCWildcardNames` in
21
+ * static-linkage.ts) — so file-local `static` functions become eligible for
22
+ * cross-file global free-call resolution (false CALLS edges) and `#include`
23
+ * wildcard imports over-expose them.
24
+ *
25
+ * This module snapshots the per-file slice of that map into a plain,
26
+ * JSON-serializable object (carried on `ParsedFile.captureSideChannel`) and
27
+ * restores it on the main thread WITHOUT any parse. It mirrors the C++ pattern
28
+ * in `cpp/capture-side-channel.ts` and the Kotlin pattern in
29
+ * `kotlin/capture-side-channel.ts`.
30
+ *
31
+ * The single generic `ParsedFile.captureSideChannel` field is shared with C++
32
+ * and Kotlin, which is safe because each file is one language (a `.c` file uses
33
+ * the C provider). The payload is self-describing (`{ kind: 'c', staticNames }`)
34
+ * so `applyCStaticLinkageSideChannel` only restores C state and ignores a
35
+ * foreign-shaped snapshot.
36
+ */
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.collectCStaticLinkageSideChannel = collectCStaticLinkageSideChannel;
39
+ exports.applyCStaticLinkageSideChannel = applyCStaticLinkageSideChannel;
40
+ const static_linkage_js_1 = require("./static-linkage.js");
41
+ /**
42
+ * `LanguageProvider.collectCaptureSideChannel` implementation for C.
43
+ * Returns `undefined` when this file recorded no static names at all, so the
44
+ * produced `ParsedFile` carries the field only when there's data to ship.
45
+ */
46
+ function collectCStaticLinkageSideChannel(filePath) {
47
+ const staticNames = (0, static_linkage_js_1.getStaticNamesForFile)(filePath);
48
+ if (staticNames.length === 0)
49
+ return undefined;
50
+ return { kind: 'c', staticNames };
51
+ }
52
+ /**
53
+ * `ScopeResolver.applyCaptureSideChannel` implementation for C. Reads the
54
+ * worker-serialized snapshot from `parsed.captureSideChannel` and re-populates
55
+ * the module-level static-linkage map via `markStaticName`. Tolerant of
56
+ * `undefined` (file carried no data) and of an unexpected / foreign shape
57
+ * (defensive — the `kind` tag guards against restoring a non-C payload).
58
+ * Does NO tree-sitter parse.
59
+ */
60
+ function applyCStaticLinkageSideChannel(parsed) {
61
+ const data = parsed.captureSideChannel;
62
+ if (data === undefined || data === null || typeof data !== 'object')
63
+ return;
64
+ if (data.kind !== 'c' || !Array.isArray(data.staticNames))
65
+ return;
66
+ for (const name of data.staticNames) {
67
+ (0, static_linkage_js_1.markStaticName)(parsed.filePath, name);
68
+ }
69
+ }
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emitCScopeCaptures = emitCScopeCaptures;
4
+ const ast_helpers_js_1 = require("../../utils/ast-helpers.js");
5
+ const query_js_1 = require("./query.js");
6
+ const constants_js_1 = require("../../constants.js");
7
+ const safe_parse_js_1 = require("../../../tree-sitter/safe-parse.js");
8
+ const import_decomposer_js_1 = require("./import-decomposer.js");
9
+ const arity_metadata_js_1 = require("./arity-metadata.js");
10
+ const static_linkage_js_1 = require("./static-linkage.js");
11
+ const receiver_chain_captures_js_1 = require("../../utils/receiver-chain-captures.js");
12
+ const callable_flow_captures_js_1 = require("../../utils/callable-flow-captures.js");
13
+ const C_CALLABLE_CAPTURE_OPTIONS = {
14
+ functionNodeTypes: new Set(['function_definition']),
15
+ callNodeTypes: new Set(['call_expression']),
16
+ parameterListNodeTypes: new Set(['parameter_list', 'argument_list']),
17
+ parameterNodeTypes: new Set(['parameter_declaration']),
18
+ bindingNodeTypes: new Set(['init_declarator']),
19
+ assignmentNodeTypes: new Set(['assignment_expression']),
20
+ identifierNodeTypes: new Set(['identifier', 'field_identifier', 'type_identifier']),
21
+ callableSignatureDeclarationNodeTypes: new Set(['declaration', 'parameter_declaration']),
22
+ emitCanonicalInvokeReference: true,
23
+ parameterPassingMode: (parameter) => containsNodeType(parameter, 'pointer_declarator') ? 'pointer' : 'value',
24
+ expectedSignature: (container, destination) => functionDeclaratorSignature(destination) ?? functionDeclaratorSignature(container),
25
+ };
26
+ function emitCScopeCaptures(sourceText, filePath, cachedTree) {
27
+ let tree = cachedTree;
28
+ if (tree === undefined) {
29
+ tree = (0, safe_parse_js_1.parseSourceSafe)((0, query_js_1.getCParser)(), sourceText, undefined, {
30
+ bufferSize: (0, constants_js_1.getTreeSitterBufferSize)(sourceText),
31
+ });
32
+ }
33
+ const rawMatches = (0, query_js_1.getCScopeQuery)().matches(tree.rootNode);
34
+ const out = [];
35
+ // Track ranges where typedef-struct/union/enum was captured as its concrete
36
+ // type so we can suppress the duplicate @declaration.typedef match.
37
+ const concreteTypedefRanges = new Set();
38
+ for (const m of rawMatches) {
39
+ const grouped = {};
40
+ // Parallel tag -> captured SyntaxNode map. The tree-sitter query already
41
+ // hands us each matched node as `c.node`, so anchors resolve via a
42
+ // type-guarded lookup (`nodeIfType`) instead of re-deriving them with
43
+ // `findNodeAtRange(tree.rootNode, ...)` per match — the
44
+ // O(matches × rootChildren) root-walk fixed for go #1848 / python #1918 /
45
+ // rust/csharp #1915 / java #1951, mirrored here for C. Every C scope-query
46
+ // anchor below captures directly ON the node the old root-walk re-derived
47
+ // (verified against C_SCOPE_QUERY in query.ts: @import.statement on
48
+ // preproc_include, @declaration.function on function_definition/declaration,
49
+ // @reference.call.free/.member on call_expression), so the type check is
50
+ // exact. C has no inheritance construct, so there is no heritage synthesis.
51
+ const nodeMap = {};
52
+ for (const c of m.captures) {
53
+ const tag = '@' + c.name;
54
+ if (tag.startsWith('@_'))
55
+ continue;
56
+ grouped[tag] = (0, ast_helpers_js_1.nodeToCapture)(tag, c.node);
57
+ nodeMap[tag] = c.node;
58
+ }
59
+ if (Object.keys(grouped).length === 0)
60
+ continue;
61
+ // Handle #include statements. `@import.statement` is captured directly on
62
+ // the `preproc_include` node.
63
+ if (grouped['@import.statement'] !== undefined) {
64
+ const includeNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap['@import.statement'], 'preproc_include');
65
+ if (includeNode !== null) {
66
+ const split = (0, import_decomposer_js_1.splitCInclude)(includeNode);
67
+ if (split !== null) {
68
+ out.push(split);
69
+ continue;
70
+ }
71
+ }
72
+ }
73
+ // Track typedef struct/union/enum ranges to suppress duplicate typedef declarations
74
+ const concreteTypeAnchor = grouped['@declaration.struct'] ??
75
+ grouped['@declaration.union'] ??
76
+ grouped['@declaration.enum'];
77
+ if (concreteTypeAnchor !== undefined) {
78
+ const r = concreteTypeAnchor.range;
79
+ concreteTypedefRanges.add(`${r.startLine}:${r.startCol}:${r.endLine}:${r.endCol}`);
80
+ }
81
+ // Suppress @declaration.typedef if the same range was already captured as a concrete type.
82
+ const typedefAnchor = grouped['@declaration.typedef'];
83
+ if (typedefAnchor !== undefined) {
84
+ const r = typedefAnchor.range;
85
+ const key = `${r.startLine}:${r.startCol}:${r.endLine}:${r.endCol}`;
86
+ if (concreteTypedefRanges.has(key))
87
+ continue;
88
+ }
89
+ // Enrich function declarations with arity metadata and detect static linkage.
90
+ // `@declaration.function` is captured directly on the `function_definition`
91
+ // node (definitions) or the `declaration` node (prototypes) — the captured
92
+ // node IS what the old findNodeAtRange re-derived.
93
+ if (grouped['@declaration.function'] !== undefined) {
94
+ const fnNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap['@declaration.function'], 'function_definition', 'declaration');
95
+ if (fnNode !== null) {
96
+ const arity = (0, arity_metadata_js_1.computeCDeclarationArity)(fnNode);
97
+ if (arity.parameterCount !== undefined) {
98
+ grouped['@declaration.parameter-count'] = (0, ast_helpers_js_1.syntheticCapture)('@declaration.parameter-count', fnNode, String(arity.parameterCount));
99
+ }
100
+ if (arity.requiredParameterCount !== undefined) {
101
+ grouped['@declaration.required-parameter-count'] = (0, ast_helpers_js_1.syntheticCapture)('@declaration.required-parameter-count', fnNode, String(arity.requiredParameterCount));
102
+ }
103
+ if (arity.parameterTypes !== undefined) {
104
+ grouped['@declaration.parameter-types'] = (0, ast_helpers_js_1.syntheticCapture)('@declaration.parameter-types', fnNode, JSON.stringify(arity.parameterTypes));
105
+ }
106
+ // Detect static storage class (file-local linkage)
107
+ if (hasStaticStorageClass(fnNode)) {
108
+ const nameText = grouped['@declaration.name']?.text;
109
+ if (nameText !== undefined) {
110
+ (0, static_linkage_js_1.markStaticName)(filePath, nameText);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ // Enrich call references with arity. @reference.call.free / .member are both
116
+ // captured directly on the `call_expression` node — the captured node IS
117
+ // what the old findNodeAtRange re-derived.
118
+ const callAnchorNode = nodeMap['@reference.call.free'] ?? nodeMap['@reference.call.member'];
119
+ if (callAnchorNode !== undefined && grouped['@reference.arity'] === undefined) {
120
+ const callNode = (0, ast_helpers_js_1.nodeIfType)(callAnchorNode, 'call_expression');
121
+ if (callNode !== null) {
122
+ grouped['@reference.arity'] = (0, ast_helpers_js_1.syntheticCapture)('@reference.arity', callNode, String((0, arity_metadata_js_1.computeCCallArity)(callNode)));
123
+ }
124
+ }
125
+ // Structural receiver chain for a call whose receiver is itself an
126
+ // expression, so resolution can type it by folding over structure
127
+ // instead of re-parsing the receiver's source text. Self-gating: a
128
+ // non-call match, an absent receiver, or a chain with no nameable base
129
+ // all leave `grouped` untouched.
130
+ (0, receiver_chain_captures_js_1.synthesizeReceiverChainCapture)(grouped, nodeMap['@reference.receiver']);
131
+ out.push(grouped);
132
+ }
133
+ out.push(...(0, callable_flow_captures_js_1.synthesizeCallableFlowCaptures)(tree.rootNode, C_CALLABLE_CAPTURE_OPTIONS));
134
+ return out;
135
+ }
136
+ function functionDeclaratorSignature(node) {
137
+ const declarator = findDescendantOfType(node, 'function_declarator');
138
+ const parameters = declarator?.childForFieldName('parameters');
139
+ if (parameters === null || parameters === undefined)
140
+ return undefined;
141
+ const parameterNodes = parameters.namedChildren.filter((child) => child !== null && child.type === 'parameter_declaration');
142
+ // tree-sitter-c materializes `...` as a NAMED `variadic_parameter` node —
143
+ // the anonymous-token checks never matched, so variadic signatures were
144
+ // emitted with a wrong fixed arity (#2522 review). Keep the token checks
145
+ // for grammar variants that expose `...` as an anonymous literal.
146
+ const hasEllipsis = parameters.children.some((child) => child.type === 'variadic_parameter' ||
147
+ child.type === '...' ||
148
+ (!child.isNamed && child.text === '...'));
149
+ const isVoidOnly = parameterNodes.length === 1 &&
150
+ parameterNodes[0].namedChildCount === 1 &&
151
+ parameterNodes[0].firstNamedChild?.text === 'void';
152
+ if (isVoidOnly)
153
+ return { parameterCount: 0, parameterTypes: [] };
154
+ const parameterTypes = parameterNodes.map((parameter) => parameter.childForFieldName('type')?.text ?? 'unknown');
155
+ if (hasEllipsis)
156
+ parameterTypes.push('...');
157
+ return {
158
+ ...(hasEllipsis ? {} : { parameterCount: parameterNodes.length }),
159
+ parameterTypes,
160
+ };
161
+ }
162
+ function containsNodeType(root, type) {
163
+ return findDescendantOfType(root, type) !== null;
164
+ }
165
+ function findDescendantOfType(root, type) {
166
+ const stack = [root];
167
+ while (stack.length > 0) {
168
+ const node = stack.pop();
169
+ if (node.type === type)
170
+ return node;
171
+ for (const child of node.namedChildren)
172
+ if (child !== null)
173
+ stack.push(child);
174
+ }
175
+ return null;
176
+ }
177
+ /**
178
+ * Check if a C function_definition or declaration has `static` storage class.
179
+ * Walks direct children for a `storage_class_specifier` node with text `static`.
180
+ */
181
+ function hasStaticStorageClass(node) {
182
+ for (let i = 0; i < node.childCount; i++) {
183
+ const child = node.child(i);
184
+ if (child !== null && child.type === 'storage_class_specifier' && child.text === 'static') {
185
+ return true;
186
+ }
187
+ }
188
+ return false;
189
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scanHeaderFiles = scanHeaderFiles;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ /** C header extensions to scan for in the workspace. */
7
+ const HEADER_EXTENSIONS = new Set(['.h']);
8
+ /**
9
+ * Walk `repoPath` recursively and return relative paths of all `.h` files.
10
+ * Used by `loadResolutionConfig` so the C resolver can resolve `#include`
11
+ * targets that live in `.h` files (classified as C++ by language detection
12
+ * but importable from `.c` files).
13
+ */
14
+ function scanHeaderFiles(repoPath) {
15
+ const headers = new Set();
16
+ walk(repoPath, repoPath, headers);
17
+ return headers;
18
+ }
19
+ function walk(dir, root, out) {
20
+ let entries;
21
+ try {
22
+ entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true, encoding: 'utf8' });
23
+ }
24
+ catch {
25
+ return; // permission denied, etc.
26
+ }
27
+ for (const entry of entries) {
28
+ const name = entry.name;
29
+ const full = (0, path_1.join)(dir, name);
30
+ if (entry.isDirectory()) {
31
+ // Skip common non-source directories and build output dirs.
32
+ // Build dirs (dist, build, out, target, _build, .next, cmake-build-*)
33
+ // may contain generated headers that shadow source headers.
34
+ if (name === 'node_modules' ||
35
+ name === '.git' ||
36
+ name === 'vendor' ||
37
+ name === 'dist' ||
38
+ name === 'build' ||
39
+ name === 'out' ||
40
+ name === 'target' ||
41
+ name === '_build' ||
42
+ name === '.next' ||
43
+ name.startsWith('cmake-build')) {
44
+ continue;
45
+ }
46
+ walk(full, root, out);
47
+ }
48
+ else if (entry.isFile()) {
49
+ const ext = name.slice(name.lastIndexOf('.'));
50
+ if (HEADER_EXTENSIONS.has(ext)) {
51
+ // Normalize to forward slashes for cross-platform consistency.
52
+ // path.relative() returns backslash-separated paths on Windows,
53
+ // but the scope-resolution pipeline uses forward slashes uniformly.
54
+ out.add((0, path_1.relative)(root, full).replace(/\\/g, '/'));
55
+ }
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitCInclude = splitCInclude;
4
+ const ast_helpers_js_1 = require("../../utils/ast-helpers.js");
5
+ /**
6
+ * Decompose a `preproc_include` node into a CaptureMatch with structured
7
+ * import captures. C #include maps to a wildcard import (all symbols
8
+ * from the header are visible).
9
+ *
10
+ * Only literal include paths are emitted as import sources:
11
+ * #include <stdio.h> → system_lib_string
12
+ * #include "local.h" → string_literal
13
+ * A computed include like `#include HEADER_MACRO` carries an `identifier`
14
+ * path node (the macro name, not a header path). Emitting it as an import
15
+ * source produces a garbage literal edge, so we skip it entirely — matching
16
+ * the convention in interpretCImport, which drops imports with no resolvable
17
+ * source (issue #1919 F5).
18
+ */
19
+ function splitCInclude(node) {
20
+ // node.type === 'preproc_include'
21
+ // path field: (string_literal (string_content)) | (system_lib_string)
22
+ // | (identifier) ← computed macro include, NOT a header path
23
+ const pathNode = node.childForFieldName?.('path') ?? null;
24
+ if (pathNode === null) {
25
+ // Fallback: scan children
26
+ for (let i = 0; i < node.childCount; i++) {
27
+ const child = node.child(i);
28
+ if (child === null)
29
+ continue;
30
+ if (child.type === 'string_literal' || child.type === 'system_lib_string') {
31
+ return buildIncludeCapture(node, child);
32
+ }
33
+ }
34
+ return null;
35
+ }
36
+ return buildIncludeCapture(node, pathNode);
37
+ }
38
+ function buildIncludeCapture(node, pathNode) {
39
+ // Skip computed includes (`#include MACRO`) — the path is an `identifier`,
40
+ // not a literal header path. Emitting it would create a garbage import.
41
+ if (pathNode.type !== 'string_literal' && pathNode.type !== 'system_lib_string') {
42
+ return null;
43
+ }
44
+ let raw;
45
+ if (pathNode.type === 'string_literal') {
46
+ // string_literal has children: `"`, string_content, `"`
47
+ // Use namedChildren to find the string_content node
48
+ const content = pathNode.namedChildren.find((c) => c.type === 'string_content');
49
+ raw = content?.text ?? pathNode.text.replace(/^"|"$/g, '');
50
+ }
51
+ else {
52
+ // system_lib_string: <stdio.h> → strip angle brackets
53
+ raw = pathNode.text;
54
+ if (raw.startsWith('<') && raw.endsWith('>')) {
55
+ raw = raw.slice(1, -1);
56
+ }
57
+ }
58
+ const isSystem = pathNode.type === 'system_lib_string';
59
+ const result = {
60
+ '@import.statement': (0, ast_helpers_js_1.nodeToCapture)('@import.statement', node),
61
+ '@import.kind': (0, ast_helpers_js_1.syntheticCapture)('@import.kind', node, 'wildcard'),
62
+ '@import.source': (0, ast_helpers_js_1.syntheticCapture)('@import.source', node, raw),
63
+ };
64
+ if (isSystem) {
65
+ result['@import.system'] = (0, ast_helpers_js_1.syntheticCapture)('@import.system', node, 'true');
66
+ }
67
+ return result;
68
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveCImportTarget = resolveCImportTarget;
4
+ const path_1 = require("path");
5
+ /**
6
+ * Per-pass memo: workspace paths bucketed by basename (last path segment),
7
+ * keyed on the `allFilePaths` set identity.
8
+ *
9
+ * `resolveCImportTarget` is called once per (quoted) C/C++ `#include` with the
10
+ * same `allFilePaths` set per pass (the augmented set is itself memoized in
11
+ * the C resolver). The old suffix-match fallback scanned ALL workspace paths
12
+ * per include — with a per-element `.replace`/`.split` and no early exit
13
+ * (the fewest-path-components tie-break forces a full scan) — i.e.
14
+ * O(R_suffix × (F+H)). A path can satisfy `endsWith('/'+target)` (or equal
15
+ * the target) ONLY IF its basename equals the target's last segment, so we
16
+ * pre-bucket by basename once (O(F+H), `normalized`/`depth` precomputed) and
17
+ * the fallback inspects a single small bucket → O(F+H) build + ~O(1)/include.
18
+ * `WeakMap`-keyed so it is reclaimed with the pass (no cross-pass staleness).
19
+ * Shared by C and C++ (`resolveCppImportTarget` delegates here).
20
+ */
21
+ const suffixIndexByPaths = new WeakMap();
22
+ function suffixIndex(allFilePaths) {
23
+ let index = suffixIndexByPaths.get(allFilePaths);
24
+ if (index === undefined) {
25
+ index = new Map();
26
+ for (const original of allFilePaths) {
27
+ const normalized = original.replace(/\\/g, '/');
28
+ const basename = normalized.slice(normalized.lastIndexOf('/') + 1);
29
+ let bucket = index.get(basename);
30
+ if (bucket === undefined) {
31
+ bucket = [];
32
+ index.set(basename, bucket);
33
+ }
34
+ bucket.push({ original, normalized, depth: normalized.split('/').length });
35
+ }
36
+ suffixIndexByPaths.set(allFilePaths, index);
37
+ }
38
+ return index;
39
+ }
40
+ /**
41
+ * Resolve a C #include path to a file in the workspace.
42
+ *
43
+ * Strategy:
44
+ * 1. Check for a same-directory sibling relative to the including file
45
+ * (matches C compiler `#include "…"` relative-lookup semantics).
46
+ * 2. Check for an exact match (path as-is in the workspace).
47
+ * 3. Fall back to suffix matching against all workspace file paths.
48
+ * Tie-breaking: prefer the match with the fewest path components
49
+ * (closest to root). On equal depth, break ties lexicographically
50
+ * by normalized path to ensure deterministic resolution regardless
51
+ * of filesystem iteration order.
52
+ */
53
+ function resolveCImportTarget(targetRaw, fromFile, allFilePaths) {
54
+ if (!targetRaw)
55
+ return null;
56
+ const normalizedTarget = targetRaw.replace(/\\/g, '/');
57
+ // Same-directory sibling first: mirrors the C compiler's #include "…"
58
+ // relative-lookup semantics where the directory of the including
59
+ // file is searched before the include-path list.
60
+ if (fromFile) {
61
+ const siblingRaw = (0, path_1.join)((0, path_1.dirname)(fromFile), targetRaw);
62
+ const sibling = siblingRaw.replace(/\\/g, '/');
63
+ if (allFilePaths.has(sibling))
64
+ return sibling;
65
+ // When targetRaw contains backslashes, the normalized form may
66
+ // resolve to a different sibling path — try it as well.
67
+ if (targetRaw !== normalizedTarget) {
68
+ const siblingAlt = (0, path_1.join)((0, path_1.dirname)(fromFile), normalizedTarget);
69
+ const siblingAltNorm = siblingAlt.replace(/\\/g, '/');
70
+ if (allFilePaths.has(siblingAltNorm))
71
+ return siblingAltNorm;
72
+ }
73
+ }
74
+ // Exact match (path as-is in the workspace)
75
+ if (allFilePaths.has(normalizedTarget))
76
+ return normalizedTarget;
77
+ // Suffix match: find files ending with /targetRaw or equal to targetRaw.
78
+ // A path can only match `=== normalizedTarget` or `endsWith('/'+target)` if
79
+ // its basename equals the target's last segment, so we inspect only that
80
+ // basename bucket (built once per pass) instead of scanning every workspace
81
+ // path. Match condition + tie-break (fewest path components, then
82
+ // lexicographic on the normalized path) are byte-identical to the prior scan.
83
+ const suffix = '/' + normalizedTarget;
84
+ const targetBasename = normalizedTarget.slice(normalizedTarget.lastIndexOf('/') + 1);
85
+ const bucket = suffixIndex(allFilePaths).get(targetBasename);
86
+ if (bucket === undefined)
87
+ return null;
88
+ let bestMatch = null;
89
+ let bestDepth = Infinity;
90
+ let bestNormalized = '';
91
+ for (const cand of bucket) {
92
+ if (cand.normalized === normalizedTarget || cand.normalized.endsWith(suffix)) {
93
+ // Prefer shortest path (closest match)
94
+ if (cand.depth < bestDepth ||
95
+ (cand.depth === bestDepth && cand.normalized < bestNormalized)) {
96
+ bestDepth = cand.depth;
97
+ bestMatch = cand.original;
98
+ bestNormalized = cand.normalized;
99
+ }
100
+ }
101
+ }
102
+ return bestMatch;
103
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyCStaticLinkageSideChannel = exports.collectCStaticLinkageSideChannel = exports.getStaticNamesForFile = exports.expandCWildcardNames = exports.clearStaticNames = exports.isStaticName = exports.markStaticName = exports.resolveCImportTarget = exports.cReceiverBinding = exports.cImportOwningScope = exports.cBindingScopeFor = exports.cMergeBindings = exports.cArityCompatibility = exports.splitCInclude = exports.normalizeCTypeName = exports.interpretCTypeBinding = exports.interpretCImport = exports.emitCScopeCaptures = void 0;
4
+ /**
5
+ * C scope-resolution hooks (RFC #909 Ring 3).
6
+ */
7
+ var captures_js_1 = require("./captures.js");
8
+ Object.defineProperty(exports, "emitCScopeCaptures", { enumerable: true, get: function () { return captures_js_1.emitCScopeCaptures; } });
9
+ var interpret_js_1 = require("./interpret.js");
10
+ Object.defineProperty(exports, "interpretCImport", { enumerable: true, get: function () { return interpret_js_1.interpretCImport; } });
11
+ Object.defineProperty(exports, "interpretCTypeBinding", { enumerable: true, get: function () { return interpret_js_1.interpretCTypeBinding; } });
12
+ Object.defineProperty(exports, "normalizeCTypeName", { enumerable: true, get: function () { return interpret_js_1.normalizeCTypeName; } });
13
+ var import_decomposer_js_1 = require("./import-decomposer.js");
14
+ Object.defineProperty(exports, "splitCInclude", { enumerable: true, get: function () { return import_decomposer_js_1.splitCInclude; } });
15
+ var arity_js_1 = require("./arity.js");
16
+ Object.defineProperty(exports, "cArityCompatibility", { enumerable: true, get: function () { return arity_js_1.cArityCompatibility; } });
17
+ var merge_bindings_js_1 = require("./merge-bindings.js");
18
+ Object.defineProperty(exports, "cMergeBindings", { enumerable: true, get: function () { return merge_bindings_js_1.cMergeBindings; } });
19
+ var simple_hooks_js_1 = require("./simple-hooks.js");
20
+ Object.defineProperty(exports, "cBindingScopeFor", { enumerable: true, get: function () { return simple_hooks_js_1.cBindingScopeFor; } });
21
+ Object.defineProperty(exports, "cImportOwningScope", { enumerable: true, get: function () { return simple_hooks_js_1.cImportOwningScope; } });
22
+ Object.defineProperty(exports, "cReceiverBinding", { enumerable: true, get: function () { return simple_hooks_js_1.cReceiverBinding; } });
23
+ var import_target_js_1 = require("./import-target.js");
24
+ Object.defineProperty(exports, "resolveCImportTarget", { enumerable: true, get: function () { return import_target_js_1.resolveCImportTarget; } });
25
+ var static_linkage_js_1 = require("./static-linkage.js");
26
+ Object.defineProperty(exports, "markStaticName", { enumerable: true, get: function () { return static_linkage_js_1.markStaticName; } });
27
+ Object.defineProperty(exports, "isStaticName", { enumerable: true, get: function () { return static_linkage_js_1.isStaticName; } });
28
+ Object.defineProperty(exports, "clearStaticNames", { enumerable: true, get: function () { return static_linkage_js_1.clearStaticNames; } });
29
+ Object.defineProperty(exports, "expandCWildcardNames", { enumerable: true, get: function () { return static_linkage_js_1.expandCWildcardNames; } });
30
+ Object.defineProperty(exports, "getStaticNamesForFile", { enumerable: true, get: function () { return static_linkage_js_1.getStaticNamesForFile; } });
31
+ var capture_side_channel_js_1 = require("./capture-side-channel.js");
32
+ Object.defineProperty(exports, "collectCStaticLinkageSideChannel", { enumerable: true, get: function () { return capture_side_channel_js_1.collectCStaticLinkageSideChannel; } });
33
+ Object.defineProperty(exports, "applyCStaticLinkageSideChannel", { enumerable: true, get: function () { return capture_side_channel_js_1.applyCStaticLinkageSideChannel; } });