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.
- package/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- 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
|
+
}
|