cgraphx 2.0.1 → 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/.claude-template/FLOW-MAP.md +7 -5
- package/dist/.claude-template/commands/end.md +1 -1
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +2 -1
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +4 -2
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +5 -2
- package/dist/.claude-template/skills/iboc-check/SKILL.md +116 -0
- package/dist/.claude-template/skills/iboc-check/filler-prompt.md +75 -0
- package/dist/.claude-template/skills/implementation/SKILL.md +7 -0
- package/dist/.claude-template/skills/init-project-guides/SKILL.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
- package/dist/.claude-template/skills/write-api/assets/template-request.bru +3 -3
- package/dist/.claude-template/skills/write-api/references/bru-format.md +6 -6
- package/dist/.claude-template/skills/write-delivery-guide/SKILL.md +97 -0
- package/dist/.claude-template/skills/write-delivery-guide/template-change-type.md +120 -0
- package/dist/.claude-template/skills/write-delivery-guide/template-multi-role-flow.md +148 -0
- package/dist/.claude-template/skills/write-unit-test-code/SKILL.md +23 -6
- 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/features/scanner.d.ts +2 -0
- package/dist/core/features/scanner.d.ts.map +1 -1
- package/dist/core/features/scanner.js +27 -6
- package/dist/core/features/scanner.js.map +1 -1
- 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,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.interpretGoImport = interpretGoImport;
|
|
4
|
+
exports.interpretGoTypeBinding = interpretGoTypeBinding;
|
|
5
|
+
exports.goMapValueType = goMapValueType;
|
|
6
|
+
exports.normalizeGoTypeName = normalizeGoTypeName;
|
|
7
|
+
exports.normalizeGoReturnType = normalizeGoReturnType;
|
|
8
|
+
function interpretGoImport(captures) {
|
|
9
|
+
const kind = captures['@import.kind']?.text;
|
|
10
|
+
const source = captures['@import.source']?.text;
|
|
11
|
+
const name = captures['@import.name']?.text;
|
|
12
|
+
const alias = captures['@import.alias']?.text;
|
|
13
|
+
if (kind === undefined || source === undefined)
|
|
14
|
+
return null;
|
|
15
|
+
if (kind === 'dot')
|
|
16
|
+
return { kind: 'wildcard', targetRaw: source };
|
|
17
|
+
if (kind === 'alias') {
|
|
18
|
+
if (alias === undefined || name === undefined)
|
|
19
|
+
return null;
|
|
20
|
+
return { kind: 'namespace', localName: alias, importedName: name, targetRaw: source };
|
|
21
|
+
}
|
|
22
|
+
if (kind === 'namespace') {
|
|
23
|
+
if (name === undefined)
|
|
24
|
+
return null;
|
|
25
|
+
return { kind: 'namespace', localName: name, importedName: name, targetRaw: source };
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function interpretGoTypeBinding(captures) {
|
|
30
|
+
const name = captures['@type-binding.name']?.text;
|
|
31
|
+
const type = captures['@type-binding.type']?.text;
|
|
32
|
+
if (name === undefined || type === undefined)
|
|
33
|
+
return null;
|
|
34
|
+
let source = 'annotation';
|
|
35
|
+
let normalizedType;
|
|
36
|
+
if (captures['@type-binding.self'] !== undefined) {
|
|
37
|
+
source = 'self';
|
|
38
|
+
// Preserve pointer shape on receiver self-bindings (`*T` vs `T`).
|
|
39
|
+
// Method-owner enrichment consumes that raw shape to stamp `goReceiverKind`
|
|
40
|
+
// on each method. Since #2813 that stamp is metadata, NOT a filter:
|
|
41
|
+
// structural interface satisfaction counts pointer-receiver methods, because
|
|
42
|
+
// `*T`'s method set is what an interface-typed field actually holds. The
|
|
43
|
+
// preserved distinction is the hook a future value/pointer-aware model would
|
|
44
|
+
// read — do not reintroduce it as an exclusion.
|
|
45
|
+
normalizedType = type.trim();
|
|
46
|
+
}
|
|
47
|
+
else if (captures['@type-binding.constructor'] !== undefined) {
|
|
48
|
+
source = 'constructor-inferred';
|
|
49
|
+
normalizedType = normalizeGoTypeName(type);
|
|
50
|
+
}
|
|
51
|
+
else if (captures['@type-binding.call-return'] !== undefined) {
|
|
52
|
+
source = 'constructor-inferred';
|
|
53
|
+
normalizedType = normalizeGoTypeName(type);
|
|
54
|
+
}
|
|
55
|
+
else if (captures['@type-binding.assertion'] !== undefined) {
|
|
56
|
+
source = 'annotation';
|
|
57
|
+
normalizedType = normalizeGoTypeName(type);
|
|
58
|
+
}
|
|
59
|
+
else if (captures['@type-binding.new'] !== undefined) {
|
|
60
|
+
source = 'constructor-inferred';
|
|
61
|
+
normalizedType = normalizeGoTypeName(type);
|
|
62
|
+
}
|
|
63
|
+
else if (captures['@type-binding.field'] !== undefined) {
|
|
64
|
+
source = 'assignment-inferred';
|
|
65
|
+
normalizedType = normalizeGoTypeName(type);
|
|
66
|
+
}
|
|
67
|
+
else if (captures['@type-binding.range'] !== undefined) {
|
|
68
|
+
source = 'constructor-inferred';
|
|
69
|
+
normalizedType = normalizeGoTypeName(type);
|
|
70
|
+
}
|
|
71
|
+
else if (captures['@type-binding.index'] !== undefined) {
|
|
72
|
+
source = 'constructor-inferred';
|
|
73
|
+
normalizedType = normalizeGoTypeName(type);
|
|
74
|
+
}
|
|
75
|
+
else if (captures['@type-binding.multi-assign'] !== undefined) {
|
|
76
|
+
source = 'constructor-inferred';
|
|
77
|
+
normalizedType = normalizeGoTypeName(type);
|
|
78
|
+
}
|
|
79
|
+
else if (captures['@type-binding.make'] !== undefined) {
|
|
80
|
+
source = 'constructor-inferred';
|
|
81
|
+
normalizedType = normalizeGoTypeName(type);
|
|
82
|
+
}
|
|
83
|
+
else if (captures['@type-binding.return'] !== undefined) {
|
|
84
|
+
// Preserve dotted names for cross-package return-type chains.
|
|
85
|
+
source = 'return-annotation';
|
|
86
|
+
normalizedType = normalizeGoReturnType(type);
|
|
87
|
+
}
|
|
88
|
+
else if (captures['@type-binding.alias'] !== undefined) {
|
|
89
|
+
source = 'assignment-inferred';
|
|
90
|
+
normalizedType = normalizeGoTypeName(type);
|
|
91
|
+
}
|
|
92
|
+
else if (captures['@type-binding.assignment'] !== undefined) {
|
|
93
|
+
source = 'assignment-inferred';
|
|
94
|
+
normalizedType = normalizeGoTypeName(type);
|
|
95
|
+
}
|
|
96
|
+
else if (captures['@type-binding.parameter'] !== undefined) {
|
|
97
|
+
source = 'parameter-annotation';
|
|
98
|
+
normalizedType = normalizeGoTypeName(type);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
normalizedType = normalizeGoTypeName(type);
|
|
102
|
+
}
|
|
103
|
+
return { boundName: name, rawTypeName: normalizedType, source };
|
|
104
|
+
}
|
|
105
|
+
/** Shallow `map[K]V` spelling match — the key is anything up to the first `]`,
|
|
106
|
+
* so a nested map key (`map[map[a]b]V`) is deliberately NOT recognised. Held
|
|
107
|
+
* in one place so the capture-side normalizers and the resolver's element-type
|
|
108
|
+
* hook cannot drift on what counts as a map spelling. */
|
|
109
|
+
const GO_MAP_VALUE_RE = /^map\[[^\]]+\]\s*(.+)$/;
|
|
110
|
+
/** `map[K]V` → `V`, trimmed. `undefined` when `text` is not a map spelling. */
|
|
111
|
+
function goMapValueType(text) {
|
|
112
|
+
const match = GO_MAP_VALUE_RE.exec(text);
|
|
113
|
+
return match === null ? undefined : match[1].trim();
|
|
114
|
+
}
|
|
115
|
+
function normalizeGoTypeName(text) {
|
|
116
|
+
let t = text.trim();
|
|
117
|
+
t = stripGoOuterTypePrefixes(t);
|
|
118
|
+
const mapValue = goMapValueType(t);
|
|
119
|
+
if (mapValue !== undefined)
|
|
120
|
+
t = mapValue;
|
|
121
|
+
t = stripGoOuterTypePrefixes(t.replace(/^(?:<-)?chan(?:<-)?\s+/, ''));
|
|
122
|
+
if (t.startsWith('func(')) {
|
|
123
|
+
const retMatch = t.match(/^func\([^)]*\)\s*(.*)$/);
|
|
124
|
+
if (retMatch)
|
|
125
|
+
t = retMatch[1].trim();
|
|
126
|
+
}
|
|
127
|
+
const dot = t.lastIndexOf('.');
|
|
128
|
+
if (dot !== -1)
|
|
129
|
+
t = t.slice(dot + 1);
|
|
130
|
+
const bracket = t.indexOf('[');
|
|
131
|
+
if (bracket !== -1)
|
|
132
|
+
t = t.slice(0, bracket);
|
|
133
|
+
return t;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Like `normalizeGoTypeName` but preserves dotted package-prefix
|
|
137
|
+
* (`models.User` stays `models.User`). Used for return-type
|
|
138
|
+
* annotations so cross-package type chains can resolve through
|
|
139
|
+
* QualifiedNameIndex (which carries `pkg.Type` entries).
|
|
140
|
+
*/
|
|
141
|
+
function normalizeGoReturnType(text) {
|
|
142
|
+
let t = text.trim();
|
|
143
|
+
// Multi-return syntax: (*T, error) → extract first type. Handles
|
|
144
|
+
// the common Go pattern where functions return (value, error).
|
|
145
|
+
if (t.startsWith('(') && t.includes(',')) {
|
|
146
|
+
const closeIdx = t.indexOf(',');
|
|
147
|
+
t = t.slice(1, closeIdx).trim();
|
|
148
|
+
}
|
|
149
|
+
t = stripGoOuterTypePrefixes(t);
|
|
150
|
+
const mapValue = goMapValueType(t);
|
|
151
|
+
if (mapValue !== undefined)
|
|
152
|
+
t = mapValue;
|
|
153
|
+
t = stripGoOuterTypePrefixes(t.replace(/^(?:<-)?chan(?:<-)?\s+/, ''));
|
|
154
|
+
if (t.startsWith('func(')) {
|
|
155
|
+
const retMatch = t.match(/^func\([^)]*\)\s*(.*)$/);
|
|
156
|
+
if (retMatch)
|
|
157
|
+
t = retMatch[1].trim();
|
|
158
|
+
}
|
|
159
|
+
// Preserve dotted qualified names for cross-package resolution.
|
|
160
|
+
const bracket = t.indexOf('[');
|
|
161
|
+
if (bracket !== -1)
|
|
162
|
+
t = t.slice(0, bracket);
|
|
163
|
+
return t;
|
|
164
|
+
}
|
|
165
|
+
function stripGoOuterTypePrefixes(text) {
|
|
166
|
+
let t = text.trim();
|
|
167
|
+
let previous;
|
|
168
|
+
do {
|
|
169
|
+
previous = t;
|
|
170
|
+
while (t.startsWith('*'))
|
|
171
|
+
t = t.slice(1).trim();
|
|
172
|
+
if (t.startsWith('[]'))
|
|
173
|
+
t = t.slice(2).trim();
|
|
174
|
+
t = t.replace(/^\[[^\]]+\]\s*/, '');
|
|
175
|
+
} while (t !== previous);
|
|
176
|
+
return t;
|
|
177
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.goMergeBindings = goMergeBindings;
|
|
4
|
+
const TIER = {
|
|
5
|
+
local: 0,
|
|
6
|
+
namespace: 1,
|
|
7
|
+
import: 2,
|
|
8
|
+
reexport: 3,
|
|
9
|
+
wildcard: 4,
|
|
10
|
+
};
|
|
11
|
+
function goMergeBindings(existing, incoming, _scopeId) {
|
|
12
|
+
const seen = new Set();
|
|
13
|
+
return [...existing, ...incoming]
|
|
14
|
+
.sort((a, b) => (TIER[a.origin] ?? 99) - (TIER[b.origin] ?? 99) || a.def.nodeId.localeCompare(b.def.nodeId))
|
|
15
|
+
.filter((binding) => {
|
|
16
|
+
if (seen.has(binding.def.nodeId))
|
|
17
|
+
return false;
|
|
18
|
+
seen.add(binding.def.nodeId);
|
|
19
|
+
return true;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.populateGoOwners = populateGoOwners;
|
|
4
|
+
exports.populateGoWorkspaceOwners = populateGoWorkspaceOwners;
|
|
5
|
+
const logger_js_1 = require("../../../logger.js");
|
|
6
|
+
const walkers_js_1 = require("../../scope-resolution/scope/walkers.js");
|
|
7
|
+
const package_clause_js_1 = require("./package-clause.js");
|
|
8
|
+
const generic_type_parameters_js_1 = require("./generic-type-parameters.js");
|
|
9
|
+
/** Bound on the sample of no-package-clause paths named in the warning. */
|
|
10
|
+
const SKIPPED_SAMPLE_CAP = 5;
|
|
11
|
+
/**
|
|
12
|
+
* Populate `ownerId` on Go Method defs by matching receiver types
|
|
13
|
+
* extracted from `@type-binding.self` captures against struct defs in
|
|
14
|
+
* the module scope.
|
|
15
|
+
*
|
|
16
|
+
* Go method declarations are top-level (`func (r *T) M()`), not nested
|
|
17
|
+
* inside a struct body. The generic `populateClassOwnedMembers` requires
|
|
18
|
+
* the method's parent scope to be a `Class` scope, which never matches
|
|
19
|
+
* Go. This pass bridges the gap by reading the self typeBinding that
|
|
20
|
+
* `synthesizeGoReceiverBinding` creates, locating the matching struct
|
|
21
|
+
* def, and stamping `ownerId` onto the Method def.
|
|
22
|
+
*/
|
|
23
|
+
function populateGoOwners(parsed) {
|
|
24
|
+
// 1. Standard nested-class pass — stamps ownerId on Property/Method defs
|
|
25
|
+
// inside Class scopes. With Class scopes now created for Go
|
|
26
|
+
// struct/interface declarations, this handles struct field ownership.
|
|
27
|
+
(0, walkers_js_1.populateClassOwnedMembers)(parsed);
|
|
28
|
+
populateGoOwnersInPackage([parsed]);
|
|
29
|
+
}
|
|
30
|
+
function populateGoWorkspaceOwners(parsedFiles, ctx) {
|
|
31
|
+
// Generic interfaces get their type-parameter list stamped here rather than at
|
|
32
|
+
// capture time, because this is the first main-thread hook that sees BOTH the
|
|
33
|
+
// parsed scopes and the file text (it already reads `fileContents` for the
|
|
34
|
+
// package clause). `detectGoInterfaceImplementations` runs later in the same
|
|
35
|
+
// pass and is the only reader. See `stampGoInterfaceTypeParameters`.
|
|
36
|
+
(0, generic_type_parameters_js_1.stampGoInterfaceTypeParameters)(parsedFiles, ctx.fileContents);
|
|
37
|
+
const filesByPackage = new Map();
|
|
38
|
+
// A file with no resolvable package clause is dropped from ownership
|
|
39
|
+
// resolution entirely — its methods never attach to a struct declared in a
|
|
40
|
+
// sibling file. That used to be a bare `continue` with no trace, which is the
|
|
41
|
+
// same false-safe silence #2813 was filed about. Report it once, bounded
|
|
42
|
+
// (mirrors the fan-out-cap warning in scope-resolution/pipeline/run.ts).
|
|
43
|
+
let skippedCount = 0;
|
|
44
|
+
const skippedSample = [];
|
|
45
|
+
for (const parsed of parsedFiles) {
|
|
46
|
+
const pkgName = (0, package_clause_js_1.inferGoPackageName)(ctx.fileContents.get(parsed.filePath) ?? '');
|
|
47
|
+
if (pkgName === null) {
|
|
48
|
+
// Count everything, retain only the sample — a misrouted vendored tree
|
|
49
|
+
// would otherwise accumulate one path reference per file to print five.
|
|
50
|
+
skippedCount += 1;
|
|
51
|
+
if (skippedSample.length < SKIPPED_SAMPLE_CAP)
|
|
52
|
+
skippedSample.push(parsed.filePath);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const key = `${(0, package_clause_js_1.goPackageDir)(parsed.filePath)}\0${pkgName}`;
|
|
56
|
+
const bucket = filesByPackage.get(key) ?? [];
|
|
57
|
+
bucket.push(parsed);
|
|
58
|
+
filesByPackage.set(key, bucket);
|
|
59
|
+
}
|
|
60
|
+
if (skippedCount > 0) {
|
|
61
|
+
logger_js_1.logger.warn({ skippedFiles: skippedCount, sample: skippedSample }, 'go: files with no resolvable package clause were excluded from method-owner ' +
|
|
62
|
+
'resolution (their methods cannot attach to structs declared in sibling files)');
|
|
63
|
+
}
|
|
64
|
+
for (const bucket of filesByPackage.values()) {
|
|
65
|
+
populateGoOwnersInPackage(bucket);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function populateGoOwnersInPackage(parsedFiles) {
|
|
69
|
+
// Build struct name → def map from ALL scopes' ownedDefs (struct defs
|
|
70
|
+
// live in Class scopes now, not Module scope).
|
|
71
|
+
const structByQualifiedName = new Map();
|
|
72
|
+
for (const parsed of parsedFiles) {
|
|
73
|
+
for (const scope of parsed.scopes) {
|
|
74
|
+
for (const def of scope.ownedDefs) {
|
|
75
|
+
if ((0, walkers_js_1.isClassLike)(def.type) && def.qualifiedName) {
|
|
76
|
+
structByQualifiedName.set(def.qualifiedName, {
|
|
77
|
+
nodeId: def.nodeId,
|
|
78
|
+
qualifiedName: def.qualifiedName,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// 2. Go-specific method owner: each Method def lives in a Function
|
|
85
|
+
// scope whose typeBindings carry the self entry (kept there by
|
|
86
|
+
// goBindingScopeFor). Match the self rawName against struct defs.
|
|
87
|
+
if (structByQualifiedName.size > 0) {
|
|
88
|
+
for (const parsed of parsedFiles) {
|
|
89
|
+
for (const scope of parsed.scopes) {
|
|
90
|
+
if (scope.kind !== 'Function')
|
|
91
|
+
continue;
|
|
92
|
+
const methodDefs = scope.ownedDefs.filter((d) => d.type === 'Method' && d.ownerId === undefined);
|
|
93
|
+
if (methodDefs.length === 0)
|
|
94
|
+
continue;
|
|
95
|
+
// Find the self typeBinding in this Function scope.
|
|
96
|
+
let receiverType;
|
|
97
|
+
let receiverKind = 'value';
|
|
98
|
+
for (const [, tb] of scope.typeBindings) {
|
|
99
|
+
if (tb.source === 'self') {
|
|
100
|
+
receiverType = tb.rawName;
|
|
101
|
+
receiverKind = tb.rawName.trim().startsWith('*') ? 'pointer' : 'value';
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (receiverType === undefined)
|
|
106
|
+
continue;
|
|
107
|
+
receiverType = receiverType.replace(/^\*+/, '').trim();
|
|
108
|
+
let owner = structByQualifiedName.get(receiverType);
|
|
109
|
+
if (owner === undefined) {
|
|
110
|
+
for (const [qname, candidate] of structByQualifiedName) {
|
|
111
|
+
if (qname.endsWith('.' + receiverType)) {
|
|
112
|
+
owner = candidate;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (owner !== undefined) {
|
|
118
|
+
for (const def of methodDefs) {
|
|
119
|
+
def.ownerId = owner.nodeId;
|
|
120
|
+
def.goReceiverKind = receiverKind;
|
|
121
|
+
const simpleName = def.qualifiedName?.split('.').pop() ?? def.qualifiedName;
|
|
122
|
+
if (simpleName !== undefined && !def.qualifiedName?.includes('.')) {
|
|
123
|
+
def.qualifiedName =
|
|
124
|
+
`${owner.qualifiedName}.${simpleName}`;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mirrorGoNamespaceTypeBindings = mirrorGoNamespaceTypeBindings;
|
|
4
|
+
const imported_return_types_js_1 = require("../../scope-resolution/passes/imported-return-types.js");
|
|
5
|
+
/**
|
|
6
|
+
* Mirror exported typeBindings from namespace-import target modules
|
|
7
|
+
* into the importer's module scope.
|
|
8
|
+
*
|
|
9
|
+
* Go uses namespace imports (`import "pkg"`) where the target package's
|
|
10
|
+
* exported symbols are visible as `pkg.Func`. For cross-package return-type
|
|
11
|
+
* resolution to work, the importer needs the target package's exported
|
|
12
|
+
* typeBindings (e.g. `NewUser → User`) mirrored into its own module scope.
|
|
13
|
+
*
|
|
14
|
+
* Exported-symbol filter: Go uses uppercase first letter for exported names.
|
|
15
|
+
*/
|
|
16
|
+
function mirrorGoNamespaceTypeBindings(parsedFiles, indexes, workspaceIndex) {
|
|
17
|
+
const moduleScopeByFile = workspaceIndex.moduleScopeByFile;
|
|
18
|
+
for (const parsed of parsedFiles) {
|
|
19
|
+
const importerModule = moduleScopeByFile.get(parsed.filePath);
|
|
20
|
+
if (importerModule === undefined)
|
|
21
|
+
continue;
|
|
22
|
+
const moduleEdges = indexes.imports.get(importerModule.id);
|
|
23
|
+
if (moduleEdges === undefined)
|
|
24
|
+
continue;
|
|
25
|
+
const nsTargets = new Map();
|
|
26
|
+
for (const edge of moduleEdges) {
|
|
27
|
+
if (edge.kind !== 'namespace' || edge.targetFile === null)
|
|
28
|
+
continue;
|
|
29
|
+
let targets = nsTargets.get(edge.localName);
|
|
30
|
+
if (targets === undefined) {
|
|
31
|
+
targets = [];
|
|
32
|
+
nsTargets.set(edge.localName, targets);
|
|
33
|
+
}
|
|
34
|
+
if (!targets.includes(edge.targetFile))
|
|
35
|
+
targets.push(edge.targetFile);
|
|
36
|
+
}
|
|
37
|
+
for (const targetFiles of nsTargets.values()) {
|
|
38
|
+
for (const targetFile of targetFiles) {
|
|
39
|
+
const sourceModule = moduleScopeByFile.get(targetFile);
|
|
40
|
+
if (sourceModule === undefined)
|
|
41
|
+
continue;
|
|
42
|
+
for (const [name, ref] of sourceModule.typeBindings) {
|
|
43
|
+
if (name.length === 0)
|
|
44
|
+
continue;
|
|
45
|
+
const first = name[0];
|
|
46
|
+
if (first < 'A' || first > 'Z')
|
|
47
|
+
continue;
|
|
48
|
+
if (importerModule.typeBindings.has(name))
|
|
49
|
+
continue;
|
|
50
|
+
const terminal = (0, imported_return_types_js_1.followChainPostFinalize)(ref, sourceModule.id, indexes);
|
|
51
|
+
importerModule.typeBindings.set(name, terminal);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Go package-clause resolution — the single derivation of a file's package
|
|
4
|
+
* identity (#2837).
|
|
5
|
+
*
|
|
6
|
+
* Both Go passes that bucket files by package (`populateGoWorkspaceOwners` and
|
|
7
|
+
* `populateGoPackageSiblings`) previously carried their own byte-identical copy
|
|
8
|
+
* of this, spelled as one unanchored multiline regex:
|
|
9
|
+
*
|
|
10
|
+
* sourceText.match(/^\s*package\s+([A-Za-z_][A-Za-z0-9_]*)/m)
|
|
11
|
+
*
|
|
12
|
+
* With the `m` flag that matches the first line ANYWHERE in the file starting
|
|
13
|
+
* with `package <ident>` — comment bodies included. Measured against that exact
|
|
14
|
+
* expression: a header comment containing `package legacy_notes kept for
|
|
15
|
+
* history` yields `legacy_notes`, and an indented ` package helper old name`
|
|
16
|
+
* yields `helper`. A file that mis-infers its own package gets a bucket key no
|
|
17
|
+
* sibling shares, so it is isolated in BOTH passes: its methods never attach to
|
|
18
|
+
* structs declared in sibling files, and it exchanges no same-package bindings.
|
|
19
|
+
* Every field-receiver call in it then resolves to nothing, silently — the same
|
|
20
|
+
* per-file signature #2837 reported.
|
|
21
|
+
*
|
|
22
|
+
* The Go spec makes the correct rule exact rather than heuristic: a source
|
|
23
|
+
* file's first non-comment, non-blank token is `package`. So skip the leading
|
|
24
|
+
* run of whitespace and comments, then require the very next token to be the
|
|
25
|
+
* clause. Anything else is `null` — a truncated read, a misrouted non-Go file,
|
|
26
|
+
* an unparseable header — reported by the caller rather than guessed at.
|
|
27
|
+
*
|
|
28
|
+
* ONE rule governs every leniency below (the `\s+` separator, the shebang skip,
|
|
29
|
+
* CR-only line endings): a file this returns `null` for is dropped from BOTH
|
|
30
|
+
* passes, so refusing a shape the previous regex accepted is a silent
|
|
31
|
+
* regression, not a principled tightening. Be no stricter than the grammar.
|
|
32
|
+
*/
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.inferGoPackageName = inferGoPackageName;
|
|
35
|
+
exports.goPackageDir = goPackageDir;
|
|
36
|
+
/** Leading trivia: whitespace, `//` lines, block comments. Sticky. */
|
|
37
|
+
const LEADING_TRIVIA = /(?:\s+|\/\/[^\n\r]*|\/\*[\s\S]*?\*\/)*/y;
|
|
38
|
+
/** The clause itself, anchored at the first non-trivia byte. `\s+` (not
|
|
39
|
+
* `[ \t]+`) because Go separates tokens by any whitespace: `package\nmain` is
|
|
40
|
+
* legal and tree-sitter parses it without error. */
|
|
41
|
+
const PACKAGE_CLAUSE = /package\s+([A-Za-z_][A-Za-z0-9_]*)/y;
|
|
42
|
+
/**
|
|
43
|
+
* The package name declared by this Go source text, or `null` when its first
|
|
44
|
+
* real token is not a package clause.
|
|
45
|
+
*
|
|
46
|
+
* Only the leading run before the clause is skipped — deliberately NOT a
|
|
47
|
+
* whole-file comment strip, which would be O(file) on every Go file and would
|
|
48
|
+
* also have to model string literals to stay correct.
|
|
49
|
+
*/
|
|
50
|
+
function inferGoPackageName(sourceText) {
|
|
51
|
+
let i = 0;
|
|
52
|
+
// A leading `#!` line: `gorun`-style scripts carry one. Only a FIRST-line
|
|
53
|
+
// `#!` is skipped; a `#` anywhere else still ends the scan.
|
|
54
|
+
if (sourceText.startsWith('#!')) {
|
|
55
|
+
const eol = sourceText.search(/[\n\r]/);
|
|
56
|
+
if (eol === -1)
|
|
57
|
+
return null;
|
|
58
|
+
i = eol + 1;
|
|
59
|
+
}
|
|
60
|
+
// Whitespace (`\s` covers the BOM and every line ending), `//` lines and block
|
|
61
|
+
// comments — the run a Go file may carry before its clause. Sticky, so the
|
|
62
|
+
// header is skipped in place without slicing a copy of the file. An
|
|
63
|
+
// unterminated `/*` or a `//` running to EOF simply leaves `lastIndex` where
|
|
64
|
+
// the clause cannot match, so neither needs its own early return.
|
|
65
|
+
LEADING_TRIVIA.lastIndex = i;
|
|
66
|
+
LEADING_TRIVIA.exec(sourceText);
|
|
67
|
+
PACKAGE_CLAUSE.lastIndex = LEADING_TRIVIA.lastIndex;
|
|
68
|
+
return PACKAGE_CLAUSE.exec(sourceText)?.[1] ?? null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The directory half of a Go package key. Go package identity is
|
|
72
|
+
* directory-scoped, so repeated `package main` directories must not see each
|
|
73
|
+
* other's unqualified names.
|
|
74
|
+
*/
|
|
75
|
+
function goPackageDir(filePath) {
|
|
76
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
77
|
+
const idx = normalized.lastIndexOf('/');
|
|
78
|
+
return idx === -1 ? '' : normalized.slice(0, idx);
|
|
79
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.populateGoPackageSiblings = populateGoPackageSiblings;
|
|
4
|
+
const expand_wildcards_js_1 = require("./expand-wildcards.js");
|
|
5
|
+
const package_clause_js_1 = require("./package-clause.js");
|
|
6
|
+
/**
|
|
7
|
+
* O(n²×d) where n = files per package, d = defs per file.
|
|
8
|
+
* Acceptable for V1 since Go packages are typically small (< 20 files).
|
|
9
|
+
* Future optimization: build a name→def inverted index per package to reduce
|
|
10
|
+
* to O(n×d).
|
|
11
|
+
*/
|
|
12
|
+
function populateGoPackageSiblings(parsedFiles, indexes, ctx) {
|
|
13
|
+
// 0. Filter out test files — Go _test.go files should not contribute
|
|
14
|
+
// same-package sibling bindings to non-test files.
|
|
15
|
+
const nonTestFiles = parsedFiles.filter((f) => !f.filePath.endsWith('_test.go'));
|
|
16
|
+
// 1. Expand dot imports first so subsequent same-package sibling
|
|
17
|
+
// augmentation can also see dot-imported names.
|
|
18
|
+
(0, expand_wildcards_js_1.expandGoDotImports)(nonTestFiles, indexes);
|
|
19
|
+
// 2. Group files by package directory plus package name. Go package
|
|
20
|
+
// identity is directory-scoped; repeated `package main` directories
|
|
21
|
+
// must not see each other's unqualified names.
|
|
22
|
+
const packageByFile = new Map();
|
|
23
|
+
for (const parsed of nonTestFiles) {
|
|
24
|
+
// Same derivation as `populateGoWorkspaceOwners` — one shared resolver, so
|
|
25
|
+
// the two passes cannot disagree about a file's package (#2837). The
|
|
26
|
+
// no-clause case is reported there; warning twice for one fact would be
|
|
27
|
+
// noise.
|
|
28
|
+
const pkgName = (0, package_clause_js_1.inferGoPackageName)(ctx.fileContents.get(parsed.filePath) ?? '');
|
|
29
|
+
if (pkgName !== null) {
|
|
30
|
+
packageByFile.set(parsed.filePath, `${(0, package_clause_js_1.goPackageDir)(parsed.filePath)}\0${pkgName}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const filesByPackage = new Map();
|
|
34
|
+
for (const parsed of nonTestFiles) {
|
|
35
|
+
const pkgName = packageByFile.get(parsed.filePath);
|
|
36
|
+
if (pkgName === undefined)
|
|
37
|
+
continue;
|
|
38
|
+
const list = filesByPackage.get(pkgName) ?? [];
|
|
39
|
+
list.push({ filePath: parsed.filePath, defs: [...parsed.localDefs] });
|
|
40
|
+
filesByPackage.set(pkgName, list);
|
|
41
|
+
}
|
|
42
|
+
// 2. Use bindingAugmentations channel per I8
|
|
43
|
+
const augmentations = indexes.bindingAugmentations;
|
|
44
|
+
for (const [, siblings] of filesByPackage) {
|
|
45
|
+
for (const target of siblings) {
|
|
46
|
+
const targetModule = indexes.moduleScopes.byFilePath.get(target.filePath);
|
|
47
|
+
if (targetModule === undefined)
|
|
48
|
+
continue;
|
|
49
|
+
for (const receiver of siblings) {
|
|
50
|
+
if (receiver.filePath === target.filePath)
|
|
51
|
+
continue; // no self-reference
|
|
52
|
+
const receiverModule = indexes.moduleScopes.byFilePath.get(receiver.filePath);
|
|
53
|
+
if (receiverModule === undefined)
|
|
54
|
+
continue;
|
|
55
|
+
for (const def of target.defs) {
|
|
56
|
+
// Go: same-package sibling files can see ALL names (both
|
|
57
|
+
// exported/uppercase and unexported/lowercase). Only cross-
|
|
58
|
+
// package visibility requires uppercase first letter.
|
|
59
|
+
const name = def.qualifiedName?.split('.').pop() ?? def.qualifiedName ?? '';
|
|
60
|
+
if (name === '')
|
|
61
|
+
continue;
|
|
62
|
+
const bucket = getAugmentationBucket(augmentations, receiverModule, name);
|
|
63
|
+
if (bucket.some((b) => b.def.nodeId === def.nodeId))
|
|
64
|
+
continue;
|
|
65
|
+
bucket.push({ def, origin: 'namespace' });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function getAugmentationBucket(augmentations, scopeId, name) {
|
|
72
|
+
let scopeBindings = augmentations.get(scopeId);
|
|
73
|
+
if (scopeBindings === undefined) {
|
|
74
|
+
scopeBindings = new Map();
|
|
75
|
+
augmentations.set(scopeId, scopeBindings);
|
|
76
|
+
}
|
|
77
|
+
let bucketArr = scopeBindings.get(name);
|
|
78
|
+
if (bucketArr === undefined) {
|
|
79
|
+
bucketArr = [];
|
|
80
|
+
scopeBindings.set(name, bucketArr);
|
|
81
|
+
}
|
|
82
|
+
return bucketArr;
|
|
83
|
+
}
|