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,440 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Adapter from `(ParsedImport, WorkspaceIndex)` → concrete file path.
|
|
4
|
+
*
|
|
5
|
+
* Delegates to the existing `resolvePythonImportInternal` (PEP-328
|
|
6
|
+
* relative resolution + standard suffix matching). The `WorkspaceIndex`
|
|
7
|
+
* is opaque at this layer; consumers wire a `PythonResolveContext`
|
|
8
|
+
* shape carrying `fromFile` + `allFilePaths`.
|
|
9
|
+
*
|
|
10
|
+
* Returning `null` lets the finalize algorithm mark the edge as
|
|
11
|
+
* `linkStatus: 'unresolved'`.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.resolvePythonImportTarget = resolvePythonImportTarget;
|
|
15
|
+
exports.isPythonImportedModule = isPythonImportedModule;
|
|
16
|
+
exports.pythonNamespaceReceiverPaths = pythonNamespaceReceiverPaths;
|
|
17
|
+
const python_js_1 = require("../../import-resolvers/python.js");
|
|
18
|
+
const index_stats_js_1 = require("./index-stats.js");
|
|
19
|
+
function resolvePythonImportTarget(parsedImport, workspaceIndex) {
|
|
20
|
+
// WorkspaceIndex is `unknown` in the shared contract (Ring 1
|
|
21
|
+
// placeholder). The scope-resolution orchestrator hands us a
|
|
22
|
+
// PythonResolveContext-shaped object; narrow structurally rather
|
|
23
|
+
// than via a cast chain so unexpected shapes return null cleanly.
|
|
24
|
+
const ctx = workspaceIndex;
|
|
25
|
+
// Duck-type the set rather than `instanceof Set`: `allFilePaths` is typed
|
|
26
|
+
// `ReadonlySet<string>` and the chain only ever calls `.has()` + iterates, so
|
|
27
|
+
// any set-like is valid. An `instanceof Set` check would reject a legitimate
|
|
28
|
+
// non-`Set` `ReadonlySet` implementation and silently return null for every
|
|
29
|
+
// import (PR #1918 tri-review P2).
|
|
30
|
+
const allFilePaths = ctx?.allFilePaths;
|
|
31
|
+
if (ctx === undefined ||
|
|
32
|
+
typeof ctx.fromFile !== 'string' ||
|
|
33
|
+
typeof allFilePaths?.has !== 'function' ||
|
|
34
|
+
typeof allFilePaths?.[Symbol.iterator] !== 'function') {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
if (parsedImport.kind === 'dynamic-unresolved')
|
|
38
|
+
return null;
|
|
39
|
+
if (parsedImport.targetRaw === null || parsedImport.targetRaw === '')
|
|
40
|
+
return null;
|
|
41
|
+
const submoduleTarget = pythonImportedSubmoduleTarget(parsedImport);
|
|
42
|
+
if (submoduleTarget !== null &&
|
|
43
|
+
(parsedImport.kind === 'named' || parsedImport.kind === 'alias')) {
|
|
44
|
+
// Python's IMPORT_FROM first reads an attribute already exported by the
|
|
45
|
+
// package and only loads a same-named submodule when that attribute is
|
|
46
|
+
// absent. Preserve that precedence when parsed workspace facts are
|
|
47
|
+
// available; the flag suppresses this submodule probe in the recursive
|
|
48
|
+
// base-package lookup.
|
|
49
|
+
const packageTarget = resolvePythonImportTarget({ ...parsedImport, targetIncludesImportedName: true }, workspaceIndex);
|
|
50
|
+
if (packageTarget !== null &&
|
|
51
|
+
pythonFileExportsName(packageTarget, parsedImport.importedName, ctx.parsedFiles)) {
|
|
52
|
+
return packageTarget;
|
|
53
|
+
}
|
|
54
|
+
const submodule = resolvePythonImportTarget({
|
|
55
|
+
kind: 'namespace',
|
|
56
|
+
localName: parsedImport.localName,
|
|
57
|
+
importedName: parsedImport.importedName,
|
|
58
|
+
targetRaw: submoduleTarget,
|
|
59
|
+
}, workspaceIndex);
|
|
60
|
+
if (submodule !== null)
|
|
61
|
+
return submodule;
|
|
62
|
+
if (packageTarget !== null)
|
|
63
|
+
return packageTarget;
|
|
64
|
+
}
|
|
65
|
+
// PEP-328 relative + single-segment proximity bare imports.
|
|
66
|
+
const internal = (0, python_js_1.resolvePythonImportInternal)(ctx.fromFile, parsedImport.targetRaw, ctx.allFilePaths);
|
|
67
|
+
if (internal !== null)
|
|
68
|
+
return internal;
|
|
69
|
+
// PEP-328: unresolved relative imports must NOT fall through to suffix
|
|
70
|
+
// matching. Mirrors `pythonImportStrategy` in `configs/python.ts`.
|
|
71
|
+
if (parsedImport.targetRaw.startsWith('.'))
|
|
72
|
+
return null;
|
|
73
|
+
// External dotted imports like `django.apps` must not fall through to
|
|
74
|
+
// generic suffix matching when the repo has unrelated local files such
|
|
75
|
+
// as `accounts/apps.py`. Mirrors `pythonImportStrategy`'s
|
|
76
|
+
// `hasRepoCandidate` check: only suffix-match if the leading segment
|
|
77
|
+
// looks like a local package/module somewhere in-repo.
|
|
78
|
+
const pathLike = parsedImport.targetRaw.replace(/\./g, '/');
|
|
79
|
+
if (pathLike.includes('/')) {
|
|
80
|
+
const [leadingSegment] = pathLike.split('/').filter(Boolean);
|
|
81
|
+
if (!leadingSegment || !hasRepoCandidate(leadingSegment, ctx.allFilePaths, ctx.fromFile)) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Multi-segment absolute resolve: try exact paths first, then ancestor
|
|
86
|
+
// walk (mirrors the single-segment ancestor walk in
|
|
87
|
+
// `resolvePythonImportInternal`), then a suffix match in nested repos.
|
|
88
|
+
// Using direct `Set.has` + `endsWith` instead of `suffixResolve`'s shared
|
|
89
|
+
// helper because that helper requires a pre-built `SuffixIndex` to
|
|
90
|
+
// disambiguate ties — without one it falls back to an O(files) scan that
|
|
91
|
+
// silently picks the wrong file when the last segment collides across
|
|
92
|
+
// directories (e.g. `accounts.models` matching `billing/models.py` when
|
|
93
|
+
// both files exist).
|
|
94
|
+
return resolveAbsoluteFromFiles(pathLike, ctx.allFilePaths, ctx.fromFile);
|
|
95
|
+
}
|
|
96
|
+
function pythonFileExportsName(targetFile, importedName, parsedFiles) {
|
|
97
|
+
if (parsedFiles === undefined)
|
|
98
|
+
return false;
|
|
99
|
+
const parsed = parsedFiles.find((file) => file.filePath === targetFile);
|
|
100
|
+
if (parsed === undefined)
|
|
101
|
+
return false;
|
|
102
|
+
return parsed.localDefs.some((def) => {
|
|
103
|
+
const qualifiedName = def.qualifiedName;
|
|
104
|
+
if (qualifiedName === undefined || qualifiedName.length === 0)
|
|
105
|
+
return false;
|
|
106
|
+
const dot = qualifiedName.lastIndexOf('.');
|
|
107
|
+
return (dot === -1 ? qualifiedName : qualifiedName.slice(dot + 1)) === importedName;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Resolve `package/sub/module` style paths (already dot-flattened) to a
|
|
112
|
+
* concrete file in `allFilePaths`. Tries the exact path first, then walks
|
|
113
|
+
* ancestors of `fromFile` looking for `<ancestor>/<pathLike>.py` (or
|
|
114
|
+
* `__init__.py`), then falls back to a suffix match for nested layouts.
|
|
115
|
+
* Returns the original (un-normalized) path from the set.
|
|
116
|
+
*
|
|
117
|
+
* Precedence order:
|
|
118
|
+
* 1. Workspace-root direct hit (`<pathLike>.py`, `<pathLike>/__init__.py`).
|
|
119
|
+
* 2. Closest-ancestor match walking up from the importer's directory.
|
|
120
|
+
* 3. Suffix fallback (deterministic: fewest path segments, then
|
|
121
|
+
* lexicographic on the normalized path).
|
|
122
|
+
*
|
|
123
|
+
* Root wins over ancestor by construction — if both `services/sync.py` and
|
|
124
|
+
* `backend/services/sync.py` exist, `backend/routers/cron.py`'s
|
|
125
|
+
* `from services.sync import X` resolves to the root file. This mirrors
|
|
126
|
+
* Python's `sys.path` semantics where the project root is searched first.
|
|
127
|
+
*
|
|
128
|
+
* The ancestor walk mirrors the single-segment behavior in
|
|
129
|
+
* `resolvePythonImportInternal`. For `from services.sync import X` in
|
|
130
|
+
* `backend/routers/cron.py`, walk up: `backend/routers/services/sync.py` →
|
|
131
|
+
* `backend/services/sync.py` ✓.
|
|
132
|
+
*/
|
|
133
|
+
function resolveAbsoluteFromFiles(pathLike, allFilePaths, fromFile) {
|
|
134
|
+
const directFile = `${pathLike}.py`;
|
|
135
|
+
const directPkg = `${pathLike}/__init__.py`;
|
|
136
|
+
// Direct hit at workspace root.
|
|
137
|
+
if (allFilePaths.has(directFile))
|
|
138
|
+
return directFile;
|
|
139
|
+
if (allFilePaths.has(directPkg))
|
|
140
|
+
return directPkg;
|
|
141
|
+
// Ancestor walk — match the single-segment resolver's behavior at
|
|
142
|
+
// multi-segment granularity. Closest match wins. Stop at `i > 0` because
|
|
143
|
+
// `i === 0` would re-check the workspace-root candidates already covered
|
|
144
|
+
// by the direct check above.
|
|
145
|
+
const importerDir = fromFile.replace(/\\/g, '/').split('/').slice(0, -1).join('/');
|
|
146
|
+
if (importerDir) {
|
|
147
|
+
const dirParts = importerDir.split('/').filter(Boolean);
|
|
148
|
+
for (let i = dirParts.length; i > 0; i--) {
|
|
149
|
+
const ancestor = dirParts.slice(0, i).join('/');
|
|
150
|
+
const prefix = `${ancestor}/`;
|
|
151
|
+
const candidateFile = `${prefix}${directFile}`;
|
|
152
|
+
const candidatePkg = `${prefix}${directPkg}`;
|
|
153
|
+
if (allFilePaths.has(candidateFile))
|
|
154
|
+
return candidateFile;
|
|
155
|
+
if (allFilePaths.has(candidatePkg))
|
|
156
|
+
return candidatePkg;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Suffix-match fallback (preserved for monorepo/nested-repo layouts
|
|
160
|
+
// that don't share a directory ancestor with the importer).
|
|
161
|
+
//
|
|
162
|
+
// Tie-break order when multiple files match the same suffix:
|
|
163
|
+
// 1. Fewest path segments (shorter, more canonical paths win — `lib/x.py`
|
|
164
|
+
// beats `tooling/extras/x.py`).
|
|
165
|
+
// 2. Lexicographic order over the normalized path (final stable
|
|
166
|
+
// tiebreak independent of file-set insertion order).
|
|
167
|
+
//
|
|
168
|
+
// Without an explicit tie-break the previous implementation returned
|
|
169
|
+
// the first match in `Set` iteration order, which depended on file
|
|
170
|
+
// ingestion order and produced non-deterministic edges across runs in
|
|
171
|
+
// multi-directory collision repos.
|
|
172
|
+
const suffixFile = `/${directFile}`;
|
|
173
|
+
const suffixPkg = `/${directPkg}`;
|
|
174
|
+
// Indexed suffix gather. A file matching `…/<pathLike>.py` has basename
|
|
175
|
+
// `<lastSeg>.py`; one matching `…/<pathLike>/__init__.py` has basename
|
|
176
|
+
// `__init__.py`. Look up only those basename buckets and confirm the full
|
|
177
|
+
// suffix, instead of scanning every file (the O(imports x files) hotpath).
|
|
178
|
+
// The candidate SET is identical to the old full scan, and the tie-break
|
|
179
|
+
// sort below fully determines the result, so output is unchanged. The
|
|
180
|
+
// shared buildSuffixIndex is deliberately NOT used: it keeps only one
|
|
181
|
+
// path per suffix (longest wins) and so cannot reproduce this exact
|
|
182
|
+
// fewest-segments-then-lexicographic tie-break across all candidates.
|
|
183
|
+
const index = getPythonFileIndex(allFilePaths);
|
|
184
|
+
const lastSeg = pathLike.slice(pathLike.lastIndexOf('/') + 1);
|
|
185
|
+
const matches = [];
|
|
186
|
+
for (const cand of index.byBasename.get(`${lastSeg}.py`) ?? []) {
|
|
187
|
+
if (cand.norm.endsWith(suffixFile))
|
|
188
|
+
matches.push(cand);
|
|
189
|
+
}
|
|
190
|
+
// Package form: only `__init__.py` files whose parent dir is named `<lastSeg>`
|
|
191
|
+
// can match `…/<lastSeg>/__init__.py` — look them up by parent key (P2b) and
|
|
192
|
+
// confirm the full suffix. Same final candidate set as the old `__init__.py`
|
|
193
|
+
// scan, just without iterating unrelated packages.
|
|
194
|
+
for (const cand of index.byInitParent.get(`${lastSeg}/__init__.py`) ?? []) {
|
|
195
|
+
if (cand.norm.endsWith(suffixPkg))
|
|
196
|
+
matches.push(cand);
|
|
197
|
+
}
|
|
198
|
+
if (matches.length === 0)
|
|
199
|
+
return null;
|
|
200
|
+
if (matches.length === 1)
|
|
201
|
+
return matches[0].raw;
|
|
202
|
+
matches.sort((a, b) => {
|
|
203
|
+
const aDepth = a.norm.split('/').length;
|
|
204
|
+
const bDepth = b.norm.split('/').length;
|
|
205
|
+
if (aDepth !== bDepth)
|
|
206
|
+
return aDepth - bDepth;
|
|
207
|
+
if (a.norm < b.norm)
|
|
208
|
+
return -1;
|
|
209
|
+
if (a.norm > b.norm)
|
|
210
|
+
return 1;
|
|
211
|
+
return 0;
|
|
212
|
+
});
|
|
213
|
+
return matches[0].raw;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Does the repo contain a module/package named `leadingSegment` somewhere
|
|
217
|
+
* the importer can plausibly reach?
|
|
218
|
+
*
|
|
219
|
+
* Used to guard against false-positive suffix matches on external dotted
|
|
220
|
+
* imports (e.g. `django.apps` matching a local `accounts/apps.py`).
|
|
221
|
+
*
|
|
222
|
+
* Checks, in order:
|
|
223
|
+
* 1. `SEGMENT.py` root file or `SEGMENT/__init__.py` regular package.
|
|
224
|
+
* 2. Any `SEGMENT/...py` file at the workspace root (namespace package).
|
|
225
|
+
* 3. Any `<importer-ancestor>/SEGMENT/...py` file (nested namespace
|
|
226
|
+
* package the importer could reach via an ancestor walk, e.g.
|
|
227
|
+
* `backend/services/sync.py` from `backend/routers/cron.py`).
|
|
228
|
+
*
|
|
229
|
+
* The nested case is bounded to the importer's own ancestors so a
|
|
230
|
+
* vendored copy of an external package (e.g. `vendor/django/urls.py`)
|
|
231
|
+
* does not gate-pass external imports like `from django.urls import path`
|
|
232
|
+
* issued from `app/main.py`. Files inside the vendored tree itself
|
|
233
|
+
* (importer under `vendor/django/...`) still resolve correctly because
|
|
234
|
+
* the ancestor walk includes their own parents.
|
|
235
|
+
*/
|
|
236
|
+
function hasRepoCandidate(leadingSegment, allFilePaths, fromFile) {
|
|
237
|
+
const prefix = `${leadingSegment}/`;
|
|
238
|
+
const rootFile = `${leadingSegment}.py`;
|
|
239
|
+
const initFile = `${leadingSegment}/__init__.py`;
|
|
240
|
+
// Build importer-ancestor prefixes: for `backend/routers/cron.py`,
|
|
241
|
+
// produces `["backend/routers/services/", "backend/services/"]` for
|
|
242
|
+
// segment `services` (closest first, root excluded — covered above).
|
|
243
|
+
const importerDir = fromFile.replace(/\\/g, '/').split('/').slice(0, -1).join('/');
|
|
244
|
+
const dirParts = importerDir ? importerDir.split('/').filter(Boolean) : [];
|
|
245
|
+
const ancestorPrefixes = [];
|
|
246
|
+
for (let i = dirParts.length; i > 0; i--) {
|
|
247
|
+
ancestorPrefixes.push(`${dirParts.slice(0, i).join('/')}/${leadingSegment}/`);
|
|
248
|
+
}
|
|
249
|
+
// Indexed equivalents of the old O(files) scan:
|
|
250
|
+
// (1) `f === rootFile || f === initFile` -> normalized-path membership.
|
|
251
|
+
// (2) `f.startsWith(`${seg}/`) && f.endsWith('.py')` -> some .py file lives
|
|
252
|
+
// under directory `${seg}/`, i.e. `${seg}/` is a known .py dir prefix.
|
|
253
|
+
// (3) ancestor namespace case -> `${ancestor}/${seg}/` is a known .py dir
|
|
254
|
+
// prefix.
|
|
255
|
+
const index = getPythonFileIndex(allFilePaths);
|
|
256
|
+
if (index.normSet.has(rootFile) || index.normSet.has(initFile))
|
|
257
|
+
return true;
|
|
258
|
+
if (index.dirPrefixes.has(prefix))
|
|
259
|
+
return true;
|
|
260
|
+
for (const ap of ancestorPrefixes) {
|
|
261
|
+
if (index.dirPrefixes.has(ap))
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
const PYTHON_FILE_INDEX_CACHE = new WeakMap();
|
|
267
|
+
function getPythonFileIndex(allFilePaths) {
|
|
268
|
+
const cached = PYTHON_FILE_INDEX_CACHE.get(allFilePaths);
|
|
269
|
+
if (cached !== undefined)
|
|
270
|
+
return cached;
|
|
271
|
+
// Cache miss: materialize a fresh index. Counted so a test can assert this
|
|
272
|
+
// happens once per run, not once per import (PR #1918 review P1 guard).
|
|
273
|
+
(0, index_stats_js_1.recordPythonFileIndexBuild)();
|
|
274
|
+
const normSet = new Set();
|
|
275
|
+
const byBasename = new Map();
|
|
276
|
+
const byInitParent = new Map();
|
|
277
|
+
const dirPrefixes = new Set();
|
|
278
|
+
for (const raw of allFilePaths) {
|
|
279
|
+
const norm = raw.replace(/\\/g, '/');
|
|
280
|
+
// Python import resolution only ever queries `.py` paths: module `<seg>.py`
|
|
281
|
+
// and package `<seg>/__init__.py` membership (normSet), `<lastSeg>.py` /
|
|
282
|
+
// `__init__.py` basename buckets (byBasename), and `.py` directory prefixes
|
|
283
|
+
// (dirPrefixes). Non-`.py` files can never match any of those, so skip them
|
|
284
|
+
// — they were dead weight in every structure on polyglot monorepos
|
|
285
|
+
// (PR #1918 review P3b; dirPrefixes was already `.py`-gated).
|
|
286
|
+
if (!norm.endsWith('.py'))
|
|
287
|
+
continue;
|
|
288
|
+
normSet.add(norm);
|
|
289
|
+
const lastSlash = norm.lastIndexOf('/');
|
|
290
|
+
const base = lastSlash >= 0 ? norm.slice(lastSlash + 1) : norm;
|
|
291
|
+
let bucket = byBasename.get(base);
|
|
292
|
+
if (bucket === undefined) {
|
|
293
|
+
bucket = [];
|
|
294
|
+
byBasename.set(base, bucket);
|
|
295
|
+
}
|
|
296
|
+
bucket.push({ raw, norm });
|
|
297
|
+
// Package files also get a parent-keyed bucket so a `pkg.sub` lookup hits
|
|
298
|
+
// only `…/sub/__init__.py` candidates, not every `__init__.py` (P2b).
|
|
299
|
+
if (base === '__init__.py' && lastSlash >= 0) {
|
|
300
|
+
const dir = norm.slice(0, lastSlash);
|
|
301
|
+
const parentSlash = dir.lastIndexOf('/');
|
|
302
|
+
const parentName = parentSlash >= 0 ? dir.slice(parentSlash + 1) : dir;
|
|
303
|
+
if (parentName) {
|
|
304
|
+
const initKey = `${parentName}/__init__.py`;
|
|
305
|
+
let ib = byInitParent.get(initKey);
|
|
306
|
+
if (ib === undefined) {
|
|
307
|
+
ib = [];
|
|
308
|
+
byInitParent.set(initKey, ib);
|
|
309
|
+
}
|
|
310
|
+
ib.push({ raw, norm });
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// Directory prefixes: every slash-terminated prefix of the path (every
|
|
314
|
+
// index just past a '/', up to and including the file's own directory).
|
|
315
|
+
// Scanning the FULL normalized path — including any leading '/' for
|
|
316
|
+
// absolute paths — makes `dirPrefixes.has(X)` match exactly when the old
|
|
317
|
+
// gate's `f.startsWith(X)` (X always ends in '/') matched. The previous
|
|
318
|
+
// split+`filter(Boolean)` dropped the leading empty component, so an
|
|
319
|
+
// absolute file `/repo/svc/x.py` yielded `repo/svc/` (no leading slash) and
|
|
320
|
+
// gate-passed where `"/repo/svc/x.py".startsWith("repo/svc/")` is false
|
|
321
|
+
// (PR #1918 review P3a). For relative paths the set is identical.
|
|
322
|
+
for (let i = 0; i <= lastSlash; i++) {
|
|
323
|
+
if (norm[i] === '/')
|
|
324
|
+
dirPrefixes.add(norm.slice(0, i + 1));
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
const index = { normSet, byBasename, byInitParent, dirPrefixes };
|
|
328
|
+
PYTHON_FILE_INDEX_CACHE.set(allFilePaths, index);
|
|
329
|
+
return index;
|
|
330
|
+
}
|
|
331
|
+
function pythonImportedSubmoduleTarget(parsedImport) {
|
|
332
|
+
if (parsedImport.kind !== 'named' && parsedImport.kind !== 'alias')
|
|
333
|
+
return null;
|
|
334
|
+
if (parsedImport.targetIncludesImportedName === true)
|
|
335
|
+
return null;
|
|
336
|
+
const separator = parsedImport.targetRaw.endsWith('.') ? '' : '.';
|
|
337
|
+
return parsedImport.targetRaw + separator + parsedImport.importedName;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* A named Python import is a namespace handle only when its resolved file is
|
|
341
|
+
* the concrete submodule formed by appending the imported name. This keeps
|
|
342
|
+
* ordinary symbol imports on the named-binding path.
|
|
343
|
+
*/
|
|
344
|
+
function isPythonImportedModule(parsedImport, targetFile, fromFile) {
|
|
345
|
+
const submoduleTarget = pythonImportedSubmoduleTarget(parsedImport);
|
|
346
|
+
if (submoduleTarget === null)
|
|
347
|
+
return false;
|
|
348
|
+
const normalizedTarget = targetFile.replace(/\\/g, '/');
|
|
349
|
+
let pathLike;
|
|
350
|
+
if (submoduleTarget.startsWith('.')) {
|
|
351
|
+
const match = submoduleTarget.match(/^(\.+)(.*)$/);
|
|
352
|
+
if (match === null)
|
|
353
|
+
return false;
|
|
354
|
+
const ascend = match[1].length - 1;
|
|
355
|
+
const base = fromFile.replace(/\\/g, '/').split('/').slice(0, -1);
|
|
356
|
+
if (ascend > base.length)
|
|
357
|
+
return false;
|
|
358
|
+
const relativeParts = match[2].split('.').filter(Boolean);
|
|
359
|
+
pathLike = [...base.slice(0, base.length - ascend), ...relativeParts].join('/');
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
pathLike = submoduleTarget.replace(/\./g, '/');
|
|
363
|
+
}
|
|
364
|
+
const moduleFile = pathLike + '.py';
|
|
365
|
+
const packageFile = pathLike + '/__init__.py';
|
|
366
|
+
return (normalizedTarget === moduleFile ||
|
|
367
|
+
normalizedTarget === packageFile ||
|
|
368
|
+
normalizedTarget.endsWith('/' + moduleFile) ||
|
|
369
|
+
normalizedTarget.endsWith('/' + packageFile));
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* The receiver spellings `import a.b.c` makes callable, and the file each one
|
|
373
|
+
* names (#2826).
|
|
374
|
+
*
|
|
375
|
+
* `import a.b.c` binds ONE name — `a` — but makes three attribute paths
|
|
376
|
+
* reachable, and they name three different files:
|
|
377
|
+
*
|
|
378
|
+
* a → a/__init__.py
|
|
379
|
+
* a.b → a/b/__init__.py
|
|
380
|
+
* a.b.c → a/b/c.py (the edge's own target)
|
|
381
|
+
*
|
|
382
|
+
* The shared default keyed `a` to the LEAF, which is wrong in both directions:
|
|
383
|
+
* `a.helper()` resolved into `a/b/c.py` whenever that module happened to export
|
|
384
|
+
* `helper`, and `a.b.mid()` resolved to nothing.
|
|
385
|
+
*
|
|
386
|
+
* Returns `undefined` — meaning "use the shared default" — for every spelling
|
|
387
|
+
* where the bound name is not the path's root:
|
|
388
|
+
* - `import single` — no dotted path to expand;
|
|
389
|
+
* - `import a.b as x` — binds only `x`; writing `a.b.f()` there is a
|
|
390
|
+
* NameError, so `a.b` must NOT become a key;
|
|
391
|
+
* - `from pkg import db` — reclassified to a namespace edge whose
|
|
392
|
+
* importPath is the bare name `db`.
|
|
393
|
+
*
|
|
394
|
+
* Prefix files are proposed, not asserted: `moduleFileExists` drops any that
|
|
395
|
+
* the workspace did not parse, so a PEP-420 namespace package (no
|
|
396
|
+
* `__init__.py`) contributes no key rather than one pointing at a missing file.
|
|
397
|
+
*/
|
|
398
|
+
function pythonNamespaceReceiverPaths(edge, moduleFileExists) {
|
|
399
|
+
const segments = edge.importPath.split('.');
|
|
400
|
+
if (segments.length < 2)
|
|
401
|
+
return undefined;
|
|
402
|
+
if (segments[0] !== edge.localName)
|
|
403
|
+
return undefined;
|
|
404
|
+
const out = [[edge.importPath, edge.targetFile]];
|
|
405
|
+
// Anchor the prefix packages on the RESOLVED leaf, never on the import
|
|
406
|
+
// spelling. `resolvePythonImportTarget` resolves off-root in two of its three
|
|
407
|
+
// tiers (suffix match and ancestor-relative), so `import utils.db` can land on
|
|
408
|
+
// `libs/common/utils/db.py`. Building `utils/__init__.py` from the spelling
|
|
409
|
+
// would then name a DIFFERENT package that merely shares the root segment —
|
|
410
|
+
// a wrong edge — and in a `src/` layout it would match nothing at all,
|
|
411
|
+
// silently making prefix keying inert for the most common Python layout.
|
|
412
|
+
//
|
|
413
|
+
// Walking back from the leaf also inherits that path's own separator, so no
|
|
414
|
+
// POSIX-vs-Windows probing is needed: workspace paths are not normalized at
|
|
415
|
+
// ingestion, and `moduleScopeByFile` is keyed by the raw `ParsedFile.filePath`.
|
|
416
|
+
const dirs = edge.targetFile.split('/').slice(0, -1);
|
|
417
|
+
// The import's leading segments name the leaf's innermost directories.
|
|
418
|
+
const offset = dirs.length - (segments.length - 1);
|
|
419
|
+
if (offset < 0)
|
|
420
|
+
return out;
|
|
421
|
+
for (let i = 1; i < segments.length; i++) {
|
|
422
|
+
const spelling = segments.slice(0, i).join('.');
|
|
423
|
+
const packageFile = dirs.slice(0, offset + i).join('/') + '/__init__.py';
|
|
424
|
+
// Package FIRST, then the leaf as a fallback — order is the whole point.
|
|
425
|
+
//
|
|
426
|
+
// `findExportedDef` only accepts a binding whose `origin === 'local'`, and
|
|
427
|
+
// the canonical package re-exports (`from .b.c import helper` in
|
|
428
|
+
// `__init__.py`) produce an IMPORT binding. Keying the prefix at the
|
|
429
|
+
// package alone therefore loses `a.helper()` entirely for the most common
|
|
430
|
+
// package shape — the fixtures here all define members locally in
|
|
431
|
+
// `__init__.py`, which is precisely the one layout where that mistake is
|
|
432
|
+
// invisible. Keeping the leaf behind the package restores that resolution
|
|
433
|
+
// while still letting a real definition in `__init__.py` win over a
|
|
434
|
+
// same-named decoy deeper in the package.
|
|
435
|
+
if (moduleFileExists(packageFile))
|
|
436
|
+
out.push([spelling, packageFile]);
|
|
437
|
+
out.push([spelling, edge.targetFile]);
|
|
438
|
+
}
|
|
439
|
+
return out;
|
|
440
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Build counter for the per-file-set Python import-resolution index
|
|
4
|
+
* (`getPythonFileIndex` in `import-target.ts`).
|
|
5
|
+
*
|
|
6
|
+
* A "build" is a `WeakMap` cache MISS that materializes a fresh
|
|
7
|
+
* `PythonFileIndex` (O(files)). Unlike `cache-stats.ts` (which gates its
|
|
8
|
+
* counters behind `PROF_SCOPE_RESOLUTION` because they sit on the per-capture
|
|
9
|
+
* hot path), this counter is always live: an index build happens at most once
|
|
10
|
+
* per resolution run, so the single increment is negligible and an unconditional
|
|
11
|
+
* counter avoids env-var load-order fragility in tests.
|
|
12
|
+
*
|
|
13
|
+
* Used by `test/integration/python-import-index-reuse.test.ts` to assert the
|
|
14
|
+
* index is reused across imports (built once per run) rather than rebuilt per
|
|
15
|
+
* import — the regression guard for PR #1918 review finding P1.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.recordPythonFileIndexBuild = recordPythonFileIndexBuild;
|
|
19
|
+
exports.getPythonFileIndexBuildCount = getPythonFileIndexBuildCount;
|
|
20
|
+
exports.resetPythonFileIndexBuildCount = resetPythonFileIndexBuildCount;
|
|
21
|
+
let INDEX_BUILDS = 0;
|
|
22
|
+
function recordPythonFileIndexBuild() {
|
|
23
|
+
INDEX_BUILDS++;
|
|
24
|
+
}
|
|
25
|
+
function getPythonFileIndexBuildCount() {
|
|
26
|
+
return INDEX_BUILDS;
|
|
27
|
+
}
|
|
28
|
+
function resetPythonFileIndexBuildCount() {
|
|
29
|
+
INDEX_BUILDS = 0;
|
|
30
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Python scope-resolution hooks (RFC #909 Ring 3, RFC §5).
|
|
4
|
+
*
|
|
5
|
+
* Public API barrel. Consumers should import from this file rather than
|
|
6
|
+
* the individual modules — that keeps the per-hook organization an
|
|
7
|
+
* implementation detail we can refactor without touching the provider
|
|
8
|
+
* wiring.
|
|
9
|
+
*
|
|
10
|
+
* Module layout (each file is a single concern):
|
|
11
|
+
*
|
|
12
|
+
* - `query.ts` — tree-sitter query string + lazy parser/query singletons
|
|
13
|
+
* - `ast-utils.ts` — generic `SyntaxNode` helpers
|
|
14
|
+
* - `import-decomposer.ts` — `import a, b` / `from m import x, y` → one match per name
|
|
15
|
+
* - `receiver-binding.ts` — synthesize `self`/`cls` type bindings on methods
|
|
16
|
+
* - `captures.ts` — `emitPythonScopeCaptures` (top-level orchestrator)
|
|
17
|
+
* - `cache-stats.ts` — PROF_SCOPE_RESOLUTION cache hit/miss counters
|
|
18
|
+
* - `interpret.ts` — capture-match → `ParsedImport` / `ParsedTypeBinding`
|
|
19
|
+
* - `merge-bindings.ts` — Python LEGB precedence
|
|
20
|
+
* - `arity.ts` — Python arity check (`*args`, `**kwargs`, defaults)
|
|
21
|
+
* - `import-target.ts` — `(ParsedImport, WorkspaceIndex) → file path` adapter
|
|
22
|
+
* - `simple-hooks.ts` — small/no-op hooks made explicit
|
|
23
|
+
*
|
|
24
|
+
* ## Known limitations
|
|
25
|
+
*
|
|
26
|
+
* The Python registry-primary path intentionally does NOT resolve the
|
|
27
|
+
* following. Each is a conscious trade-off at migration time; lifting any
|
|
28
|
+
* of them is tracked as a separate follow-up rather than silently
|
|
29
|
+
* "maybe-resolving" and emitting low-confidence edges.
|
|
30
|
+
*
|
|
31
|
+
* 1. **Dynamic attribute access** — `getattr(obj, 'name')` and
|
|
32
|
+
* `setattr` bind at runtime. We emit no edge; the call site
|
|
33
|
+
* surfaces as an unresolved reference.
|
|
34
|
+
* 2. **Dynamic imports** — `importlib.import_module(...)` and
|
|
35
|
+
* `__import__(...)` are not followed. Static `import x` and
|
|
36
|
+
* `from m import x` are fully resolved.
|
|
37
|
+
* 3. **Metaclass-driven dispatch** — C3 linearization drives MRO
|
|
38
|
+
* (see `mro-processor.ts`), but method resolution that depends
|
|
39
|
+
* on `__getattribute__` overrides or metaclass `__call__`
|
|
40
|
+
* remains unresolved.
|
|
41
|
+
* 4. **Union / Optional type hints** — `def f(x: Union[A, B])` or
|
|
42
|
+
* `x: Optional[A]`: `arity.ts` validates parameter count only;
|
|
43
|
+
* receiver-binding and field-type resolution pick the first arm
|
|
44
|
+
* and emit a single edge rather than branching. `List[T]` /
|
|
45
|
+
* `Dict[K, V]` strip the outer generic for receiver typing (see
|
|
46
|
+
* `interpret.ts`).
|
|
47
|
+
* 5. **Decorators that rewrite signatures** — `@dataclass`,
|
|
48
|
+
* `@property`, `@classmethod`, `@staticmethod` are recognized
|
|
49
|
+
* by `receiver-binding.ts`. Arbitrary decorators (e.g.
|
|
50
|
+
* `functools.wraps`, custom retry wrappers) preserve the wrapped
|
|
51
|
+
* function's declared signature; a decorator that returns a
|
|
52
|
+
* different callable is followed only through the declared
|
|
53
|
+
* return type.
|
|
54
|
+
* 6. **`typing.TYPE_CHECKING`-guarded imports** — treated like any
|
|
55
|
+
* other `import` for reference resolution. We do not distinguish
|
|
56
|
+
* runtime-visible from type-checker-only imports; this is
|
|
57
|
+
* intentional (type-only imports are still structurally valid
|
|
58
|
+
* type references).
|
|
59
|
+
* 7. **`*args` / `**kwargs` type flow-through** — `arity.ts`
|
|
60
|
+
* accepts any call count when a variadic is present, but no
|
|
61
|
+
* type information flows through the variadic into the callee
|
|
62
|
+
* body. Receiver-binding still works for explicit parameters.
|
|
63
|
+
* 8. **`super()` outside a method with a literal class binding** —
|
|
64
|
+
* resolved for the standard `class Child(Parent): def m(self):
|
|
65
|
+
* super().m()` pattern. Zero-arg `super()` inside a nested
|
|
66
|
+
* function, a `functools.wraps`-rewrapped method, or a call
|
|
67
|
+
* site where the enclosing class can't be statically determined
|
|
68
|
+
* is left unresolved.
|
|
69
|
+
*
|
|
70
|
+
* The `test/integration/resolvers/python.test.ts` resolver suite is the
|
|
71
|
+
* authoritative signal for which of these matter in practice; it runs in
|
|
72
|
+
* the standard CI test workflow, so a regression blocks the merge.
|
|
73
|
+
*/
|
|
74
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
+
exports.pythonReceiverBinding = exports.pythonImportOwningScope = exports.pythonFunctionDefinitionLabel = exports.pythonBindingScopeFor = exports.resolvePythonImportTarget = exports.pythonNamespaceReceiverPaths = exports.isPythonImportedModule = exports.pythonArityCompatibility = exports.pythonMergeBindings = exports.interpretPythonTypeBinding = exports.interpretPythonImport = exports.resetPythonCaptureCacheStats = exports.getPythonCaptureCacheStats = exports.emitPythonScopeCaptures = void 0;
|
|
76
|
+
var captures_js_1 = require("./captures.js");
|
|
77
|
+
Object.defineProperty(exports, "emitPythonScopeCaptures", { enumerable: true, get: function () { return captures_js_1.emitPythonScopeCaptures; } });
|
|
78
|
+
var cache_stats_js_1 = require("./cache-stats.js");
|
|
79
|
+
Object.defineProperty(exports, "getPythonCaptureCacheStats", { enumerable: true, get: function () { return cache_stats_js_1.getPythonCaptureCacheStats; } });
|
|
80
|
+
Object.defineProperty(exports, "resetPythonCaptureCacheStats", { enumerable: true, get: function () { return cache_stats_js_1.resetPythonCaptureCacheStats; } });
|
|
81
|
+
var interpret_js_1 = require("./interpret.js");
|
|
82
|
+
Object.defineProperty(exports, "interpretPythonImport", { enumerable: true, get: function () { return interpret_js_1.interpretPythonImport; } });
|
|
83
|
+
Object.defineProperty(exports, "interpretPythonTypeBinding", { enumerable: true, get: function () { return interpret_js_1.interpretPythonTypeBinding; } });
|
|
84
|
+
var merge_bindings_js_1 = require("./merge-bindings.js");
|
|
85
|
+
Object.defineProperty(exports, "pythonMergeBindings", { enumerable: true, get: function () { return merge_bindings_js_1.pythonMergeBindings; } });
|
|
86
|
+
var arity_js_1 = require("./arity.js");
|
|
87
|
+
Object.defineProperty(exports, "pythonArityCompatibility", { enumerable: true, get: function () { return arity_js_1.pythonArityCompatibility; } });
|
|
88
|
+
var import_target_js_1 = require("./import-target.js");
|
|
89
|
+
Object.defineProperty(exports, "isPythonImportedModule", { enumerable: true, get: function () { return import_target_js_1.isPythonImportedModule; } });
|
|
90
|
+
Object.defineProperty(exports, "pythonNamespaceReceiverPaths", { enumerable: true, get: function () { return import_target_js_1.pythonNamespaceReceiverPaths; } });
|
|
91
|
+
Object.defineProperty(exports, "resolvePythonImportTarget", { enumerable: true, get: function () { return import_target_js_1.resolvePythonImportTarget; } });
|
|
92
|
+
var simple_hooks_js_1 = require("./simple-hooks.js");
|
|
93
|
+
Object.defineProperty(exports, "pythonBindingScopeFor", { enumerable: true, get: function () { return simple_hooks_js_1.pythonBindingScopeFor; } });
|
|
94
|
+
Object.defineProperty(exports, "pythonFunctionDefinitionLabel", { enumerable: true, get: function () { return simple_hooks_js_1.pythonFunctionDefinitionLabel; } });
|
|
95
|
+
Object.defineProperty(exports, "pythonImportOwningScope", { enumerable: true, get: function () { return simple_hooks_js_1.pythonImportOwningScope; } });
|
|
96
|
+
Object.defineProperty(exports, "pythonReceiverBinding", { enumerable: true, get: function () { return simple_hooks_js_1.pythonReceiverBinding; } });
|