cgraphx 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.arityForIdFromInfo = arityForIdFromInfo;
|
|
4
|
+
exports.buildCollisionGroups = buildCollisionGroups;
|
|
5
|
+
exports.typeTagForId = typeTagForId;
|
|
6
|
+
exports.constTagForId = constTagForId;
|
|
7
|
+
exports.parameterShapeIdTag = parameterShapeIdTag;
|
|
8
|
+
exports.buildMethodProps = buildMethodProps;
|
|
9
|
+
const index_js_1 = require("../../../../shared/index.js");
|
|
10
|
+
/** Languages where class overload signatures are declaration-only contracts
|
|
11
|
+
* that should collapse to the implementation body's node ID. */
|
|
12
|
+
const SKIP_TYPE_HASH_LANGUAGES = new Set([
|
|
13
|
+
index_js_1.SupportedLanguages.TypeScript,
|
|
14
|
+
index_js_1.SupportedLanguages.JavaScript,
|
|
15
|
+
]);
|
|
16
|
+
/**
|
|
17
|
+
* Compute arity for ID-generation purposes.
|
|
18
|
+
* Returns `undefined` when any parameter is variadic (arity is indeterminate).
|
|
19
|
+
*/
|
|
20
|
+
function arityForIdFromInfo(info) {
|
|
21
|
+
return info.parameters.some((p) => p.isVariadic) ? undefined : info.parameters.length;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Compute a type-based discriminator suffix for same-arity overloads.
|
|
25
|
+
* Returns `~type1,type2` when the current method collides with another method
|
|
26
|
+
* in the same class that has the same name and arity but different parameter types.
|
|
27
|
+
* Returns `''` when there is no collision or types are unavailable.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Build collision groups from a method map — groups methods by `name#arity`.
|
|
31
|
+
* Call once per class, then pass to typeTagForId/constTagForId to avoid O(N²) scans.
|
|
32
|
+
*/
|
|
33
|
+
function buildCollisionGroups(methodMap) {
|
|
34
|
+
const groups = new Map();
|
|
35
|
+
for (const info of methodMap.values()) {
|
|
36
|
+
if (info.parameters.some((p) => p.isVariadic))
|
|
37
|
+
continue;
|
|
38
|
+
const key = `${info.name}#${info.parameters.length}`;
|
|
39
|
+
let group = groups.get(key);
|
|
40
|
+
if (!group) {
|
|
41
|
+
group = [];
|
|
42
|
+
groups.set(key, group);
|
|
43
|
+
}
|
|
44
|
+
group.push(info);
|
|
45
|
+
}
|
|
46
|
+
return groups;
|
|
47
|
+
}
|
|
48
|
+
function typeTagForId(methodMap, methodName, arity, currentInfo, language,
|
|
49
|
+
/** Pre-built collision groups from buildCollisionGroups(). Avoids O(N) scan per call. */
|
|
50
|
+
collisionGroups) {
|
|
51
|
+
if (arity === undefined)
|
|
52
|
+
return '';
|
|
53
|
+
// Zero-arity methods have no parameter types to disambiguate.
|
|
54
|
+
if (arity === 0)
|
|
55
|
+
return '';
|
|
56
|
+
// TS/JS class overload signatures are declaration-only contracts that should
|
|
57
|
+
// collapse to the implementation body's node ID, not be disambiguated.
|
|
58
|
+
if (language && SKIP_TYPE_HASH_LANGUAGES.has(language))
|
|
59
|
+
return '';
|
|
60
|
+
// Check if all parameters of this method have types (rawType or type)
|
|
61
|
+
if (currentInfo.parameters.length > 0 &&
|
|
62
|
+
currentInfo.parameters.some((p) => (p.rawType ?? p.type) === null)) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
// Use pre-built collision group if available, otherwise scan (backward compat)
|
|
66
|
+
const groupKey = `${methodName}#${arity}`;
|
|
67
|
+
const sameArityGroup = collisionGroups?.get(groupKey) ?? _buildGroup(methodMap, methodName, arity);
|
|
68
|
+
// No collision — single method with this name+arity
|
|
69
|
+
if (sameArityGroup.length < 2)
|
|
70
|
+
return '';
|
|
71
|
+
// Check that ALL methods in the collision group have full type info
|
|
72
|
+
for (const info of sameArityGroup) {
|
|
73
|
+
if (info.parameters.length > 0 && info.parameters.some((p) => (p.rawType ?? p.type) === null)) {
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Build type tag from current method's parameter types.
|
|
78
|
+
// Prefer rawType (preserves generic/template args like vector<int>) over
|
|
79
|
+
// type (simplified by extractSimpleTypeName which strips generics).
|
|
80
|
+
const types = currentInfo.parameters.map((p) => (p.rawType ?? p.type));
|
|
81
|
+
return `~${types.join(',')}`;
|
|
82
|
+
}
|
|
83
|
+
/** Fallback: build a same-arity group by scanning the full map (O(N)). */
|
|
84
|
+
function _buildGroup(methodMap, methodName, arity) {
|
|
85
|
+
const group = [];
|
|
86
|
+
for (const info of methodMap.values()) {
|
|
87
|
+
if (info.name !== methodName)
|
|
88
|
+
continue;
|
|
89
|
+
if (info.parameters.some((p) => p.isVariadic))
|
|
90
|
+
continue;
|
|
91
|
+
if (info.parameters.length !== arity)
|
|
92
|
+
continue;
|
|
93
|
+
group.push(info);
|
|
94
|
+
}
|
|
95
|
+
return group;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Compute a const-qualifier suffix for C++ const/non-const method collisions.
|
|
99
|
+
* Returns `$const` when the current method is const-qualified and a non-const
|
|
100
|
+
* method with the same name and arity exists in the same class.
|
|
101
|
+
* Returns `''` when there is no collision or the method is not const-qualified.
|
|
102
|
+
*/
|
|
103
|
+
function constTagForId(methodMap, methodName, arity, currentInfo,
|
|
104
|
+
/** Pre-built collision groups from buildCollisionGroups(). Avoids O(N) scan per call. */
|
|
105
|
+
collisionGroups) {
|
|
106
|
+
if (!currentInfo.isConst)
|
|
107
|
+
return '';
|
|
108
|
+
if (arity === undefined)
|
|
109
|
+
return '';
|
|
110
|
+
// Use pre-built group if available
|
|
111
|
+
const groupKey = `${methodName}#${arity}`;
|
|
112
|
+
const group = collisionGroups?.get(groupKey);
|
|
113
|
+
const candidates = group ?? _buildGroup(methodMap, methodName, arity);
|
|
114
|
+
// Check if a non-const method exists in the collision group
|
|
115
|
+
for (const info of candidates) {
|
|
116
|
+
if (info === currentInfo)
|
|
117
|
+
continue;
|
|
118
|
+
if (info.isConst)
|
|
119
|
+
continue;
|
|
120
|
+
return '$const';
|
|
121
|
+
}
|
|
122
|
+
return '';
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Disambiguate function-template overloads whose normalized parameter types
|
|
126
|
+
* intentionally collapse to the same placeholder token (`T`, `U`, ...), but
|
|
127
|
+
* whose C++ sidecar shape is semantically different (`T` vs `T*` / `T&`).
|
|
128
|
+
*
|
|
129
|
+
* Kept intentionally narrow: concrete types already use the existing raw-type
|
|
130
|
+
* overload tag, and non-template languages should not acquire sidecar-shaped
|
|
131
|
+
* IDs.
|
|
132
|
+
*/
|
|
133
|
+
function parameterShapeIdTag(parameterTypes, parameterTypeClasses) {
|
|
134
|
+
if (parameterTypes === undefined ||
|
|
135
|
+
parameterTypeClasses === undefined ||
|
|
136
|
+
parameterTypes.length === 0) {
|
|
137
|
+
return '';
|
|
138
|
+
}
|
|
139
|
+
let hasTemplatePlaceholder = false;
|
|
140
|
+
let hasDisambiguatingShape = false;
|
|
141
|
+
const parts = [];
|
|
142
|
+
for (let i = 0; i < parameterTypes.length; i++) {
|
|
143
|
+
const type = parameterTypes[i];
|
|
144
|
+
const typeClass = parameterTypeClasses[i];
|
|
145
|
+
if (typeClass === undefined)
|
|
146
|
+
return '';
|
|
147
|
+
if (/^[A-Z]\w*$/.test(type))
|
|
148
|
+
hasTemplatePlaceholder = true;
|
|
149
|
+
if (typeClass.indirection !== 'value' ||
|
|
150
|
+
typeClass.pointerDepth > 0 ||
|
|
151
|
+
(typeClass.cv !== 'none' && typeClass.cv !== 'unknown')) {
|
|
152
|
+
hasDisambiguatingShape = true;
|
|
153
|
+
}
|
|
154
|
+
parts.push(`${type}:${typeClass.cv}:${typeClass.indirection}:${typeClass.pointerDepth.toString()}`);
|
|
155
|
+
}
|
|
156
|
+
if (!hasTemplatePlaceholder || !hasDisambiguatingShape)
|
|
157
|
+
return '';
|
|
158
|
+
return `~shape:${parts.join('|')}`;
|
|
159
|
+
}
|
|
160
|
+
/** Convert MethodInfo from methodExtractor into flat properties for a graph node. */
|
|
161
|
+
function buildMethodProps(info) {
|
|
162
|
+
const types = [];
|
|
163
|
+
const typeClasses = [];
|
|
164
|
+
let optionalCount = 0;
|
|
165
|
+
let hasVariadic = false;
|
|
166
|
+
for (const p of info.parameters) {
|
|
167
|
+
if (p.type !== null)
|
|
168
|
+
types.push(p.type);
|
|
169
|
+
if (p.typeClass !== undefined)
|
|
170
|
+
typeClasses.push(p.typeClass);
|
|
171
|
+
if (p.isOptional)
|
|
172
|
+
optionalCount++;
|
|
173
|
+
if (p.isVariadic)
|
|
174
|
+
hasVariadic = true;
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
parameterCount: hasVariadic ? undefined : info.parameters.length,
|
|
178
|
+
...(!hasVariadic && optionalCount > 0
|
|
179
|
+
? { requiredParameterCount: info.parameters.length - optionalCount }
|
|
180
|
+
: {}),
|
|
181
|
+
...(types.length > 0 ? { parameterTypes: types } : {}),
|
|
182
|
+
...(typeClasses.length === info.parameters.length && typeClasses.length > 0
|
|
183
|
+
? { parameterTypeClasses: typeClasses }
|
|
184
|
+
: {}),
|
|
185
|
+
returnType: info.returnType ?? undefined,
|
|
186
|
+
visibility: info.visibility,
|
|
187
|
+
isStatic: info.isStatic,
|
|
188
|
+
isAbstract: info.isAbstract,
|
|
189
|
+
isFinal: info.isFinal,
|
|
190
|
+
...(info.isVirtual ? { isVirtual: info.isVirtual } : {}),
|
|
191
|
+
...(info.isOverride ? { isOverride: info.isOverride } : {}),
|
|
192
|
+
...(info.isAsync ? { isAsync: info.isAsync } : {}),
|
|
193
|
+
...(info.isPartial ? { isPartial: info.isPartial } : {}),
|
|
194
|
+
...(info.isConst ? { isConst: info.isConst } : {}),
|
|
195
|
+
...(info.isDeleted ? { isDeleted: info.isDeleted } : {}),
|
|
196
|
+
...(info.annotations.length > 0 ? { annotations: info.annotations } : {}),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared qualified-name normalization.
|
|
4
|
+
*
|
|
5
|
+
* One canonical transform from a raw, language-specific qualified name
|
|
6
|
+
* (`Other::Inner`, `pkg\Sub\Type`, ` A . B `) to the `.`-joined form the
|
|
7
|
+
* graph and the `QualifiedNameIndex` are keyed by (`Other.Inner`, `pkg.Sub.Type`,
|
|
8
|
+
* `A.B`). Extracted from `class-extractors/generic.ts` so the structure-phase
|
|
9
|
+
* `buildQualifiedName`, the scope-resolution inheritance resolver, and the
|
|
10
|
+
* per-language capture emitters all key against ONE normalizer — a raw `::`
|
|
11
|
+
* qualifier must normalize to the exact key the index already holds, or the
|
|
12
|
+
* qualified lookup silently misses (issue #1982).
|
|
13
|
+
*
|
|
14
|
+
* Do NOT confuse with `heritage-extractors/supertype-alternation.ts`'s
|
|
15
|
+
* `simplifyRawName`, which collapses a qualified name to its LAST segment
|
|
16
|
+
* (`Other::Inner` → `Inner`) — that is a tail extractor, not a normalizer, and
|
|
17
|
+
* using it as a lookup key guarantees a miss.
|
|
18
|
+
*
|
|
19
|
+
* Pure string functions; no AST or tree-sitter dependency.
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.splitQualifiedName = exports.normalizeQualifiedName = void 0;
|
|
23
|
+
exports.stripTrailingTypeArguments = stripTrailingTypeArguments;
|
|
24
|
+
/**
|
|
25
|
+
* Normalize a raw qualified name to the `.`-joined canonical form:
|
|
26
|
+
* strips whitespace, converts `::` and `\` separators to `.`, collapses
|
|
27
|
+
* repeated dots, and trims leading/trailing dots.
|
|
28
|
+
*/
|
|
29
|
+
const normalizeQualifiedName = (value) => value
|
|
30
|
+
.replace(/\s+/g, '')
|
|
31
|
+
.replace(/^::/, '')
|
|
32
|
+
.replace(/::/g, '.')
|
|
33
|
+
.replace(/\\/g, '.')
|
|
34
|
+
.replace(/\.+/g, '.')
|
|
35
|
+
.replace(/^\.+|\.+$/g, '');
|
|
36
|
+
exports.normalizeQualifiedName = normalizeQualifiedName;
|
|
37
|
+
/**
|
|
38
|
+
* Split a raw qualified name into its normalized, non-empty segments
|
|
39
|
+
* (`Other::Inner` → `['Other', 'Inner']`). Returns `[]` for an empty or
|
|
40
|
+
* separator-only input.
|
|
41
|
+
*/
|
|
42
|
+
const splitQualifiedName = (value) => {
|
|
43
|
+
const normalized = (0, exports.normalizeQualifiedName)(value);
|
|
44
|
+
return normalized ? normalized.split('.').filter(Boolean) : [];
|
|
45
|
+
};
|
|
46
|
+
exports.splitQualifiedName = splitQualifiedName;
|
|
47
|
+
/**
|
|
48
|
+
* Strip a trailing generic argument list at angle-bracket depth 0
|
|
49
|
+
* (`Models.Box<int>` → `Models.Box`). Constructor and inheritance sites
|
|
50
|
+
* often carry type arguments that are not part of the indexed def key.
|
|
51
|
+
*/
|
|
52
|
+
function stripTrailingTypeArguments(value) {
|
|
53
|
+
let depth = 0;
|
|
54
|
+
let ltAt0 = -1;
|
|
55
|
+
for (let i = 0; i < value.length; i++) {
|
|
56
|
+
const c = value[i];
|
|
57
|
+
if (c === '<') {
|
|
58
|
+
if (depth === 0)
|
|
59
|
+
ltAt0 = i;
|
|
60
|
+
depth++;
|
|
61
|
+
}
|
|
62
|
+
else if (c === '>') {
|
|
63
|
+
depth = Math.max(0, depth - 1);
|
|
64
|
+
if (depth === 0 && ltAt0 >= 0) {
|
|
65
|
+
const after = value.slice(i + 1).trim();
|
|
66
|
+
if (after.length === 0)
|
|
67
|
+
return value.slice(0, ltAt0);
|
|
68
|
+
ltAt0 = -1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Synthesize `@reference.receiver-chain` for a call match whose receiver is
|
|
4
|
+
* itself an expression.
|
|
5
|
+
*
|
|
6
|
+
* Shared across every language emitter, and deliberately language-free (AGENTS.md
|
|
7
|
+
* R6): the call gate reads the `@reference.call.*` tag vocabulary, which is
|
|
8
|
+
* shared by every language's `.scm` query, rather than a per-language tag list.
|
|
9
|
+
*
|
|
10
|
+
* Lives in the emitter layer rather than the query because a `.scm` pattern
|
|
11
|
+
* cannot call `extractMixedChain`, and the receiver capture originates in
|
|
12
|
+
* several patterns per language.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.synthesizeReceiverChainCapture = synthesizeReceiverChainCapture;
|
|
16
|
+
const ast_helpers_js_1 = require("./ast-helpers.js");
|
|
17
|
+
const call_analysis_js_1 = require("./call-analysis.js");
|
|
18
|
+
const receiver_chain_codec_js_1 = require("./receiver-chain-codec.js");
|
|
19
|
+
/** Tag prefix marking a match as a CALL. `@reference.callable` is deliberately
|
|
20
|
+
* excluded by the trailing dot — it marks a callable VALUE, not a call site. */
|
|
21
|
+
const CALL_TAG_PREFIX = '@reference.call.';
|
|
22
|
+
/** Does this match represent a call? */
|
|
23
|
+
function isCallMatch(grouped) {
|
|
24
|
+
for (const tag of Object.keys(grouped)) {
|
|
25
|
+
if (tag.startsWith(CALL_TAG_PREFIX))
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Add `@reference.receiver-chain` to `grouped` when the match is a call whose
|
|
32
|
+
* receiver decodes to a chain over a nameable base. Mutates `grouped` in place
|
|
33
|
+
* and returns nothing — mirroring how the other synthesized captures are added.
|
|
34
|
+
*
|
|
35
|
+
* Gated on the call tags: without that gate this fires on read, write and JSX
|
|
36
|
+
* receivers too, which pay the AST walk and the persisted bytes for a field no
|
|
37
|
+
* call-site resolver reads.
|
|
38
|
+
*
|
|
39
|
+
* A chain is minted ONLY when the walk reached a nameable base.
|
|
40
|
+
* `extractMixedChain` reports `baseReceiverName: undefined` whenever it stopped
|
|
41
|
+
* early — at `MAX_CHAIN_DEPTH`, or because a step could not be read — and what it
|
|
42
|
+
* collected then is a partial chain missing exactly the head that decides the
|
|
43
|
+
* final type. Encoding that would turn a receiver we cannot type into one we type
|
|
44
|
+
* WRONGLY, so those fall through to the resolver's existing text cascade.
|
|
45
|
+
*/
|
|
46
|
+
function synthesizeReceiverChainCapture(grouped, receiverNode) {
|
|
47
|
+
if (receiverNode === undefined || receiverNode === null)
|
|
48
|
+
return;
|
|
49
|
+
if (grouped['@reference.receiver-chain'] !== undefined)
|
|
50
|
+
return;
|
|
51
|
+
if (!isCallMatch(grouped))
|
|
52
|
+
return;
|
|
53
|
+
const extracted = (0, call_analysis_js_1.extractMixedChain)(receiverNode);
|
|
54
|
+
if (extracted === undefined || extracted.baseReceiverName === undefined)
|
|
55
|
+
return;
|
|
56
|
+
const encoded = (0, receiver_chain_codec_js_1.encodeReceiverChain)(extracted.baseReceiverName, extracted.chain);
|
|
57
|
+
if (encoded === undefined)
|
|
58
|
+
return;
|
|
59
|
+
grouped['@reference.receiver-chain'] = (0, ast_helpers_js_1.syntheticCapture)('@reference.receiver-chain', receiverNode, encoded);
|
|
60
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Receiver-chain codec.
|
|
4
|
+
*
|
|
5
|
+
* THE one encoder/decoder for the compact receiver chain carried on
|
|
6
|
+
* `ReferenceSite.receiverChain`: the capture emitters write it, the
|
|
7
|
+
* scope-resolution fold reads it, and the durable ParsedFile store validates
|
|
8
|
+
* it. Two hand-rolled copies of a wire format drift — every side MUST import
|
|
9
|
+
* from here. (`taint/path-codec.ts` is the in-repo precedent for both the
|
|
10
|
+
* discipline and the shape.)
|
|
11
|
+
*
|
|
12
|
+
* ## Why a string rather than `MixedChainStep[]`
|
|
13
|
+
*
|
|
14
|
+
* `makeInterningReviver` (parsedfile-store.ts) interns strings, but it
|
|
15
|
+
* re-shares OBJECTS only when they carry `nodeId` + `filePath`. A
|
|
16
|
+
* `MixedChainStep` has neither, so an object encoding leaves every step object
|
|
17
|
+
* and every chain array as a distinct allocation on every warm load, while a
|
|
18
|
+
* string collapses to one interned instance per distinct chain.
|
|
19
|
+
*
|
|
20
|
+
* ## Wire format (version `2`)
|
|
21
|
+
*
|
|
22
|
+
* ```
|
|
23
|
+
* 2|<base>|<step>|<step>…[|~]
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* - One-character version prefix, then the BASE receiver name, then ordered
|
|
27
|
+
* base-first steps.
|
|
28
|
+
* - Each step is a one-character kind sigil followed by the member name:
|
|
29
|
+
* `c` = call (`getUser()`), `f` = field (`address`). The sigil is the first
|
|
30
|
+
* character of the segment and the name follows immediately, so a member
|
|
31
|
+
* whose name begins with `c` or `f` needs no escaping (`ccount` decodes as a
|
|
32
|
+
* call to `count`).
|
|
33
|
+
* - `a` = await and `i` = index are NAME-FREE and encode as a BARE sigil: an
|
|
34
|
+
* awaited call's name already lives on its `c` step, and a subscript's key is
|
|
35
|
+
* a value rather than an identifier the resolver could look up. The decoder
|
|
36
|
+
* rejects any trailing characters after `a` or `i`, which is what keeps an
|
|
37
|
+
* accidentally empty-name `c` or `f` segment refusing instead of decoding as
|
|
38
|
+
* one of these.
|
|
39
|
+
* - A trailing `|~` segment is the TRUNCATION MARKER. NOTE: no current producer
|
|
40
|
+
* mints one. `extractMixedChain` signals "stopped early" by returning
|
|
41
|
+
* `baseReceiverName: undefined`, and the encoder requires a base, so a
|
|
42
|
+
* truncated chain is unrepresentable rather than merely unused. The marker and
|
|
43
|
+
* the decoder/fold guards are kept as a forward-compatible contract: a future
|
|
44
|
+
* producer that CAN report a partial chain must set it, and the fold already
|
|
45
|
+
* refuses such chains. Read the `truncated` field as "reserved", not "live". the chain hit
|
|
46
|
+
* `MAX_CHAIN_DEPTH` and what is encoded is a base-side PREFIX of the real
|
|
47
|
+
* chain. A consumer MUST treat a truncated chain as unusable for typing —
|
|
48
|
+
* the missing tail is exactly what determines the final type — but never as
|
|
49
|
+
* an error.
|
|
50
|
+
*
|
|
51
|
+
* `|` and `~` cannot appear in an identifier in any supported language, so the
|
|
52
|
+
* format needs no escaping and a malformed payload cannot silently decode as a
|
|
53
|
+
* different valid chain.
|
|
54
|
+
*
|
|
55
|
+
* For `svc.getUser().address.save()`, the receiver of `save` encodes as
|
|
56
|
+
* `2|svc|cgetUser|faddress` — 23 bytes. For `(await svc.getUserAsync()).save()`
|
|
57
|
+
* it is `2|svc|cgetUserAsync|a`.
|
|
58
|
+
*/
|
|
59
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
+
exports.MAX_RECEIVER_CHAIN_BYTES = void 0;
|
|
61
|
+
exports.encodeReceiverChain = encodeReceiverChain;
|
|
62
|
+
exports.decodeReceiverChain = decodeReceiverChain;
|
|
63
|
+
exports.isValidReceiverChain = isValidReceiverChain;
|
|
64
|
+
const call_analysis_js_1 = require("./call-analysis.js");
|
|
65
|
+
/** Wire version. Bumped 1 → 2 when the name-free `await` and `index` step kinds
|
|
66
|
+
* were added: a v1 decoder reading a v2 payload must REFUSE, not decode the
|
|
67
|
+
* prefix it happens to understand, because a chain missing its await or index
|
|
68
|
+
* hop decodes cleanly as a different, shorter chain and would type the receiver
|
|
69
|
+
* against the wrong member. */
|
|
70
|
+
const VERSION = '2';
|
|
71
|
+
const SEPARATOR = '|';
|
|
72
|
+
const TRUNCATED = '~';
|
|
73
|
+
/** Sigil per step kind. ONE table, and both directions derive from it — the
|
|
74
|
+
* decoder used to hand-write `sigil === 'c' ? 'call' : 'field'` and its own
|
|
75
|
+
* await/index comparison, which meant the decoder was exactly the side that
|
|
76
|
+
* could drift from the table claiming to prevent drift. */
|
|
77
|
+
const SIGIL_BY_KIND = {
|
|
78
|
+
call: 'c',
|
|
79
|
+
field: 'f',
|
|
80
|
+
await: 'a',
|
|
81
|
+
index: 'i',
|
|
82
|
+
};
|
|
83
|
+
/** Kinds that encode as a BARE sigil, because they have no member name to
|
|
84
|
+
* carry. Derived from the step union rather than listed twice. */
|
|
85
|
+
const NAME_FREE_KINDS = new Set(['await', 'index']);
|
|
86
|
+
const KIND_BY_SIGIL = new Map(Object.entries(SIGIL_BY_KIND).map(([kind, sigil]) => [sigil, kind]));
|
|
87
|
+
/** Hard cap on the encoded payload. `MAX_CHAIN_DEPTH` already bounds the step
|
|
88
|
+
* COUNT; this bounds the total bytes so a pathological identifier cannot grow
|
|
89
|
+
* a shard without limit. Generous against real identifiers — the encoding for
|
|
90
|
+
* a full-depth chain of 30-character names is still under 130 bytes. */
|
|
91
|
+
exports.MAX_RECEIVER_CHAIN_BYTES = 512;
|
|
92
|
+
/** A segment is safe when it contains no structural character. Identifiers in
|
|
93
|
+
* every supported language satisfy this; anything that does not is a payload
|
|
94
|
+
* we refuse to mint rather than escape. */
|
|
95
|
+
function isEncodableSegment(value) {
|
|
96
|
+
// `\s` does NOT match zero-width characters (U+200B ZWS, U+200C/D ZWNJ/ZWJ,
|
|
97
|
+
// U+200E/F LRM/RLM, U+FEFF BOM). An identifier carrying one is a trojan-source
|
|
98
|
+
// vector: it would encode and persist cleanly, then match no binding at
|
|
99
|
+
// resolution time — a silent, unexplained miss. Refuse to mint instead.
|
|
100
|
+
return (value.length > 0 &&
|
|
101
|
+
!value.includes(SEPARATOR) &&
|
|
102
|
+
!value.includes(TRUNCATED) &&
|
|
103
|
+
!/[\s\u200B-\u200F\u2028\u2029\uFEFF]/.test(value));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Encode a chain, or `undefined` when it cannot be represented — an empty
|
|
107
|
+
* chain (nothing to fold), an unencodable name, or a payload over the byte
|
|
108
|
+
* cap. Refusing to mint is deliberate: a half-encoded chain would be decoded
|
|
109
|
+
* as a complete-but-different one.
|
|
110
|
+
*/
|
|
111
|
+
function encodeReceiverChain(baseReceiverName, steps, options) {
|
|
112
|
+
if (steps.length === 0 || steps.length > call_analysis_js_1.MAX_CHAIN_DEPTH)
|
|
113
|
+
return undefined;
|
|
114
|
+
if (!isEncodableSegment(baseReceiverName))
|
|
115
|
+
return undefined;
|
|
116
|
+
const parts = [VERSION, baseReceiverName];
|
|
117
|
+
for (const step of steps) {
|
|
118
|
+
// Name-free kinds encode as a bare sigil. They are exempt from the
|
|
119
|
+
// non-empty-name guard because they HAVE no name to check — not because the
|
|
120
|
+
// guard is relaxed: an empty-name `call` or `field` is still refused below.
|
|
121
|
+
if (NAME_FREE_KINDS.has(step.kind)) {
|
|
122
|
+
parts.push(SIGIL_BY_KIND[step.kind]);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (!isEncodableSegment(step.name))
|
|
126
|
+
return undefined;
|
|
127
|
+
parts.push(`${SIGIL_BY_KIND[step.kind]}${step.name}`);
|
|
128
|
+
}
|
|
129
|
+
if (options?.truncated === true)
|
|
130
|
+
parts.push(TRUNCATED);
|
|
131
|
+
const encoded = parts.join(SEPARATOR);
|
|
132
|
+
return encoded.length > exports.MAX_RECEIVER_CHAIN_BYTES ? undefined : encoded;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Decode a payload, or `undefined` when it is not a well-formed chain. Total
|
|
136
|
+
* function: every malformed input returns `undefined` rather than throwing,
|
|
137
|
+
* because the two callers that matter — the extractor and the untrusted store
|
|
138
|
+
* boundary — are both on paths where a throw would cost the whole file.
|
|
139
|
+
*/
|
|
140
|
+
function decodeReceiverChain(value) {
|
|
141
|
+
if (typeof value !== 'string')
|
|
142
|
+
return undefined;
|
|
143
|
+
if (value.length === 0 || value.length > exports.MAX_RECEIVER_CHAIN_BYTES)
|
|
144
|
+
return undefined;
|
|
145
|
+
const parts = value.split(SEPARATOR);
|
|
146
|
+
if (parts.length < 3)
|
|
147
|
+
return undefined; // version + base + at least one step
|
|
148
|
+
if (parts[0] !== VERSION)
|
|
149
|
+
return undefined;
|
|
150
|
+
// `parts.length < 3` above already proves this element exists.
|
|
151
|
+
const baseReceiverName = parts[1];
|
|
152
|
+
if (!isEncodableSegment(baseReceiverName))
|
|
153
|
+
return undefined;
|
|
154
|
+
let stepParts = parts.slice(2);
|
|
155
|
+
const truncated = stepParts[stepParts.length - 1] === TRUNCATED;
|
|
156
|
+
if (truncated)
|
|
157
|
+
stepParts = stepParts.slice(0, -1);
|
|
158
|
+
if (stepParts.length === 0 || stepParts.length > call_analysis_js_1.MAX_CHAIN_DEPTH)
|
|
159
|
+
return undefined;
|
|
160
|
+
const steps = [];
|
|
161
|
+
for (const part of stepParts) {
|
|
162
|
+
const sigil = part[0];
|
|
163
|
+
const name = part.slice(1);
|
|
164
|
+
// Name-free kinds must be EXACTLY their sigil. Rejecting a trailing tail is
|
|
165
|
+
// what keeps an accidentally empty-name call or field from decoding as one
|
|
166
|
+
// of these: `c` alone stays malformed, it does not become an await.
|
|
167
|
+
const kind = sigil === undefined ? undefined : KIND_BY_SIGIL.get(sigil);
|
|
168
|
+
if (kind === undefined)
|
|
169
|
+
return undefined;
|
|
170
|
+
if (NAME_FREE_KINDS.has(kind)) {
|
|
171
|
+
// Must be EXACTLY the sigil. Rejecting a trailing tail is what keeps an
|
|
172
|
+
// accidentally empty-name call or field from decoding as one of these.
|
|
173
|
+
if (name.length > 0)
|
|
174
|
+
return undefined;
|
|
175
|
+
steps.push({ kind: kind });
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (!isEncodableSegment(name))
|
|
179
|
+
return undefined;
|
|
180
|
+
steps.push({ kind: kind, name });
|
|
181
|
+
}
|
|
182
|
+
return { baseReceiverName, steps, truncated };
|
|
183
|
+
}
|
|
184
|
+
/** Whether a persisted value is a chain this build can use. The store boundary
|
|
185
|
+
* wants the predicate, not the decoded value. */
|
|
186
|
+
function isValidReceiverChain(value) {
|
|
187
|
+
return decodeReceiverChain(value) !== undefined;
|
|
188
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Scope-tree walking primitives shared by the providers' `bindingScopeFor`
|
|
4
|
+
* hooks.
|
|
5
|
+
*
|
|
6
|
+
* Language-neutral: parameterised over `ScopeKind` — the shared scope
|
|
7
|
+
* vocabulary — and names no language, so it belongs in the core pipeline
|
|
8
|
+
* rather than in any one provider (AGENTS.md § shared pipeline code).
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.walkToScope = walkToScope;
|
|
12
|
+
/**
|
|
13
|
+
* Walk up the scope chain to find the first scope whose `kind` matches
|
|
14
|
+
* any of `kinds`. Returns the matching scope's id or `null` when no
|
|
15
|
+
* ancestor matches (e.g., a return type binding emitted outside any
|
|
16
|
+
* Module scope — shouldn't happen in well-formed input).
|
|
17
|
+
*
|
|
18
|
+
* Every provider that hoists a binding out of the scope it was captured in
|
|
19
|
+
* needs exactly this walk: a field typed from a constructor call in a method
|
|
20
|
+
* body belongs on the enclosing Class, a `var` on the enclosing Function or
|
|
21
|
+
* Module, a method return type on the Module. Which `kind` to stop at is the
|
|
22
|
+
* only per-language part, and that is the parameter.
|
|
23
|
+
*/
|
|
24
|
+
function walkToScope(from, tree, ...kinds) {
|
|
25
|
+
let cur = from;
|
|
26
|
+
const kindSet = new Set(kinds);
|
|
27
|
+
while (cur !== undefined) {
|
|
28
|
+
if (kindSet.has(cur.kind))
|
|
29
|
+
return cur.id;
|
|
30
|
+
const parentId = cur.parent ?? null;
|
|
31
|
+
if (parentId === null)
|
|
32
|
+
break;
|
|
33
|
+
cur = tree.getScope(parentId);
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SYMBOL_NODE_LABELS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Graph-node labels that represent a resolvable code symbol — a definition with
|
|
6
|
+
* its own source span (function, type, member, module-like container).
|
|
7
|
+
*
|
|
8
|
+
* These get EXACT source-span content in the FTS index: `csv-generator.ts`
|
|
9
|
+
* slices exactly `[startLine, endLine]` for them (no ±2 padding), while every
|
|
10
|
+
* other label keeps the context window. That exactness depends on the 0-based
|
|
11
|
+
* `startLine`/`endLine` invariant enforced by `line-base.ts` — the slice is only
|
|
12
|
+
* correct because all emitters store 0-based lines. Keep the two together.
|
|
13
|
+
*
|
|
14
|
+
* Single source of truth so the set can't silently drift the way the inline copy
|
|
15
|
+
* did in #2379.
|
|
16
|
+
*
|
|
17
|
+
* NOTE: `group/extractors/manifest-extractor.ts`'s `CUSTOM_CONTRACT_RESOLVE_QUERY`
|
|
18
|
+
* carries a near-identical hand-list that is intentionally a SUBSET — it excludes
|
|
19
|
+
* `Namespace`, `Variable`, `Module`. Unifying the two needs a contract-resolution
|
|
20
|
+
* behavior check (would widen which nodes resolve as contract symbols), so it is
|
|
21
|
+
* deliberately left separate for now.
|
|
22
|
+
*/
|
|
23
|
+
exports.SYMBOL_NODE_LABELS = new Set([
|
|
24
|
+
'Function',
|
|
25
|
+
'Method',
|
|
26
|
+
'Class',
|
|
27
|
+
'Interface',
|
|
28
|
+
'CodeElement',
|
|
29
|
+
'Struct',
|
|
30
|
+
'Enum',
|
|
31
|
+
'Macro',
|
|
32
|
+
'Typedef',
|
|
33
|
+
'Union',
|
|
34
|
+
'Namespace',
|
|
35
|
+
'Trait',
|
|
36
|
+
'Impl',
|
|
37
|
+
'TypeAlias',
|
|
38
|
+
'Const',
|
|
39
|
+
'Static',
|
|
40
|
+
'Variable',
|
|
41
|
+
'Property',
|
|
42
|
+
'Record',
|
|
43
|
+
'Delegate',
|
|
44
|
+
'Annotation',
|
|
45
|
+
'Constructor',
|
|
46
|
+
'Template',
|
|
47
|
+
'Module',
|
|
48
|
+
]);
|