cgraphx 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.claude-template/FLOW-MAP.md +7 -5
- package/dist/.claude-template/commands/end.md +1 -1
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +2 -1
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +4 -2
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +5 -2
- package/dist/.claude-template/skills/iboc-check/SKILL.md +116 -0
- package/dist/.claude-template/skills/iboc-check/filler-prompt.md +75 -0
- package/dist/.claude-template/skills/implementation/SKILL.md +7 -0
- package/dist/.claude-template/skills/init-project-guides/SKILL.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
- package/dist/.claude-template/skills/write-api/assets/template-request.bru +3 -3
- package/dist/.claude-template/skills/write-api/references/bru-format.md +6 -6
- package/dist/.claude-template/skills/write-delivery-guide/SKILL.md +97 -0
- package/dist/.claude-template/skills/write-delivery-guide/template-change-type.md +120 -0
- package/dist/.claude-template/skills/write-delivery-guide/template-multi-role-flow.md +148 -0
- package/dist/.claude-template/skills/write-unit-test-code/SKILL.md +23 -6
- package/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/features/scanner.d.ts +2 -0
- package/dist/core/features/scanner.d.ts.map +1 -1
- package/dist/core/features/scanner.js +27 -6
- package/dist/core/features/scanner.js.map +1 -1
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shadowed CommonJS export-assignment detection (issue #2723).
|
|
4
|
+
*
|
|
5
|
+
* The CJS declaration rules in the JS/TS scope queries bind the bare property
|
|
6
|
+
* name of `exports.X = function () {}` / `module.exports.X = (a) => a` into the
|
|
7
|
+
* enclosing module scope, so importers resolve to it by name. That is the whole
|
|
8
|
+
* point of #2723 — without it the graph node exists and nothing resolves to it.
|
|
9
|
+
*
|
|
10
|
+
* But a file may ALSO declare that same name lexically:
|
|
11
|
+
*
|
|
12
|
+
* function dup(v) { return v; }
|
|
13
|
+
* exports.dup = function (v) { return !v; };
|
|
14
|
+
* function callIt(v) { return dup(v); }
|
|
15
|
+
*
|
|
16
|
+
* Then the module scope holds TWO declarations named `dup`, the name is
|
|
17
|
+
* ambiguous, and the resolver drops `callIt -> dup` altogether — an edge that
|
|
18
|
+
* resolved fine before #2723. A silently missing caller is worse than the gap
|
|
19
|
+
* #2723 set out to close, so the emitter drops the CJS declaration in exactly
|
|
20
|
+
* this case: the lexical declaration already supplies the module-scope name,
|
|
21
|
+
* so importers still resolve, and intra-module resolution is unchanged from
|
|
22
|
+
* before #2723.
|
|
23
|
+
*
|
|
24
|
+
* Only the `@declaration.function` match is suppressed. The graph node comes
|
|
25
|
+
* from a separate query (`tree-sitter-queries.ts`) and collapses onto the
|
|
26
|
+
* lexical declaration's node by name anyway, so no node is lost.
|
|
27
|
+
*
|
|
28
|
+
* Shared by both the JavaScript and TypeScript capture emitters — every
|
|
29
|
+
* grammar node named here (`assignment_expression`, `member_expression`,
|
|
30
|
+
* `property_identifier`, `function_declaration`, `lexical_declaration`,
|
|
31
|
+
* `variable_declaration`, `export_statement`) exists in both
|
|
32
|
+
* `tree-sitter-javascript` and `tree-sitter-typescript`.
|
|
33
|
+
*
|
|
34
|
+
* Pure given the input nodes. No I/O, no globals; the cache is keyed on the
|
|
35
|
+
* root node it derives from, so it cannot outlive its tree.
|
|
36
|
+
*/
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.isModuleLevelThisAssignment = isModuleLevelThisAssignment;
|
|
39
|
+
exports.isModuleLevelThisExport = isModuleLevelThisExport;
|
|
40
|
+
exports.moduleLevelThisExportName = moduleLevelThisExportName;
|
|
41
|
+
exports.cjsExportedNameFor = cjsExportedNameFor;
|
|
42
|
+
exports.isUndeclarableThisMemberValue = isUndeclarableThisMemberValue;
|
|
43
|
+
exports.isUnexportedMemberAssignmentValue = isUnexportedMemberAssignmentValue;
|
|
44
|
+
exports.isShadowedCjsExportAssignment = isShadowedCjsExportAssignment;
|
|
45
|
+
exports.cjsExportedName = cjsExportedName;
|
|
46
|
+
exports.defaultExportNameCollides = defaultExportNameCollides;
|
|
47
|
+
exports.isShadowedCjsExportAssignmentNode = isShadowedCjsExportAssignmentNode;
|
|
48
|
+
/**
|
|
49
|
+
* Module-scope declared names per program root.
|
|
50
|
+
*
|
|
51
|
+
* Memoized because the emitter asks once per CJS export match: a file with
|
|
52
|
+
* 1000 `exports.X = function () {}` lines would otherwise re-walk the top
|
|
53
|
+
* level 1000 times, which is the O(n²) shape that has bitten this repo's
|
|
54
|
+
* scope capture before. Keyed on the root `SyntaxNode`, so it is dropped with
|
|
55
|
+
* the tree.
|
|
56
|
+
*/
|
|
57
|
+
const moduleScopeNamesByRoot = new WeakMap();
|
|
58
|
+
/** Declaration nodes whose name binds directly in the enclosing scope. */
|
|
59
|
+
const NAMED_DECLARATION_TYPES = new Set([
|
|
60
|
+
'function_declaration',
|
|
61
|
+
'generator_function_declaration',
|
|
62
|
+
'class_declaration',
|
|
63
|
+
]);
|
|
64
|
+
/** Declaration nodes that carry one or more `variable_declarator` children. */
|
|
65
|
+
const VARIABLE_DECLARATION_TYPES = new Set(['lexical_declaration', 'variable_declaration']);
|
|
66
|
+
/**
|
|
67
|
+
* Identifiers bound to the exports object at module scope, per program root.
|
|
68
|
+
*
|
|
69
|
+
* `const e = exports;` / `const e = module.exports;` makes `e.foo = fn` an
|
|
70
|
+
* export just as surely as `exports.foo = fn`. The queries cannot express
|
|
71
|
+
* "an identifier that happens to alias exports", so they match any identifier
|
|
72
|
+
* receiver and the emitters prune here.
|
|
73
|
+
*
|
|
74
|
+
* Memoized for the same reason as {@link moduleScopeDeclaredNames}: asked once
|
|
75
|
+
* per candidate assignment, and a large CommonJS module has many.
|
|
76
|
+
*/
|
|
77
|
+
const exportAliasesByRoot = new WeakMap();
|
|
78
|
+
/** Nodes that introduce their own binding scope for the purposes below. */
|
|
79
|
+
const BINDING_SCOPE_NODE_TYPES = new Set([
|
|
80
|
+
'function_declaration',
|
|
81
|
+
'generator_function_declaration',
|
|
82
|
+
'function_expression',
|
|
83
|
+
'generator_function',
|
|
84
|
+
'arrow_function',
|
|
85
|
+
'method_definition',
|
|
86
|
+
]);
|
|
87
|
+
/**
|
|
88
|
+
* True when the identifier `name` is SHADOWED by a local binding somewhere
|
|
89
|
+
* between `node` and the module root — a parameter, or a `var`/`let`/`const`
|
|
90
|
+
* declared inside an enclosing function.
|
|
91
|
+
*
|
|
92
|
+
* This is the difference between reading source and understanding it. The
|
|
93
|
+
* canonical UMD wrapper takes the exports object as a PARAMETER:
|
|
94
|
+
*
|
|
95
|
+
* (function (exports) { exports.publicApi = function () {}; })(this);
|
|
96
|
+
*
|
|
97
|
+
* A text comparison sees `exports` and claims a module export. It is a local
|
|
98
|
+
* binding, so the assignment exports nothing — and treating it as an export
|
|
99
|
+
* both invents a symbol and, because the name then collides with the real
|
|
100
|
+
* module scope, deletes call edges that resolved before (#2729 review F2).
|
|
101
|
+
*/
|
|
102
|
+
function isShadowedByLocalBinding(node, name) {
|
|
103
|
+
for (let scope = node.parent; scope !== null; scope = scope.parent) {
|
|
104
|
+
if (!BINDING_SCOPE_NODE_TYPES.has(scope.type))
|
|
105
|
+
continue;
|
|
106
|
+
// Parameters of this function.
|
|
107
|
+
const params = scope.childForFieldName('parameters');
|
|
108
|
+
if (params !== null && declaresName(params, name))
|
|
109
|
+
return true;
|
|
110
|
+
// `var`/`let`/`const` declared directly in this function's body.
|
|
111
|
+
const body = scope.childForFieldName('body');
|
|
112
|
+
if (body !== null) {
|
|
113
|
+
for (const stmt of body.namedChildren) {
|
|
114
|
+
if (!VARIABLE_DECLARATION_TYPES.has(stmt.type))
|
|
115
|
+
continue;
|
|
116
|
+
if (declaresName(stmt, name))
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
/** True when `subtree` binds `name` as an identifier (parameter or declarator). */
|
|
124
|
+
function declaresName(subtree, name) {
|
|
125
|
+
const stack = [subtree];
|
|
126
|
+
while (stack.length > 0) {
|
|
127
|
+
const n = stack.pop();
|
|
128
|
+
if (n === undefined)
|
|
129
|
+
continue;
|
|
130
|
+
if (n.type === 'identifier' && n.text === name)
|
|
131
|
+
return true;
|
|
132
|
+
// Do not descend into nested function bodies — their bindings are not ours.
|
|
133
|
+
if (n !== subtree && BINDING_SCOPE_NODE_TYPES.has(n.type))
|
|
134
|
+
continue;
|
|
135
|
+
for (const child of n.namedChildren)
|
|
136
|
+
stack.push(child);
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* True when `node` is the `exports` / `module.exports` object itself AND that
|
|
142
|
+
* name is not shadowed by a local binding at this site.
|
|
143
|
+
*/
|
|
144
|
+
function isExportsObjectExpression(node) {
|
|
145
|
+
if (node.type === 'identifier') {
|
|
146
|
+
return node.text === 'exports' && !isShadowedByLocalBinding(node, 'exports');
|
|
147
|
+
}
|
|
148
|
+
if (node.type !== 'member_expression')
|
|
149
|
+
return false;
|
|
150
|
+
return (node.childForFieldName('object')?.text === 'module' &&
|
|
151
|
+
node.childForFieldName('property')?.text === 'exports' &&
|
|
152
|
+
!isShadowedByLocalBinding(node, 'module'));
|
|
153
|
+
}
|
|
154
|
+
/** The set of module-scope identifiers aliasing the exports object. */
|
|
155
|
+
function exportAliases(root) {
|
|
156
|
+
const cached = exportAliasesByRoot.get(root);
|
|
157
|
+
if (cached !== undefined)
|
|
158
|
+
return cached;
|
|
159
|
+
const aliases = new Set();
|
|
160
|
+
for (const child of root.namedChildren) {
|
|
161
|
+
if (!VARIABLE_DECLARATION_TYPES.has(child.type))
|
|
162
|
+
continue;
|
|
163
|
+
for (const declarator of child.namedChildren) {
|
|
164
|
+
if (declarator.type !== 'variable_declarator')
|
|
165
|
+
continue;
|
|
166
|
+
const name = declarator.childForFieldName('name');
|
|
167
|
+
const value = declarator.childForFieldName('value');
|
|
168
|
+
if (name === null || name.type !== 'identifier' || value === null)
|
|
169
|
+
continue;
|
|
170
|
+
if (isExportsObjectExpression(value))
|
|
171
|
+
aliases.add(name.text);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exportAliasesByRoot.set(root, aliases);
|
|
175
|
+
return aliases;
|
|
176
|
+
}
|
|
177
|
+
/** Whether each program root is a CommonJS module, memoized. */
|
|
178
|
+
const isCommonJsByRoot = new WeakMap();
|
|
179
|
+
/** Function forms that BIND their own `this` (every form except an arrow). */
|
|
180
|
+
const THIS_BINDING_NODE_TYPES = new Set([
|
|
181
|
+
'function_declaration',
|
|
182
|
+
'generator_function_declaration',
|
|
183
|
+
'function_expression',
|
|
184
|
+
'generator_function',
|
|
185
|
+
'method_definition',
|
|
186
|
+
'class_declaration',
|
|
187
|
+
'class',
|
|
188
|
+
]);
|
|
189
|
+
/**
|
|
190
|
+
* True when the file is a CommonJS module, so module-level `this` is
|
|
191
|
+
* `module.exports` rather than `undefined`.
|
|
192
|
+
*
|
|
193
|
+
* This gate is load-bearing, not decoration: `this.foo = fn` at the top level
|
|
194
|
+
* of an ESM file assigns to `undefined` and exports nothing, so indexing it as
|
|
195
|
+
* an export would be wrong for every `.mjs`, every `"type": "module"` package,
|
|
196
|
+
* and every `.ts` that compiles to ESM. An `import`/`export` statement makes
|
|
197
|
+
* the file unambiguously ESM; otherwise a `require()` call or an
|
|
198
|
+
* `exports`/`module` reference marks it CommonJS. A file with neither signal
|
|
199
|
+
* is left alone — silence is not evidence of CommonJS.
|
|
200
|
+
*/
|
|
201
|
+
function isCommonJsModule(root, filePath) {
|
|
202
|
+
// The extension settles it outright where Node itself does: `.cjs`/`.cts` are
|
|
203
|
+
// CommonJS whatever the body contains, `.mjs`/`.mts` are ESM. Without this a
|
|
204
|
+
// `.cjs` file whose only content is `this.x = fn` carries no AST signal and
|
|
205
|
+
// was classified non-CommonJS, silently dropping the export (#2729 review F14).
|
|
206
|
+
if (filePath !== undefined) {
|
|
207
|
+
if (/\.(cjs|cts)$/.test(filePath))
|
|
208
|
+
return true;
|
|
209
|
+
if (/\.(mjs|mts)$/.test(filePath))
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
const cached = isCommonJsByRoot.get(root);
|
|
213
|
+
if (cached !== undefined)
|
|
214
|
+
return cached;
|
|
215
|
+
let sawCjsSignal = false;
|
|
216
|
+
const visit = (node) => {
|
|
217
|
+
// An ESM statement settles it immediately: top-level `this` is undefined.
|
|
218
|
+
if (node.type === 'import_statement' || node.type === 'export_statement')
|
|
219
|
+
return false;
|
|
220
|
+
if (node.type === 'identifier' && (node.text === 'exports' || node.text === 'module'))
|
|
221
|
+
sawCjsSignal = true;
|
|
222
|
+
if (node.type === 'call_expression' && node.childForFieldName('function')?.text === 'require')
|
|
223
|
+
sawCjsSignal = true;
|
|
224
|
+
for (const child of node.namedChildren)
|
|
225
|
+
if (!visit(child))
|
|
226
|
+
return false;
|
|
227
|
+
return true;
|
|
228
|
+
};
|
|
229
|
+
const result = visit(root) && sawCjsSignal;
|
|
230
|
+
isCommonJsByRoot.set(root, result);
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* True when `assignment` is a `this.X = <function>` at MODULE level — i.e. no
|
|
235
|
+
* `this`-binding function encloses it — inside a CommonJS module, which makes
|
|
236
|
+
* it an export of `X`.
|
|
237
|
+
*
|
|
238
|
+
* Arrow functions are transparent here: ECMA-262 gives an arrow
|
|
239
|
+
* `[[ThisMode]] = lexical`, so a top-level arrow's `this` is still the
|
|
240
|
+
* module's. Every other function form binds its own receiver and stops the
|
|
241
|
+
* walk — that is an instance member, handled as a Method instead.
|
|
242
|
+
*/
|
|
243
|
+
/**
|
|
244
|
+
* True when `assignment` is a `this.X = <callable>` at MODULE level, regardless
|
|
245
|
+
* of module system.
|
|
246
|
+
*
|
|
247
|
+
* Distinct from {@link isModuleLevelThisExport}, which additionally requires the
|
|
248
|
+
* file to be CommonJS. A module-level `this` member in ESM (or in a file with no
|
|
249
|
+
* module-system signal) is neither an export nor an instance member — `this` is
|
|
250
|
+
* `undefined` there — so it should produce nothing rather than an ownerless
|
|
251
|
+
* `Method` node (#2729 review F13).
|
|
252
|
+
*/
|
|
253
|
+
function isModuleLevelThisAssignment(assignment) {
|
|
254
|
+
const left = assignment.type === 'assignment_expression' ? assignment.childForFieldName('left') : null;
|
|
255
|
+
if (left === null || left.type !== 'member_expression')
|
|
256
|
+
return false;
|
|
257
|
+
if (left.childForFieldName('object')?.type !== 'this')
|
|
258
|
+
return false;
|
|
259
|
+
const right = assignment.childForFieldName('right');
|
|
260
|
+
if (right === null || !CALLABLE_VALUE_TYPES.has(right.type))
|
|
261
|
+
return false;
|
|
262
|
+
for (let anc = assignment.parent; anc !== null; anc = anc.parent) {
|
|
263
|
+
if (THIS_BINDING_NODE_TYPES.has(anc.type))
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
function isModuleLevelThisExport(assignment, root, filePath) {
|
|
269
|
+
const left = assignment.type === 'assignment_expression' ? assignment.childForFieldName('left') : null;
|
|
270
|
+
if (left === null || left.type !== 'member_expression')
|
|
271
|
+
return false;
|
|
272
|
+
if (left.childForFieldName('object')?.type !== 'this')
|
|
273
|
+
return false;
|
|
274
|
+
for (let anc = assignment.parent; anc !== null; anc = anc.parent) {
|
|
275
|
+
if (THIS_BINDING_NODE_TYPES.has(anc.type))
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
return isCommonJsModule(root, filePath);
|
|
279
|
+
}
|
|
280
|
+
/** The property name of a module-level `this.X = fn` export, or null. */
|
|
281
|
+
function moduleLevelThisExportName(assignment, root, filePath) {
|
|
282
|
+
if (!isModuleLevelThisExport(assignment, root, filePath))
|
|
283
|
+
return null;
|
|
284
|
+
const property = assignment.childForFieldName('left')?.childForFieldName('property');
|
|
285
|
+
return property?.type === 'property_identifier' ? property.text : null;
|
|
286
|
+
}
|
|
287
|
+
/** Right-hand-side node types that make a binding CALLABLE. */
|
|
288
|
+
const CALLABLE_VALUE_TYPES = new Set([
|
|
289
|
+
'arrow_function',
|
|
290
|
+
'function_expression',
|
|
291
|
+
'generator_function',
|
|
292
|
+
]);
|
|
293
|
+
/**
|
|
294
|
+
* Collect the CALLABLE names `node` binds into its enclosing scope, into `out`.
|
|
295
|
+
*
|
|
296
|
+
* Callable-only is load-bearing. The guard exists to stop TWO declarations of
|
|
297
|
+
* one callable name making the name ambiguous, which drops the intra-module
|
|
298
|
+
* call edge. A non-callable binding cannot be a call target and so cannot
|
|
299
|
+
* create that ambiguity — including it instead deletes a genuine export:
|
|
300
|
+
*
|
|
301
|
+
* let cache = null;
|
|
302
|
+
* exports.cache = function (v) { cache = v; return cache; };
|
|
303
|
+
*
|
|
304
|
+
* With every module-scope name collected, `cache` matched the `let` and the
|
|
305
|
+
* export vanished entirely — no node, no edge (#2729 review F8).
|
|
306
|
+
*/
|
|
307
|
+
function collectDeclaredNames(node, out) {
|
|
308
|
+
if (NAMED_DECLARATION_TYPES.has(node.type)) {
|
|
309
|
+
const name = node.childForFieldName('name');
|
|
310
|
+
if (name !== null && name.type === 'identifier')
|
|
311
|
+
out.add(name.text);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
if (VARIABLE_DECLARATION_TYPES.has(node.type)) {
|
|
315
|
+
for (const declarator of node.namedChildren) {
|
|
316
|
+
if (declarator.type !== 'variable_declarator')
|
|
317
|
+
continue;
|
|
318
|
+
const name = declarator.childForFieldName('name');
|
|
319
|
+
// Destructuring patterns bind several names; they never collide with a
|
|
320
|
+
// CJS export assignment's single property name in a way this guard
|
|
321
|
+
// needs to model, so only plain identifiers are collected.
|
|
322
|
+
if (name === null || name.type !== 'identifier')
|
|
323
|
+
continue;
|
|
324
|
+
const value = declarator.childForFieldName('value');
|
|
325
|
+
if (value !== null && CALLABLE_VALUE_TYPES.has(value.type))
|
|
326
|
+
out.add(name.text);
|
|
327
|
+
}
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
// `export function f() {}` / `export const f = …` — the binding is the
|
|
331
|
+
// wrapped declaration's, so recurse one level through the wrapper.
|
|
332
|
+
if (node.type === 'export_statement') {
|
|
333
|
+
const declaration = node.childForFieldName('declaration');
|
|
334
|
+
if (declaration !== null)
|
|
335
|
+
collectDeclaredNames(declaration, out);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/** The set of names declared at module scope (top level) of `root`. */
|
|
339
|
+
function moduleScopeDeclaredNames(root) {
|
|
340
|
+
const cached = moduleScopeNamesByRoot.get(root);
|
|
341
|
+
if (cached !== undefined)
|
|
342
|
+
return cached;
|
|
343
|
+
const names = new Set();
|
|
344
|
+
for (const child of root.namedChildren)
|
|
345
|
+
collectDeclaredNames(child, names);
|
|
346
|
+
moduleScopeNamesByRoot.set(root, names);
|
|
347
|
+
return names;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* The property name of the `exports.X = …` / `module.exports.X = …` assignment
|
|
351
|
+
* whose right-hand side is `node`, or null when `node` is not such a value.
|
|
352
|
+
*
|
|
353
|
+
* Mirrors the receiver pinning in the scope queries: a bare `exports` receiver,
|
|
354
|
+
* or a `module.exports` member expression. Any other receiver (`Foo.prototype`,
|
|
355
|
+
* `this`, an aliased `const e = exports`) returns null, so this guard never
|
|
356
|
+
* fires for a construct the CJS declaration rules did not create.
|
|
357
|
+
*/
|
|
358
|
+
function cjsExportedPropertyName(node, root) {
|
|
359
|
+
const assignment = node.parent;
|
|
360
|
+
if (assignment === null || assignment.type !== 'assignment_expression')
|
|
361
|
+
return null;
|
|
362
|
+
if (assignment.childForFieldName('right')?.id !== node.id)
|
|
363
|
+
return null;
|
|
364
|
+
const left = assignment.childForFieldName('left');
|
|
365
|
+
if (left === null || left.type !== 'member_expression')
|
|
366
|
+
return null;
|
|
367
|
+
const property = left.childForFieldName('property');
|
|
368
|
+
if (property === null || property.type !== 'property_identifier')
|
|
369
|
+
return null;
|
|
370
|
+
const receiver = left.childForFieldName('object');
|
|
371
|
+
if (receiver === null)
|
|
372
|
+
return null;
|
|
373
|
+
if (isExportsObjectExpression(receiver))
|
|
374
|
+
return property.text;
|
|
375
|
+
// An identifier aliasing the exports object (`const e = exports; e.foo = fn`).
|
|
376
|
+
// The alias is a MODULE-scope binding, so it only means "exports" where it is
|
|
377
|
+
// not shadowed — `const e = exports; function f(e) { e.x = fn }` assigns to
|
|
378
|
+
// the parameter, not to the module (#2729 review F2).
|
|
379
|
+
if (receiver.type === 'identifier' &&
|
|
380
|
+
root !== undefined &&
|
|
381
|
+
exportAliases(root).has(receiver.text) &&
|
|
382
|
+
!isShadowedByLocalBinding(receiver, receiver.text))
|
|
383
|
+
return property.text;
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* The name this assignment exports, or null when it exports nothing.
|
|
388
|
+
*
|
|
389
|
+
* Takes the VALUE node (the function literal) and the program root, because
|
|
390
|
+
* alias resolution is a whole-file question. Used by the capture emitters to
|
|
391
|
+
* keep the widened `<identifier>.X = fn` match only when the receiver really
|
|
392
|
+
* is the exports object.
|
|
393
|
+
*/
|
|
394
|
+
function cjsExportedNameFor(node, root) {
|
|
395
|
+
return cjsExportedPropertyName(node, root);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* True when `node` is the value of a `this.X = fn` assignment that declares
|
|
399
|
+
* NOTHING at module scope — either because a function encloses it (an instance
|
|
400
|
+
* member, which gets a Method + owner edge instead) or because the file is not
|
|
401
|
+
* CommonJS (top-level `this` is undefined in ESM).
|
|
402
|
+
*/
|
|
403
|
+
function isUndeclarableThisMemberValue(node, root) {
|
|
404
|
+
const assignment = node.parent;
|
|
405
|
+
if (assignment === null || assignment.type !== 'assignment_expression')
|
|
406
|
+
return false;
|
|
407
|
+
if (assignment.childForFieldName('right')?.id !== node.id)
|
|
408
|
+
return false;
|
|
409
|
+
const left = assignment.childForFieldName('left');
|
|
410
|
+
if (left === null || left.type !== 'member_expression')
|
|
411
|
+
return false;
|
|
412
|
+
if (left.childForFieldName('object')?.type !== 'this')
|
|
413
|
+
return false;
|
|
414
|
+
return !isModuleLevelThisExport(assignment, root);
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* True when `node` is the value of a `<identifier>.<member> = fn` assignment
|
|
418
|
+
* whose receiver is NOT the exports object — the over-match the widened
|
|
419
|
+
* member-assignment rule accepts so an `exports` alias can be recognised.
|
|
420
|
+
*
|
|
421
|
+
* Such a receiver declares nothing at module scope: `obj.handler = fn` binds a
|
|
422
|
+
* property of `obj`, not a module symbol named `handler`. Prototype and `this`
|
|
423
|
+
* receivers are not identifiers, so they never reach this guard and keep their
|
|
424
|
+
* own (Method) treatment.
|
|
425
|
+
*/
|
|
426
|
+
function isUnexportedMemberAssignmentValue(node, root) {
|
|
427
|
+
const assignment = node.parent;
|
|
428
|
+
if (assignment === null || assignment.type !== 'assignment_expression')
|
|
429
|
+
return false;
|
|
430
|
+
if (assignment.childForFieldName('right')?.id !== node.id)
|
|
431
|
+
return false;
|
|
432
|
+
const left = assignment.childForFieldName('left');
|
|
433
|
+
if (left === null || left.type !== 'member_expression')
|
|
434
|
+
return false;
|
|
435
|
+
if (left.childForFieldName('object')?.type !== 'identifier')
|
|
436
|
+
return false;
|
|
437
|
+
return cjsExportedPropertyName(node, root) === null;
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* True when `node` (an `arrow_function` / `function_expression` /
|
|
441
|
+
* `generator_function`) is the value of a CJS export assignment whose property
|
|
442
|
+
* name is ALREADY declared at module scope of `root`.
|
|
443
|
+
*
|
|
444
|
+
* False for a CJS export whose name is declared only by the assignment (the
|
|
445
|
+
* ordinary #2723 case — the declaration must be emitted), and false for
|
|
446
|
+
* anything that is not a CJS export assignment at all.
|
|
447
|
+
*/
|
|
448
|
+
function isShadowedCjsExportAssignment(node, root) {
|
|
449
|
+
const exportedName = cjsExportedName(node, root);
|
|
450
|
+
if (exportedName === null)
|
|
451
|
+
return false;
|
|
452
|
+
return moduleScopeDeclaredNames(root).has(exportedName);
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* The module-scope name this assignment value exports, across EVERY export
|
|
456
|
+
* form — direct `exports.X`, `module.exports.X`, an alias receiver, a
|
|
457
|
+
* module-level `this.X`, and the anonymous/named default export.
|
|
458
|
+
*
|
|
459
|
+
* One entry point so the shadow guard cannot silently miss a form. Previously
|
|
460
|
+
* it consulted only the direct path: the alias path was skipped because `root`
|
|
461
|
+
* was not forwarded, `this` never reached it at all, and the default export had
|
|
462
|
+
* no check — three holes that each dropped a real call edge or, for the
|
|
463
|
+
* default, fabricated a self-recursive one (#2729 review F3/F4).
|
|
464
|
+
*/
|
|
465
|
+
function cjsExportedName(value, root) {
|
|
466
|
+
const direct = cjsExportedPropertyName(value, root);
|
|
467
|
+
if (direct !== null)
|
|
468
|
+
return direct;
|
|
469
|
+
const assignment = value.parent;
|
|
470
|
+
if (assignment === null || assignment.type !== 'assignment_expression')
|
|
471
|
+
return null;
|
|
472
|
+
if (assignment.childForFieldName('right')?.id !== value.id)
|
|
473
|
+
return null;
|
|
474
|
+
// Module-level `this.X = fn` in CommonJS — `this` IS `module.exports`.
|
|
475
|
+
const viaThis = moduleLevelThisExportName(assignment, root);
|
|
476
|
+
if (viaThis !== null)
|
|
477
|
+
return viaThis;
|
|
478
|
+
// `module.exports = fn` — the whole module is the callable. A named function
|
|
479
|
+
// expression names itself; an anonymous one takes the file-derived name,
|
|
480
|
+
// which the caller supplies since a tree has no file path.
|
|
481
|
+
if (isCjsDefaultExportAssignmentNode(assignment)) {
|
|
482
|
+
return assignment.childForFieldName('right')?.childForFieldName('name')?.text ?? null;
|
|
483
|
+
}
|
|
484
|
+
return null;
|
|
485
|
+
}
|
|
486
|
+
/** `module.exports = <callable>`, named or anonymous. */
|
|
487
|
+
function isCjsDefaultExportAssignmentNode(assignment) {
|
|
488
|
+
const right = assignment.childForFieldName('right');
|
|
489
|
+
if (right === null || !CALLABLE_VALUE_TYPES.has(right.type))
|
|
490
|
+
return false;
|
|
491
|
+
const left = assignment.childForFieldName('left');
|
|
492
|
+
if (left === null || left.type !== 'member_expression')
|
|
493
|
+
return false;
|
|
494
|
+
return (left.childForFieldName('object')?.text === 'module' &&
|
|
495
|
+
left.childForFieldName('property')?.text === 'exports');
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* True when the DERIVED default-export name collides with a callable the module
|
|
499
|
+
* already declares.
|
|
500
|
+
*
|
|
501
|
+
* `format.js` containing `function format() {}` plus an anonymous
|
|
502
|
+
* `module.exports = function () { return format(v); }` merged both onto one
|
|
503
|
+
* node, and the inner call to `format` then resolved to the merged node —
|
|
504
|
+
* fabricating a self-recursion edge present in no source (#2729 review F4).
|
|
505
|
+
* A fabricated edge is worse than a missing one: it misleads `impact` with a
|
|
506
|
+
* caller that does not exist.
|
|
507
|
+
*/
|
|
508
|
+
function defaultExportNameCollides(assignment, root, derivedName) {
|
|
509
|
+
if (!isCjsDefaultExportAssignmentNode(assignment))
|
|
510
|
+
return false;
|
|
511
|
+
return moduleScopeDeclaredNames(root).has(derivedName);
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Same question as {@link isShadowedCjsExportAssignment}, asked of the
|
|
515
|
+
* ASSIGNMENT node rather than its value — the shape `provider.labelOverride`
|
|
516
|
+
* receives, since the graph-node capture is anchored on the assignment.
|
|
517
|
+
*
|
|
518
|
+
* Used to drop the graph node too, not just the scope declaration. When the
|
|
519
|
+
* shadowed name is a `function`, the node collapsed onto the lexical
|
|
520
|
+
* declaration's node anyway (same label, same id), but a `class Dup {}` plus
|
|
521
|
+
* `exports.Dup = function () {}` produced `Class:f:Dup` AND an orphan
|
|
522
|
+
* `Function:f:Dup` — a node nothing can reach, because the declaration that
|
|
523
|
+
* would have made it reachable is suppressed by the rule above.
|
|
524
|
+
*/
|
|
525
|
+
function isShadowedCjsExportAssignmentNode(node, root) {
|
|
526
|
+
if (node.type !== 'assignment_expression')
|
|
527
|
+
return false;
|
|
528
|
+
const value = node.childForFieldName('right');
|
|
529
|
+
if (value === null)
|
|
530
|
+
return false;
|
|
531
|
+
return isShadowedCjsExportAssignment(value, root);
|
|
532
|
+
}
|
|
533
|
+
// `Foo.prototype.bar = function () {}` is handled as a MEMBER assignment — see
|
|
534
|
+
// `prototypeAssignmentOwnerName` / `findMemberAssignmentOwnerInfo` in
|
|
535
|
+
// `utils/ast-helpers.ts`, next to the object-literal owner helper it mirrors.
|