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,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Aggregate `receiver-unresolved` resolution outcomes into the small,
|
|
4
|
+
* index-persisted summary that `impact()` / `context()` read to decide whether
|
|
5
|
+
* their result is exact or a lower bound (#2744, the second half of #2708).
|
|
6
|
+
*
|
|
7
|
+
* **Why keyed by member name.** A dropped site's callee is unknown — that is
|
|
8
|
+
* what "unresolved" means — so the drop cannot be attributed to any target
|
|
9
|
+
* symbol. The one thing still known is the member NAME being invoked:
|
|
10
|
+
* `Service(db).do_work()` tells us a call to something called `do_work` was
|
|
11
|
+
* lost even though the receiver's type was not established. That is exactly
|
|
12
|
+
* the granularity the epistemic signal needs: a query about `do_work` can
|
|
13
|
+
* report its caller count as a lower bound, while a query about an unrelated
|
|
14
|
+
* symbol stays exact.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.MAX_UNRESOLVED_RECEIVER_MEMBERS = void 0;
|
|
18
|
+
exports.summarizeUnresolvedReceivers = summarizeUnresolvedReceivers;
|
|
19
|
+
exports.lookupUnresolvedCallCount = lookupUnresolvedCallCount;
|
|
20
|
+
exports.lookupExternalCallCount = lookupExternalCallCount;
|
|
21
|
+
exports.logUnresolvedReceiverFiles = logUnresolvedReceiverFiles;
|
|
22
|
+
const logger_js_1 = require("../../logger.js");
|
|
23
|
+
const utils_js_1 = require("../../../lib/utils.js");
|
|
24
|
+
/** Cap on distinct member names persisted. Well above what a real repo
|
|
25
|
+
* produces (the whole point of the signal is that drops are the exception),
|
|
26
|
+
* but bounded so a pathological repo cannot grow the metadata file without
|
|
27
|
+
* limit. Truncation is reported, never silent — see `truncated`. */
|
|
28
|
+
exports.MAX_UNRESOLVED_RECEIVER_MEMBERS = 500;
|
|
29
|
+
/**
|
|
30
|
+
* Rank a name→count map and cap it at {@link MAX_UNRESOLVED_RECEIVER_MEMBERS}.
|
|
31
|
+
*
|
|
32
|
+
* Highest count first, name as a tiebreak so the persisted map is stable across
|
|
33
|
+
* runs — an unstable ordering would churn the metadata file (and its diff) on
|
|
34
|
+
* every analyze for no behavioural reason. ONE comparator, shared by the
|
|
35
|
+
* in-program and external maps: two hand-copied comparators that must stay
|
|
36
|
+
* identical or the artifact churns on one map and not the other is exactly the
|
|
37
|
+
* drift this contract cannot tolerate.
|
|
38
|
+
*
|
|
39
|
+
* `omitted` is the number of distinct names past the cap, so the caller can
|
|
40
|
+
* report truncation rather than silently losing entries.
|
|
41
|
+
*/
|
|
42
|
+
function rankAndCap(counts, cap = exports.MAX_UNRESOLVED_RECEIVER_MEMBERS) {
|
|
43
|
+
const ranked = [...counts.entries()].sort(
|
|
44
|
+
// `compareCodeUnits`, not `localeCompare` (#2787). The tiebreak feeds the
|
|
45
|
+
// `.slice()` below, so locale-sensitive collation would decide WHICH
|
|
46
|
+
// entries survive the cap, not merely how they are listed — and ICU order
|
|
47
|
+
// varies by platform and ICU build, so two runs over one repo could persist
|
|
48
|
+
// different sets. Key-based lookup is unaffected either way.
|
|
49
|
+
([aName, aCount], [bName, bCount]) => bCount - aCount || (0, utils_js_1.compareCodeUnits)(aName, bName));
|
|
50
|
+
const kept = ranked.slice(0, cap);
|
|
51
|
+
return { kept, omitted: ranked.length - kept.length };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* A `receiver-unresolved` drop at a CALL site.
|
|
55
|
+
*
|
|
56
|
+
* ONE predicate, shared by the persisted summary and the per-file diagnostic —
|
|
57
|
+
* the same contract `rankAndCap` states for its comparator. If the two ever
|
|
58
|
+
* disagreed, the diagnostic would rank a different population than the artifact
|
|
59
|
+
* it exists to explain.
|
|
60
|
+
*
|
|
61
|
+
* Call sites only: Case 0's recorder gates on the receiver's punctuation, not on
|
|
62
|
+
* what the reference IS, so property reads (`d.source.kind`) and writes
|
|
63
|
+
* (`x.argtypes = [...]`) arrive alongside lost method calls — measured at 25 of
|
|
64
|
+
* 124 drops on the fixture corpus. Counting them made the consumer's "N call
|
|
65
|
+
* sites invoking X were dropped" literally false. A missing `siteKind` counts as
|
|
66
|
+
* a call: the only emitter always sets it, and erring toward `lower-bound` is
|
|
67
|
+
* the safe direction for an epistemic signal.
|
|
68
|
+
*
|
|
69
|
+
* Receiver ORIGIN is deliberately NOT decided here — the summary routes external
|
|
70
|
+
* drops into their own bucket while the diagnostic excludes them, and collapsing
|
|
71
|
+
* that choice into this predicate would take it away from both callers.
|
|
72
|
+
*/
|
|
73
|
+
function isUnresolvedReceiverCall(outcome) {
|
|
74
|
+
return (outcome.kind === 'suppressed' &&
|
|
75
|
+
outcome.reason === 'receiver-unresolved' &&
|
|
76
|
+
(outcome.siteKind === undefined || outcome.siteKind === 'call'));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Build the summary, or `undefined` when nothing was dropped — an index with
|
|
80
|
+
* no unresolved receivers stores no key at all, so `epistemic` keeps its
|
|
81
|
+
* existing "exact unless proven otherwise" behaviour for every repo that
|
|
82
|
+
* resolves cleanly.
|
|
83
|
+
*/
|
|
84
|
+
function summarizeUnresolvedReceivers(outcomes) {
|
|
85
|
+
const counts = new Map();
|
|
86
|
+
const externalCounts = new Map();
|
|
87
|
+
let totalSites = 0;
|
|
88
|
+
let externalSites = 0;
|
|
89
|
+
for (const outcome of outcomes) {
|
|
90
|
+
// CALL sites only — see `isUnresolvedReceiverCall`, which the per-file
|
|
91
|
+
// diagnostic shares so the two can never rank different populations.
|
|
92
|
+
if (!isUnresolvedReceiverCall(outcome))
|
|
93
|
+
continue;
|
|
94
|
+
if (outcome.name.length === 0)
|
|
95
|
+
continue;
|
|
96
|
+
// Routed, not discarded. External-rooted drops (`console.log(...)`,
|
|
97
|
+
// `fetch(...)`) reach code this index does not contain, so there is no node
|
|
98
|
+
// an edge could have pointed at and nothing was lost — they must not hedge.
|
|
99
|
+
// But they stay in the artifact under their own key so the split is
|
|
100
|
+
// auditable and reversible.
|
|
101
|
+
//
|
|
102
|
+
// `external` is a POSITIVE determination made by `classifyReceiverOrigin`
|
|
103
|
+
// from a language built-in match, never a fallthrough: a receiver the
|
|
104
|
+
// classifier could not place lands in `unknown`, which counts here WITH
|
|
105
|
+
// `in-program`, because assuming a completeness we cannot demonstrate is
|
|
106
|
+
// the unsafe direction.
|
|
107
|
+
if (outcome.receiverOrigin === 'external') {
|
|
108
|
+
externalSites++;
|
|
109
|
+
externalCounts.set(outcome.name, (externalCounts.get(outcome.name) ?? 0) + 1);
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
totalSites++;
|
|
113
|
+
counts.set(outcome.name, (counts.get(outcome.name) ?? 0) + 1);
|
|
114
|
+
}
|
|
115
|
+
// An index whose only drops were external-rooted still reports the split, so
|
|
116
|
+
// "nothing was lost" is distinguishable from "nothing was measured".
|
|
117
|
+
if (totalSites === 0 && externalSites === 0)
|
|
118
|
+
return undefined;
|
|
119
|
+
const { kept, omitted: omittedNames } = rankAndCap(counts);
|
|
120
|
+
const { kept: externalKept, omitted: externalOmittedNames } = rankAndCap(externalCounts);
|
|
121
|
+
return {
|
|
122
|
+
counts: Object.fromEntries(kept),
|
|
123
|
+
totalSites,
|
|
124
|
+
...(omittedNames > 0 ? { omittedNames } : {}),
|
|
125
|
+
...(externalSites > 0
|
|
126
|
+
? {
|
|
127
|
+
externalCounts: Object.fromEntries(externalKept),
|
|
128
|
+
externalSites,
|
|
129
|
+
...(externalOmittedNames > 0 ? { externalOmittedNames } : {}),
|
|
130
|
+
}
|
|
131
|
+
: {}),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Look up the dropped-CALL count for a member name.
|
|
136
|
+
*
|
|
137
|
+
* THE one place that reads `UnresolvedReceiverSummary.counts`. The map is
|
|
138
|
+
* revived from JSON, so it carries `Object.prototype`: a bare
|
|
139
|
+
* `counts[symName]` returns a FUNCTION for `constructor`, `toString`,
|
|
140
|
+
* `valueOf`, `hasOwnProperty` and friends, and a `<= 0` guard does not catch it
|
|
141
|
+
* because `Number(fn)` is `NaN` and `NaN <= 0` is false. `constructor` is an
|
|
142
|
+
* ordinary member name in a code graph, so that was reachable in normal use and
|
|
143
|
+
* interpolated a function into user-facing text.
|
|
144
|
+
*
|
|
145
|
+
* Returns `undefined` when the name was never recorded, and only ever returns a
|
|
146
|
+
* finite positive number otherwise.
|
|
147
|
+
*/
|
|
148
|
+
function lookupUnresolvedCallCount(summary, symName) {
|
|
149
|
+
const counts = summary?.counts;
|
|
150
|
+
if (counts === undefined || symName.length === 0)
|
|
151
|
+
return undefined;
|
|
152
|
+
if (!Object.hasOwn(counts, symName))
|
|
153
|
+
return undefined;
|
|
154
|
+
const sites = counts[symName];
|
|
155
|
+
if (typeof sites !== 'number' || !Number.isFinite(sites) || sites <= 0)
|
|
156
|
+
return undefined;
|
|
157
|
+
return sites;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Look up the EXTERNAL-rooted dropped-call count for a member name.
|
|
161
|
+
*
|
|
162
|
+
* Companion to `lookupUnresolvedCallCount`, and prototype-safe for the same
|
|
163
|
+
* reason: the map is revived from JSON, so `constructor` / `toString` and
|
|
164
|
+
* friends would otherwise return a function.
|
|
165
|
+
*/
|
|
166
|
+
function lookupExternalCallCount(summary, symName) {
|
|
167
|
+
const counts = summary?.externalCounts;
|
|
168
|
+
if (counts === undefined || symName.length === 0)
|
|
169
|
+
return undefined;
|
|
170
|
+
if (!Object.hasOwn(counts, symName))
|
|
171
|
+
return undefined;
|
|
172
|
+
const sites = counts[symName];
|
|
173
|
+
if (typeof sites !== 'number' || !Number.isFinite(sites) || sites <= 0)
|
|
174
|
+
return undefined;
|
|
175
|
+
return sites;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Opt-in, following the repo's established diagnostic pattern
|
|
179
|
+
* (`createLogger(name, { debugEnvVar })`). Every repository in every language
|
|
180
|
+
* drops SOME receivers, so emitting this at `info` unconditionally would add a
|
|
181
|
+
* line to every analyze anyone ever runs — the noise ADV-6 flagged. #2837's
|
|
182
|
+
* reporter turns it on deliberately:
|
|
183
|
+
*
|
|
184
|
+
* CGRAPH_DEBUG_RECEIVER_DROPS=1 cgraph analyze
|
|
185
|
+
*/
|
|
186
|
+
// Built on first use, not at import. `createLogger` is eager where the `logger`
|
|
187
|
+
// singleton is a lazy Proxy — it resolves `pino-pretty`, constructs a SonicBoom
|
|
188
|
+
// destination and registers a `beforeExit` hook. This module is imported by
|
|
189
|
+
// `mcp/local/local-backend.ts` for its lookup helpers, so an eager call would
|
|
190
|
+
// put that on MCP server startup for a diagnostic that is off by default.
|
|
191
|
+
let receiverDropLog;
|
|
192
|
+
const dropLog = () => (receiverDropLog ??= (0, logger_js_1.createLogger)('receiver-drops', {
|
|
193
|
+
debugEnvVar: 'CGRAPH_DEBUG_RECEIVER_DROPS',
|
|
194
|
+
}));
|
|
195
|
+
/** Files named in the per-file receiver-drop line. Bounded: this is a signpost
|
|
196
|
+
* pointing at where to look, not an inventory. */
|
|
197
|
+
const UNRESOLVED_RECEIVER_FILE_SAMPLE = 10;
|
|
198
|
+
/**
|
|
199
|
+
* Report which FILES lost the most call sites to an untyped receiver (#2837).
|
|
200
|
+
*
|
|
201
|
+
* `summarizeUnresolvedReceivers` persists the same drops keyed by member NAME,
|
|
202
|
+
* capped at 500 distinct names, and discards `filePath` — deliberately, because
|
|
203
|
+
* its consumer (`impact()`'s exact-vs-lower-bound verdict) asks "is this
|
|
204
|
+
* symbol's caller count trustworthy", a question about names.
|
|
205
|
+
*
|
|
206
|
+
* That leaves "why does THIS file resolve nothing while its sibling resolves
|
|
207
|
+
* everything" unanswerable from any artifact, which is exactly what #2837 asked
|
|
208
|
+
* for and could not run: comparing the drop records of two files with identical
|
|
209
|
+
* declared shapes separates "receiver never typed" from "typed but no edge
|
|
210
|
+
* emitted", and narrows a per-file split in one run instead of a bisect.
|
|
211
|
+
*
|
|
212
|
+
* A log line rather than a persisted field because nothing queries it — a
|
|
213
|
+
* persisted `byFile` map would be an unread field carrying its own cap and
|
|
214
|
+
* truncation semantics. When a consumer appears, `UnresolvedReceiverSummary` is
|
|
215
|
+
* already a `RepoMeta` field and can carry it with no schema change.
|
|
216
|
+
*/
|
|
217
|
+
function logUnresolvedReceiverFiles(outcomes) {
|
|
218
|
+
// Nothing below is observable unless the diagnostic is switched on, so skip
|
|
219
|
+
// the whole tally rather than building it and discarding it at the emit.
|
|
220
|
+
if (!dropLog().isLevelEnabled('debug'))
|
|
221
|
+
return;
|
|
222
|
+
const byFile = new Map();
|
|
223
|
+
let totalSites = 0;
|
|
224
|
+
for (const outcome of outcomes) {
|
|
225
|
+
// External-rooted drops (`fmt.Println`) reach code this index does not
|
|
226
|
+
// contain, so no node existed for an edge to point at and nothing was lost.
|
|
227
|
+
// Counting them here led the ranking with files that call `fmt` the most.
|
|
228
|
+
if (!isUnresolvedReceiverCall(outcome) || outcome.receiverOrigin === 'external')
|
|
229
|
+
continue;
|
|
230
|
+
totalSites += 1;
|
|
231
|
+
byFile.set(outcome.filePath, (byFile.get(outcome.filePath) ?? 0) + 1);
|
|
232
|
+
}
|
|
233
|
+
if (totalSites === 0)
|
|
234
|
+
return;
|
|
235
|
+
const { kept } = rankAndCap(byFile, UNRESOLVED_RECEIVER_FILE_SAMPLE);
|
|
236
|
+
dropLog().debug({
|
|
237
|
+
totalSites,
|
|
238
|
+
filesAffected: byFile.size,
|
|
239
|
+
topFiles: kept.map(([filePath, sites]) => ({ filePath, sites })),
|
|
240
|
+
}, 'receiver-unresolved call sites by file (top offenders; a file far above its ' +
|
|
241
|
+
'siblings usually means its receivers were never typed, not that it has more calls)');
|
|
242
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.definitionIdPosition = definitionIdPosition;
|
|
4
|
+
/**
|
|
5
|
+
* Extract coordinates from `def:<filePath>#<line>:<column>:<type>:<name>`.
|
|
6
|
+
*
|
|
7
|
+
* File paths are embedded verbatim and may themselves contain fragments such
|
|
8
|
+
* as `#12:34:`, while names may themselves contain `#` (TypeScript private
|
|
9
|
+
* members). Anchor on the known file path so neither side can be mistaken for
|
|
10
|
+
* the declaration separator.
|
|
11
|
+
*/
|
|
12
|
+
function definitionIdPosition(nodeId, filePath) {
|
|
13
|
+
if (nodeId === undefined)
|
|
14
|
+
return undefined;
|
|
15
|
+
const prefix = `def:${filePath}#`;
|
|
16
|
+
if (!nodeId.startsWith(prefix))
|
|
17
|
+
return undefined;
|
|
18
|
+
const match = /^(\d+):(\d+):/.exec(nodeId.slice(prefix.length));
|
|
19
|
+
if (match === null)
|
|
20
|
+
return undefined;
|
|
21
|
+
return { line: Number(match[1]), column: Number(match[2]) };
|
|
22
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `WorkspaceResolutionIndex` — scope-tied lookup tables built ONCE
|
|
4
|
+
* per resolution run, after `populateOwners` and before any
|
|
5
|
+
* resolution pass.
|
|
6
|
+
*
|
|
7
|
+
* ## Scope (what lives here vs. what lives in `SemanticModel`)
|
|
8
|
+
*
|
|
9
|
+
* This index carries only the lookups that return a `Scope` — things
|
|
10
|
+
* `SemanticModel` structurally cannot provide:
|
|
11
|
+
*
|
|
12
|
+
* - `classScopeByDefId` — class def `nodeId` → `Scope`. Needed so
|
|
13
|
+
* passes can read `scope.bindings`, `scope.typeBindings`, and
|
|
14
|
+
* `scope.ownedDefs`. SemanticModel's `TypeRegistry` carries class
|
|
15
|
+
* metadata but not the `Scope`.
|
|
16
|
+
* - `classScopeIdToDefId` — inverse of `classScopeByDefId`. O(1)
|
|
17
|
+
* reverse lookup (Scope.id → class def nodeId) for the implicit-
|
|
18
|
+
* `this` overload picker.
|
|
19
|
+
* - `moduleScopeByFile` — file path → `Scope` of the root `Module`.
|
|
20
|
+
* Used by cross-file return-type propagation, `findExportedDef`,
|
|
21
|
+
* and `findExportedDefByName`'s workspace-wide fallback.
|
|
22
|
+
* SymbolTable indexes symbols, not scopes.
|
|
23
|
+
*
|
|
24
|
+
* Symbol lookups live on `SemanticModel`:
|
|
25
|
+
* - Owner-keyed method lookup → `model.methods.lookupAllByOwner`
|
|
26
|
+
* (populated by the legacy parse phase via `symbolTable.add` AND
|
|
27
|
+
* by scope-resolution's reconciliation pass in `runScopeResolution`,
|
|
28
|
+
* which adds `parsed.localDefs[i].ownerId` entries missed by the
|
|
29
|
+
* legacy extractor for registry-primary languages).
|
|
30
|
+
* - Name-keyed callable lookup → `model.methods.lookupMethodByName`
|
|
31
|
+
* and `model.symbols.lookupCallableByName`.
|
|
32
|
+
* - File-indexed symbol lookup → `model.symbols.lookupExactAll`.
|
|
33
|
+
*
|
|
34
|
+
* This split preserves the single-source-of-truth invariant
|
|
35
|
+
* documented in `ScopeResolver`'s contract file: symbol-indexed
|
|
36
|
+
* lookups live on `SemanticModel` for the whole codebase; only
|
|
37
|
+
* scope-shaped lookups (which `SemanticModel` doesn't carry) live
|
|
38
|
+
* here.
|
|
39
|
+
*
|
|
40
|
+
* Build cost is O(totalScopes). Read-only after construction.
|
|
41
|
+
*/
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.buildWorkspaceResolutionIndex = buildWorkspaceResolutionIndex;
|
|
44
|
+
const walkers_js_1 = require("./scope/walkers.js");
|
|
45
|
+
/**
|
|
46
|
+
* A `ReadonlyMap<K, Scope>` view backed by a `K → ScopeId` map plus a
|
|
47
|
+
* `ScopeTree`, holding **no `Scope` objects of its own** — `.get` fetches via
|
|
48
|
+
* `scopeTree.getScope(id)`. Out-of-core scope index: the previous `Map<K, Scope>` form pinned every
|
|
49
|
+
* class + module `Scope` (and its heavy `bindings` payload) through emit, which
|
|
50
|
+
* defeated the disk-backed scope seal (the scopes stayed resident via this
|
|
51
|
+
* index). Delegating to the `scopeTree` means the index pins only ids, so once
|
|
52
|
+
* the tree seals to disk the scopes become collectible. Value-identical to a
|
|
53
|
+
* stored `Scope` (`getScope` returns the same object resident, or a
|
|
54
|
+
* value-identical revived one from disk), and iteration follows the `idByKey`
|
|
55
|
+
* insertion order = the old map's order, so consumers are byte-identical.
|
|
56
|
+
*/
|
|
57
|
+
class ScopeByKeyView {
|
|
58
|
+
idByKey;
|
|
59
|
+
scopeTree;
|
|
60
|
+
constructor(idByKey, scopeTree) {
|
|
61
|
+
this.idByKey = idByKey;
|
|
62
|
+
this.scopeTree = scopeTree;
|
|
63
|
+
}
|
|
64
|
+
get(key) {
|
|
65
|
+
const id = this.idByKey.get(key);
|
|
66
|
+
return id === undefined ? undefined : this.scopeTree.getScope(id);
|
|
67
|
+
}
|
|
68
|
+
has(key) {
|
|
69
|
+
return this.idByKey.has(key);
|
|
70
|
+
}
|
|
71
|
+
get size() {
|
|
72
|
+
return this.idByKey.size;
|
|
73
|
+
}
|
|
74
|
+
*entries() {
|
|
75
|
+
for (const [k, id] of this.idByKey) {
|
|
76
|
+
const s = this.scopeTree.getScope(id);
|
|
77
|
+
if (s !== undefined)
|
|
78
|
+
yield [k, s];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
keys() {
|
|
82
|
+
return this.idByKey.keys();
|
|
83
|
+
}
|
|
84
|
+
*values() {
|
|
85
|
+
for (const [, s] of this.entries())
|
|
86
|
+
yield s;
|
|
87
|
+
}
|
|
88
|
+
forEach(cb, thisArg) {
|
|
89
|
+
for (const [k, s] of this.entries())
|
|
90
|
+
cb.call(thisArg, s, k, this);
|
|
91
|
+
}
|
|
92
|
+
[Symbol.iterator]() {
|
|
93
|
+
return this.entries();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Build the workspace scope-lookup index. When `scopeTree` is supplied (the live
|
|
98
|
+
* pipeline), the `Scope`-valued maps are id-backed views that delegate to it —
|
|
99
|
+
* so this index never pins `Scope` objects and the disk seal can actually
|
|
100
|
+
* reclaim them. Without it (unit tests), the legacy direct `Map<K, Scope>` form
|
|
101
|
+
* is returned unchanged.
|
|
102
|
+
*/
|
|
103
|
+
function buildWorkspaceResolutionIndex(parsedFiles, scopeTree) {
|
|
104
|
+
const classScopeIdByDefId = new Map();
|
|
105
|
+
const classScopeIdToDefId = new Map();
|
|
106
|
+
const moduleScopeIdByFile = new Map();
|
|
107
|
+
const exportedCallableByName = new Map();
|
|
108
|
+
// Back-compat (no scopeTree): keep the direct Scope-object maps.
|
|
109
|
+
const classScopeByDefIdDirect = scopeTree === undefined ? new Map() : undefined;
|
|
110
|
+
const moduleScopeByFileDirect = scopeTree === undefined ? new Map() : undefined;
|
|
111
|
+
for (const parsed of parsedFiles) {
|
|
112
|
+
const moduleScope = parsed.scopes.find((s) => s.kind === 'Module');
|
|
113
|
+
if (moduleScope !== undefined) {
|
|
114
|
+
moduleScopeIdByFile.set(parsed.filePath, moduleScope.id);
|
|
115
|
+
moduleScopeByFileDirect?.set(parsed.filePath, moduleScope);
|
|
116
|
+
// Precompute the findExportedDefByName workspace fallback: first
|
|
117
|
+
// module-local (origin 'local') callable per name, first file wins —
|
|
118
|
+
// read from the resident bindings here, ONCE.
|
|
119
|
+
for (const [name, refs] of moduleScope.bindings) {
|
|
120
|
+
if (exportedCallableByName.has(name))
|
|
121
|
+
continue;
|
|
122
|
+
for (const ref of refs) {
|
|
123
|
+
if (ref.origin !== 'local')
|
|
124
|
+
continue;
|
|
125
|
+
const t = ref.def.type;
|
|
126
|
+
if (t === 'Function' || t === 'Method' || t === 'Constructor') {
|
|
127
|
+
exportedCallableByName.set(name, ref.def);
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
for (const scope of parsed.scopes) {
|
|
134
|
+
if (scope.kind !== 'Class')
|
|
135
|
+
continue;
|
|
136
|
+
const cd = scope.ownedDefs.find((d) => (0, walkers_js_1.isClassLike)(d.type));
|
|
137
|
+
if (cd !== undefined) {
|
|
138
|
+
classScopeIdByDefId.set(cd.nodeId, scope.id);
|
|
139
|
+
classScopeIdToDefId.set(scope.id, cd.nodeId);
|
|
140
|
+
classScopeByDefIdDirect?.set(cd.nodeId, scope);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const classScopeByDefId = scopeTree === undefined
|
|
145
|
+
? classScopeByDefIdDirect
|
|
146
|
+
: new ScopeByKeyView(classScopeIdByDefId, scopeTree);
|
|
147
|
+
const moduleScopeByFile = scopeTree === undefined
|
|
148
|
+
? moduleScopeByFileDirect
|
|
149
|
+
: new ScopeByKeyView(moduleScopeIdByFile, scopeTree);
|
|
150
|
+
return { classScopeByDefId, classScopeIdToDefId, moduleScopeByFile, exportedCallableByName };
|
|
151
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processStructure = void 0;
|
|
4
|
+
const utils_js_1 = require("../../lib/utils.js");
|
|
5
|
+
const processStructure = (graph, paths) => {
|
|
6
|
+
paths.forEach((path) => {
|
|
7
|
+
const parts = path.split('/');
|
|
8
|
+
let currentPath = '';
|
|
9
|
+
let parentId = '';
|
|
10
|
+
parts.forEach((part, index) => {
|
|
11
|
+
const isFile = index === parts.length - 1;
|
|
12
|
+
const label = isFile ? 'File' : 'Folder';
|
|
13
|
+
currentPath = currentPath ? `${currentPath}/${part}` : part;
|
|
14
|
+
const nodeId = (0, utils_js_1.generateId)(label, currentPath);
|
|
15
|
+
const node = {
|
|
16
|
+
id: nodeId,
|
|
17
|
+
label: label,
|
|
18
|
+
properties: {
|
|
19
|
+
name: part,
|
|
20
|
+
filePath: currentPath,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
graph.addNode(node);
|
|
24
|
+
if (parentId) {
|
|
25
|
+
const relId = (0, utils_js_1.generateId)('CONTAINS', `${parentId}->${nodeId}`);
|
|
26
|
+
const relationship = {
|
|
27
|
+
id: relId,
|
|
28
|
+
type: 'CONTAINS',
|
|
29
|
+
sourceId: parentId,
|
|
30
|
+
targetId: nodeId,
|
|
31
|
+
confidence: 1.0,
|
|
32
|
+
reason: '',
|
|
33
|
+
};
|
|
34
|
+
graph.addRelationship(relationship);
|
|
35
|
+
}
|
|
36
|
+
parentId = nodeId;
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
exports.processStructure = processStructure;
|