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,441 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Spring route annotation extractor for the ingestion pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Extracts `@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping`,
|
|
6
|
+
* `@PatchMapping`, and `@RequestMapping` annotations from Java source files
|
|
7
|
+
* and returns `ExtractedDecoratorRoute[]` with class-level `@RequestMapping`
|
|
8
|
+
* prefixes already resolved per-class.
|
|
9
|
+
*
|
|
10
|
+
* This module is the ingestion-layer counterpart of
|
|
11
|
+
* `group/extractors/http-patterns/java.ts` (which extracts HTTP contracts
|
|
12
|
+
* for cross-repo matching). It uses the same tree-sitter capture approach:
|
|
13
|
+
* a single predicate-free query matches all route annotations generically,
|
|
14
|
+
* then a for-loop discriminates class-level prefixes from method-level routes
|
|
15
|
+
* by reading `@node.type` and the annotation name.
|
|
16
|
+
*
|
|
17
|
+
* The query is predicate-free to avoid the tree-sitter 0.21.x hazard where
|
|
18
|
+
* `#match?` / `#eq?` predicates in a top-level `[...]` alternation silently
|
|
19
|
+
* drop sibling-branch matches (see group-layer `JAVA_ROUTE_ANNOTATION_PATTERNS`
|
|
20
|
+
* header comment for details).
|
|
21
|
+
*/
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.extractSpringRoutes = extractSpringRoutes;
|
|
27
|
+
exports.extractSpringTypes = extractSpringTypes;
|
|
28
|
+
const tree_sitter_1 = __importDefault(require("tree-sitter"));
|
|
29
|
+
const tree_sitter_java_1 = __importDefault(require("tree-sitter-java"));
|
|
30
|
+
const spring_shared_js_1 = require("./spring-shared.js");
|
|
31
|
+
/**
|
|
32
|
+
* Single predicate-free tree-sitter query that captures all route annotations
|
|
33
|
+
* on classes and methods. Discrimination by annotation name and node type
|
|
34
|
+
* happens in the loop below.
|
|
35
|
+
*
|
|
36
|
+
* Captures:
|
|
37
|
+
* @ann → annotation name identifier (RequestMapping, GetMapping, etc.)
|
|
38
|
+
* @node → enclosing declaration (class_declaration | method_declaration)
|
|
39
|
+
* @value → the string-literal argument
|
|
40
|
+
* @key → the named-argument member key (absent for positional form)
|
|
41
|
+
*
|
|
42
|
+
* Method-level routes accept both the bare string form `@GetMapping("/x")` and
|
|
43
|
+
* the array form `@GetMapping({"/a","/b"})` (positional or `path =`/`value =`):
|
|
44
|
+
* a multi-element array yields one match per element, so the Phase 2 loop emits
|
|
45
|
+
* one route per path with no special-casing. This mirrors the group-layer
|
|
46
|
+
* `java.ts` query so the two Spring extractors stay in parity (#2138 follow-up;
|
|
47
|
+
* the divergence here was the root of the #2265 array-form gap). The class-level
|
|
48
|
+
* `@RequestMapping` branches also match the array form, but only to *detect* it:
|
|
49
|
+
* an array-form class prefix can't be resolved to a single string, so Phase 2
|
|
50
|
+
* suppresses that class's method-level array routes rather than emit them with a
|
|
51
|
+
* dropped prefix (a wrong route). Full class-array cross-product support is left
|
|
52
|
+
* to a follow-up (#2280).
|
|
53
|
+
*/
|
|
54
|
+
const ROUTE_ANNOTATION_QUERY = new tree_sitter_1.default.Query(tree_sitter_java_1.default, `
|
|
55
|
+
[
|
|
56
|
+
(class_declaration
|
|
57
|
+
(modifiers
|
|
58
|
+
(annotation
|
|
59
|
+
name: [(identifier) (scoped_identifier)] @ann
|
|
60
|
+
arguments: (annotation_argument_list
|
|
61
|
+
[(string_literal) @value
|
|
62
|
+
(element_value_array_initializer (string_literal) @value)])))) @node
|
|
63
|
+
(class_declaration
|
|
64
|
+
(modifiers
|
|
65
|
+
(annotation
|
|
66
|
+
name: [(identifier) (scoped_identifier)] @ann
|
|
67
|
+
arguments: (annotation_argument_list
|
|
68
|
+
(element_value_pair
|
|
69
|
+
key: (identifier) @key
|
|
70
|
+
value: [(string_literal) @value
|
|
71
|
+
(element_value_array_initializer (string_literal) @value)]))))) @node
|
|
72
|
+
(method_declaration
|
|
73
|
+
(modifiers
|
|
74
|
+
(annotation
|
|
75
|
+
name: [(identifier) (scoped_identifier)] @ann
|
|
76
|
+
arguments: (annotation_argument_list
|
|
77
|
+
[(string_literal) @value
|
|
78
|
+
(element_value_array_initializer (string_literal) @value)])))) @node
|
|
79
|
+
(method_declaration
|
|
80
|
+
(modifiers
|
|
81
|
+
(annotation
|
|
82
|
+
name: [(identifier) (scoped_identifier)] @ann
|
|
83
|
+
arguments: (annotation_argument_list
|
|
84
|
+
(element_value_pair
|
|
85
|
+
key: (identifier) @key
|
|
86
|
+
value: [(string_literal) @value
|
|
87
|
+
(element_value_array_initializer (string_literal) @value)]))))) @node
|
|
88
|
+
]
|
|
89
|
+
`);
|
|
90
|
+
/**
|
|
91
|
+
* Extract Spring route annotations from a parsed Java file.
|
|
92
|
+
*
|
|
93
|
+
* Uses a single tree-sitter query pass to capture all annotations, then
|
|
94
|
+
* discriminates class-level prefixes from method-level routes in a loop.
|
|
95
|
+
* Handles multiple classes per file, each with its own prefix.
|
|
96
|
+
*
|
|
97
|
+
* @param tree - tree-sitter parse tree
|
|
98
|
+
* @param filePath - relative file path (for `ExtractedDecoratorRoute.filePath`)
|
|
99
|
+
* @param lineOffset - line offset for pre-processing (usually 0)
|
|
100
|
+
* @returns Decorator routes with prefix already set per-class
|
|
101
|
+
*/
|
|
102
|
+
function extractSpringRoutes(tree, filePath, lineOffset = 0) {
|
|
103
|
+
const matches = ROUTE_ANNOTATION_QUERY.matches(tree.rootNode);
|
|
104
|
+
// Phase 1: collect class-level @RequestMapping prefixes keyed by node id.
|
|
105
|
+
// A scalar prefix (`@RequestMapping("/base")`) is stored in prefixByClassId.
|
|
106
|
+
// A class whose @RequestMapping uses the array form (`@RequestMapping({...})`)
|
|
107
|
+
// is instead recorded in classesWithArrayPrefix: there is no single prefix to
|
|
108
|
+
// store, and Phase 2 uses this to suppress that class's method-level array
|
|
109
|
+
// routes rather than emit them unprefixed (a wrong route — see #2280). Full
|
|
110
|
+
// class-array cross-product support is out of scope here.
|
|
111
|
+
const prefixByClassId = new Map();
|
|
112
|
+
const classesWithArrayPrefix = new Set();
|
|
113
|
+
const classHttpMethodsById = new Map();
|
|
114
|
+
for (const match of TYPE_DECLARATION_QUERY.matches(tree.rootNode)) {
|
|
115
|
+
const typeNode = match.captures.find((capture) => capture.name === 'type')?.node;
|
|
116
|
+
if (typeNode?.type === 'class_declaration') {
|
|
117
|
+
classHttpMethodsById.set(typeNode.id, typeRequestMethods(typeNode));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
for (const match of matches) {
|
|
121
|
+
const caps = {};
|
|
122
|
+
for (const { name, node } of match.captures) {
|
|
123
|
+
caps[name] = node;
|
|
124
|
+
}
|
|
125
|
+
const annNode = caps['ann'];
|
|
126
|
+
const node = caps['node'];
|
|
127
|
+
const valueNode = caps['value'];
|
|
128
|
+
const keyNode = caps['key'];
|
|
129
|
+
if (!annNode || !node || !valueNode)
|
|
130
|
+
continue;
|
|
131
|
+
const capturedAnnotationName = annNode.text.split('.').pop() ?? annNode.text;
|
|
132
|
+
if (node.type === 'class_declaration' && capturedAnnotationName === 'RequestMapping') {
|
|
133
|
+
if (!(0, spring_shared_js_1.isRouteMemberKey)(keyNode))
|
|
134
|
+
continue;
|
|
135
|
+
if (valueNode.parent?.type === 'element_value_array_initializer') {
|
|
136
|
+
classesWithArrayPrefix.add(node.id);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const prefix = (0, spring_shared_js_1.unquoteSpringLiteral)(valueNode.text);
|
|
140
|
+
if (prefix !== null)
|
|
141
|
+
prefixByClassId.set(node.id, prefix);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Phase 2: collect method-level routes and resolve their class prefix
|
|
145
|
+
const routes = [];
|
|
146
|
+
const httpMethodsByAnnotationId = new Map();
|
|
147
|
+
for (const match of matches) {
|
|
148
|
+
const caps = {};
|
|
149
|
+
for (const { name, node } of match.captures) {
|
|
150
|
+
caps[name] = node;
|
|
151
|
+
}
|
|
152
|
+
const annNode = caps['ann'];
|
|
153
|
+
const node = caps['node'];
|
|
154
|
+
const valueNode = caps['value'];
|
|
155
|
+
const keyNode = caps['key'];
|
|
156
|
+
if (!annNode || !node || !valueNode)
|
|
157
|
+
continue;
|
|
158
|
+
if (node.type !== 'method_declaration')
|
|
159
|
+
continue;
|
|
160
|
+
const ann = annNode.text.split('.').pop() ?? annNode.text;
|
|
161
|
+
const annotationNode = annNode.parent;
|
|
162
|
+
if (!annotationNode)
|
|
163
|
+
continue;
|
|
164
|
+
let methodMethods = httpMethodsByAnnotationId.get(annotationNode.id);
|
|
165
|
+
if (!methodMethods) {
|
|
166
|
+
methodMethods = (0, spring_shared_js_1.springAnnotationHttpMethods)(ann, annotationNode.text);
|
|
167
|
+
httpMethodsByAnnotationId.set(annotationNode.id, methodMethods);
|
|
168
|
+
}
|
|
169
|
+
if (methodMethods.length === 0)
|
|
170
|
+
continue;
|
|
171
|
+
if (!(0, spring_shared_js_1.isRouteMemberKey)(keyNode))
|
|
172
|
+
continue;
|
|
173
|
+
const routePath = (0, spring_shared_js_1.unquoteSpringLiteral)(valueNode.text);
|
|
174
|
+
if (routePath === null)
|
|
175
|
+
continue;
|
|
176
|
+
const enclosingType = (0, spring_shared_js_1.findEnclosingType)(node);
|
|
177
|
+
// Interface-declared `@*Mapping`s are not concrete routes on their own — the
|
|
178
|
+
// implementing controller inherits them. Skip here; the cross-file
|
|
179
|
+
// inheritance pass (#2288) re-emits them attributed to the controller, with
|
|
180
|
+
// both the interface's and the controller's class prefixes resolved. Emitting
|
|
181
|
+
// the interface route directly would be wrong (unprefixed, wrong owner).
|
|
182
|
+
if (enclosingType?.kind === 'interface')
|
|
183
|
+
continue;
|
|
184
|
+
const enclosingClass = enclosingType?.kind === 'class' ? enclosingType.node : null;
|
|
185
|
+
const httpMethods = (0, spring_shared_js_1.intersectSpringHttpMethods)(enclosingClass ? (classHttpMethodsById.get(enclosingClass.id) ?? ['*']) : ['*'], methodMethods);
|
|
186
|
+
if (httpMethods.length === 0)
|
|
187
|
+
continue;
|
|
188
|
+
// Suppress a method-level *array-form* route nested under a class-level
|
|
189
|
+
// array-form @RequestMapping. The class prefix is one of several values that
|
|
190
|
+
// cannot be resolved to a single string here, so emitting the route would
|
|
191
|
+
// drop the prefix and yield a wrong unprefixed Route (a false signal, worse
|
|
192
|
+
// than a missing one). Skipping keeps ingestion a strict subset of the group
|
|
193
|
+
// scan — safe under routeCoverage:'partial'. Full class-array cross-product
|
|
194
|
+
// support is tracked in #2280. (Scalar method paths under an array class
|
|
195
|
+
// prefix are left unchanged: that pre-existing divergence is out of scope.)
|
|
196
|
+
const isArrayElement = valueNode.parent?.type === 'element_value_array_initializer';
|
|
197
|
+
if (isArrayElement && enclosingClass && classesWithArrayPrefix.has(enclosingClass.id)) {
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
const classPrefix = enclosingClass ? (prefixByClassId.get(enclosingClass.id) ?? '') : '';
|
|
201
|
+
// `node` is the annotated `method_declaration`; its name field is the
|
|
202
|
+
// handler method name (resolved to a symbol UID later by the routes phase).
|
|
203
|
+
const handlerName = node.childForFieldName('name')?.text;
|
|
204
|
+
for (const httpMethod of httpMethods) {
|
|
205
|
+
routes.push({
|
|
206
|
+
filePath,
|
|
207
|
+
routePath,
|
|
208
|
+
httpMethod,
|
|
209
|
+
decoratorName: ann,
|
|
210
|
+
lineNumber: annNode.startPosition.row + lineOffset,
|
|
211
|
+
...(classPrefix ? { prefix: classPrefix } : {}),
|
|
212
|
+
...(handlerName ? { handlerName } : {}),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// Mapping annotations without a path bind to the enclosing class prefix.
|
|
217
|
+
for (const match of TYPE_DECLARATION_QUERY.matches(tree.rootNode)) {
|
|
218
|
+
const typeNode = match.captures.find((capture) => capture.name === 'type')?.node;
|
|
219
|
+
if (typeNode?.type !== 'class_declaration')
|
|
220
|
+
continue;
|
|
221
|
+
const classPrefix = prefixByClassId.get(typeNode.id) ?? '';
|
|
222
|
+
const classMethods = classHttpMethodsById.get(typeNode.id) ?? ['*'];
|
|
223
|
+
for (const methodNode of directMethods(typeNode)) {
|
|
224
|
+
const handlerName = methodNode.childForFieldName('name')?.text;
|
|
225
|
+
if (!handlerName)
|
|
226
|
+
continue;
|
|
227
|
+
for (const annotationNode of declarationAnnotations(methodNode)) {
|
|
228
|
+
const ann = annotationName(annotationNode) ?? '';
|
|
229
|
+
if (annotationHasRouteMember(annotationNode))
|
|
230
|
+
continue;
|
|
231
|
+
const methodMethods = (0, spring_shared_js_1.springAnnotationHttpMethods)(ann, annotationNode.text);
|
|
232
|
+
const httpMethods = (0, spring_shared_js_1.intersectSpringHttpMethods)(classMethods, methodMethods);
|
|
233
|
+
if (httpMethods.length === 0)
|
|
234
|
+
continue;
|
|
235
|
+
for (const httpMethod of httpMethods) {
|
|
236
|
+
routes.push({
|
|
237
|
+
filePath,
|
|
238
|
+
routePath: '',
|
|
239
|
+
httpMethod,
|
|
240
|
+
decoratorName: ann,
|
|
241
|
+
lineNumber: annotationNode.startPosition.row + lineOffset,
|
|
242
|
+
...(classPrefix ? { prefix: classPrefix } : {}),
|
|
243
|
+
handlerName,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return routes;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Tree-sitter query capturing every Java type declaration (class + interface),
|
|
253
|
+
* used by `extractSpringTypes` to build the project-wide `SharedSpringType`
|
|
254
|
+
* view the cross-file interface-inheritance pass consumes (#2288).
|
|
255
|
+
*/
|
|
256
|
+
const TYPE_DECLARATION_QUERY = new tree_sitter_1.default.Query(tree_sitter_java_1.default, `[(class_declaration) @type (interface_declaration) @type]`);
|
|
257
|
+
/** Direct annotations on a type/method declaration (reads its `modifiers` child). */
|
|
258
|
+
function declarationAnnotations(node) {
|
|
259
|
+
// `modifiers` is a NAMED CHILD of the declaration (not a named field) in
|
|
260
|
+
// tree-sitter-java — matching the group layer's `hasAnnotation`.
|
|
261
|
+
const modifiers = node.namedChildren.find((c) => c.type === 'modifiers');
|
|
262
|
+
if (!modifiers)
|
|
263
|
+
return [];
|
|
264
|
+
return modifiers.namedChildren.filter((c) => c.type === 'annotation' || c.type === 'marker_annotation');
|
|
265
|
+
}
|
|
266
|
+
const annotationName = (ann) => {
|
|
267
|
+
// Trailing segment of a possibly fully-qualified annotation name
|
|
268
|
+
// (`org.springframework.web.bind.annotation.GetMapping` → `GetMapping`), so a
|
|
269
|
+
// FQN annotation is classified the same as its simple form — matching the
|
|
270
|
+
// group layer's `simpleName` normalization. A simple name maps to itself.
|
|
271
|
+
const text = ann.childForFieldName('name')?.text;
|
|
272
|
+
return text?.split('.').pop() ?? text;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Collect the route path(s) carried by an annotation's argument list, honoring
|
|
276
|
+
* both positional and `path =`/`value =` named arguments and both the bare
|
|
277
|
+
* string and array forms. Non-route named args (`consumes`, `produces`, …) are
|
|
278
|
+
* dropped via `isRouteMemberKey`. Returns one entry per string element.
|
|
279
|
+
*/
|
|
280
|
+
function annotationRoutePaths(ann) {
|
|
281
|
+
const args = ann.childForFieldName('arguments');
|
|
282
|
+
if (!args)
|
|
283
|
+
return [];
|
|
284
|
+
const out = [];
|
|
285
|
+
const pushLiteral = (lit) => {
|
|
286
|
+
const v = (0, spring_shared_js_1.unquoteSpringLiteral)(lit.text);
|
|
287
|
+
if (v !== null)
|
|
288
|
+
out.push(v);
|
|
289
|
+
};
|
|
290
|
+
const pushFromValue = (valueNode) => {
|
|
291
|
+
if (valueNode.type === 'string_literal')
|
|
292
|
+
pushLiteral(valueNode);
|
|
293
|
+
else if (valueNode.type === 'element_value_array_initializer') {
|
|
294
|
+
for (const el of valueNode.namedChildren)
|
|
295
|
+
if (el.type === 'string_literal')
|
|
296
|
+
pushLiteral(el);
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
for (const child of args.namedChildren) {
|
|
300
|
+
if (child.type === 'string_literal' || child.type === 'element_value_array_initializer') {
|
|
301
|
+
pushFromValue(child); // positional
|
|
302
|
+
}
|
|
303
|
+
else if (child.type === 'element_value_pair') {
|
|
304
|
+
const key = child.childForFieldName('key');
|
|
305
|
+
if (!(0, spring_shared_js_1.isRouteMemberKey)(key ?? undefined))
|
|
306
|
+
continue;
|
|
307
|
+
const value = child.childForFieldName('value');
|
|
308
|
+
if (value)
|
|
309
|
+
pushFromValue(value);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return out;
|
|
313
|
+
}
|
|
314
|
+
/** Whether an annotation explicitly supplies a positional or path/value member. */
|
|
315
|
+
function annotationHasRouteMember(ann) {
|
|
316
|
+
const args = ann.childForFieldName('arguments');
|
|
317
|
+
if (!args)
|
|
318
|
+
return false;
|
|
319
|
+
for (const child of args.namedChildren) {
|
|
320
|
+
if (child.type !== 'element_value_pair')
|
|
321
|
+
return true;
|
|
322
|
+
const key = child.childForFieldName('key');
|
|
323
|
+
if ((0, spring_shared_js_1.isRouteMemberKey)(key ?? undefined))
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
/** Static class/interface-level RequestMapping method constraint, or wildcard by default. */
|
|
329
|
+
function typeRequestMethods(typeNode) {
|
|
330
|
+
const mappings = declarationAnnotations(typeNode).filter((ann) => annotationName(ann) === 'RequestMapping');
|
|
331
|
+
if (mappings.length === 0)
|
|
332
|
+
return ['*'];
|
|
333
|
+
if (mappings.length !== 1)
|
|
334
|
+
return [];
|
|
335
|
+
return (0, spring_shared_js_1.springAnnotationHttpMethods)('RequestMapping', mappings[0].text);
|
|
336
|
+
}
|
|
337
|
+
function annotationRoutePathsOrDefault(ann) {
|
|
338
|
+
const paths = annotationRoutePaths(ann);
|
|
339
|
+
if (paths.length > 0)
|
|
340
|
+
return paths;
|
|
341
|
+
return annotationHasRouteMember(ann) ? [] : [''];
|
|
342
|
+
}
|
|
343
|
+
/** Class-level `@RequestMapping` prefixes for a type (array-aware; may be []). */
|
|
344
|
+
function typeClassPrefixes(typeNode) {
|
|
345
|
+
const prefixes = [];
|
|
346
|
+
for (const ann of declarationAnnotations(typeNode)) {
|
|
347
|
+
if (annotationName(ann) === 'RequestMapping')
|
|
348
|
+
prefixes.push(...annotationRoutePaths(ann));
|
|
349
|
+
}
|
|
350
|
+
return prefixes;
|
|
351
|
+
}
|
|
352
|
+
/** The simple names of the interfaces a class declares via `implements`. */
|
|
353
|
+
function implementedInterfaceNames(typeNode) {
|
|
354
|
+
const interfacesNode = typeNode.childForFieldName('interfaces');
|
|
355
|
+
if (!interfacesNode)
|
|
356
|
+
return [];
|
|
357
|
+
const out = [];
|
|
358
|
+
const visit = (node) => {
|
|
359
|
+
if (node.type === 'type_identifier' || node.type === 'scoped_type_identifier') {
|
|
360
|
+
out.push(node.text.split('.').pop() ?? node.text);
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
for (const child of node.namedChildren)
|
|
364
|
+
visit(child);
|
|
365
|
+
};
|
|
366
|
+
visit(interfacesNode);
|
|
367
|
+
return out;
|
|
368
|
+
}
|
|
369
|
+
/** Direct `method_declaration` children of a type (not methods of nested types). */
|
|
370
|
+
function directMethods(typeNode) {
|
|
371
|
+
const out = [];
|
|
372
|
+
const visit = (node) => {
|
|
373
|
+
for (const child of node.namedChildren) {
|
|
374
|
+
if (child.type === 'method_declaration') {
|
|
375
|
+
out.push(child);
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
// Don't descend into a nested type — its methods aren't this type's.
|
|
379
|
+
if (child !== typeNode &&
|
|
380
|
+
(child.type === 'class_declaration' || child.type === 'interface_declaration')) {
|
|
381
|
+
continue;
|
|
382
|
+
}
|
|
383
|
+
visit(child);
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
visit(typeNode);
|
|
387
|
+
return out;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Build the project-wide `SharedSpringType` view for one Java file: every class
|
|
391
|
+
* and interface with its class prefixes, implemented interfaces, controller
|
|
392
|
+
* flag, and per-method route annotations. The cross-file inheritance pass
|
|
393
|
+
* (#2288) feeds these into the shared `resolveInheritedSpringRoutes` so a
|
|
394
|
+
* concrete controller inherits the `@*Mapping`s declared on its interfaces.
|
|
395
|
+
*
|
|
396
|
+
* This is the ingestion counterpart of the group layer's `collectSpringTypes`
|
|
397
|
+
* (`group/extractors/http-patterns/java.ts`); both produce the same neutral
|
|
398
|
+
* shape so the two layers resolve inheritance identically (#2078 parity).
|
|
399
|
+
*/
|
|
400
|
+
function extractSpringTypes(tree, filePath) {
|
|
401
|
+
const out = [];
|
|
402
|
+
for (const match of TYPE_DECLARATION_QUERY.matches(tree.rootNode)) {
|
|
403
|
+
const typeNode = match.captures.find((c) => c.name === 'type')?.node;
|
|
404
|
+
if (!typeNode)
|
|
405
|
+
continue;
|
|
406
|
+
const name = typeNode.childForFieldName('name')?.text;
|
|
407
|
+
if (!name)
|
|
408
|
+
continue;
|
|
409
|
+
const kind = typeNode.type === 'interface_declaration' ? 'interface' : 'class';
|
|
410
|
+
const annNames = declarationAnnotations(typeNode).map(annotationName);
|
|
411
|
+
const isController = kind === 'class' && (annNames.includes('RestController') || annNames.includes('Controller'));
|
|
412
|
+
const classMethods = typeRequestMethods(typeNode);
|
|
413
|
+
const methods = directMethods(typeNode)
|
|
414
|
+
.map((methodNode) => {
|
|
415
|
+
const methodName = methodNode.childForFieldName('name')?.text;
|
|
416
|
+
if (!methodName)
|
|
417
|
+
return null;
|
|
418
|
+
const routes = [];
|
|
419
|
+
for (const ann of declarationAnnotations(methodNode)) {
|
|
420
|
+
const methodMethods = (0, spring_shared_js_1.springAnnotationHttpMethods)(annotationName(ann) ?? '', ann.text);
|
|
421
|
+
const verbs = (0, spring_shared_js_1.intersectSpringHttpMethods)(classMethods, methodMethods);
|
|
422
|
+
for (const verb of verbs) {
|
|
423
|
+
for (const path of annotationRoutePathsOrDefault(ann))
|
|
424
|
+
routes.push({ method: verb, path });
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
return { name: methodName, routes };
|
|
428
|
+
})
|
|
429
|
+
.filter((m) => m !== null);
|
|
430
|
+
out.push({
|
|
431
|
+
filePath,
|
|
432
|
+
kind,
|
|
433
|
+
name,
|
|
434
|
+
classPrefixes: typeClassPrefixes(typeNode),
|
|
435
|
+
implementedInterfaces: kind === 'class' ? implementedInterfaceNames(typeNode) : [],
|
|
436
|
+
isController,
|
|
437
|
+
methods,
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
return out;
|
|
441
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bridge between a language provider's `emitScopeCaptures` hook and the
|
|
4
|
+
* `ScopeExtractor` (RFC #909 Ring 2 PKG #920).
|
|
5
|
+
*
|
|
6
|
+
* Extracted into its own module so it can be imported by test code
|
|
7
|
+
* without pulling in `parse-worker.ts` — which has a top-level
|
|
8
|
+
* `parentPort!.on('message', ...)` call that assumes a worker-thread
|
|
9
|
+
* context and throws on direct import.
|
|
10
|
+
*
|
|
11
|
+
* The bridge:
|
|
12
|
+
*
|
|
13
|
+
* 1. Short-circuits when the provider has NOT implemented
|
|
14
|
+
* `emitScopeCaptures`. Returns `undefined`; zero work done. This is
|
|
15
|
+
* the state of every language today — `ParsedFile` production stays
|
|
16
|
+
* dormant until a language migrates.
|
|
17
|
+
* 2. Short-circuits empty / whitespace-only files. There is no scope
|
|
18
|
+
* content to extract, and some tree-sitter queries do not match an
|
|
19
|
+
* otherwise valid empty root node.
|
|
20
|
+
* 3. Invokes the hook + feeds its output to `ScopeExtractor.extract`.
|
|
21
|
+
* 4. **Swallows exceptions from either side.** A failure here returns
|
|
22
|
+
* `undefined` and emits a warning via `onWarn`; legacy parsing on
|
|
23
|
+
* the same file continues unaffected by the scope-extraction miss.
|
|
24
|
+
* Scope-based resolution is the new path under construction — it
|
|
25
|
+
* must not destabilize the legacy DAG.
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.extractParsedFile = extractParsedFile;
|
|
29
|
+
const scope_extractor_js_1 = require("./scope-extractor.js");
|
|
30
|
+
const logger_js_1 = require("../logger.js");
|
|
31
|
+
/**
|
|
32
|
+
* Produce a `ParsedFile` for the given file, or `undefined` when the
|
|
33
|
+
* provider hasn't migrated / the extractor throws. Never propagates
|
|
34
|
+
* exceptions.
|
|
35
|
+
*/
|
|
36
|
+
function extractParsedFile(provider, sourceText, filePath, onWarn, cachedTree, sourceKind = 'full-file') {
|
|
37
|
+
if (provider.emitScopeCaptures === undefined)
|
|
38
|
+
return undefined;
|
|
39
|
+
if (sourceText.trim().length === 0)
|
|
40
|
+
return undefined;
|
|
41
|
+
try {
|
|
42
|
+
// A provider that rewrites source before parsing must see the same text
|
|
43
|
+
// here that the parse worker fed tree-sitter, or the two halves of the
|
|
44
|
+
// pipeline analyze different programs. Only the cache-miss path re-parses;
|
|
45
|
+
// with a cached tree the emitter ignores the text. The transform is
|
|
46
|
+
// length-preserving, so every offset still indexes the original.
|
|
47
|
+
const parseText = cachedTree === undefined
|
|
48
|
+
? (provider.preprocessSource?.(sourceText, filePath) ?? sourceText)
|
|
49
|
+
: sourceText;
|
|
50
|
+
const captures = provider.emitScopeCaptures(parseText, filePath, cachedTree, { sourceKind });
|
|
51
|
+
return (0, scope_extractor_js_1.extract)(captures, filePath, provider);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
const message = `scope extraction failed for ${filePath}: ${err instanceof Error ? err.message : String(err)}`;
|
|
55
|
+
if (onWarn !== undefined)
|
|
56
|
+
onWarn(message);
|
|
57
|
+
logger_js_1.logger.warn(message);
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|