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,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* JavaScript `ScopeResolver` registered in `SCOPE_RESOLVERS` and
|
|
4
|
+
* consumed by the generic `runScopeResolution` orchestrator
|
|
5
|
+
* (RFC #909 Ring 3, issue #928).
|
|
6
|
+
*
|
|
7
|
+
* Follows the same minimal wiring-only pattern as TypeScript (the third
|
|
8
|
+
* migration). Per-hook logic lives in sibling modules:
|
|
9
|
+
*
|
|
10
|
+
* - `query.ts` — JS scope query + parser/query singletons
|
|
11
|
+
* - `captures.ts` — `emitJsScopeCaptures` (JS grammar, CJS, JSDoc)
|
|
12
|
+
* - `interpret.ts` — `interpretJsImport` (delegates to TS interpreter)
|
|
13
|
+
* - `simple-hooks.ts` — `jsBindingScopeFor`, `jsImportOwningScope`,
|
|
14
|
+
* `jsReceiverBinding` (all delegate to TS hooks)
|
|
15
|
+
* - `merge-bindings.ts` — `jsMergeBindings` (delegates to TS function)
|
|
16
|
+
* - `arity.ts` — `jsArityCompatibility` (delegates to TS function)
|
|
17
|
+
* - `import-target.ts` — `makeJsResolveImportTarget` (TS resolver, JS extensions)
|
|
18
|
+
*
|
|
19
|
+
* See `./index.ts` for the full per-module rationale.
|
|
20
|
+
*
|
|
21
|
+
* ## Key differences from TypeScript resolver
|
|
22
|
+
*
|
|
23
|
+
* - `fieldFallbackOnMethodLookup: true` — JavaScript is dynamically typed;
|
|
24
|
+
* the field-fallback heuristic is ENABLED (unlike TypeScript, which
|
|
25
|
+
* disables it because the type-binding layer is precise).
|
|
26
|
+
* - `allowGlobalFreeCallFallback: true` — CJS `require` patterns and
|
|
27
|
+
* global helpers (e.g. `process`, `console`) benefit from workspace-
|
|
28
|
+
* wide unique-name fallback. TypeScript uses explicit imports.
|
|
29
|
+
* - `loadResolutionConfig` is omitted — JavaScript projects don't use
|
|
30
|
+
* `tsconfig.json` path aliases in general. `tsconfigPaths: null` is
|
|
31
|
+
* threaded through the resolver adapter.
|
|
32
|
+
* - `hoistTypeBindingsToModule: true` — JSDoc `@returns {T}` bindings are
|
|
33
|
+
* synthesized on the function scope and hoisted, matching TypeScript's
|
|
34
|
+
* method return-type hoisting strategy for cross-file chain resolution.
|
|
35
|
+
*/
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.javascriptScopeResolver = void 0;
|
|
38
|
+
const index_js_1 = require("../../../../../shared/index.js");
|
|
39
|
+
const mro_js_1 = require("../../scope-resolution/passes/mro.js");
|
|
40
|
+
const walkers_js_1 = require("../../scope-resolution/scope/walkers.js");
|
|
41
|
+
const typescript_js_1 = require("../typescript.js");
|
|
42
|
+
const merge_bindings_js_1 = require("./merge-bindings.js");
|
|
43
|
+
const arity_js_1 = require("./arity.js");
|
|
44
|
+
const import_target_js_1 = require("./import-target.js");
|
|
45
|
+
const javascriptScopeResolver = {
|
|
46
|
+
// Construction is keyword-prefixed: `new Service(db).doWork()` (#2708).
|
|
47
|
+
constructionSyntax: { keyword: 'new' },
|
|
48
|
+
language: index_js_1.SupportedLanguages.JavaScript,
|
|
49
|
+
languageProvider: typescript_js_1.javascriptProvider,
|
|
50
|
+
importEdgeReason: 'javascript-scope: import',
|
|
51
|
+
resolveImportTarget: (0, import_target_js_1.makeJsResolveImportTarget)(),
|
|
52
|
+
// JavaScript LEGB — same tier ordering as TypeScript; no declaration-
|
|
53
|
+
// merging across type/value/namespace spaces.
|
|
54
|
+
mergeBindings: (existing, incoming) => [...(0, merge_bindings_js_1.jsMergeBindings)([...existing, ...incoming])],
|
|
55
|
+
// Adapter: jsArityCompatibility uses (def, callsite); contract is (callsite, def).
|
|
56
|
+
arityCompatibility: (callsite, def) => (0, arity_js_1.jsArityCompatibility)(def, callsite),
|
|
57
|
+
buildMro: (graph, parsedFiles, nodeLookup) => (0, mro_js_1.buildMro)(graph, parsedFiles, nodeLookup, mro_js_1.defaultLinearize),
|
|
58
|
+
populateOwners: (parsed) => (0, walkers_js_1.populateClassOwnedMembers)(parsed),
|
|
59
|
+
// JavaScript `super` keyword: same pattern as TypeScript.
|
|
60
|
+
isSuperReceiver: (text) => /^super(\s*\(|\s*\.|\s*\[|\s*$)/.test(text.trim()),
|
|
61
|
+
// JavaScript is dynamically typed — enable the field-fallback heuristic
|
|
62
|
+
// so member-call receivers without type annotations can still resolve
|
|
63
|
+
// through declared class fields (e.g. JSDoc-typed fields).
|
|
64
|
+
fieldFallbackOnMethodLookup: true,
|
|
65
|
+
// Return-type propagation (across ESM imports) mirrors TypeScript's
|
|
66
|
+
// default behavior. JSDoc @returns bindings are hoisted to Module scope
|
|
67
|
+
// and propagated to importers via the standard mechanism.
|
|
68
|
+
propagatesReturnTypesAcrossImports: true,
|
|
69
|
+
// JSDoc @returns bindings are synthesized on the function/method node
|
|
70
|
+
// and hoisted to Module scope by `jsBindingScopeFor` (identical to the
|
|
71
|
+
// TypeScript `tsBindingScopeFor` `@type-binding.return` branch).
|
|
72
|
+
hoistTypeBindingsToModule: true,
|
|
73
|
+
// CJS-heavy codebases often have utility functions exported without
|
|
74
|
+
// explicit imports at the call site. Workspace-wide unique-name fallback
|
|
75
|
+
// recovers these edges.
|
|
76
|
+
allowGlobalFreeCallFallback: true,
|
|
77
|
+
};
|
|
78
|
+
exports.javascriptScopeResolver = javascriptScopeResolver;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simple hooks for the JavaScript scope-resolution provider.
|
|
4
|
+
*
|
|
5
|
+
* `jsBindingScopeFor` wraps `tsBindingScopeFor` and adds the JS-only
|
|
6
|
+
* `@type-binding.class-field` hoisting rule. The other two hooks
|
|
7
|
+
* (`jsImportOwningScope`, `jsReceiverBinding`) are identical to their
|
|
8
|
+
* TypeScript counterparts and are re-exported directly.
|
|
9
|
+
*
|
|
10
|
+
* ## Why class-field hoisting lives here (not in `tsBindingScopeFor`)
|
|
11
|
+
*
|
|
12
|
+
* `@type-binding.class-field` is emitted exclusively by
|
|
13
|
+
* `synthesizeConstructorFieldBindings` in `captures.ts`, which is a
|
|
14
|
+
* JavaScript-only synthesis pass. TypeScript uses
|
|
15
|
+
* `@type-binding.parameter-property` for constructor parameter
|
|
16
|
+
* properties instead. Keeping the JS-only rule in the JS hook file
|
|
17
|
+
* prevents language-specific logic from leaking into shared TypeScript
|
|
18
|
+
* infrastructure (DoD.md §2.2).
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.jsReceiverBinding = exports.jsImportOwningScope = void 0;
|
|
22
|
+
exports.jsBindingScopeFor = jsBindingScopeFor;
|
|
23
|
+
const scope_tree_walk_js_1 = require("../../utils/scope-tree-walk.js");
|
|
24
|
+
const simple_hooks_js_1 = require("../typescript/simple-hooks.js");
|
|
25
|
+
var simple_hooks_js_2 = require("../typescript/simple-hooks.js");
|
|
26
|
+
Object.defineProperty(exports, "jsImportOwningScope", { enumerable: true, get: function () { return simple_hooks_js_2.tsImportOwningScope; } });
|
|
27
|
+
Object.defineProperty(exports, "jsReceiverBinding", { enumerable: true, get: function () { return simple_hooks_js_2.tsReceiverBinding; } });
|
|
28
|
+
/**
|
|
29
|
+
* Like `tsBindingScopeFor` but additionally hoists
|
|
30
|
+
* `@type-binding.class-field` captures to the enclosing Class scope.
|
|
31
|
+
*
|
|
32
|
+
* `@type-binding.class-field` is anchored inside the constructor body
|
|
33
|
+
* (by `synthesizeConstructorFieldBindings`) so that `walkToScope` can
|
|
34
|
+
* walk up from the Function (constructor) scope to the Class scope.
|
|
35
|
+
* This puts `User.address → Address` in the class's typeBindings so
|
|
36
|
+
* compound-receiver resolution finds it when resolving
|
|
37
|
+
* `user.address.save()`.
|
|
38
|
+
*/
|
|
39
|
+
function jsBindingScopeFor(decl, innermost, tree) {
|
|
40
|
+
if (decl['@type-binding.class-field'] !== undefined) {
|
|
41
|
+
return (0, scope_tree_walk_js_1.walkToScope)(innermost, tree, 'Class');
|
|
42
|
+
}
|
|
43
|
+
return (0, simple_hooks_js_1.tsBindingScopeFor)(decl, innermost, tree);
|
|
44
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UNKNOWN_JVM_PACKAGE_FACT = void 0;
|
|
4
|
+
exports.isJvmPackageFact = isJvmPackageFact;
|
|
5
|
+
exports.createJvmPackageFactStore = createJvmPackageFactStore;
|
|
6
|
+
exports.extractJvmPackageFact = extractJvmPackageFact;
|
|
7
|
+
exports.UNKNOWN_JVM_PACKAGE_FACT = Object.freeze({ status: 'unknown' });
|
|
8
|
+
/** Validate a package fact restored from an opaque worker payload. */
|
|
9
|
+
function isJvmPackageFact(value) {
|
|
10
|
+
if (value === null || typeof value !== 'object')
|
|
11
|
+
return false;
|
|
12
|
+
const fact = value;
|
|
13
|
+
return (fact.status === 'unknown' || (fact.status === 'known' && typeof fact.packageName === 'string'));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create one language-local package fact store.
|
|
17
|
+
*
|
|
18
|
+
* Package facts are captured while the language's scope extractor already
|
|
19
|
+
* owns a tree-sitter Tree, then serialized through ParsedFile's side-channel.
|
|
20
|
+
* Resolution hooks consume only this plain data and never parse source again.
|
|
21
|
+
*/
|
|
22
|
+
function createJvmPackageFactStore(options) {
|
|
23
|
+
const factsByFile = new Map();
|
|
24
|
+
return {
|
|
25
|
+
clear: () => factsByFile.clear(),
|
|
26
|
+
capture: (filePath, root) => factsByFile.set(filePath, extractJvmPackageFact(root, options)),
|
|
27
|
+
set: (filePath, fact) => factsByFile.set(filePath, fact),
|
|
28
|
+
get: (filePath) => factsByFile.get(filePath),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function extractJvmPackageFact(root, options) {
|
|
32
|
+
const packageNode = root.namedChildren.find((child) => child.type === options.packageNodeType);
|
|
33
|
+
if (packageNode === undefined) {
|
|
34
|
+
// A syntax error elsewhere in a default-package file does not make its
|
|
35
|
+
// package ambiguous. Only a top-level ERROR that contains the reserved
|
|
36
|
+
// package keyword is evidence of a malformed package header.
|
|
37
|
+
const malformedHeader = root.namedChildren.some((child) => child.type === 'ERROR' && /\bpackage\b/.test(child.text));
|
|
38
|
+
return malformedHeader ? exports.UNKNOWN_JVM_PACKAGE_FACT : { status: 'known', packageName: '' };
|
|
39
|
+
}
|
|
40
|
+
const nameNode = packageNode.namedChildren.find((child) => options.packageNameNodeTypes.includes(child.type));
|
|
41
|
+
const packageName = nameNode?.text.trim();
|
|
42
|
+
if (packageNode.hasError || packageName === undefined || packageName.length === 0) {
|
|
43
|
+
return exports.UNKNOWN_JVM_PACKAGE_FACT;
|
|
44
|
+
}
|
|
45
|
+
return { status: 'known', packageName };
|
|
46
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createJvmPackageSiblingVisibility = createJvmPackageSiblingVisibility;
|
|
4
|
+
const logger_js_1 = require("../../../logger.js");
|
|
5
|
+
const walkers_js_1 = require("../../scope-resolution/scope/walkers.js");
|
|
6
|
+
/** Packages larger than this get no implicit sibling visibility at all — every
|
|
7
|
+
* file in them is marked incomplete. `CGRAPH_MAX_INJECTED_SIBLINGS` bounds
|
|
8
|
+
* injection *within* a package and does not lift this skip. */
|
|
9
|
+
const MAX_PACKAGE_FILES = 500;
|
|
10
|
+
const DEFAULT_MAX_INJECTED_SIBLINGS = 200;
|
|
11
|
+
function getMaxInjectedSiblings() {
|
|
12
|
+
const raw = process.env.CGRAPH_MAX_INJECTED_SIBLINGS;
|
|
13
|
+
if (raw === undefined || raw === '')
|
|
14
|
+
return DEFAULT_MAX_INJECTED_SIBLINGS;
|
|
15
|
+
const parsed = Number(raw);
|
|
16
|
+
return Number.isInteger(parsed) && parsed >= 0 ? parsed : DEFAULT_MAX_INJECTED_SIBLINGS;
|
|
17
|
+
}
|
|
18
|
+
function createJvmPackageSiblingVisibility(options) {
|
|
19
|
+
const incompleteFiles = new Set();
|
|
20
|
+
function populateNamespaceSiblings(parsedFiles, indexes, ctx) {
|
|
21
|
+
incompleteFiles.clear();
|
|
22
|
+
const buckets = new Map();
|
|
23
|
+
const unknownPackageFiles = new Set();
|
|
24
|
+
const parsedPaths = new Set(parsedFiles.map((parsed) => parsed.filePath));
|
|
25
|
+
// A file that failed scope extraction has no ParsedFile or side-channel,
|
|
26
|
+
// but it may still declare a shadowing type in any package. Keep its source
|
|
27
|
+
// path in the uncertainty set without re-parsing it on the main thread.
|
|
28
|
+
for (const filePath of ctx.fileContents.keys()) {
|
|
29
|
+
if (!parsedPaths.has(filePath))
|
|
30
|
+
unknownPackageFiles.add(filePath);
|
|
31
|
+
}
|
|
32
|
+
for (const parsed of parsedFiles) {
|
|
33
|
+
const packageFact = options.getPackageFact(parsed.filePath);
|
|
34
|
+
if (!ctx.fileContents.has(parsed.filePath) || packageFact?.status !== 'known') {
|
|
35
|
+
incompleteFiles.add(parsed.filePath);
|
|
36
|
+
unknownPackageFiles.add(parsed.filePath);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const packageName = packageFact.packageName;
|
|
40
|
+
const bucket = buckets.get(packageName) ?? { parsed: [], moduleScopes: [] };
|
|
41
|
+
buckets.set(packageName, bucket);
|
|
42
|
+
bucket.parsed.push(parsed);
|
|
43
|
+
const moduleScope = parsed.scopes.find((scope) => scope.kind === 'Module');
|
|
44
|
+
if (moduleScope !== undefined) {
|
|
45
|
+
bucket.moduleScopes.push({ filePath: parsed.filePath, scope: moduleScope });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// A file whose package cannot be proven may shadow a wildcard-imported
|
|
49
|
+
// type in any package. Conservatively disable wildcard attribution for the
|
|
50
|
+
// language workspace while leaving explicit/FQN imports available.
|
|
51
|
+
if (unknownPackageFiles.size > 0) {
|
|
52
|
+
for (const parsed of parsedFiles)
|
|
53
|
+
incompleteFiles.add(parsed.filePath);
|
|
54
|
+
logger_js_1.logger.warn(`[${options.languageLabel}-package-siblings] ${unknownPackageFiles.size} file(s) lacked reliable package facts; wildcard attribution disabled for this language workspace`);
|
|
55
|
+
}
|
|
56
|
+
const augmentations = indexes.bindingAugmentations;
|
|
57
|
+
const maxInjectedSiblings = getMaxInjectedSiblings();
|
|
58
|
+
let truncatedFiles = 0;
|
|
59
|
+
for (const bucket of buckets.values()) {
|
|
60
|
+
if (bucket.moduleScopes.length < 2)
|
|
61
|
+
continue;
|
|
62
|
+
if (bucket.moduleScopes.length > MAX_PACKAGE_FILES) {
|
|
63
|
+
for (const parsed of bucket.parsed)
|
|
64
|
+
incompleteFiles.add(parsed.filePath);
|
|
65
|
+
logger_js_1.logger.warn(`[${options.languageLabel}-package-siblings] skipping package with ${bucket.moduleScopes.length} files (cap=${MAX_PACKAGE_FILES}); same-package implicit visibility disabled for this package`);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const classDefs = [];
|
|
69
|
+
for (const parsed of bucket.parsed) {
|
|
70
|
+
const moduleScopeId = parsed.scopes.find((scope) => scope.kind === 'Module')?.id;
|
|
71
|
+
for (const scope of parsed.scopes) {
|
|
72
|
+
if (scope.kind !== 'Class' || scope.parent !== moduleScopeId)
|
|
73
|
+
continue;
|
|
74
|
+
const def = scope.ownedDefs.find((candidate) => (0, walkers_js_1.isClassLike)(candidate.type));
|
|
75
|
+
if (def !== undefined)
|
|
76
|
+
classDefs.push({ def, filePath: parsed.filePath });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Per-bucket lookups: the per-file loop below is O(files²) over these,
|
|
80
|
+
// so split each path into segments once here instead of re-splitting it
|
|
81
|
+
// on every pairwise proximity comparison, and address siblings by path
|
|
82
|
+
// so a truncated scope can merge its bounded set without rescanning the
|
|
83
|
+
// whole package.
|
|
84
|
+
const segmentsByPath = new Map();
|
|
85
|
+
const moduleScopeByPath = new Map();
|
|
86
|
+
const parsedByPath = new Map();
|
|
87
|
+
for (const parsed of bucket.parsed) {
|
|
88
|
+
segmentsByPath.set(parsed.filePath, pathSegments(parsed.filePath));
|
|
89
|
+
parsedByPath.set(parsed.filePath, parsed);
|
|
90
|
+
}
|
|
91
|
+
for (const sibling of bucket.moduleScopes)
|
|
92
|
+
moduleScopeByPath.set(sibling.filePath, sibling);
|
|
93
|
+
const allSiblingPaths = [...parsedByPath.keys()];
|
|
94
|
+
for (const { filePath, scope } of bucket.moduleScopes) {
|
|
95
|
+
let scopeAug = augmentations.get(scope.id);
|
|
96
|
+
if (scopeAug === undefined) {
|
|
97
|
+
scopeAug = new Map();
|
|
98
|
+
augmentations.set(scope.id, scopeAug);
|
|
99
|
+
}
|
|
100
|
+
const ownSegments = segmentsByPath.get(filePath) ?? pathSegments(filePath);
|
|
101
|
+
const proximityCache = new Map();
|
|
102
|
+
const candidates = classDefs.filter((candidate) => candidate.filePath !== filePath);
|
|
103
|
+
for (const candidate of candidates) {
|
|
104
|
+
if (!proximityCache.has(candidate.filePath)) {
|
|
105
|
+
proximityCache.set(candidate.filePath, sharedSegmentCount(segmentsByPath.get(candidate.filePath) ?? [], ownSegments));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Nearest-first by shared path prefix. Ties (the common case in a flat
|
|
109
|
+
// package, where every sibling shares the same directory) keep the
|
|
110
|
+
// walker's traversal order, so the retained set is deterministic but
|
|
111
|
+
// arbitrary among equally-near candidates — which is why truncation
|
|
112
|
+
// marks the file incomplete below rather than being treated as exact.
|
|
113
|
+
candidates.sort((a, b) => (proximityCache.get(b.filePath) ?? 0) - (proximityCache.get(a.filePath) ?? 0));
|
|
114
|
+
const injectedIds = new Set();
|
|
115
|
+
const injectedPaths = new Set();
|
|
116
|
+
let truncated = false;
|
|
117
|
+
for (const { def, filePath: defPath } of candidates) {
|
|
118
|
+
if (injectedIds.has(def.nodeId) || def.qualifiedName === undefined)
|
|
119
|
+
continue;
|
|
120
|
+
if (maxInjectedSiblings > 0 && injectedIds.size >= maxInjectedSiblings) {
|
|
121
|
+
truncated = true;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
injectedIds.add(def.nodeId);
|
|
125
|
+
injectedPaths.add(defPath);
|
|
126
|
+
const simpleName = def.qualifiedName.includes('.')
|
|
127
|
+
? def.qualifiedName.slice(def.qualifiedName.lastIndexOf('.') + 1)
|
|
128
|
+
: def.qualifiedName;
|
|
129
|
+
const bindings = scopeAug.get(simpleName) ?? [];
|
|
130
|
+
if (!scopeAug.has(simpleName))
|
|
131
|
+
scopeAug.set(simpleName, bindings);
|
|
132
|
+
bindings.push({ def, origin: 'namespace' });
|
|
133
|
+
}
|
|
134
|
+
if (truncated) {
|
|
135
|
+
// Sibling visibility for this file is now partial, and downstream
|
|
136
|
+
// Spring attribution treats a complete flag as "this package's names
|
|
137
|
+
// are fully known". Marking it incomplete keeps wildcard attribution
|
|
138
|
+
// conservative instead of silently resolving against a truncated set.
|
|
139
|
+
incompleteFiles.add(filePath);
|
|
140
|
+
truncatedFiles++;
|
|
141
|
+
}
|
|
142
|
+
// Keep the two halves of "what this file can see" in agreement: when
|
|
143
|
+
// the cap truncated the binding set, merge type bindings from the same
|
|
144
|
+
// bounded sibling set only — and iterate that set directly, so the cap
|
|
145
|
+
// bounds the merge work too instead of just filtering a full scan. An
|
|
146
|
+
// untruncated scope merges every sibling as before, including ones that
|
|
147
|
+
// contribute no class-like def.
|
|
148
|
+
const typeBindings = scope.typeBindings;
|
|
149
|
+
const mergePaths = truncated ? injectedPaths : allSiblingPaths;
|
|
150
|
+
// Module scopes first, then class scopes: module-level bindings win on
|
|
151
|
+
// a name collision, which the two-pass order (not file order) encodes.
|
|
152
|
+
for (const siblingPath of mergePaths) {
|
|
153
|
+
if (siblingPath === filePath)
|
|
154
|
+
continue;
|
|
155
|
+
const sibling = moduleScopeByPath.get(siblingPath);
|
|
156
|
+
if (sibling === undefined)
|
|
157
|
+
continue;
|
|
158
|
+
for (const [name, ref] of sibling.scope.typeBindings) {
|
|
159
|
+
if (!typeBindings.has(name))
|
|
160
|
+
typeBindings.set(name, ref);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
for (const siblingPath of mergePaths) {
|
|
164
|
+
if (siblingPath === filePath)
|
|
165
|
+
continue;
|
|
166
|
+
const sibling = parsedByPath.get(siblingPath);
|
|
167
|
+
if (sibling === undefined)
|
|
168
|
+
continue;
|
|
169
|
+
for (const siblingScope of sibling.scopes) {
|
|
170
|
+
if (siblingScope.kind !== 'Class')
|
|
171
|
+
continue;
|
|
172
|
+
for (const [name, ref] of siblingScope.typeBindings) {
|
|
173
|
+
if (ref.source !== 'self' && !typeBindings.has(name))
|
|
174
|
+
typeBindings.set(name, ref);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (truncatedFiles > 0) {
|
|
181
|
+
logger_js_1.logger.warn(`[${options.languageLabel}-package-siblings] sibling injection truncated at ${maxInjectedSiblings} per file for ${truncatedFiles} file(s); wildcard attribution disabled for those files (raise or unset CGRAPH_MAX_INJECTED_SIBLINGS to widen, 0 for unbounded)`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
populateNamespaceSiblings,
|
|
186
|
+
isVisibilityIncomplete: (filePath) => incompleteFiles.has(filePath),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function pathSegments(filePath) {
|
|
190
|
+
return filePath.replace(/\\/g, '/').split('/');
|
|
191
|
+
}
|
|
192
|
+
function sharedSegmentCount(aSegments, bSegments) {
|
|
193
|
+
let index = 0;
|
|
194
|
+
while (index < aSegments.length &&
|
|
195
|
+
index < bSegments.length &&
|
|
196
|
+
aSegments[index] === bSegments[index]) {
|
|
197
|
+
index++;
|
|
198
|
+
}
|
|
199
|
+
return index;
|
|
200
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeKotlinArityMetadata = computeKotlinArityMetadata;
|
|
4
|
+
const jvm_js_1 = require("../../method-extractors/configs/jvm.js");
|
|
5
|
+
function computeKotlinArityMetadata(fnNode) {
|
|
6
|
+
const params = jvm_js_1.kotlinMethodConfig.extractParameters?.(fnNode) ?? [];
|
|
7
|
+
let hasVararg = false;
|
|
8
|
+
const parameterTypes = [];
|
|
9
|
+
for (const param of params) {
|
|
10
|
+
if (param.isVariadic)
|
|
11
|
+
hasVararg = true;
|
|
12
|
+
if (param.type !== null)
|
|
13
|
+
parameterTypes.push(param.type);
|
|
14
|
+
}
|
|
15
|
+
if (hasVararg)
|
|
16
|
+
parameterTypes.push('vararg');
|
|
17
|
+
const required = params.filter((p) => !p.isOptional && !p.isVariadic).length;
|
|
18
|
+
return {
|
|
19
|
+
parameterCount: hasVararg ? undefined : params.length,
|
|
20
|
+
requiredParameterCount: required,
|
|
21
|
+
parameterTypes: parameterTypes.length > 0 ? parameterTypes : undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kotlinArityCompatibility = kotlinArityCompatibility;
|
|
4
|
+
function kotlinArityCompatibility(def, callsite) {
|
|
5
|
+
const min = def.requiredParameterCount;
|
|
6
|
+
const max = def.parameterCount;
|
|
7
|
+
if (min === undefined && max === undefined)
|
|
8
|
+
return 'unknown';
|
|
9
|
+
const argCount = callsite.arity;
|
|
10
|
+
if (!Number.isFinite(argCount) || argCount < 0)
|
|
11
|
+
return 'unknown';
|
|
12
|
+
const hasVararg = def.parameterTypes?.some((t) => t === 'vararg') ?? false;
|
|
13
|
+
if (min !== undefined && argCount < min)
|
|
14
|
+
return 'incompatible';
|
|
15
|
+
if (max !== undefined && argCount > max && !hasVararg)
|
|
16
|
+
return 'incompatible';
|
|
17
|
+
return 'compatible';
|
|
18
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordKotlinCacheHit = recordKotlinCacheHit;
|
|
4
|
+
exports.recordKotlinCacheMiss = recordKotlinCacheMiss;
|
|
5
|
+
exports.getKotlinCaptureCacheStats = getKotlinCaptureCacheStats;
|
|
6
|
+
exports.resetKotlinCaptureCacheStats = resetKotlinCaptureCacheStats;
|
|
7
|
+
let hits = 0;
|
|
8
|
+
let misses = 0;
|
|
9
|
+
function recordKotlinCacheHit() {
|
|
10
|
+
hits += 1;
|
|
11
|
+
}
|
|
12
|
+
function recordKotlinCacheMiss() {
|
|
13
|
+
misses += 1;
|
|
14
|
+
}
|
|
15
|
+
function getKotlinCaptureCacheStats() {
|
|
16
|
+
return { hits, misses };
|
|
17
|
+
}
|
|
18
|
+
function resetKotlinCaptureCacheStats() {
|
|
19
|
+
hits = 0;
|
|
20
|
+
misses = 0;
|
|
21
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Kotlin capture-time side-channel serialization (#1983).
|
|
4
|
+
*
|
|
5
|
+
* `emitKotlinScopeCaptures` populates one MODULE-LEVEL, per-file map as a side
|
|
6
|
+
* effect that is NOT part of the returned `ParsedFile`'s scopes/defs:
|
|
7
|
+
*
|
|
8
|
+
* - `companionScopesByFile` (companion-scopes.ts) — the `ScopeId`s that came
|
|
9
|
+
* from a `companion_object` AST node, recorded via `markCompanionScope`
|
|
10
|
+
* from the `@scope.companion` marker capture.
|
|
11
|
+
* - Spring Bean class-annotation facts collected during the same scope-query
|
|
12
|
+
* traversal, consumed only after imports and package visibility finalize.
|
|
13
|
+
* - Spring DI class facts (constructor/property/method injection syntax),
|
|
14
|
+
* resolved and attached only after imports finalize.
|
|
15
|
+
* - A JVM package fact read from the already-parsed root, so package-sibling
|
|
16
|
+
* visibility never re-parses Kotlin source on the main thread.
|
|
17
|
+
*
|
|
18
|
+
* On the worker path that map is filled in the WORKER process and lost across
|
|
19
|
+
* the worker→main MessageChannel (and the disk-backed parsedfile-store),
|
|
20
|
+
* because scope-resolution reuses the serialized `ParsedFile` and SKIPS the
|
|
21
|
+
* main-thread re-extraction (the #1983 fix that avoids a main-thread
|
|
22
|
+
* tree-sitter re-parse / OOM on huge repos). The main thread then reads the map
|
|
23
|
+
* empty in `isKotlinStaticOnly` / `populateCompanionMembersOnEnclosingClass`
|
|
24
|
+
* (owners.ts) — so companion methods aren't identified as static and
|
|
25
|
+
* companion/static dispatch emits no CALLS edges.
|
|
26
|
+
*
|
|
27
|
+
* This module snapshots the per-file slice of that map into a plain,
|
|
28
|
+
* JSON-serializable object (carried on `ParsedFile.captureSideChannel`) and
|
|
29
|
+
* restores it on the main thread WITHOUT any parse. It mirrors the C++ pattern
|
|
30
|
+
* in `cpp/capture-side-channel.ts`.
|
|
31
|
+
*
|
|
32
|
+
* The single generic `ParsedFile.captureSideChannel` field is shared with C++,
|
|
33
|
+
* which is safe because each file is one language (a `.kt` file uses the kotlin
|
|
34
|
+
* provider, a `.cpp` file the cpp provider). The payload is self-describing
|
|
35
|
+
* (`{ kind: 'kotlin', companionScopes, packageFact, classAnnotations,
|
|
36
|
+
* springDiFacts }`) so
|
|
37
|
+
* `applyKotlinCaptureSideChannel` only restores kotlin state and ignores a
|
|
38
|
+
* foreign-shaped snapshot.
|
|
39
|
+
*/
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.clearKotlinClassAnnotationFacts = clearKotlinClassAnnotationFacts;
|
|
42
|
+
exports.setKotlinSpringAopFacts = setKotlinSpringAopFacts;
|
|
43
|
+
exports.getKotlinSpringAopFacts = getKotlinSpringAopFacts;
|
|
44
|
+
exports.setKotlinClassAnnotationFacts = setKotlinClassAnnotationFacts;
|
|
45
|
+
exports.getKotlinClassAnnotationFacts = getKotlinClassAnnotationFacts;
|
|
46
|
+
exports.setKotlinSpringConditionalFacts = setKotlinSpringConditionalFacts;
|
|
47
|
+
exports.getKotlinSpringConditionalFacts = getKotlinSpringConditionalFacts;
|
|
48
|
+
exports.setKotlinSpringDiFacts = setKotlinSpringDiFacts;
|
|
49
|
+
exports.getKotlinSpringDiFacts = getKotlinSpringDiFacts;
|
|
50
|
+
exports.collectKotlinCaptureSideChannel = collectKotlinCaptureSideChannel;
|
|
51
|
+
exports.applyKotlinCaptureSideChannel = applyKotlinCaptureSideChannel;
|
|
52
|
+
const bean_candidates_js_1 = require("../../frameworks/spring/bean-candidates.js");
|
|
53
|
+
const package_facts_js_1 = require("../jvm/package-facts.js");
|
|
54
|
+
const companion_scopes_js_1 = require("./companion-scopes.js");
|
|
55
|
+
const package_facts_js_2 = require("./package-facts.js");
|
|
56
|
+
const classAnnotations = (0, bean_candidates_js_1.createClassAnnotationFactStore)();
|
|
57
|
+
const springAopFacts = new Map();
|
|
58
|
+
const springConditionalFacts = new Map();
|
|
59
|
+
const springDiFacts = new Map();
|
|
60
|
+
function clearKotlinClassAnnotationFacts() {
|
|
61
|
+
classAnnotations.clear();
|
|
62
|
+
springAopFacts.clear();
|
|
63
|
+
springConditionalFacts.clear();
|
|
64
|
+
springDiFacts.clear();
|
|
65
|
+
}
|
|
66
|
+
function setKotlinSpringAopFacts(filePath, facts) {
|
|
67
|
+
if (facts.length === 0)
|
|
68
|
+
springAopFacts.delete(filePath);
|
|
69
|
+
else
|
|
70
|
+
springAopFacts.set(filePath, facts);
|
|
71
|
+
}
|
|
72
|
+
function getKotlinSpringAopFacts(filePath) {
|
|
73
|
+
return springAopFacts.get(filePath) ?? [];
|
|
74
|
+
}
|
|
75
|
+
function setKotlinClassAnnotationFacts(filePath, facts) {
|
|
76
|
+
classAnnotations.set(filePath, facts);
|
|
77
|
+
}
|
|
78
|
+
function getKotlinClassAnnotationFacts(filePath) {
|
|
79
|
+
return classAnnotations.get(filePath);
|
|
80
|
+
}
|
|
81
|
+
function setKotlinSpringConditionalFacts(filePath, facts) {
|
|
82
|
+
if (facts.length === 0)
|
|
83
|
+
springConditionalFacts.delete(filePath);
|
|
84
|
+
else
|
|
85
|
+
springConditionalFacts.set(filePath, facts);
|
|
86
|
+
}
|
|
87
|
+
function getKotlinSpringConditionalFacts(filePath) {
|
|
88
|
+
return springConditionalFacts.get(filePath) ?? [];
|
|
89
|
+
}
|
|
90
|
+
function setKotlinSpringDiFacts(filePath, facts) {
|
|
91
|
+
if (facts.length === 0)
|
|
92
|
+
springDiFacts.delete(filePath);
|
|
93
|
+
else
|
|
94
|
+
springDiFacts.set(filePath, facts);
|
|
95
|
+
}
|
|
96
|
+
function getKotlinSpringDiFacts(filePath) {
|
|
97
|
+
return springDiFacts.get(filePath) ?? [];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* `LanguageProvider.collectCaptureSideChannel` implementation for Kotlin.
|
|
101
|
+
* Returns `undefined` when this file recorded no side-channel state at all, so
|
|
102
|
+
* the produced `ParsedFile` carries the field only when there's data to ship.
|
|
103
|
+
*/
|
|
104
|
+
function collectKotlinCaptureSideChannel(filePath) {
|
|
105
|
+
const companionScopes = (0, companion_scopes_js_1.getCompanionScopesForFile)(filePath);
|
|
106
|
+
const annotationFacts = classAnnotations.get(filePath);
|
|
107
|
+
const aopFacts = springAopFacts.get(filePath) ?? [];
|
|
108
|
+
const conditionFacts = springConditionalFacts.get(filePath) ?? [];
|
|
109
|
+
const diFacts = springDiFacts.get(filePath) ?? [];
|
|
110
|
+
const packageFact = (0, package_facts_js_2.getKotlinPackageFact)(filePath);
|
|
111
|
+
if (companionScopes.length === 0 &&
|
|
112
|
+
annotationFacts.length === 0 &&
|
|
113
|
+
aopFacts.length === 0 &&
|
|
114
|
+
conditionFacts.length === 0 &&
|
|
115
|
+
diFacts.length === 0 &&
|
|
116
|
+
packageFact === undefined) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
kind: 'kotlin',
|
|
121
|
+
companionScopes,
|
|
122
|
+
packageFact: packageFact ?? package_facts_js_1.UNKNOWN_JVM_PACKAGE_FACT,
|
|
123
|
+
classAnnotations: annotationFacts,
|
|
124
|
+
...(aopFacts.length > 0 ? { springAopFacts: aopFacts } : {}),
|
|
125
|
+
...(conditionFacts.length > 0 ? { springConditionalFacts: conditionFacts } : {}),
|
|
126
|
+
...(diFacts.length > 0 ? { springDiFacts: diFacts } : {}),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* `ScopeResolver.applyCaptureSideChannel` implementation for Kotlin. Reads the
|
|
131
|
+
* worker-serialized snapshot from `parsed.captureSideChannel` and re-populates
|
|
132
|
+
* the module-level companion-scope map via `markCompanionScope`. Tolerant of
|
|
133
|
+
* `undefined` (file carried no data) and of an unexpected / foreign shape
|
|
134
|
+
* (defensive — the `kind` tag guards against restoring a non-kotlin payload).
|
|
135
|
+
* Does NO tree-sitter parse.
|
|
136
|
+
*/
|
|
137
|
+
function applyKotlinCaptureSideChannel(parsed) {
|
|
138
|
+
const data = parsed.captureSideChannel;
|
|
139
|
+
if (data === undefined ||
|
|
140
|
+
data === null ||
|
|
141
|
+
typeof data !== 'object' ||
|
|
142
|
+
data.kind !== 'kotlin' ||
|
|
143
|
+
!Array.isArray(data.companionScopes) ||
|
|
144
|
+
!Array.isArray(data.classAnnotations)) {
|
|
145
|
+
classAnnotations.set(parsed.filePath, []);
|
|
146
|
+
setKotlinSpringAopFacts(parsed.filePath, []);
|
|
147
|
+
setKotlinSpringConditionalFacts(parsed.filePath, []);
|
|
148
|
+
setKotlinSpringDiFacts(parsed.filePath, []);
|
|
149
|
+
(0, package_facts_js_2.setKotlinPackageFact)(parsed.filePath, package_facts_js_1.UNKNOWN_JVM_PACKAGE_FACT);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
for (const scopeId of data.companionScopes) {
|
|
153
|
+
(0, companion_scopes_js_1.markCompanionScope)(parsed.filePath, scopeId);
|
|
154
|
+
}
|
|
155
|
+
classAnnotations.set(parsed.filePath, data.classAnnotations);
|
|
156
|
+
setKotlinSpringAopFacts(parsed.filePath, Array.isArray(data.springAopFacts) ? data.springAopFacts : []);
|
|
157
|
+
setKotlinSpringConditionalFacts(parsed.filePath, Array.isArray(data.springConditionalFacts) ? data.springConditionalFacts : []);
|
|
158
|
+
setKotlinSpringDiFacts(parsed.filePath, Array.isArray(data.springDiFacts) ? data.springDiFacts : []);
|
|
159
|
+
(0, package_facts_js_2.setKotlinPackageFact)(parsed.filePath, (0, package_facts_js_1.isJvmPackageFact)(data.packageFact) ? data.packageFact : package_facts_js_1.UNKNOWN_JVM_PACKAGE_FACT);
|
|
160
|
+
}
|