cgraphx 2.0.2 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.claude-template/FLOW-MAP.md +13 -3
- package/dist/.claude-template/agents/task-history.md +186 -0
- package/dist/.claude-template/commands/end.md +1 -0
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +5 -3
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +8 -8
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +8 -8
- package/dist/.claude-template/skills/clarify-requirements/SKILL.md +13 -9
- package/dist/.claude-template/skills/db-query/SKILL.md +19 -2
- package/dist/.claude-template/skills/iboc-check/SKILL.md +51 -23
- package/dist/.claude-template/skills/iboc-check/filler-prompt.md +3 -4
- package/dist/.claude-template/skills/run-api-test/SKILL.md +15 -15
- package/dist/.claude-template/skills/run-api-test/assets/{template-test-report.md → template-/346/216/245/345/217/243/346/265/213/350/257/225/346/212/245/345/221/212.md} +4 -4
- package/dist/.claude-template/skills/run-api-test/references/bru-run.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
- package/dist/.claude-template/skills/run-api-test/references/report-format.md +6 -6
- package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/test-scope.md +6 -6
- package/dist/.claude-template/skills/run-ui-test/SKILL.md +186 -0
- package/dist/.claude-template/skills/run-ui-test/references/report-format.md +77 -0
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
- package/dist/.claude-template/skills/write-api/SKILL.md +18 -18
- package/dist/.claude-template/skills/write-api/assets/{template-api-spec.md → template-/346/216/245/345/217/243/346/265/213/350/257/225-spec.md} +1 -1
- package/dist/.claude-template/skills/write-api/references/{api-spec-format.md → /346/216/245/345/217/243/346/265/213/350/257/225-spec-format.md} +3 -3
- package/dist/.claude-template/skills/write-plan/SKILL.md +4 -2
- package/dist/.claude-template/skills/write-ui-test/SKILL.md +125 -0
- package/dist/.claude-template/skills/write-ui-test/references//347/224/250/344/276/213/350/247/204/346/240/274-format.md +94 -0
- package/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/dbquery/cli.d.ts.map +1 -1
- package/dist/core/dbquery/cli.js +5 -4
- package/dist/core/dbquery/cli.js.map +1 -1
- package/dist/core/dbquery/config.d.ts.map +1 -1
- package/dist/core/dbquery/config.js +39 -3
- package/dist/core/dbquery/config.js.map +1 -1
- package/dist/core/dbquery/drivers/http.d.ts +23 -0
- package/dist/core/dbquery/drivers/http.d.ts.map +1 -0
- package/dist/core/dbquery/drivers/http.js +125 -0
- package/dist/core/dbquery/drivers/http.js.map +1 -0
- package/dist/core/dbquery/drivers/mysql.js +1 -1
- package/dist/core/dbquery/drivers/mysql.js.map +1 -1
- package/dist/core/dbquery/drivers/postgres.js +1 -1
- package/dist/core/dbquery/drivers/postgres.js.map +1 -1
- package/dist/core/dbquery/executor.d.ts.map +1 -1
- package/dist/core/dbquery/executor.js +46 -12
- package/dist/core/dbquery/executor.js.map +1 -1
- package/dist/core/dbquery/format.d.ts.map +1 -1
- package/dist/core/dbquery/format.js +2 -1
- package/dist/core/dbquery/format.js.map +1 -1
- package/dist/core/dbquery/init.d.ts.map +1 -1
- package/dist/core/dbquery/init.js +7 -0
- package/dist/core/dbquery/init.js.map +1 -1
- package/dist/core/dbquery/types.d.ts +55 -7
- package/dist/core/dbquery/types.d.ts.map +1 -1
- package/dist/core/directory.d.ts +17 -0
- package/dist/core/directory.d.ts.map +1 -1
- package/dist/core/directory.js +37 -0
- package/dist/core/directory.js.map +1 -1
- package/dist/core/features/cli.d.ts.map +1 -1
- package/dist/core/features/cli.js +3 -2
- package/dist/core/features/cli.js.map +1 -1
- package/dist/core/features/scanner.d.ts +1 -1
- package/dist/core/features/scanner.d.ts.map +1 -1
- package/dist/core/features/scanner.js +20 -4
- package/dist/core/features/scanner.js.map +1 -1
- package/dist/core/markdown/cli.d.ts.map +1 -1
- package/dist/core/markdown/cli.js +9 -8
- package/dist/core/markdown/cli.js.map +1 -1
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- package/dist/web/register.d.ts.map +1 -1
- package/dist/web/register.js +2 -1
- package/dist/web/register.js.map +1 -1
- package/package.json +1 -1
- package/dist/.claude-template/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-deck/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-deck/references/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-sketch-engine/.cgraphx/timeline-current-turn.json +0 -1
- /package/dist/.claude-template/skills/run-api-test/assets/{template-test-verify.jsonl → template-/346/216/245/345/217/243/346/265/213/350/257/225/351/252/214/350/257/201.jsonl"} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractTemplateArguments = extractTemplateArguments;
|
|
4
|
+
exports.stripTemplateArguments = stripTemplateArguments;
|
|
5
|
+
exports.templateArgumentsIdTag = templateArgumentsIdTag;
|
|
6
|
+
exports.constraintsHash = constraintsHash;
|
|
7
|
+
exports.templateConstraintsIdTag = templateConstraintsIdTag;
|
|
8
|
+
exports.erasedTypeApplication = erasedTypeApplication;
|
|
9
|
+
/**
|
|
10
|
+
* Parse top-level generic/template arguments from a type-like string.
|
|
11
|
+
*
|
|
12
|
+
* Examples:
|
|
13
|
+
* - `List<int>` -> ['int']
|
|
14
|
+
* - `Map<string, vector<int>>` -> ['string', 'vector<int>']
|
|
15
|
+
* - `List<T*>` -> ['T*']
|
|
16
|
+
*/
|
|
17
|
+
function extractTemplateArguments(text) {
|
|
18
|
+
const start = text.indexOf('<');
|
|
19
|
+
if (start === -1)
|
|
20
|
+
return undefined;
|
|
21
|
+
let depth = 0;
|
|
22
|
+
let end = -1;
|
|
23
|
+
for (let i = start; i < text.length; i += 1) {
|
|
24
|
+
const ch = text[i];
|
|
25
|
+
if (ch === '<')
|
|
26
|
+
depth += 1;
|
|
27
|
+
else if (ch === '>') {
|
|
28
|
+
depth -= 1;
|
|
29
|
+
if (depth === 0) {
|
|
30
|
+
end = i;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
if (depth < 0)
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (end === -1)
|
|
38
|
+
return undefined;
|
|
39
|
+
const inner = text.slice(start + 1, end);
|
|
40
|
+
if (inner.trim().length === 0)
|
|
41
|
+
return undefined;
|
|
42
|
+
const args = [];
|
|
43
|
+
let tokenStart = 0;
|
|
44
|
+
let nested = 0;
|
|
45
|
+
for (let i = 0; i < inner.length; i += 1) {
|
|
46
|
+
const ch = inner[i];
|
|
47
|
+
if (ch === '<')
|
|
48
|
+
nested += 1;
|
|
49
|
+
else if (ch === '>')
|
|
50
|
+
nested -= 1;
|
|
51
|
+
else if (ch === ',' && nested === 0) {
|
|
52
|
+
const token = inner.slice(tokenStart, i).replace(/\s+/g, '');
|
|
53
|
+
if (token.length > 0)
|
|
54
|
+
args.push(token);
|
|
55
|
+
tokenStart = i + 1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const last = inner.slice(tokenStart).replace(/\s+/g, '');
|
|
59
|
+
if (last.length > 0)
|
|
60
|
+
args.push(last);
|
|
61
|
+
return args.length > 0 ? args : undefined;
|
|
62
|
+
}
|
|
63
|
+
function stripTemplateArguments(text) {
|
|
64
|
+
const start = text.indexOf('<');
|
|
65
|
+
if (start === -1)
|
|
66
|
+
return text;
|
|
67
|
+
return text.slice(0, start);
|
|
68
|
+
}
|
|
69
|
+
function templateArgumentsIdTag(templateArguments) {
|
|
70
|
+
if (templateArguments === undefined || templateArguments.length === 0)
|
|
71
|
+
return '';
|
|
72
|
+
return `~${templateArguments.join(',')}`;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Stable short hash for the opaque `SymbolDefinition.templateConstraints`
|
|
76
|
+
* payload (issue #1579). Two function-template overloads with identical
|
|
77
|
+
* `parameterTypes` but mutually-exclusive SFINAE constraints
|
|
78
|
+
* (`enable_if_t<is_integral_v<T>>` vs `enable_if_t<is_floating_point_v<T>>`)
|
|
79
|
+
* must produce distinct graph node IDs so the constraint-filter step
|
|
80
|
+
* has two candidates to narrow between. Without this they collapse to
|
|
81
|
+
* a single Function node and the SFINAE golden case can only emit one
|
|
82
|
+
* edge regardless of resolver fixes.
|
|
83
|
+
*
|
|
84
|
+
* FNV-1a 32-bit, base36 encoded. Deterministic; non-cryptographic — the
|
|
85
|
+
* tag's job is collision-avoidance among same-name overloads in one
|
|
86
|
+
* file, not security.
|
|
87
|
+
*/
|
|
88
|
+
function constraintsHash(jsonText) {
|
|
89
|
+
let h = 0x811c9dc5;
|
|
90
|
+
for (let i = 0; i < jsonText.length; i++) {
|
|
91
|
+
h ^= jsonText.charCodeAt(i);
|
|
92
|
+
h = Math.imul(h, 0x01000193);
|
|
93
|
+
}
|
|
94
|
+
return (h >>> 0).toString(36);
|
|
95
|
+
}
|
|
96
|
+
/** Build the `~c:<hash>` ID suffix from an opaque constraint payload.
|
|
97
|
+
* Returns empty string when the payload is absent so callers can
|
|
98
|
+
* string-concatenate unconditionally. */
|
|
99
|
+
function templateConstraintsIdTag(payload) {
|
|
100
|
+
if (payload === undefined || payload === null)
|
|
101
|
+
return '';
|
|
102
|
+
return `~c:${constraintsHash(JSON.stringify(payload))}`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The type APPLICATION a type reference was reduced from — `Mapped[User]`,
|
|
106
|
+
* `Repo<User>` — restored to the `Base<Args>` spelling, or `undefined` when
|
|
107
|
+
* this reference is not that shape.
|
|
108
|
+
*
|
|
109
|
+
* ── WHY A LOOKUP MUST NOT BE HANDED THE REDUCED NAME ─────────────────────────
|
|
110
|
+
*
|
|
111
|
+
* `rawName` is post-normalization (see its docstring on `TypeRef`), and several
|
|
112
|
+
* providers reduce a type application to its BASE NAME at capture time —
|
|
113
|
+
* `Mapped[User]` → `Mapped`, `Repo<User>` → `Repo`. That erasure is what lets
|
|
114
|
+
* one declaration answer for every instantiation of it, and it is also the
|
|
115
|
+
* widest step any lookup in this pipeline takes: reaching a declaration by NAME
|
|
116
|
+
* ALONE binds whatever the workspace happens to declare under that name. A
|
|
117
|
+
* third-party `Mapped[User]` beside an unrelated workspace `class Mapped` is
|
|
118
|
+
* then a confident WRONG edge, which is strictly worse than the missing one it
|
|
119
|
+
* replaced.
|
|
120
|
+
*
|
|
121
|
+
* `resolveClassBindingForName` already owns the rule for this — it admits an
|
|
122
|
+
* erased base name only on grounds that connect the site to the declaration
|
|
123
|
+
* (the scope chain binds the name; the declaration is in the same file; the
|
|
124
|
+
* index proves the name is a template family; the file has no cross-file class
|
|
125
|
+
* channel to be absent from). But that route is entered on the SPELLING: a name
|
|
126
|
+
* carrying its arguments takes it, a name already reduced to its base cannot,
|
|
127
|
+
* because nothing distinguishes it from an ordinary class name. So a provider
|
|
128
|
+
* that reduces at capture time sends its receivers down the ungrounded route by
|
|
129
|
+
* construction, whatever the shared lookup does.
|
|
130
|
+
*
|
|
131
|
+
* Restoring the application from `declaredSpelling` — which keeps the
|
|
132
|
+
* annotation exactly as written whenever normalization changed it — puts those
|
|
133
|
+
* receivers back on the grounded route. Restoring rather than reimplementing
|
|
134
|
+
* the grounding here is deliberate: the rule is one rule, and a second copy of
|
|
135
|
+
* it in this file would be free to drift from the one in `scope/walkers.ts`
|
|
136
|
+
* that every other caller uses. (Its predicate is not exported; the exported
|
|
137
|
+
* entry point is the spelling.)
|
|
138
|
+
*
|
|
139
|
+
* ── WHAT COUNTS AS AN APPLICATION ────────────────────────────────────────────
|
|
140
|
+
*
|
|
141
|
+
* `rawName` must be the base the spelling APPLIES arguments to, and the
|
|
142
|
+
* argument list must be the whole of the rest of the spelling — one list,
|
|
143
|
+
* balanced, non-empty. Everything else is left exactly as it resolves today,
|
|
144
|
+
* because a transform that is not certain is a worse failure than no transform:
|
|
145
|
+
*
|
|
146
|
+
* - `User[]` — an array whose ELEMENT the capture layer already reduced to
|
|
147
|
+
* `User`. The position is the element, not an application of `User`, and
|
|
148
|
+
* the empty list is what says so.
|
|
149
|
+
* - `User[][]` — likewise, and it closes its first list before the end.
|
|
150
|
+
* - `std::vector<Item>` reduced to `vector<Item>` — the spelling does not
|
|
151
|
+
* start with the reduced name, so nothing was erased that this can restore.
|
|
152
|
+
* - `Repo<User>?`, `Map<String, (Int) -> Unit>` — trailing decoration and an
|
|
153
|
+
* argument list that does not close where it must. Declining leaves the
|
|
154
|
+
* pre-existing behaviour, which is what "no transform" has to mean.
|
|
155
|
+
*
|
|
156
|
+
* The rebuilt spelling uses ANGLE brackets because that is the spelling
|
|
157
|
+
* `resolveClassBindingForName`'s contract is written against; the punctuation a
|
|
158
|
+
* language spells type application with is not otherwise meaningful here, and
|
|
159
|
+
* nothing downstream reads this string except that lookup.
|
|
160
|
+
*/
|
|
161
|
+
function erasedTypeApplication(typeRef) {
|
|
162
|
+
const spelling = typeRef.declaredSpelling?.trim();
|
|
163
|
+
if (spelling === undefined)
|
|
164
|
+
return undefined;
|
|
165
|
+
const base = typeRef.rawName.trim();
|
|
166
|
+
if (base.length === 0 || !spelling.startsWith(base))
|
|
167
|
+
return undefined;
|
|
168
|
+
const rest = spelling.slice(base.length).trimStart();
|
|
169
|
+
const opener = rest[0];
|
|
170
|
+
if (opener !== '<' && opener !== '[')
|
|
171
|
+
return undefined;
|
|
172
|
+
const closer = opener === '<' ? '>' : ']';
|
|
173
|
+
let depth = 0;
|
|
174
|
+
for (let i = 0; i < rest.length; i++) {
|
|
175
|
+
if (rest[i] === opener)
|
|
176
|
+
depth++;
|
|
177
|
+
else if (rest[i] === closer) {
|
|
178
|
+
depth--;
|
|
179
|
+
// The list the spelling opened must close on the LAST character, and must
|
|
180
|
+
// have held something: `Repo[User]` yes, `User[]` no, `User[][]` no.
|
|
181
|
+
if (depth === 0) {
|
|
182
|
+
return i === rest.length - 1 && i > 1 ? `${base}<${rest.slice(1, i)}>` : undefined;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a declared TYPE-PARAMETER LIST out of its own source text.
|
|
4
|
+
*
|
|
5
|
+
* The sibling of `template-arguments.ts`, on the other axis: that file reads the
|
|
6
|
+
* arguments a declaration was written AGAINST (`Vec<bool>` → `['bool']`), this
|
|
7
|
+
* one reads the parameters it was written IN TERMS OF (`template <class T>`,
|
|
8
|
+
* `class Box<T extends Repo>`). See `TypeParameter` in `cgraph-shared` for why
|
|
9
|
+
* conflating them is a defect rather than a simplification.
|
|
10
|
+
*
|
|
11
|
+
* ── WHY TEXT AND NOT A PER-LANGUAGE JSON PAYLOAD ─────────────────────────────
|
|
12
|
+
*
|
|
13
|
+
* The `@declaration.parameter-types` precedent synthesizes JSON inside each
|
|
14
|
+
* language's `captures.ts`, because a *parameter type* can itself contain a
|
|
15
|
+
* comma (`Dict[str, int]`) and needs a quoting convention. A type-parameter list
|
|
16
|
+
* needs none: every language that has one delimits it with `<…>` and separates
|
|
17
|
+
* entries with commas, and the nesting those commas can hide (`T extends
|
|
18
|
+
* Map<K, V>`) is bracket nesting the same scanner already has to track. So the
|
|
19
|
+
* capture can be the raw list node and the whole parse is shared, which keeps
|
|
20
|
+
* the per-language cost at one query capture instead of a branch in six
|
|
21
|
+
* emitters.
|
|
22
|
+
*
|
|
23
|
+
* ── WHY THIS NAMES NO LANGUAGE (AGENTS.md R6) ────────────────────────────────
|
|
24
|
+
*
|
|
25
|
+
* It recognizes TOKENS, not languages, and every token it recognizes is
|
|
26
|
+
* recognized for all input. `extends` and `:` both introduce a bound wherever
|
|
27
|
+
* they appear; the name is the last identifier ahead of the bound wherever it
|
|
28
|
+
* appears, which is what makes `class T`, `typename T`, `in T`, `out T`,
|
|
29
|
+
* `reified T` and a bare `T` one rule rather than six. No caller passes a
|
|
30
|
+
* language tag and none is inspected — the direct analogue of
|
|
31
|
+
* `extractTemplateArguments`, which has parsed `<…>` for every language from
|
|
32
|
+
* shared code since it was written.
|
|
33
|
+
*/
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.parseTypeParameterList = parseTypeParameterList;
|
|
36
|
+
/** Matches a trailing identifier: the parameter's name sits at the END of the
|
|
37
|
+
* pre-bound text, after any keyword or variance modifier. Unicode is not
|
|
38
|
+
* attempted — every language measured restricts type-parameter names to ASCII
|
|
39
|
+
* identifier characters, and a name this rejects yields no parameter rather
|
|
40
|
+
* than a wrong one. */
|
|
41
|
+
const TRAILING_IDENTIFIER = /([A-Za-z_$][A-Za-z0-9_$]*)\s*$/;
|
|
42
|
+
/**
|
|
43
|
+
* The declared type parameters in `text`, in source order, or `undefined` when
|
|
44
|
+
* `text` holds no parseable list.
|
|
45
|
+
*
|
|
46
|
+
* `text` is the raw source of the list node — `<T extends Repo, U>`,
|
|
47
|
+
* `<class T, typename U = int>`, `[T any]` is NOT accepted (see the bracket note
|
|
48
|
+
* below). Leading content before the first `<` is skipped, so a capture that
|
|
49
|
+
* spans `template <class T>` parses identically to one spanning `<class T>`.
|
|
50
|
+
*
|
|
51
|
+
* ANGLE BRACKETS ONLY. Every language this is wired to delimits with `<…>`.
|
|
52
|
+
* Square brackets would be ambiguous against an array/subscript spelling in the
|
|
53
|
+
* same position, and the one language that uses them for this (Go) is served by
|
|
54
|
+
* its own main-thread reader — so accepting `[…]` here would buy nothing and
|
|
55
|
+
* risk reading `int[]` as a parameter list.
|
|
56
|
+
*/
|
|
57
|
+
function parseTypeParameterList(text) {
|
|
58
|
+
const inner = innerListText(text);
|
|
59
|
+
if (inner === undefined)
|
|
60
|
+
return undefined;
|
|
61
|
+
const out = [];
|
|
62
|
+
for (const entry of splitTopLevel(inner)) {
|
|
63
|
+
const parameter = parseEntry(entry);
|
|
64
|
+
if (parameter !== undefined)
|
|
65
|
+
out.push(parameter);
|
|
66
|
+
}
|
|
67
|
+
return out.length > 0 ? out : undefined;
|
|
68
|
+
}
|
|
69
|
+
/** The text between the outermost `<` and its matching `>`, or `undefined` when
|
|
70
|
+
* there is no balanced pair or it is empty. */
|
|
71
|
+
function innerListText(text) {
|
|
72
|
+
const start = text.indexOf('<');
|
|
73
|
+
if (start === -1)
|
|
74
|
+
return undefined;
|
|
75
|
+
let depth = 0;
|
|
76
|
+
for (let i = start; i < text.length; i += 1) {
|
|
77
|
+
const ch = text[i];
|
|
78
|
+
if (ch === '<')
|
|
79
|
+
depth += 1;
|
|
80
|
+
else if (ch === '>') {
|
|
81
|
+
depth -= 1;
|
|
82
|
+
if (depth === 0) {
|
|
83
|
+
const inner = text.slice(start + 1, i);
|
|
84
|
+
return inner.trim().length === 0 ? undefined : inner;
|
|
85
|
+
}
|
|
86
|
+
if (depth < 0)
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Split on commas that no bracket encloses.
|
|
94
|
+
*
|
|
95
|
+
* All four bracket families are tracked together because a bound can carry any
|
|
96
|
+
* of them and each hides commas that are NOT entry separators: `T extends
|
|
97
|
+
* Map<K, V>` (angle), `T extends Fn<(a, b) => void>` (paren), `N: [usize; 2]`
|
|
98
|
+
* (square), `T : suspend (Int, Int) -> Unit` (paren again).
|
|
99
|
+
*/
|
|
100
|
+
function splitTopLevel(inner) {
|
|
101
|
+
const parts = [];
|
|
102
|
+
let depth = 0;
|
|
103
|
+
let start = 0;
|
|
104
|
+
for (let i = 0; i < inner.length; i += 1) {
|
|
105
|
+
const ch = inner[i];
|
|
106
|
+
if (ch === '<' || ch === '(' || ch === '[' || ch === '{')
|
|
107
|
+
depth += 1;
|
|
108
|
+
else if (ch === '>' || ch === ')' || ch === ']' || ch === '}')
|
|
109
|
+
depth -= 1;
|
|
110
|
+
else if (ch === ',' && depth === 0) {
|
|
111
|
+
parts.push(inner.slice(start, i));
|
|
112
|
+
start = i + 1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
parts.push(inner.slice(start));
|
|
116
|
+
return parts;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* One list entry → its parameter, or `undefined` when the entry declares no
|
|
120
|
+
* type parameter this can name.
|
|
121
|
+
*
|
|
122
|
+
* DECLINING IS A RESULT, not a failure to handle: a Rust lifetime (`'a`) and a
|
|
123
|
+
* C++ non-type parameter spelled without a trailing identifier declare nothing
|
|
124
|
+
* a member lookup can be performed on, and admitting them under a made-up name
|
|
125
|
+
* would put a binding in the shadowing guard that shadows nothing real.
|
|
126
|
+
*/
|
|
127
|
+
function parseEntry(entry) {
|
|
128
|
+
// A default (`= int`, `= Repo<User>`) is not part of either the name or the
|
|
129
|
+
// bound. Cut it first so `class T = int` still ends in its name. Only a
|
|
130
|
+
// top-level `=` counts — `T extends Fn<() => void>` must keep its bound.
|
|
131
|
+
const head = beforeTopLevelDefault(entry);
|
|
132
|
+
const boundAt = findBoundIntroducer(head);
|
|
133
|
+
const namePart = boundAt === undefined ? head : head.slice(0, boundAt.index);
|
|
134
|
+
const bound = boundAt === undefined ? undefined : head.slice(boundAt.index + boundAt.length).trim();
|
|
135
|
+
// The NAME is the trailing identifier of the pre-bound text. That one rule
|
|
136
|
+
// covers a bare `T`, a keyword-prefixed `class T` / `typename T`, a
|
|
137
|
+
// variance-annotated `in T` / `out T`, a modifier-prefixed `reified T`, and a
|
|
138
|
+
// variadic `class... Ts` — every measured spelling puts the name last.
|
|
139
|
+
const matched = TRAILING_IDENTIFIER.exec(namePart);
|
|
140
|
+
const name = matched?.[1];
|
|
141
|
+
if (matched === undefined || matched === null || name === undefined)
|
|
142
|
+
return undefined;
|
|
143
|
+
// A LIFETIME (`'a`) is not a type parameter. Its name would otherwise be read
|
|
144
|
+
// as the bare identifier after the sigil, putting `a` into the shadowing set
|
|
145
|
+
// and hiding any real declaration by that name from every lookup in the
|
|
146
|
+
// declaration's body — a missing edge invented out of a construct that
|
|
147
|
+
// declares no type at all.
|
|
148
|
+
if (namePart[matched.index - 1] === "'")
|
|
149
|
+
return undefined;
|
|
150
|
+
return bound === undefined || bound.length === 0 ? { name } : { name, bound };
|
|
151
|
+
}
|
|
152
|
+
/** `entry` up to a top-level `=`, which introduces a DEFAULT rather than a
|
|
153
|
+
* bound. `=>` and `>=`/`<=` are not defaults; only a bare `=` at depth 0 is. */
|
|
154
|
+
function beforeTopLevelDefault(entry) {
|
|
155
|
+
let depth = 0;
|
|
156
|
+
for (let i = 0; i < entry.length; i += 1) {
|
|
157
|
+
const ch = entry[i];
|
|
158
|
+
if (ch === '<' || ch === '(' || ch === '[' || ch === '{')
|
|
159
|
+
depth += 1;
|
|
160
|
+
else if (ch === '>' || ch === ')' || ch === ']' || ch === '}')
|
|
161
|
+
depth -= 1;
|
|
162
|
+
else if (ch === '=' && depth === 0 && entry[i + 1] !== '=' && entry[i + 1] !== '>') {
|
|
163
|
+
return entry.slice(0, i);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return entry;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Where the bound starts in `head`, or `undefined` when the entry declares none.
|
|
170
|
+
*
|
|
171
|
+
* Two introducers, both at depth 0 only: the keyword `extends` and a bare `:`.
|
|
172
|
+
* `:` is checked as a single character rather than a word, and `extends` is
|
|
173
|
+
* required to stand as a whole word so a parameter named `extendsFoo` is not
|
|
174
|
+
* mistaken for one.
|
|
175
|
+
*
|
|
176
|
+
* A `:` that is NOT a bound — C++ `template <int N>` has none, and a Rust const
|
|
177
|
+
* generic `const N: usize` states a const parameter's TYPE — yields a `bound`
|
|
178
|
+
* that no consumer can resolve to a class and therefore falls out harmlessly at
|
|
179
|
+
* lookup. Reading it as a bound is the conservative direction: it can only fail
|
|
180
|
+
* to find a member, never invent one.
|
|
181
|
+
*/
|
|
182
|
+
function findBoundIntroducer(head) {
|
|
183
|
+
let depth = 0;
|
|
184
|
+
for (let i = 0; i < head.length; i += 1) {
|
|
185
|
+
const ch = head[i];
|
|
186
|
+
if (ch === '<' || ch === '(' || ch === '[' || ch === '{')
|
|
187
|
+
depth += 1;
|
|
188
|
+
else if (ch === '>' || ch === ')' || ch === ']' || ch === '}')
|
|
189
|
+
depth -= 1;
|
|
190
|
+
else if (depth !== 0)
|
|
191
|
+
continue;
|
|
192
|
+
else if (ch === ':')
|
|
193
|
+
return { index: i, length: 1 };
|
|
194
|
+
else if (ch === 'e' &&
|
|
195
|
+
head.startsWith('extends', i) &&
|
|
196
|
+
isWholeWord(head, i, 'extends'.length)) {
|
|
197
|
+
return { index: i, length: 'extends'.length };
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
function isWholeWord(text, index, length) {
|
|
203
|
+
const before = index === 0 ? '' : text[index - 1];
|
|
204
|
+
const after = text[index + length] ?? '';
|
|
205
|
+
return !isIdentifierChar(before) && !isIdentifierChar(after);
|
|
206
|
+
}
|
|
207
|
+
function isIdentifierChar(ch) {
|
|
208
|
+
return ch.length === 1 && /[A-Za-z0-9_$]/.test(ch);
|
|
209
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isVerboseIngestionEnabled = void 0;
|
|
4
|
+
const env_js_1 = require("./env.js");
|
|
5
|
+
const isVerboseIngestionEnabled = () => (0, env_js_1.parseTruthyEnv)(process.env.CGRAPH_VERBOSE);
|
|
6
|
+
exports.isVerboseIngestionEnabled = isVerboseIngestionEnabled;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// cgraph/src/core/ingestion/variable-extractors/configs/c-cpp.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.cppVariableConfig = exports.cVariableConfig = void 0;
|
|
5
|
+
const index_js_1 = require("../../../../../shared/index.js");
|
|
6
|
+
const helpers_js_1 = require("../../field-extractors/configs/helpers.js");
|
|
7
|
+
const shared_js_1 = require("../../type-extractors/shared.js");
|
|
8
|
+
/**
|
|
9
|
+
* C/C++ variable extraction config.
|
|
10
|
+
*
|
|
11
|
+
* Handles global/namespace-scoped variable declarations:
|
|
12
|
+
* - `int x = 5;`
|
|
13
|
+
* - `const int MAX = 100;`
|
|
14
|
+
* - `static int counter = 0;`
|
|
15
|
+
* - `constexpr int SIZE = 10;` (C++)
|
|
16
|
+
* - `extern int shared;`
|
|
17
|
+
*
|
|
18
|
+
* tree-sitter-c/cpp uses declaration for variable declarations.
|
|
19
|
+
*/
|
|
20
|
+
function extractCVarName(node) {
|
|
21
|
+
// declaration → declarator (init_declarator or identifier)
|
|
22
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
23
|
+
const child = node.namedChild(i);
|
|
24
|
+
if (child?.type === 'init_declarator') {
|
|
25
|
+
const declarator = child.childForFieldName('declarator');
|
|
26
|
+
if (declarator?.type === 'identifier')
|
|
27
|
+
return declarator.text;
|
|
28
|
+
if (declarator?.type === 'pointer_declarator') {
|
|
29
|
+
const inner = declarator.namedChildren.find((c) => c.type === 'identifier');
|
|
30
|
+
return inner?.text;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (child?.type === 'identifier')
|
|
34
|
+
return child.text;
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Locate the `structured_binding_declarator` inside a `declaration` node, if any.
|
|
40
|
+
*
|
|
41
|
+
* C++ structured bindings (`auto [a, b] = pair;`) parse as:
|
|
42
|
+
* declaration → init_declarator → structured_binding_declarator → identifier+
|
|
43
|
+
* The reference form (`auto& [x, y] = tup;`) wraps it one level deeper:
|
|
44
|
+
* declaration → init_declarator → reference_declarator → structured_binding_declarator
|
|
45
|
+
*/
|
|
46
|
+
function findStructuredBindingDeclarator(node) {
|
|
47
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
48
|
+
const child = node.namedChild(i);
|
|
49
|
+
if (child?.type !== 'init_declarator')
|
|
50
|
+
continue;
|
|
51
|
+
const declarator = child.childForFieldName('declarator');
|
|
52
|
+
if (declarator?.type === 'structured_binding_declarator')
|
|
53
|
+
return declarator;
|
|
54
|
+
// `auto& [x, y]` → reference_declarator wraps the structured_binding_declarator.
|
|
55
|
+
if (declarator?.type === 'reference_declarator') {
|
|
56
|
+
const inner = declarator.namedChildren.find((c) => c.type === 'structured_binding_declarator');
|
|
57
|
+
if (inner)
|
|
58
|
+
return inner;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Extract every bound name from a C/C++ declaration.
|
|
65
|
+
*
|
|
66
|
+
* For a structured binding `auto [a, b] = ...;` this returns each bound
|
|
67
|
+
* identifier (`['a', 'b']`); the binding's `structured_binding_declarator`
|
|
68
|
+
* lists one `identifier` per name. For an ordinary single-name declaration
|
|
69
|
+
* (`int n = 0;`) it falls back to the single name extractor so behaviour is
|
|
70
|
+
* unchanged (issue #1919 F9).
|
|
71
|
+
*/
|
|
72
|
+
function extractCVarNames(node) {
|
|
73
|
+
const binding = findStructuredBindingDeclarator(node);
|
|
74
|
+
if (binding !== undefined) {
|
|
75
|
+
const names = [];
|
|
76
|
+
for (let i = 0; i < binding.namedChildCount; i++) {
|
|
77
|
+
const child = binding.namedChild(i);
|
|
78
|
+
if (child?.type === 'identifier')
|
|
79
|
+
names.push(child.text);
|
|
80
|
+
}
|
|
81
|
+
return names;
|
|
82
|
+
}
|
|
83
|
+
const single = extractCVarName(node);
|
|
84
|
+
return single !== undefined ? [single] : [];
|
|
85
|
+
}
|
|
86
|
+
function extractCVarType(node) {
|
|
87
|
+
const typeNode = node.childForFieldName('type');
|
|
88
|
+
if (typeNode)
|
|
89
|
+
return (0, shared_js_1.extractSimpleTypeName)(typeNode) ?? typeNode.text?.trim();
|
|
90
|
+
// Fallback: first primitive_type or type_identifier child
|
|
91
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
92
|
+
const child = node.namedChild(i);
|
|
93
|
+
if (child?.type === 'primitive_type' ||
|
|
94
|
+
child?.type === 'type_identifier' ||
|
|
95
|
+
child?.type === 'sized_type_specifier') {
|
|
96
|
+
return child.text?.trim();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
const shared = {
|
|
102
|
+
constNodeTypes: [],
|
|
103
|
+
staticNodeTypes: [],
|
|
104
|
+
variableNodeTypes: ['declaration'],
|
|
105
|
+
extractName: extractCVarName,
|
|
106
|
+
extractNames: extractCVarNames,
|
|
107
|
+
extractType: extractCVarType,
|
|
108
|
+
extractVisibility(node) {
|
|
109
|
+
// C/C++ visibility is file-scoped by default (static = file-private)
|
|
110
|
+
if ((0, helpers_js_1.hasKeyword)(node, 'static'))
|
|
111
|
+
return 'private';
|
|
112
|
+
if ((0, helpers_js_1.hasKeyword)(node, 'extern'))
|
|
113
|
+
return 'public';
|
|
114
|
+
return 'public';
|
|
115
|
+
},
|
|
116
|
+
isConst(node) {
|
|
117
|
+
return (0, helpers_js_1.hasKeyword)(node, 'const') || (0, helpers_js_1.hasKeyword)(node, 'constexpr');
|
|
118
|
+
},
|
|
119
|
+
isStatic(node) {
|
|
120
|
+
return (0, helpers_js_1.hasKeyword)(node, 'static');
|
|
121
|
+
},
|
|
122
|
+
isMutable(node) {
|
|
123
|
+
return !(0, helpers_js_1.hasKeyword)(node, 'const') && !(0, helpers_js_1.hasKeyword)(node, 'constexpr');
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
exports.cVariableConfig = {
|
|
127
|
+
...shared,
|
|
128
|
+
language: index_js_1.SupportedLanguages.C,
|
|
129
|
+
};
|
|
130
|
+
exports.cppVariableConfig = {
|
|
131
|
+
...shared,
|
|
132
|
+
language: index_js_1.SupportedLanguages.CPlusPlus,
|
|
133
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// cgraph/src/core/ingestion/variable-extractors/configs/csharp.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.csharpVariableConfig = void 0;
|
|
5
|
+
const index_js_1 = require("../../../../../shared/index.js");
|
|
6
|
+
const helpers_js_1 = require("../../field-extractors/configs/helpers.js");
|
|
7
|
+
const shared_js_1 = require("../../type-extractors/shared.js");
|
|
8
|
+
/**
|
|
9
|
+
* C# variable extraction config.
|
|
10
|
+
*
|
|
11
|
+
* C# does not have true top-level variables (pre-C# 9). In C# 9+ top-level
|
|
12
|
+
* statements, local_declaration_statement can appear at program scope.
|
|
13
|
+
* Class-scoped fields are handled by the field extractor.
|
|
14
|
+
*/
|
|
15
|
+
exports.csharpVariableConfig = {
|
|
16
|
+
language: index_js_1.SupportedLanguages.CSharp,
|
|
17
|
+
constNodeTypes: [],
|
|
18
|
+
staticNodeTypes: [],
|
|
19
|
+
variableNodeTypes: ['local_declaration_statement'],
|
|
20
|
+
extractName(node) {
|
|
21
|
+
// local_declaration_statement → variable_declaration → variable_declarator → identifier
|
|
22
|
+
const varDecl = node.namedChildren.find((c) => c.type === 'variable_declaration');
|
|
23
|
+
if (!varDecl)
|
|
24
|
+
return undefined;
|
|
25
|
+
const declarator = varDecl.namedChildren.find((c) => c.type === 'variable_declarator');
|
|
26
|
+
const name = declarator?.childForFieldName('name');
|
|
27
|
+
return name?.type === 'identifier' ? name.text : undefined;
|
|
28
|
+
},
|
|
29
|
+
extractType(node) {
|
|
30
|
+
const varDecl = node.namedChildren.find((c) => c.type === 'variable_declaration');
|
|
31
|
+
if (!varDecl)
|
|
32
|
+
return undefined;
|
|
33
|
+
const typeNode = varDecl.childForFieldName('type');
|
|
34
|
+
if (typeNode)
|
|
35
|
+
return (0, shared_js_1.extractSimpleTypeName)(typeNode) ?? typeNode.text?.trim();
|
|
36
|
+
return undefined;
|
|
37
|
+
},
|
|
38
|
+
extractVisibility(node) {
|
|
39
|
+
const mods = (0, helpers_js_1.collectModifierTexts)(node);
|
|
40
|
+
if (mods.has('public'))
|
|
41
|
+
return 'public';
|
|
42
|
+
if (mods.has('private'))
|
|
43
|
+
return 'private';
|
|
44
|
+
if (mods.has('protected') && mods.has('internal'))
|
|
45
|
+
return 'protected internal';
|
|
46
|
+
if (mods.has('private') && mods.has('protected'))
|
|
47
|
+
return 'private protected';
|
|
48
|
+
if (mods.has('protected'))
|
|
49
|
+
return 'protected';
|
|
50
|
+
if (mods.has('internal'))
|
|
51
|
+
return 'internal';
|
|
52
|
+
return 'private';
|
|
53
|
+
},
|
|
54
|
+
isConst(node) {
|
|
55
|
+
const mods = (0, helpers_js_1.collectModifierTexts)(node);
|
|
56
|
+
return mods.has('const');
|
|
57
|
+
},
|
|
58
|
+
isStatic(node) {
|
|
59
|
+
const mods = (0, helpers_js_1.collectModifierTexts)(node);
|
|
60
|
+
return mods.has('static');
|
|
61
|
+
},
|
|
62
|
+
isMutable(node) {
|
|
63
|
+
const mods = (0, helpers_js_1.collectModifierTexts)(node);
|
|
64
|
+
return !mods.has('const') && !mods.has('readonly');
|
|
65
|
+
},
|
|
66
|
+
};
|