cgraphx 2.0.2 → 2.0.6
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 +13 -3
- package/dist/.claude-template/agents/task-history.md +186 -0
- package/dist/.claude-template/commands/end.md +1 -0
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +5 -3
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +8 -8
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +8 -8
- package/dist/.claude-template/skills/clarify-requirements/SKILL.md +13 -9
- package/dist/.claude-template/skills/db-query/SKILL.md +19 -2
- package/dist/.claude-template/skills/iboc-check/SKILL.md +51 -23
- package/dist/.claude-template/skills/iboc-check/filler-prompt.md +3 -4
- package/dist/.claude-template/skills/run-api-test/SKILL.md +15 -15
- package/dist/.claude-template/skills/run-api-test/assets/{template-test-report.md → template-/346/216/245/345/217/243/346/265/213/350/257/225/346/212/245/345/221/212.md} +4 -4
- package/dist/.claude-template/skills/run-api-test/references/bru-run.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
- package/dist/.claude-template/skills/run-api-test/references/report-format.md +6 -6
- package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/test-scope.md +6 -6
- package/dist/.claude-template/skills/run-ui-test/SKILL.md +186 -0
- package/dist/.claude-template/skills/run-ui-test/references/report-format.md +77 -0
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
- package/dist/.claude-template/skills/write-api/SKILL.md +18 -18
- package/dist/.claude-template/skills/write-api/assets/{template-api-spec.md → template-/346/216/245/345/217/243/346/265/213/350/257/225-spec.md} +1 -1
- package/dist/.claude-template/skills/write-api/references/{api-spec-format.md → /346/216/245/345/217/243/346/265/213/350/257/225-spec-format.md} +3 -3
- package/dist/.claude-template/skills/write-plan/SKILL.md +4 -2
- package/dist/.claude-template/skills/write-ui-test/SKILL.md +125 -0
- package/dist/.claude-template/skills/write-ui-test/references//347/224/250/344/276/213/350/247/204/346/240/274-format.md +94 -0
- 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/dbquery/cli.d.ts.map +1 -1
- package/dist/core/dbquery/cli.js +5 -4
- package/dist/core/dbquery/cli.js.map +1 -1
- package/dist/core/dbquery/config.d.ts.map +1 -1
- package/dist/core/dbquery/config.js +39 -3
- package/dist/core/dbquery/config.js.map +1 -1
- package/dist/core/dbquery/drivers/http.d.ts +23 -0
- package/dist/core/dbquery/drivers/http.d.ts.map +1 -0
- package/dist/core/dbquery/drivers/http.js +125 -0
- package/dist/core/dbquery/drivers/http.js.map +1 -0
- package/dist/core/dbquery/drivers/mysql.js +1 -1
- package/dist/core/dbquery/drivers/mysql.js.map +1 -1
- package/dist/core/dbquery/drivers/postgres.js +1 -1
- package/dist/core/dbquery/drivers/postgres.js.map +1 -1
- package/dist/core/dbquery/executor.d.ts.map +1 -1
- package/dist/core/dbquery/executor.js +46 -12
- package/dist/core/dbquery/executor.js.map +1 -1
- package/dist/core/dbquery/format.d.ts.map +1 -1
- package/dist/core/dbquery/format.js +2 -1
- package/dist/core/dbquery/format.js.map +1 -1
- package/dist/core/dbquery/init.d.ts.map +1 -1
- package/dist/core/dbquery/init.js +7 -0
- package/dist/core/dbquery/init.js.map +1 -1
- package/dist/core/dbquery/types.d.ts +55 -7
- package/dist/core/dbquery/types.d.ts.map +1 -1
- package/dist/core/directory.d.ts +17 -0
- package/dist/core/directory.d.ts.map +1 -1
- package/dist/core/directory.js +37 -0
- package/dist/core/directory.js.map +1 -1
- package/dist/core/features/cli.d.ts.map +1 -1
- package/dist/core/features/cli.js +3 -2
- package/dist/core/features/cli.js.map +1 -1
- package/dist/core/features/scanner.d.ts +1 -1
- package/dist/core/features/scanner.d.ts.map +1 -1
- package/dist/core/features/scanner.js +20 -4
- package/dist/core/features/scanner.js.map +1 -1
- package/dist/core/markdown/cli.d.ts.map +1 -1
- package/dist/core/markdown/cli.js +9 -8
- package/dist/core/markdown/cli.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/dist/web/register.d.ts.map +1 -1
- package/dist/web/register.js +2 -1
- package/dist/web/register.js.map +1 -1
- package/package.json +1 -1
- package/dist/.claude-template/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-deck/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-deck/references/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-sketch-engine/.cgraphx/timeline-current-turn.json +0 -1
- /package/dist/.claude-template/skills/run-api-test/assets/{template-test-verify.jsonl → template-/346/216/245/345/217/243/346/265/213/350/257/225/351/252/214/350/257/201.jsonl"} +0 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markFileLocal = markFileLocal;
|
|
4
|
+
exports.isFileLocal = isFileLocal;
|
|
5
|
+
exports.markCppAnonymousNamespaceRange = markCppAnonymousNamespaceRange;
|
|
6
|
+
exports.isCppAnonymousNamespaceScope = isCppAnonymousNamespaceScope;
|
|
7
|
+
exports.collectCppFileLocalSideChannel = collectCppFileLocalSideChannel;
|
|
8
|
+
exports.applyCppFileLocalSideChannel = applyCppFileLocalSideChannel;
|
|
9
|
+
exports.clearFileLocalNames = clearFileLocalNames;
|
|
10
|
+
exports.populateCppAnonymousNamespaceScopes = populateCppAnonymousNamespaceScopes;
|
|
11
|
+
exports.populateCppNonGloballyVisible = populateCppNonGloballyVisible;
|
|
12
|
+
exports.isCppDefGloballyVisible = isCppDefGloballyVisible;
|
|
13
|
+
exports.expandCppWildcardNames = expandCppWildcardNames;
|
|
14
|
+
const inline_namespaces_js_1 = require("./inline-namespaces.js");
|
|
15
|
+
/**
|
|
16
|
+
* Per-file set of symbol names with file-local linkage.
|
|
17
|
+
* In C++ there are two sources of file-local linkage:
|
|
18
|
+
* 1. `static` storage class (same as C)
|
|
19
|
+
* 2. Anonymous namespace (`namespace { ... }`)
|
|
20
|
+
*
|
|
21
|
+
* Populated during `emitCppScopeCaptures` and consumed by
|
|
22
|
+
* `expandCppWildcardNames` to exclude file-local symbols from
|
|
23
|
+
* cross-file wildcard import visibility.
|
|
24
|
+
*
|
|
25
|
+
* NOTE: module-level state, single-process-single-repo use only.
|
|
26
|
+
* Call `clearFileLocalNames()` at the start of each resolution pass.
|
|
27
|
+
*
|
|
28
|
+
* Key: filePath, Value: Set of file-local symbol names.
|
|
29
|
+
*/
|
|
30
|
+
const fileLocalNames = new Map();
|
|
31
|
+
/**
|
|
32
|
+
* Per-file set of `SymbolDefinition.nodeId`s that are NOT visible by
|
|
33
|
+
* unqualified lookup from outside the file — class-owned methods/fields
|
|
34
|
+
* and namespace-nested symbols. Populated by `populateCppNonGloballyVisible`
|
|
35
|
+
* during the per-file `populateOwners` hook; consumed by
|
|
36
|
+
* `isCppDefGloballyVisible` from both `expandCppWildcardNames` (wildcard
|
|
37
|
+
* propagation) and the global free-call fallback's `isFileLocalDef` hook.
|
|
38
|
+
*
|
|
39
|
+
* Tracked per filePath rather than as a single global set so cross-file
|
|
40
|
+
* lookup correctly compares the candidate's owning file's non-visible
|
|
41
|
+
* set without leaking across pipeline invocations (the global free-call
|
|
42
|
+
* fallback checks `def.filePath !== callerFilePath` and then asks "is
|
|
43
|
+
* this def visible from outside its own file?" — that's exactly what
|
|
44
|
+
* this set encodes).
|
|
45
|
+
*/
|
|
46
|
+
const nonGloballyVisibleNodeIds = new Map();
|
|
47
|
+
/**
|
|
48
|
+
* Per-file set of source-range keys identifying `namespace { ... }` blocks.
|
|
49
|
+
* Resolved to `ScopeId`s in `populateCppAnonymousNamespaceScopes` and
|
|
50
|
+
* consumed via `isCppAnonymousNamespaceScope`.
|
|
51
|
+
*
|
|
52
|
+
* Anonymous namespaces have file-local linkage but, unlike `static`, their
|
|
53
|
+
* members propagate to any TU that `#include`s the declaring file — each
|
|
54
|
+
* including TU gets its own internal-linkage copy. So for wildcard import
|
|
55
|
+
* expansion (`expandCppWildcardNames`) we treat anonymous-namespace owned
|
|
56
|
+
* defs as if declared at the enclosing scope. Cross-file unqualified
|
|
57
|
+
* lookup that does NOT go through `#include` is still blocked by the
|
|
58
|
+
* `isFileLocal` mark recorded on the def's name.
|
|
59
|
+
*/
|
|
60
|
+
const anonymousNamespaceRangesByFile = new Map();
|
|
61
|
+
const anonymousNamespaceScopeIds = new Set();
|
|
62
|
+
function rangeKey(r) {
|
|
63
|
+
return `${r.startLine}:${r.startCol}:${r.endLine}:${r.endCol}`;
|
|
64
|
+
}
|
|
65
|
+
/** Record a symbol name as file-local (static or anonymous namespace). */
|
|
66
|
+
function markFileLocal(filePath, name) {
|
|
67
|
+
let names = fileLocalNames.get(filePath);
|
|
68
|
+
if (names === undefined) {
|
|
69
|
+
names = new Set();
|
|
70
|
+
fileLocalNames.set(filePath, names);
|
|
71
|
+
}
|
|
72
|
+
names.add(name);
|
|
73
|
+
}
|
|
74
|
+
/** Check whether a symbol name has file-local linkage in the given file. */
|
|
75
|
+
function isFileLocal(filePath, name) {
|
|
76
|
+
return fileLocalNames.get(filePath)?.has(name) ?? false;
|
|
77
|
+
}
|
|
78
|
+
/** Capture-time: record an anonymous `namespace_definition` source range. */
|
|
79
|
+
function markCppAnonymousNamespaceRange(filePath, range) {
|
|
80
|
+
let set = anonymousNamespaceRangesByFile.get(filePath);
|
|
81
|
+
if (set === undefined) {
|
|
82
|
+
set = new Set();
|
|
83
|
+
anonymousNamespaceRangesByFile.set(filePath, set);
|
|
84
|
+
}
|
|
85
|
+
set.add(rangeKey(range));
|
|
86
|
+
}
|
|
87
|
+
/** Predicate consumed by `populateCppNonGloballyVisible` and
|
|
88
|
+
* `expandCppWildcardNames` to exempt anonymous-namespace scopes from
|
|
89
|
+
* the cross-file unqualified-lookup exclusion that applies to ordinary
|
|
90
|
+
* named namespaces. */
|
|
91
|
+
function isCppAnonymousNamespaceScope(scopeId) {
|
|
92
|
+
return anonymousNamespaceScopeIds.has(scopeId);
|
|
93
|
+
}
|
|
94
|
+
/** Snapshot this file's file-local-linkage capture state for the side-channel. */
|
|
95
|
+
function collectCppFileLocalSideChannel(filePath) {
|
|
96
|
+
const names = fileLocalNames.get(filePath);
|
|
97
|
+
const anon = anonymousNamespaceRangesByFile.get(filePath);
|
|
98
|
+
return {
|
|
99
|
+
fileLocalNames: names === undefined ? [] : [...names],
|
|
100
|
+
anonymousNamespaceRanges: anon === undefined ? [] : [...anon],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** Restore this file's file-local-linkage capture state from the side-channel. */
|
|
104
|
+
function applyCppFileLocalSideChannel(filePath, data) {
|
|
105
|
+
for (const name of data.fileLocalNames)
|
|
106
|
+
markFileLocal(filePath, name);
|
|
107
|
+
if (data.anonymousNamespaceRanges.length > 0) {
|
|
108
|
+
let set = anonymousNamespaceRangesByFile.get(filePath);
|
|
109
|
+
if (set === undefined) {
|
|
110
|
+
set = new Set();
|
|
111
|
+
anonymousNamespaceRangesByFile.set(filePath, set);
|
|
112
|
+
}
|
|
113
|
+
for (const r of data.anonymousNamespaceRanges)
|
|
114
|
+
set.add(r);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Clear tracked file-local names (call at start of each resolution pass). */
|
|
118
|
+
function clearFileLocalNames() {
|
|
119
|
+
fileLocalNames.clear();
|
|
120
|
+
nonGloballyVisibleNodeIds.clear();
|
|
121
|
+
anonymousNamespaceRangesByFile.clear();
|
|
122
|
+
anonymousNamespaceScopeIds.clear();
|
|
123
|
+
}
|
|
124
|
+
/** Resolve recorded anonymous-namespace source ranges to `ScopeId`s.
|
|
125
|
+
* Must run inside `populateOwners` BEFORE `populateCppNonGloballyVisible`
|
|
126
|
+
* consults the resolved set. */
|
|
127
|
+
function populateCppAnonymousNamespaceScopes(parsed) {
|
|
128
|
+
const ranges = anonymousNamespaceRangesByFile.get(parsed.filePath);
|
|
129
|
+
if (ranges === undefined || ranges.size === 0)
|
|
130
|
+
return;
|
|
131
|
+
for (const scope of parsed.scopes) {
|
|
132
|
+
if (scope.kind !== 'Namespace')
|
|
133
|
+
continue;
|
|
134
|
+
if (ranges.has(rangeKey(scope.range))) {
|
|
135
|
+
anonymousNamespaceScopeIds.add(scope.id);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Populate per-file "not globally visible" nodeIds by walking the parsed
|
|
141
|
+
* file's scopes. Run as part of the `populateOwners` hook so every C++
|
|
142
|
+
* scope is reflected before any cross-file resolution pass consults the
|
|
143
|
+
* set.
|
|
144
|
+
*
|
|
145
|
+
* A def is "not globally visible" when its nearest structurally enclosing
|
|
146
|
+
* scope is a `Namespace` or `Class` — those require qualification
|
|
147
|
+
* (`ns::name`, `Class::method`) for cross-file unqualified lookup.
|
|
148
|
+
* Module-scoped defs remain globally visible.
|
|
149
|
+
*/
|
|
150
|
+
function populateCppNonGloballyVisible(parsed) {
|
|
151
|
+
let set = nonGloballyVisibleNodeIds.get(parsed.filePath);
|
|
152
|
+
if (set === undefined) {
|
|
153
|
+
set = new Set();
|
|
154
|
+
nonGloballyVisibleNodeIds.set(parsed.filePath, set);
|
|
155
|
+
}
|
|
156
|
+
for (const scope of parsed.scopes) {
|
|
157
|
+
if (scope.kind !== 'Namespace' && scope.kind !== 'Class')
|
|
158
|
+
continue;
|
|
159
|
+
// Inline namespaces (`inline namespace v1 { ... }`) propagate their
|
|
160
|
+
// members to the enclosing namespace's unqualified-lookup scope per
|
|
161
|
+
// ISO C++ `[namespace.def]/p4`. Skip them here so cross-file
|
|
162
|
+
// unqualified lookup can still see their callable defs.
|
|
163
|
+
if (scope.kind === 'Namespace' && (0, inline_namespaces_js_1.isCppInlineNamespaceScope)(scope.id))
|
|
164
|
+
continue;
|
|
165
|
+
// Anonymous namespaces give internal linkage but their contents are
|
|
166
|
+
// visible at the enclosing scope within the same TU and propagate to
|
|
167
|
+
// any TU that `#include`s the declaring file. The `isFileLocal` mark
|
|
168
|
+
// (recorded on the def's name in this file) still blocks cross-file
|
|
169
|
+
// unqualified lookup that does not go through #include, so dropping
|
|
170
|
+
// the structural visibility exclusion here is safe.
|
|
171
|
+
if (scope.kind === 'Namespace' && anonymousNamespaceScopeIds.has(scope.id))
|
|
172
|
+
continue;
|
|
173
|
+
for (const def of scope.ownedDefs) {
|
|
174
|
+
set.add(def.nodeId);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check whether a def is visible by unqualified lookup from outside its
|
|
180
|
+
* own file. Returns `false` for class-owned and namespace-nested defs.
|
|
181
|
+
*
|
|
182
|
+
* Used by the global free-call fallback's `isFileLocalDef` hook (which
|
|
183
|
+
* historically meant "static / anonymous-namespace" but semantically
|
|
184
|
+
* stands for "logically invisible cross-file"). Including class methods
|
|
185
|
+
* and namespace members under the same negative answer fixes the leak
|
|
186
|
+
* where unqualified `save()` resolved to `User::save` through a shared
|
|
187
|
+
* workspace registry walk.
|
|
188
|
+
*/
|
|
189
|
+
function isCppDefGloballyVisible(filePath, nodeId) {
|
|
190
|
+
return nonGloballyVisibleNodeIds.get(filePath)?.has(nodeId) !== true;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Return the names visible through a C++ wildcard import (`#include` or
|
|
194
|
+
* `using namespace`).
|
|
195
|
+
*
|
|
196
|
+
* ## Contract
|
|
197
|
+
*
|
|
198
|
+
* C++ unqualified name lookup only sees names at the importer's enclosing
|
|
199
|
+
* scope. Class members and namespace-nested symbols are NOT visible by
|
|
200
|
+
* unqualified lookup from a free function in an including TU — they must
|
|
201
|
+
* be reached via `Class::method`, `ns::name`, or a working `using`
|
|
202
|
+
* declaration. The filter below enforces that contract for header
|
|
203
|
+
* propagation: only defs whose nearest enclosing scope is the header's
|
|
204
|
+
* `Module` scope are emitted as wildcard-binding names.
|
|
205
|
+
*
|
|
206
|
+
* ## Why scope-aware and not predicate-on-qualifiedName
|
|
207
|
+
*
|
|
208
|
+
* A naive `def.qualifiedName.indexOf('.') === -1` check is unreliable
|
|
209
|
+
* because `populateClassOwnedMembers`
|
|
210
|
+
* (`cgraph/src/core/ingestion/scope-resolution/scope/walkers.ts`)
|
|
211
|
+
* only dot-qualifies `qualifiedName` for `Class` scopes. Namespace-nested
|
|
212
|
+
* defs (`namespace ns { void foo(); }`) arrive in `localDefs` with
|
|
213
|
+
* `qualifiedName === 'foo'` and `ownerId === undefined`, indistinguishable
|
|
214
|
+
* from a top-level free function. The structural truth lives in
|
|
215
|
+
* `Scope.ownedDefs`: each scope lists what it structurally owns; the
|
|
216
|
+
* Module scope owns only top-level symbols. We look the def up by
|
|
217
|
+
* `nodeId` against the scope tree to identify its owning kind.
|
|
218
|
+
*
|
|
219
|
+
* ## `localDefs` consumer survey (recorded for future maintainers)
|
|
220
|
+
*
|
|
221
|
+
* Other consumers of `ParsedFile.localDefs` were audited at the time
|
|
222
|
+
* this filter was introduced (see PR #1520 / plan
|
|
223
|
+
* `docs/plans/2026-05-12-002-fix-cpp-resolver-followups-plan.md`):
|
|
224
|
+
*
|
|
225
|
+
* - `finalize-orchestrator.ts:113,163` — flattens defs into a workspace
|
|
226
|
+
* registry keyed by `ownerId` + `qualifiedName`; class-owned and
|
|
227
|
+
* namespace-owned symbols are registered under their owner, not as
|
|
228
|
+
* unqualified names. Not a leak surface.
|
|
229
|
+
* - `csharp/namespace-siblings.ts:307`, `go/expand-wildcards.ts:86`,
|
|
230
|
+
* `php/scope-resolver.ts:141,151`, `c/static-linkage.ts:51` — other
|
|
231
|
+
* languages' own wildcard / sibling expansions. Each owns its own
|
|
232
|
+
* visibility contract.
|
|
233
|
+
* - `receiver-bound-calls.ts:99`, `reconcile-ownership.ts:66,119`,
|
|
234
|
+
* `mro.ts:61` — keyed by `ownerId` for member lookup, never used
|
|
235
|
+
* as unqualified bindings.
|
|
236
|
+
* - `go/interface-impls.ts:40,53`, `go/package-siblings.ts:41` — Go-
|
|
237
|
+
* specific, sibling-package scoped.
|
|
238
|
+
*
|
|
239
|
+
* No other consumer treats `localDefs` as a flat unqualified-binding
|
|
240
|
+
* set the way this function did before the fix. If a future consumer
|
|
241
|
+
* does, mirror this filter or harden registration so class/namespace
|
|
242
|
+
* members never enter `localDefs` unqualified.
|
|
243
|
+
*/
|
|
244
|
+
/**
|
|
245
|
+
* Per-pass memo: `moduleScope` → owning `ParsedFile`, keyed on the
|
|
246
|
+
* `parsedFiles` array identity. The shared finalize Phase-4 loop calls
|
|
247
|
+
* `expandsWildcardTo` (→ this) ONCE PER RESOLVED `#include` edge with the same
|
|
248
|
+
* `parsedFiles` reference; the old `parsedFiles.find(...)` was therefore O(F)
|
|
249
|
+
* per edge → O(R·F) overall (at kernel scale the ~25–30k `.h` headers are
|
|
250
|
+
* classified C++, so this fires hard — the C twin in `c/static-linkage.ts`).
|
|
251
|
+
* Building the lookup once collapses it to O(R+F). `WeakMap`-keyed so it is
|
|
252
|
+
* reclaimed with the pass (no cross-pass staleness; mirrors
|
|
253
|
+
* {@link clearFileLocalNames}).
|
|
254
|
+
*/
|
|
255
|
+
const moduleScopeIndexByPass = new WeakMap();
|
|
256
|
+
function moduleScopeIndex(parsedFiles) {
|
|
257
|
+
let index = moduleScopeIndexByPass.get(parsedFiles);
|
|
258
|
+
if (index === undefined) {
|
|
259
|
+
index = new Map();
|
|
260
|
+
// First-wins to preserve `Array.find` semantics (returns the first match).
|
|
261
|
+
for (const p of parsedFiles) {
|
|
262
|
+
if (!index.has(p.moduleScope))
|
|
263
|
+
index.set(p.moduleScope, p);
|
|
264
|
+
}
|
|
265
|
+
moduleScopeIndexByPass.set(parsedFiles, index);
|
|
266
|
+
}
|
|
267
|
+
return index;
|
|
268
|
+
}
|
|
269
|
+
function expandCppWildcardNames(targetModuleScope, parsedFiles) {
|
|
270
|
+
const target = moduleScopeIndex(parsedFiles).get(targetModuleScope);
|
|
271
|
+
if (target === undefined)
|
|
272
|
+
return [];
|
|
273
|
+
// Build nodeId → owning Scope map from the structural scope tree.
|
|
274
|
+
// `Scope.ownedDefs` is the canonical source of structural ownership;
|
|
275
|
+
// `localDefs` is its flattened union, which is why the original code
|
|
276
|
+
// leaked: walking only `localDefs` discards the owning-scope context.
|
|
277
|
+
const ownerScopeByNodeId = new Map();
|
|
278
|
+
for (const scope of target.scopes) {
|
|
279
|
+
for (const ownedDef of scope.ownedDefs) {
|
|
280
|
+
ownerScopeByNodeId.set(ownedDef.nodeId, scope);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
const seen = new Set();
|
|
284
|
+
const names = [];
|
|
285
|
+
for (const def of target.localDefs) {
|
|
286
|
+
// Defense-in-depth: class methods carry a non-undefined ownerId after
|
|
287
|
+
// `populateClassOwnedMembers` runs. Skip them outright.
|
|
288
|
+
if (def.ownerId !== undefined)
|
|
289
|
+
continue;
|
|
290
|
+
// Structural visibility check: exclude defs whose owning scope is a
|
|
291
|
+
// Namespace or Class — these require qualification (`ns::name`,
|
|
292
|
+
// `Class::method`) and are NOT reachable by unqualified lookup in an
|
|
293
|
+
// including TU. When the owning scope is unknown we default to
|
|
294
|
+
// include (preserves prior behavior for any def whose structural
|
|
295
|
+
// ownership wasn't recorded in `Scope.ownedDefs`).
|
|
296
|
+
//
|
|
297
|
+
// Anonymous namespaces are exempt: their members propagate to the
|
|
298
|
+
// enclosing scope of any TU that #includes the declaring file (each
|
|
299
|
+
// including TU gets its own internal-linkage copy per ISO C++).
|
|
300
|
+
const ownerScope = ownerScopeByNodeId.get(def.nodeId);
|
|
301
|
+
const ownerIsAnonymousNamespace = ownerScope !== undefined &&
|
|
302
|
+
ownerScope.kind === 'Namespace' &&
|
|
303
|
+
anonymousNamespaceScopeIds.has(ownerScope.id);
|
|
304
|
+
if (ownerScope !== undefined &&
|
|
305
|
+
!ownerIsAnonymousNamespace &&
|
|
306
|
+
(ownerScope.kind === 'Namespace' || ownerScope.kind === 'Class')) {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
const name = simpleName(def);
|
|
310
|
+
if (name === '')
|
|
311
|
+
continue;
|
|
312
|
+
// Same exemption for the `isFileLocal` mark — anonymous-namespace
|
|
313
|
+
// names are recorded as file-local to suppress the global free-call
|
|
314
|
+
// fallback's cross-file leak, but they MUST still propagate through
|
|
315
|
+
// wildcard import expansion to including TUs.
|
|
316
|
+
if (!ownerIsAnonymousNamespace && isFileLocal(target.filePath, name))
|
|
317
|
+
continue;
|
|
318
|
+
if (seen.has(name))
|
|
319
|
+
continue;
|
|
320
|
+
seen.add(name);
|
|
321
|
+
names.push(name);
|
|
322
|
+
}
|
|
323
|
+
return names;
|
|
324
|
+
}
|
|
325
|
+
function simpleName(def) {
|
|
326
|
+
return def.qualifiedName?.split('.').pop() ?? def.qualifiedName ?? '';
|
|
327
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scanCppHeaderFiles = scanCppHeaderFiles;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
/** C++ header extensions to scan for in the workspace. */
|
|
7
|
+
const HEADER_EXTENSIONS = new Set(['.h', '.hpp', '.hxx', '.hh', '.cuh']);
|
|
8
|
+
/**
|
|
9
|
+
* Walk `repoPath` recursively and return relative paths of all C++ header files.
|
|
10
|
+
* Used by `loadResolutionConfig` so the C++ resolver can resolve `#include`
|
|
11
|
+
* targets that live in header files.
|
|
12
|
+
*
|
|
13
|
+
* Scans for: .h, .hpp, .hxx, .hh, .cuh
|
|
14
|
+
*/
|
|
15
|
+
function scanCppHeaderFiles(repoPath) {
|
|
16
|
+
const headers = new Set();
|
|
17
|
+
walk(repoPath, repoPath, headers);
|
|
18
|
+
return headers;
|
|
19
|
+
}
|
|
20
|
+
function walk(dir, root, out) {
|
|
21
|
+
let entries;
|
|
22
|
+
try {
|
|
23
|
+
entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true, encoding: 'utf8' });
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return; // permission denied, etc.
|
|
27
|
+
}
|
|
28
|
+
for (const entry of entries) {
|
|
29
|
+
const name = entry.name;
|
|
30
|
+
const full = (0, path_1.join)(dir, name);
|
|
31
|
+
if (entry.isDirectory()) {
|
|
32
|
+
if (name === 'node_modules' ||
|
|
33
|
+
name === '.git' ||
|
|
34
|
+
name === 'vendor' ||
|
|
35
|
+
name === 'dist' ||
|
|
36
|
+
name === 'build' ||
|
|
37
|
+
name === 'out' ||
|
|
38
|
+
name === 'target' ||
|
|
39
|
+
name === '_build' ||
|
|
40
|
+
name === '.next' ||
|
|
41
|
+
name.startsWith('cmake-build')) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
walk(full, root, out);
|
|
45
|
+
}
|
|
46
|
+
else if (entry.isFile()) {
|
|
47
|
+
const ext = name.slice(name.lastIndexOf('.'));
|
|
48
|
+
if (HEADER_EXTENSIONS.has(ext)) {
|
|
49
|
+
out.add((0, path_1.relative)(root, full).replace(/\\/g, '/'));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.splitCppInclude = splitCppInclude;
|
|
4
|
+
exports.splitCppUsingDecl = splitCppUsingDecl;
|
|
5
|
+
const ast_helpers_js_1 = require("../../utils/ast-helpers.js");
|
|
6
|
+
/**
|
|
7
|
+
* Decompose a `preproc_include` node into a CaptureMatch with structured
|
|
8
|
+
* import captures. C++ #include maps to a wildcard import (all symbols
|
|
9
|
+
* from the header are visible). Identical to C's splitCInclude.
|
|
10
|
+
*
|
|
11
|
+
* Only literal include paths are emitted as import sources:
|
|
12
|
+
* #include <map> → system_lib_string
|
|
13
|
+
* #include "User.h" → string_literal
|
|
14
|
+
* A computed include like `#include HEADER_MACRO` carries an `identifier`
|
|
15
|
+
* path node (the macro name, not a header path); we skip it so it never
|
|
16
|
+
* becomes a garbage literal import source (issue #1919 F5).
|
|
17
|
+
*/
|
|
18
|
+
function splitCppInclude(node) {
|
|
19
|
+
const pathNode = node.childForFieldName?.('path') ?? null;
|
|
20
|
+
if (pathNode === null) {
|
|
21
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
22
|
+
const child = node.child(i);
|
|
23
|
+
if (child === null)
|
|
24
|
+
continue;
|
|
25
|
+
if (child.type === 'string_literal' || child.type === 'system_lib_string') {
|
|
26
|
+
return buildIncludeCapture(node, child);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return buildIncludeCapture(node, pathNode);
|
|
32
|
+
}
|
|
33
|
+
function buildIncludeCapture(node, pathNode) {
|
|
34
|
+
// Skip computed includes (`#include MACRO`) — the path is an `identifier`,
|
|
35
|
+
// not a literal header path. Emitting it would create a garbage import.
|
|
36
|
+
if (pathNode.type !== 'string_literal' && pathNode.type !== 'system_lib_string') {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
let raw;
|
|
40
|
+
if (pathNode.type === 'string_literal') {
|
|
41
|
+
const content = pathNode.namedChildren.find((c) => c.type === 'string_content');
|
|
42
|
+
raw = content?.text ?? pathNode.text.replace(/^"|"$/g, '');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
raw = pathNode.text;
|
|
46
|
+
if (raw.startsWith('<') && raw.endsWith('>')) {
|
|
47
|
+
raw = raw.slice(1, -1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const isSystem = pathNode.type === 'system_lib_string';
|
|
51
|
+
const result = {
|
|
52
|
+
'@import.statement': (0, ast_helpers_js_1.nodeToCapture)('@import.statement', node),
|
|
53
|
+
'@import.kind': (0, ast_helpers_js_1.syntheticCapture)('@import.kind', node, 'wildcard'),
|
|
54
|
+
'@import.source': (0, ast_helpers_js_1.syntheticCapture)('@import.source', node, raw),
|
|
55
|
+
};
|
|
56
|
+
if (isSystem) {
|
|
57
|
+
result['@import.system'] = (0, ast_helpers_js_1.syntheticCapture)('@import.system', node, 'true');
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Decompose a `using_declaration` node into a CaptureMatch.
|
|
63
|
+
*
|
|
64
|
+
* tree-sitter-cpp produces:
|
|
65
|
+
* using namespace std; → using_declaration { "using", "namespace", identifier("std"), ";" }
|
|
66
|
+
* using std::vector; → using_declaration { "using", qualified_identifier("std::vector"), ";" }
|
|
67
|
+
*
|
|
68
|
+
* The first form is a wildcard import (all names from namespace).
|
|
69
|
+
* The second form is a named import (single symbol).
|
|
70
|
+
*/
|
|
71
|
+
function splitCppUsingDecl(node) {
|
|
72
|
+
if (node.type !== 'using_declaration')
|
|
73
|
+
return null;
|
|
74
|
+
// A class-scope `using Base::member;` changes the derived class's member
|
|
75
|
+
// lookup set; it is not a namespace import. The C++ member-lookup sidecar
|
|
76
|
+
// captures it separately, so suppress import decomposition here.
|
|
77
|
+
for (let parent = node.parent; parent !== null; parent = parent.parent) {
|
|
78
|
+
if (parent.type === 'class_specifier' || parent.type === 'struct_specifier')
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
// Check for "namespace" keyword among anonymous children
|
|
82
|
+
let hasNamespaceKeyword = false;
|
|
83
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
84
|
+
const child = node.child(i);
|
|
85
|
+
if (child !== null && !child.isNamed && child.text === 'namespace') {
|
|
86
|
+
hasNamespaceKeyword = true;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (hasNamespaceKeyword) {
|
|
91
|
+
// using namespace <name>;
|
|
92
|
+
// The namespace name can be an identifier or qualified_identifier
|
|
93
|
+
let namespaceName = null;
|
|
94
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
95
|
+
const child = node.namedChild(i);
|
|
96
|
+
if (child === null)
|
|
97
|
+
continue;
|
|
98
|
+
if (child.type === 'identifier' || child.type === 'qualified_identifier') {
|
|
99
|
+
namespaceName = child.text;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (namespaceName === null)
|
|
104
|
+
return null;
|
|
105
|
+
return {
|
|
106
|
+
'@import.statement': (0, ast_helpers_js_1.nodeToCapture)('@import.statement', node),
|
|
107
|
+
'@import.kind': (0, ast_helpers_js_1.syntheticCapture)('@import.kind', node, 'wildcard'),
|
|
108
|
+
'@import.source': (0, ast_helpers_js_1.syntheticCapture)('@import.source', node, namespaceName),
|
|
109
|
+
'@import.using-namespace': (0, ast_helpers_js_1.syntheticCapture)('@import.using-namespace', node, 'true'),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// using <qualified_identifier>; (e.g. using std::vector)
|
|
113
|
+
let qualId = null;
|
|
114
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
115
|
+
const child = node.namedChild(i);
|
|
116
|
+
if (child !== null && child.type === 'qualified_identifier') {
|
|
117
|
+
qualId = child;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (qualId === null)
|
|
122
|
+
return null;
|
|
123
|
+
// Extract the imported name (last identifier) and source (namespace part)
|
|
124
|
+
const nameNode = qualId.childForFieldName?.('name') ?? null;
|
|
125
|
+
const scopeNode = qualId.childForFieldName?.('scope') ?? null;
|
|
126
|
+
const importedName = nameNode?.text ?? qualId.text.split('::').pop() ?? '';
|
|
127
|
+
const source = scopeNode?.text ?? qualId.text.replace(new RegExp('::' + importedName + '$'), '');
|
|
128
|
+
return {
|
|
129
|
+
'@import.statement': (0, ast_helpers_js_1.nodeToCapture)('@import.statement', node),
|
|
130
|
+
'@import.kind': (0, ast_helpers_js_1.syntheticCapture)('@import.kind', node, 'named'),
|
|
131
|
+
'@import.source': (0, ast_helpers_js_1.syntheticCapture)('@import.source', node, source),
|
|
132
|
+
'@import.name': (0, ast_helpers_js_1.syntheticCapture)('@import.name', node, importedName),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveCppImportTarget = resolveCppImportTarget;
|
|
4
|
+
const import_target_js_1 = require("../c/import-target.js");
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a C++ #include path to a file in the workspace.
|
|
7
|
+
* C++ #include path resolution is identical to C:
|
|
8
|
+
* 1. Same-directory sibling (relative lookup)
|
|
9
|
+
* 2. Exact match
|
|
10
|
+
* 3. Suffix match with depth + lexicographic tiebreak
|
|
11
|
+
*
|
|
12
|
+
* Re-exports the C implementation since the #include semantics are shared.
|
|
13
|
+
*/
|
|
14
|
+
function resolveCppImportTarget(targetRaw, fromFile, allFilePaths) {
|
|
15
|
+
return (0, import_target_js_1.resolveCImportTarget)(targetRaw, fromFile, allFilePaths);
|
|
16
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyCppCaptureSideChannel = exports.collectCppCaptureSideChannel = exports.expandCppWildcardNames = exports.clearFileLocalNames = exports.isFileLocal = exports.markFileLocal = exports.resolveCppImportTarget = exports.cppReceiverBinding = exports.cppImportOwningScope = exports.cppBindingScopeFor = exports.cppMergeBindings = exports.cppArityCompatibility = exports.splitCppUsingDecl = exports.splitCppInclude = exports.normalizeCppTypeName = exports.interpretCppTypeBinding = exports.interpretCppImport = exports.emitCppScopeCaptures = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* C++ scope-resolution hooks (RFC #909 Ring 3).
|
|
6
|
+
*/
|
|
7
|
+
var captures_js_1 = require("./captures.js");
|
|
8
|
+
Object.defineProperty(exports, "emitCppScopeCaptures", { enumerable: true, get: function () { return captures_js_1.emitCppScopeCaptures; } });
|
|
9
|
+
var interpret_js_1 = require("./interpret.js");
|
|
10
|
+
Object.defineProperty(exports, "interpretCppImport", { enumerable: true, get: function () { return interpret_js_1.interpretCppImport; } });
|
|
11
|
+
Object.defineProperty(exports, "interpretCppTypeBinding", { enumerable: true, get: function () { return interpret_js_1.interpretCppTypeBinding; } });
|
|
12
|
+
Object.defineProperty(exports, "normalizeCppTypeName", { enumerable: true, get: function () { return interpret_js_1.normalizeCppTypeName; } });
|
|
13
|
+
var import_decomposer_js_1 = require("./import-decomposer.js");
|
|
14
|
+
Object.defineProperty(exports, "splitCppInclude", { enumerable: true, get: function () { return import_decomposer_js_1.splitCppInclude; } });
|
|
15
|
+
Object.defineProperty(exports, "splitCppUsingDecl", { enumerable: true, get: function () { return import_decomposer_js_1.splitCppUsingDecl; } });
|
|
16
|
+
var arity_js_1 = require("./arity.js");
|
|
17
|
+
Object.defineProperty(exports, "cppArityCompatibility", { enumerable: true, get: function () { return arity_js_1.cppArityCompatibility; } });
|
|
18
|
+
var merge_bindings_js_1 = require("./merge-bindings.js");
|
|
19
|
+
Object.defineProperty(exports, "cppMergeBindings", { enumerable: true, get: function () { return merge_bindings_js_1.cppMergeBindings; } });
|
|
20
|
+
var simple_hooks_js_1 = require("./simple-hooks.js");
|
|
21
|
+
Object.defineProperty(exports, "cppBindingScopeFor", { enumerable: true, get: function () { return simple_hooks_js_1.cppBindingScopeFor; } });
|
|
22
|
+
Object.defineProperty(exports, "cppImportOwningScope", { enumerable: true, get: function () { return simple_hooks_js_1.cppImportOwningScope; } });
|
|
23
|
+
Object.defineProperty(exports, "cppReceiverBinding", { enumerable: true, get: function () { return simple_hooks_js_1.cppReceiverBinding; } });
|
|
24
|
+
var import_target_js_1 = require("./import-target.js");
|
|
25
|
+
Object.defineProperty(exports, "resolveCppImportTarget", { enumerable: true, get: function () { return import_target_js_1.resolveCppImportTarget; } });
|
|
26
|
+
var file_local_linkage_js_1 = require("./file-local-linkage.js");
|
|
27
|
+
Object.defineProperty(exports, "markFileLocal", { enumerable: true, get: function () { return file_local_linkage_js_1.markFileLocal; } });
|
|
28
|
+
Object.defineProperty(exports, "isFileLocal", { enumerable: true, get: function () { return file_local_linkage_js_1.isFileLocal; } });
|
|
29
|
+
Object.defineProperty(exports, "clearFileLocalNames", { enumerable: true, get: function () { return file_local_linkage_js_1.clearFileLocalNames; } });
|
|
30
|
+
Object.defineProperty(exports, "expandCppWildcardNames", { enumerable: true, get: function () { return file_local_linkage_js_1.expandCppWildcardNames; } });
|
|
31
|
+
var capture_side_channel_js_1 = require("./capture-side-channel.js");
|
|
32
|
+
Object.defineProperty(exports, "collectCppCaptureSideChannel", { enumerable: true, get: function () { return capture_side_channel_js_1.collectCppCaptureSideChannel; } });
|
|
33
|
+
Object.defineProperty(exports, "applyCppCaptureSideChannel", { enumerable: true, get: function () { return capture_side_channel_js_1.applyCppCaptureSideChannel; } });
|