gitnexus 1.6.10-rc.99 → 1.6.10
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/README.md +177 -18
- package/dist/_shared/graph/types.d.ts +21 -2
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +3 -3
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +16 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +19 -7
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +2 -2
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +5 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +315 -36
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +115 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +278 -3
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +3 -2
- package/dist/cli/ai-context.js +71 -16
- package/dist/cli/analyze-config.d.ts +1 -1
- package/dist/cli/analyze-options.d.ts +131 -0
- package/dist/cli/analyze-options.js +1 -0
- package/dist/cli/analyze.d.ts +21 -113
- package/dist/cli/analyze.js +172 -29
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +12 -0
- package/dist/cli/doctor.js +32 -5
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.js +2 -1
- package/dist/cli/format-symbol.d.ts +15 -0
- package/dist/cli/format-symbol.js +17 -0
- package/dist/cli/generated-skill.d.ts +17 -0
- package/dist/cli/generated-skill.js +1 -0
- package/dist/cli/group.js +229 -21
- package/dist/cli/help-i18n.js +1 -2
- package/dist/cli/i18n/en.d.ts +11 -9
- package/dist/cli/i18n/en.js +13 -9
- package/dist/cli/i18n/resources.d.ts +15 -11
- package/dist/cli/i18n/zh-CN.d.ts +4 -2
- package/dist/cli/i18n/zh-CN.js +11 -9
- package/dist/cli/index.js +8 -4
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.js +4 -3
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +74 -17
- package/dist/cli/wiki.js +53 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +54 -13
- package/dist/core/analyzer-identity.d.ts +80 -0
- package/dist/core/analyzer-identity.js +364 -26
- package/dist/core/augmentation/engine.js +86 -71
- package/dist/core/embedding-checkpoint.d.ts +143 -0
- package/dist/core/embedding-checkpoint.js +221 -0
- package/dist/core/embedding-count.d.ts +61 -0
- package/dist/core/embedding-count.js +69 -0
- package/dist/core/embeddings/ast-utils.js +9 -1
- package/dist/core/embeddings/embedding-pipeline.d.ts +8 -0
- package/dist/core/embeddings/embedding-pipeline.js +253 -14
- package/dist/core/embeddings/http-client.d.ts +5 -0
- package/dist/core/embeddings/http-client.js +142 -27
- package/dist/core/graph/graph.js +3 -0
- package/dist/core/graph/import-cycles.d.ts +194 -3
- package/dist/core/graph/import-cycles.js +522 -73
- package/dist/core/graph/types.d.ts +18 -0
- package/dist/core/group/bridge-db.d.ts +204 -1
- package/dist/core/group/bridge-db.js +401 -28
- package/dist/core/group/completeness.d.ts +130 -0
- package/dist/core/group/completeness.js +83 -0
- package/dist/core/group/config-parser.js +0 -5
- package/dist/core/group/cross-impact.d.ts +46 -1
- package/dist/core/group/cross-impact.js +220 -19
- package/dist/core/group/cross-trace.d.ts +32 -11
- package/dist/core/group/cross-trace.js +114 -20
- package/dist/core/group/extractors/http-patterns/java.js +278 -22
- package/dist/core/group/extractors/http-patterns/node.js +332 -216
- package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
- package/dist/core/group/extractors/http-route-extractor.js +122 -48
- package/dist/core/group/extractors/include-extractor.js +20 -2
- package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
- package/dist/core/group/extractors/manifest-extractor.js +7 -7
- package/dist/core/group/extractors/python-workspace-extractor.js +5 -2
- package/dist/core/group/group-lock.d.ts +31 -0
- package/dist/core/group/group-lock.js +166 -0
- package/dist/core/group/service.js +297 -16
- package/dist/core/group/storage.d.ts +3 -0
- package/dist/core/group/storage.js +7 -39
- package/dist/core/group/sync.d.ts +49 -3
- package/dist/core/group/sync.js +0 -0
- package/dist/core/group/types.d.ts +183 -8
- package/dist/core/group/types.js +28 -1
- package/dist/core/incremental/subgraph-extract.d.ts +9 -6
- package/dist/core/incremental/subgraph-extract.js +33 -10
- package/dist/core/index-freshness.d.ts +77 -2
- package/dist/core/index-freshness.js +109 -2
- package/dist/core/ingestion/call-processor.d.ts +13 -1
- package/dist/core/ingestion/call-processor.js +110 -3
- package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
- package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
- package/dist/core/ingestion/cfg/emit.d.ts +8 -23
- package/dist/core/ingestion/cfg/emit.js +9 -23
- package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +81 -82
- package/dist/core/ingestion/di-extractors/index.d.ts +9 -33
- package/dist/core/ingestion/di-extractors/spring.d.ts +1 -1
- package/dist/core/ingestion/di-extractors/spring.js +8 -1
- package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
- package/dist/core/ingestion/di-extractors/types.js +15 -0
- package/dist/core/ingestion/filesystem-walker.js +30 -14
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +6 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +35 -1
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
- package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
- package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +1 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +3 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +162 -13
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
- package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
- package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
- package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
- package/dist/core/ingestion/import-resolvers/go.js +44 -17
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +429 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/php.js +65 -19
- package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
- package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
- package/dist/core/ingestion/import-resolvers/python.js +25 -6
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
- package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
- package/dist/core/ingestion/import-resolvers/utils.js +215 -36
- package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
- package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
- package/dist/core/ingestion/language-config.d.ts +29 -1
- package/dist/core/ingestion/language-config.js +110 -35
- package/dist/core/ingestion/language-provider.d.ts +209 -7
- package/dist/core/ingestion/language-provider.js +37 -0
- package/dist/core/ingestion/languages/c/captures.js +7 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/scope-resolver.js +20 -19
- package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
- package/dist/core/ingestion/languages/c-cpp.js +13 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +27 -20
- package/dist/core/ingestion/languages/cobol.js +13 -0
- package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
- package/dist/core/ingestion/languages/cpp/adl.js +67 -44
- package/dist/core/ingestion/languages/cpp/captures.js +14 -2
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
- package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
- package/dist/core/ingestion/languages/cpp/query.js +106 -0
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +48 -20
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
- package/dist/core/ingestion/languages/csharp/captures.js +19 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
- package/dist/core/ingestion/languages/csharp/query.js +25 -5
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
- package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/captures.js +598 -16
- package/dist/core/ingestion/languages/dart/import-target.js +32 -9
- package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
- package/dist/core/ingestion/languages/dart/index.js +1 -1
- package/dist/core/ingestion/languages/dart/query.js +98 -1
- package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
- package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
- package/dist/core/ingestion/languages/dart.js +6 -1
- package/dist/core/ingestion/languages/go/captures.js +108 -3
- package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
- package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
- package/dist/core/ingestion/languages/go/import-target.js +34 -30
- package/dist/core/ingestion/languages/go/index.d.ts +1 -1
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
- package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
- package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/go/interpret.js +22 -8
- package/dist/core/ingestion/languages/go/method-owners.js +31 -12
- package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
- package/dist/core/ingestion/languages/go/package-clause.js +75 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
- package/dist/core/ingestion/languages/go/query.js +56 -3
- package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
- package/dist/core/ingestion/languages/go.js +9 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +4 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/java/captures.js +77 -32
- package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
- package/dist/core/ingestion/languages/java/import-target.js +68 -88
- package/dist/core/ingestion/languages/java/interpret.js +3 -2
- package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
- package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
- package/dist/core/ingestion/languages/java/query.js +15 -3
- package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
- package/dist/core/ingestion/languages/java/record-components.js +185 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +10 -2
- package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +4 -1
- package/dist/core/ingestion/languages/java/spring-di.js +41 -9
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
- package/dist/core/ingestion/languages/java.js +94 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +262 -4
- package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
- package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
- package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
- package/dist/core/ingestion/languages/javascript/index.js +54 -5
- package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/javascript/query.js +211 -5
- package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
- package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
- package/dist/core/ingestion/languages/jvm/package-siblings.js +77 -9
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +15 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +43 -1
- package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
- package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
- package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
- package/dist/core/ingestion/languages/kotlin/index.js +1 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
- package/dist/core/ingestion/languages/kotlin/query.js +28 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +23 -2
- package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +60 -11
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +319 -51
- package/dist/core/ingestion/languages/php/import-target.d.ts +3 -4
- package/dist/core/ingestion/languages/php/import-target.js +192 -62
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
- package/dist/core/ingestion/languages/python/captures.js +29 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
- package/dist/core/ingestion/languages/python/import-target.js +277 -91
- package/dist/core/ingestion/languages/python/index.d.ts +1 -1
- package/dist/core/ingestion/languages/python/index.js +1 -1
- package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
- package/dist/core/ingestion/languages/python/interpret.js +249 -7
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +8 -6
- package/dist/core/ingestion/languages/python/receiver-binding.js +108 -12
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.js +2 -8
- package/dist/core/ingestion/languages/python.js +13 -0
- package/dist/core/ingestion/languages/ruby/captures.js +158 -0
- package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
- package/dist/core/ingestion/languages/ruby/query.js +93 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
- package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
- package/dist/core/ingestion/languages/rust/captures.js +39 -1
- package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
- package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
- package/dist/core/ingestion/languages/rust/module-path.js +214 -0
- package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
- package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
- package/dist/core/ingestion/languages/rust/query.js +39 -6
- package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
- package/dist/core/ingestion/languages/rust.js +17 -0
- package/dist/core/ingestion/languages/swift/captures.js +87 -3
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
- package/dist/core/ingestion/languages/swift/import-target.js +4 -9
- package/dist/core/ingestion/languages/swift/query.js +17 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
- package/dist/core/ingestion/languages/swift.js +2 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
- package/dist/core/ingestion/languages/typescript/captures.js +267 -5
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.d.ts +7 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.js +92 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
- package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
- package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
- package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
- package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +303 -14
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
- package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/tsconfig.js +292 -0
- package/dist/core/ingestion/languages/typescript.js +93 -2
- package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
- package/dist/core/ingestion/languages/vue/import-target.js +11 -47
- package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
- package/dist/core/ingestion/local-symbol-pruner.js +11 -11
- package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
- package/dist/core/ingestion/method-extractors/generic.js +1 -0
- package/dist/core/ingestion/method-types.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/di.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/di.js +136 -21
- package/dist/core/ingestion/pipeline-phases/index.d.ts +2 -0
- package/dist/core/ingestion/pipeline-phases/index.js +2 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +154 -4
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +3 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +91 -6
- package/dist/core/ingestion/pipeline-phases/routes.js +116 -25
- package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +26 -2
- package/dist/core/ingestion/pipeline.js +60 -11
- package/dist/core/ingestion/process-processor.d.ts +109 -2
- package/dist/core/ingestion/process-processor.js +464 -52
- package/dist/core/ingestion/resolve-references.d.ts +6 -1
- package/dist/core/ingestion/resolve-references.js +66 -6
- package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +8 -2
- package/dist/core/ingestion/route-extractors/constant-resolver.js +11 -7
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +40 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +876 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.d.ts +114 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.js +569 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.d.ts +192 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.js +1033 -0
- package/dist/core/ingestion/route-extractors/nest.d.ts +53 -0
- package/dist/core/ingestion/route-extractors/nest.js +523 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
- package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
- package/dist/core/ingestion/route-extractors/spring.js +214 -29
- package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
- package/dist/core/ingestion/scope-extractor.d.ts +22 -7
- package/dist/core/ingestion/scope-extractor.js +309 -15
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +311 -21
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +12 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +47 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +280 -42
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +58 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +137 -34
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +39 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +18 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +113 -18
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +101 -41
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +5 -1
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +8 -1
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +105 -5
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +29 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +57 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +55 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +241 -19
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
- package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +905 -22
- package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +678 -4
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
- package/dist/core/ingestion/type-extractors/shared.js +16 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
- package/dist/core/ingestion/type-extractors/typescript.js +26 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +297 -15
- package/dist/core/ingestion/utils/ast-helpers.js +578 -46
- package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
- package/dist/core/ingestion/utils/call-analysis.js +202 -7
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +59 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +51 -1
- package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
- package/dist/core/ingestion/utils/callable-labels.js +31 -0
- package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
- package/dist/core/ingestion/utils/effective-ram.js +58 -0
- package/dist/core/ingestion/utils/line-base.d.ts +14 -0
- package/dist/core/ingestion/utils/line-base.js +14 -0
- package/dist/core/ingestion/utils/method-props.d.ts +27 -4
- package/dist/core/ingestion/utils/method-props.js +29 -4
- package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
- package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
- package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
- package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
- package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
- package/dist/core/ingestion/utils/template-arguments.js +196 -0
- package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
- package/dist/core/ingestion/utils/type-parameters.js +206 -0
- package/dist/core/ingestion/workers/callable-id.d.ts +80 -0
- package/dist/core/ingestion/workers/callable-id.js +125 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +493 -54
- package/dist/core/ingestion/workers/worker-pool.d.ts +20 -27
- package/dist/core/ingestion/workers/worker-pool.js +91 -3
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +72 -17
- package/dist/core/lbug/extension-load-error.js +13 -2
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +31 -6
- package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
- package/dist/core/lbug/graph-emit-sink.js +581 -0
- package/dist/core/lbug/lbug-adapter.d.ts +290 -11
- package/dist/core/lbug/lbug-adapter.js +652 -69
- package/dist/core/lbug/native-check.d.ts +21 -0
- package/dist/core/lbug/native-check.js +248 -32
- package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
- package/dist/core/lbug/pdg-emit-sink.js +21 -111
- package/dist/core/lbug/pool-adapter.d.ts +9 -0
- package/dist/core/lbug/pool-adapter.js +164 -14
- package/dist/core/lbug/query-batch.d.ts +75 -0
- package/dist/core/lbug/query-batch.js +102 -0
- package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
- package/dist/core/lbug/rel-pair-routing.js +228 -10
- package/dist/core/lbug/schema.d.ts +163 -4
- package/dist/core/lbug/schema.js +404 -159
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/run-analyze.d.ts +147 -0
- package/dist/core/run-analyze.js +1215 -179
- package/dist/core/search/bm25-index.d.ts +11 -0
- package/dist/core/search/bm25-index.js +60 -26
- package/dist/core/search/fts-indexes.d.ts +150 -9
- package/dist/core/search/fts-indexes.js +241 -23
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +29 -3
- package/dist/core/wiki/llm-client.js +47 -12
- package/dist/core/wiki/prompts.d.ts +19 -0
- package/dist/core/wiki/prompts.js +20 -1
- package/dist/lib/utils.d.ts +113 -0
- package/dist/lib/utils.js +185 -0
- package/dist/mcp/local/aop-metadata.d.ts +77 -0
- package/dist/mcp/local/aop-metadata.js +227 -0
- package/dist/mcp/local/bean-metadata.d.ts +2 -1
- package/dist/mcp/local/bean-metadata.js +22 -1
- package/dist/mcp/local/convex-metadata.d.ts +8 -0
- package/dist/mcp/local/convex-metadata.js +45 -0
- package/dist/mcp/local/local-backend.d.ts +174 -11
- package/dist/mcp/local/local-backend.js +1678 -331
- package/dist/mcp/local/path-predicate.d.ts +19 -0
- package/dist/mcp/local/path-predicate.js +21 -0
- package/dist/mcp/local/pdg-impact.d.ts +132 -10
- package/dist/mcp/local/pdg-impact.js +391 -98
- package/dist/mcp/repository-policy.d.ts +1 -0
- package/dist/mcp/repository-policy.js +5 -0
- package/dist/mcp/resources.js +26 -4
- package/dist/mcp/server.js +23 -13
- package/dist/mcp/tools.d.ts +8 -0
- package/dist/mcp/tools.js +76 -23
- package/dist/server/analyze-job.d.ts +37 -2
- package/dist/server/analyze-job.js +13 -2
- package/dist/server/analyze-launch.d.ts +1 -1
- package/dist/server/analyze-launch.js +79 -10
- package/dist/server/analyze-worker-core.d.ts +1 -1
- package/dist/server/analyze-worker-core.js +10 -1
- package/dist/server/analyze-worker-ipc.d.ts +1 -1
- package/dist/server/analyze-worker-ipc.js +4 -0
- package/dist/server/analyze-worker-protocol.d.ts +59 -0
- package/dist/server/analyze-worker-protocol.js +1 -0
- package/dist/server/analyze-worker.d.ts +1 -17
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +164 -163
- package/dist/server/embed-run-outcome.d.ts +89 -0
- package/dist/server/embed-run-outcome.js +88 -0
- package/dist/server/git-clone.js +6 -2
- package/dist/server/middleware.d.ts +116 -9
- package/dist/server/middleware.js +291 -22
- package/dist/server/sse-progress.d.ts +41 -0
- package/dist/server/sse-progress.js +125 -0
- package/dist/storage/branch-index.d.ts +11 -6
- package/dist/storage/branch-index.js +15 -7
- package/dist/storage/file-hash.js +2 -2
- package/dist/storage/fs-atomic.d.ts +25 -0
- package/dist/storage/fs-atomic.js +42 -0
- package/dist/storage/git.d.ts +131 -0
- package/dist/storage/git.js +236 -2
- package/dist/storage/index-lock.d.ts +102 -0
- package/dist/storage/index-lock.js +660 -0
- package/dist/storage/parse-cache.js +588 -6
- package/dist/storage/parsedfile-store.js +76 -6
- package/dist/storage/repo-manager.d.ts +54 -441
- package/dist/storage/repo-manager.js +312 -221
- package/dist/storage/repo-meta.d.ts +530 -0
- package/dist/storage/repo-meta.js +100 -0
- package/dist/types/pipeline.d.ts +37 -0
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
- package/hooks/claude/gitnexus-hook.cjs +1 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
- package/package.json +11 -2
- package/scripts/cross-platform-shard.ts +153 -0
- package/scripts/cross-platform-tests.ts +122 -0
- package/scripts/run-cross-platform.ts +16 -5
- package/skills/gitnexus-cli.md +3 -3
- package/skills/gitnexus-debugging.md +37 -7
- package/skills/gitnexus-exploring.md +26 -4
- package/skills/gitnexus-impact-analysis.md +71 -10
- package/skills/gitnexus-plan/README.md +11 -6
- package/skills/gitnexus-plan/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +654 -372
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +12 -6
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +1 -1
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/SKILL.md +4 -1
- package/skills/gitnexus-work/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +654 -372
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/{__vite-browser-external-bMKyYQkO.js → __vite-browser-external-COxE8F0G.js} +1 -1
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-Dr4l5EOp.js +662 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/{blockDiagram-7IZFK4PR-DBefcjof.js → blockDiagram-54WLDVWM-Dg_hrRWE.js} +4 -4
- package/web/assets/{c4Diagram-Y2BXMSZH-EjWnjEJl.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +2 -2
- package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
- package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
- package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
- package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
- package/web/assets/{chunk-LII3EMHJ-BL6lKJ_P.js → chunk-6L755F7B-CMhLBxi2.js} +1 -1
- package/web/assets/{chunk-QA3QBVWF-DVXPOIxe.js → chunk-7CWYLC5S-DRgGkkpF.js} +1 -1
- package/web/assets/{chunk-ZXARS5L4-C3v-4Fsw.js → chunk-A7VWPJGB-B4O3oQdQ.js} +1 -1
- package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
- package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
- package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
- package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
- package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
- package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
- package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
- package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
- package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
- package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
- package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
- package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
- package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
- package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
- package/web/assets/{chunk-INKRHTLW-Ckl3_KkO.js → chunk-SZD42YQK-ijyKKVr1.js} +21 -21
- package/web/assets/{chunk-LCXTWHL2-C162wE5z.js → chunk-TFPGFQPA-Dj6a-0pC.js} +3 -3
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
- package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
- package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
- package/web/assets/{chunk-RG4AUYOV-ZNgyLFq6.js → chunk-VJFVEZTB-CX66F2ep.js} +3 -3
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
- package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
- package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
- package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
- package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
- package/web/assets/{diagram-HNR7UZ2L-DVRltWbL.js → diagram-KFBZAVDW-Dfmf_4ti.js} +3 -3
- package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
- package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
- package/web/assets/error-D9MtuG9s.js +1 -0
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
- package/web/assets/{index-D7mTFcvQ.js → index-2zdvEdzg.js} +51 -51
- package/web/assets/index-CJDpyH-n.css +2 -0
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-XpjJRU9h.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +2 -2
- package/web/assets/{journeyDiagram-M6C3CM3L-C6wjooas.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +3 -3
- package/web/assets/{kanban-definition-75IXJCU3-5_UVY79g.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +6 -6
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-8xDLzk2e.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +5 -5
- package/web/assets/node.browser-U-KyT5AW.js +1 -0
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
- package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-DR54jOeR.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +3 -3
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
- package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
- package/web/assets/{requirementDiagram-JXO7QTGE-PEkg7sKC.js → requirementDiagram-RASO5HTO-B-l8InpK.js} +4 -4
- package/web/assets/{sankeyDiagram-URQDO5SZ-DDWEtjcs.js → sankeyDiagram-F32LOJ6L-Kd7zjJgX.js} +3 -3
- package/web/assets/{sequenceDiagram-VS2MUI6T-Bv-uwANx.js → sequenceDiagram-URATNSBD-BlcdY9DS.js} +7 -7
- package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
- package/web/assets/src-C5sx_gMp.js +1 -0
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
- package/web/assets/{timeline-definition-O6YCAMPW-Qmsuo7qS.js → timeline-definition-WJXWRH4I-DUfp1R3E.js} +3 -3
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
- package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
- package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
- package/web/index.html +16 -15
- package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
- package/dist/core/ingestion/languages/python/index-stats.js +0 -25
- package/web/assets/ProcessFlowModal-CwkpVkv-.js +0 -22
- package/web/assets/agent-Ds-lkZjX.js +0 -626
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-CmG3uPWf.js +0 -36
- package/web/assets/chunk-2T2R6R2M-Bb6Sy3_j.js +0 -4
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
- package/web/assets/chunk-67TQ5CYL-CA7OhIEf.js +0 -124
- package/web/assets/chunk-7J6CGLKN-BlKwgXKs.js +0 -10
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-BZeP-55u.js +0 -62
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
- package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
- package/web/assets/chunk-LRIF4GLE-n59lhprL.js +0 -1
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BEyXhZWe.js +0 -1
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
- package/web/assets/chunk-UY5QBCOK-ByqTVLvh.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BLeasdkU.js +0 -2
- package/web/assets/classDiagram-KGZ6W3CR-olpO3fMe.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-olpO3fMe.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CY4iIF7v.js +0 -4
- package/web/assets/diagram-3NCE3AQN-CO6QpzEE.js +0 -43
- package/web/assets/diagram-GF46GFSD-B2atbzmU.js +0 -24
- package/web/assets/diagram-QXG6HAR7-DR6AHD2h.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-DkpoMwTL.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-n8g_90bc.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-SGMDiCkB.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-Cb3UBqRS.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-Bs9CR7tq.js +0 -106
- package/web/assets/index-CX_fADmQ.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-T368on4D.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- package/web/assets/node-Ct_zna8U.js +0 -8
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-Bv4LpAbr.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/sdk-CzHHH8tD.js +0 -37
- package/web/assets/src-Cv1eWg0o.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-DVNjmkEq.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-CyN4Fh7_.js +0 -1
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-BD1iK1SX.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-D6TzLVob.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-CoZ_Tits.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -67,10 +67,10 @@ const fastStripNullable = (typeName) => {
|
|
|
67
67
|
: stripNullable(typeName);
|
|
68
68
|
};
|
|
69
69
|
/** Implementation of the lookup logic backing TypeEnvironment.lookup. */
|
|
70
|
-
const lookupInEnv = (env, varName, callNode, patternOverrides, enclosingFunctionFinder, extractFunctionNameHook, filePath) => {
|
|
70
|
+
const lookupInEnv = (env, varName, callNode, patternOverrides, enclosingFunctionFinder, extractFunctionNameHook, filePath, thisBoundaryNodeTypes) => {
|
|
71
71
|
// Self/this receiver: resolve to enclosing class name via AST walk
|
|
72
72
|
if (varName === 'self' || varName === 'this' || varName === '$this') {
|
|
73
|
-
return findEnclosingClassName(callNode);
|
|
73
|
+
return findEnclosingClassName(callNode, thisBoundaryNodeTypes);
|
|
74
74
|
}
|
|
75
75
|
// Super/base/parent receiver: resolve to the parent class name via AST walk.
|
|
76
76
|
// Walks up to the enclosing class, then extracts the superclass from its heritage node.
|
|
@@ -115,11 +115,15 @@ const enclosingParentClassNameCache = new Map();
|
|
|
115
115
|
* Used to resolve `self`/`this` receivers to their containing type.
|
|
116
116
|
* Memoized per-file: cache is cleared at buildTypeEnv entry.
|
|
117
117
|
*/
|
|
118
|
-
const findEnclosingClassName = (node) => {
|
|
118
|
+
const findEnclosingClassName = (node, thisBoundaryNodeTypes) => {
|
|
119
119
|
if (enclosingClassNameCache.has(node))
|
|
120
120
|
return enclosingClassNameCache.get(node);
|
|
121
121
|
let current = node.parent;
|
|
122
122
|
while (current) {
|
|
123
|
+
if (thisBoundaryNodeTypes?.has(current.type) === true) {
|
|
124
|
+
enclosingClassNameCache.set(node, undefined);
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
123
127
|
if (CLASS_CONTAINER_TYPES.has(current.type)) {
|
|
124
128
|
const nameNode = current.childForFieldName('name') ?? findTypeIdentifierChild(current);
|
|
125
129
|
if (nameNode) {
|
|
@@ -140,12 +144,12 @@ const THIS_RECEIVERS = new Set(['this', 'self', '$this', 'Me']);
|
|
|
140
144
|
* or when the receiver is not a this-keyword. Properties are readonly in the
|
|
141
145
|
* discriminated union, so a new object is returned when substitution occurs.
|
|
142
146
|
*/
|
|
143
|
-
const substituteThisReceiver = (item, node) => {
|
|
147
|
+
const substituteThisReceiver = (item, node, thisBoundaryNodeTypes) => {
|
|
144
148
|
if (item.kind !== 'fieldAccess' && item.kind !== 'methodCallResult')
|
|
145
149
|
return item;
|
|
146
150
|
if (!THIS_RECEIVERS.has(item.receiver))
|
|
147
151
|
return item;
|
|
148
|
-
const className = findEnclosingClassName(node);
|
|
152
|
+
const className = findEnclosingClassName(node, thisBoundaryNodeTypes);
|
|
149
153
|
if (!className)
|
|
150
154
|
return item;
|
|
151
155
|
return { ...item, receiver: className };
|
|
@@ -1016,7 +1020,7 @@ export const buildTypeEnv = (tree, language, options) => {
|
|
|
1016
1020
|
const items = Array.isArray(pending) ? pending : [pending];
|
|
1017
1021
|
for (const item of items) {
|
|
1018
1022
|
// Substitute this/self/$this/Me receivers with enclosing class name
|
|
1019
|
-
const resolved = substituteThisReceiver(item, node);
|
|
1023
|
+
const resolved = substituteThisReceiver(item, node, config.thisBoundaryNodeTypes);
|
|
1020
1024
|
pendingItems.push({ scope, ...resolved });
|
|
1021
1025
|
}
|
|
1022
1026
|
}
|
|
@@ -1082,7 +1086,7 @@ export const buildTypeEnv = (tree, language, options) => {
|
|
|
1082
1086
|
}
|
|
1083
1087
|
}
|
|
1084
1088
|
return {
|
|
1085
|
-
lookup: (varName, callNode) => lookupInEnv(env, varName, callNode, patternOverrides, options?.enclosingFunctionFinder, extractFuncNameHook, options?.filePath),
|
|
1089
|
+
lookup: (varName, callNode) => lookupInEnv(env, varName, callNode, patternOverrides, options?.enclosingFunctionFinder, extractFuncNameHook, options?.filePath, config.thisBoundaryNodeTypes),
|
|
1086
1090
|
constructorBindings: bindings,
|
|
1087
1091
|
fileScope: () => env.get(FILE_SCOPE) ?? emptyFileScope(),
|
|
1088
1092
|
allScopes: () => env,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ElementAccessRoute } from '../scope-resolution/contract/scope-resolver.js';
|
|
1
2
|
import type { SyntaxNode } from '../utils/ast-helpers.js';
|
|
2
3
|
/** Which type argument to extract from a multi-arg generic container.
|
|
3
4
|
* - 'first': key type (e.g., K from Map<K,V>) — used for .keys(), .keySet()
|
|
@@ -127,5 +128,21 @@ export declare const extractCalleeName: (callNode: SyntaxNode) => string | undef
|
|
|
127
128
|
* Returns undefined when the extracted type is not a simple word.
|
|
128
129
|
*/
|
|
129
130
|
export declare function extractElementTypeFromString(typeStr: string, pos?: TypeArgPosition): string | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* `elementTypeOf` for a language with no property-style collection view:
|
|
133
|
+
* answer the subscript route from the written spelling, decline the accessor
|
|
134
|
+
* route.
|
|
135
|
+
*
|
|
136
|
+
* Languages whose collection views are spelled as method calls (`.values()`,
|
|
137
|
+
* `.iter()`) never reach the accessor route — the compound resolver's
|
|
138
|
+
* call-expression branch handles those — so the whole hook is this one
|
|
139
|
+
* decision. Declining (returning `undefined`) is the answer "this spelling is
|
|
140
|
+
* not a container", which is what stops an index-overloading class from
|
|
141
|
+
* folding `x[k].m()` onto its own members.
|
|
142
|
+
*
|
|
143
|
+
* Languages that DO expose a collection view as a property (C#'s `.Values`)
|
|
144
|
+
* need a bespoke body instead.
|
|
145
|
+
*/
|
|
146
|
+
export declare const indexOnlyElementType: (containerType: string, via: ElementAccessRoute) => string | undefined;
|
|
130
147
|
export declare const extractReturnTypeName: (raw: string, depth?: number) => string | undefined;
|
|
131
148
|
export {};
|
|
@@ -631,6 +631,22 @@ export function extractElementTypeFromString(typeStr, pos = 'last') {
|
|
|
631
631
|
}
|
|
632
632
|
return undefined;
|
|
633
633
|
}
|
|
634
|
+
/**
|
|
635
|
+
* `elementTypeOf` for a language with no property-style collection view:
|
|
636
|
+
* answer the subscript route from the written spelling, decline the accessor
|
|
637
|
+
* route.
|
|
638
|
+
*
|
|
639
|
+
* Languages whose collection views are spelled as method calls (`.values()`,
|
|
640
|
+
* `.iter()`) never reach the accessor route — the compound resolver's
|
|
641
|
+
* call-expression branch handles those — so the whole hook is this one
|
|
642
|
+
* decision. Declining (returning `undefined`) is the answer "this spelling is
|
|
643
|
+
* not a container", which is what stops an index-overloading class from
|
|
644
|
+
* folding `x[k].m()` onto its own members.
|
|
645
|
+
*
|
|
646
|
+
* Languages that DO expose a collection view as a property (C#'s `.Values`)
|
|
647
|
+
* need a bespoke body instead.
|
|
648
|
+
*/
|
|
649
|
+
export const indexOnlyElementType = (containerType, via) => via.kind === 'index' ? extractElementTypeFromString(containerType) : undefined;
|
|
634
650
|
// ── Return type text helpers ─────────────────────────────────────────────
|
|
635
651
|
// extractReturnTypeName works on raw return-type text already stored in
|
|
636
652
|
// SymbolDefinition (e.g. "User", "Promise<User>", "User | null", "*User").
|
|
@@ -130,6 +130,18 @@ export interface LanguageTypeConfig {
|
|
|
130
130
|
readonly allowPatternBindingOverwrite?: boolean;
|
|
131
131
|
/** Node types that represent typed declarations for this language */
|
|
132
132
|
declarationNodeTypes: ReadonlySet<string>;
|
|
133
|
+
/** Function node types that OWN their `this` receiver, terminating the
|
|
134
|
+
* upward AST walk that resolves `this`/`self`/`$this` to an enclosing
|
|
135
|
+
* class. The type-env twin of `Scope.ownsReceivers` (#2701): the scope
|
|
136
|
+
* layer gates receiver-type LOOKUP, this gates receiver-type INFERENCE
|
|
137
|
+
* during capture, and a call is only suppressed when both agree.
|
|
138
|
+
*
|
|
139
|
+
* Most languages leave it unset — their closures capture the enclosing
|
|
140
|
+
* `this` lexically (Kotlin lambdas, Go func literals, C# lambdas, Dart
|
|
141
|
+
* function expressions, PHP closures auto-bound since 5.4, Python's
|
|
142
|
+
* `self` closed over by a nested `def`) — so the walk is unchanged
|
|
143
|
+
* there. JavaScript/TypeScript are the exception. */
|
|
144
|
+
thisBoundaryNodeTypes?: ReadonlySet<string>;
|
|
133
145
|
/** Optional: language-specific way to find a declaration's type-annotation node.
|
|
134
146
|
* Prefer providing this for grammars where the type is wrapped (e.g., C#, Kotlin, Swift). */
|
|
135
147
|
getDeclarationTypeNode?: DeclarationTypeNodeLocator;
|
|
@@ -1,2 +1,22 @@
|
|
|
1
1
|
import type { LanguageTypeConfig } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Ordinary functions own their `this`; arrows do not (#2701).
|
|
4
|
+
*
|
|
5
|
+
* ECMA-262 gives an arrow `[[ThisMode]] = lexical` — it has no `this` binding
|
|
6
|
+
* in its environment record, so the lookup passes through to the enclosing
|
|
7
|
+
* environment. Every other function form binds `this` at call time, so
|
|
8
|
+
* `this.m()` inside one does NOT reach the enclosing class. That is exactly
|
|
9
|
+
* the distinction `tsc` draws by resolving `this` through `getThisContainer`
|
|
10
|
+
* with `includeArrowFunctions = false`.
|
|
11
|
+
*
|
|
12
|
+
* `method_definition` is deliberately absent: it is the construct that binds
|
|
13
|
+
* `this` TO the enclosing class, so the walk must pass through it and stop at
|
|
14
|
+
* the class. (Unlike the scope-layer marker in `typescript/query.ts`, which
|
|
15
|
+
* can list it because a method's own `this` typeBinding is consulted first.)
|
|
16
|
+
*
|
|
17
|
+
* Kept in sync with `@receiver-owner.this` in `languages/typescript/query.ts`
|
|
18
|
+
* and `languages/javascript/query.ts` — the two layers must agree or a call
|
|
19
|
+
* suppressed by one is re-introduced by the other.
|
|
20
|
+
*/
|
|
21
|
+
export declare const THIS_BOUNDARY_NODE_TYPES: ReadonlySet<string>;
|
|
2
22
|
export declare const typeConfig: LanguageTypeConfig;
|
|
@@ -646,9 +646,35 @@ const inferTsLiteralType = (node) => {
|
|
|
646
646
|
return undefined;
|
|
647
647
|
}
|
|
648
648
|
};
|
|
649
|
+
/**
|
|
650
|
+
* Ordinary functions own their `this`; arrows do not (#2701).
|
|
651
|
+
*
|
|
652
|
+
* ECMA-262 gives an arrow `[[ThisMode]] = lexical` — it has no `this` binding
|
|
653
|
+
* in its environment record, so the lookup passes through to the enclosing
|
|
654
|
+
* environment. Every other function form binds `this` at call time, so
|
|
655
|
+
* `this.m()` inside one does NOT reach the enclosing class. That is exactly
|
|
656
|
+
* the distinction `tsc` draws by resolving `this` through `getThisContainer`
|
|
657
|
+
* with `includeArrowFunctions = false`.
|
|
658
|
+
*
|
|
659
|
+
* `method_definition` is deliberately absent: it is the construct that binds
|
|
660
|
+
* `this` TO the enclosing class, so the walk must pass through it and stop at
|
|
661
|
+
* the class. (Unlike the scope-layer marker in `typescript/query.ts`, which
|
|
662
|
+
* can list it because a method's own `this` typeBinding is consulted first.)
|
|
663
|
+
*
|
|
664
|
+
* Kept in sync with `@receiver-owner.this` in `languages/typescript/query.ts`
|
|
665
|
+
* and `languages/javascript/query.ts` — the two layers must agree or a call
|
|
666
|
+
* suppressed by one is re-introduced by the other.
|
|
667
|
+
*/
|
|
668
|
+
export const THIS_BOUNDARY_NODE_TYPES = new Set([
|
|
669
|
+
'function_declaration',
|
|
670
|
+
'function_expression',
|
|
671
|
+
'generator_function',
|
|
672
|
+
'generator_function_declaration',
|
|
673
|
+
]);
|
|
649
674
|
export const typeConfig = {
|
|
650
675
|
declarationNodeTypes: DECLARATION_NODE_TYPES,
|
|
651
676
|
forLoopNodeTypes: FOR_LOOP_NODE_TYPES,
|
|
677
|
+
thisBoundaryNodeTypes: THIS_BOUNDARY_NODE_TYPES,
|
|
652
678
|
patternBindingNodeTypes: new Set(['binary_expression']),
|
|
653
679
|
extractDeclaration,
|
|
654
680
|
extractParameter,
|
|
@@ -4,19 +4,39 @@ import type { LanguageProvider } from '../language-provider.js';
|
|
|
4
4
|
/** Tree-sitter AST node. Re-exported for use across ingestion modules. */
|
|
5
5
|
export type SyntaxNode = Parser.SyntaxNode;
|
|
6
6
|
/**
|
|
7
|
-
* Qualify a
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
* Qualify a name by its enclosing `mod_item` scope, so two same-tail items nested
|
|
8
|
+
* under different modules get DISTINCT paths (`outer.Inner` vs `other.Inner`).
|
|
9
|
+
* Walks `mod_item` ancestors (outermost → innermost) and joins them with the
|
|
10
|
+
* normalized raw text via the shared `splitQualifiedName`. Keyed purely on
|
|
11
|
+
* tree-sitter node types (no language name), so it is a no-op for every grammar
|
|
12
|
+
* without such a node.
|
|
13
|
+
*
|
|
14
|
+
* TWO callers, with different contracts — read both before widening either:
|
|
15
|
+
*
|
|
16
|
+
* 1. The inherent-impl target (`impl Inner { … }`) — the #1982 follow-up to
|
|
17
|
+
* #1975, reachable through the {@link qualifyRustImplTargetByModScope} alias
|
|
18
|
+
* and mirrored by the inherent-impl branch in `findEnclosingClassInfo` so the
|
|
19
|
+
* owner edge and the node id agree byte-for-byte. That caller gates on an
|
|
20
|
+
* UNSCOPED `type_identifier`, which is what keeps a SCOPED `impl a::Inner` on
|
|
21
|
+
* its full raw text.
|
|
22
|
+
*
|
|
23
|
+
* 2. Free items, for module node identity (#2742). That caller gates on the node
|
|
24
|
+
* being on neither side of an owner edge (`MEMBER_OWNER_NODE_TYPES`,
|
|
25
|
+
* `enclosingClassInfo`) and not inside a callable, because only the id moves
|
|
26
|
+
* here — every owner-edge anchor is minted separately and does not follow.
|
|
27
|
+
*
|
|
28
|
+
* A name with NO enclosing `mod` is returned verbatim, never normalized: rewriting
|
|
29
|
+
* a scoped target's separator (`a::Inner` → `a.Inner`) would move its node id away
|
|
30
|
+
* from the id its owner edge emits, which is how caller 2 first broke caller 1's
|
|
31
|
+
* #1975 contract. Splitting an unscoped name has always been the identity, so
|
|
32
|
+
* caller 1 is unaffected either way.
|
|
33
|
+
*/
|
|
34
|
+
export declare const qualifyByEnclosingModScope: (node: SyntaxNode, rawText: string) => string;
|
|
35
|
+
/**
|
|
36
|
+
* Impl-target alias of {@link qualifyByEnclosingModScope}, kept as its own name
|
|
37
|
+
* because the caller gates it on UNSCOPED targets (see the contract above).
|
|
38
|
+
*/
|
|
39
|
+
export declare const qualifyRustImplTargetByModScope: (node: SyntaxNode, rawText: string) => string;
|
|
20
40
|
/**
|
|
21
41
|
* #1991: scope-label predicate that single-sources the `nodeLabel === 'Trait'`
|
|
22
42
|
* checks in parsing-processor.ts / parse-worker.ts. A Ruby `module` maps to the
|
|
@@ -41,8 +61,72 @@ type QueryMatchLike = {
|
|
|
41
61
|
node: SyntaxNode;
|
|
42
62
|
}>;
|
|
43
63
|
};
|
|
44
|
-
export declare const buildConcreteTypedefDefinitionRanges: (matches: readonly QueryMatchLike[]) => Set<string>;
|
|
45
64
|
export declare const isSuppressedConcreteTypedefDuplicate: (captureMap: Record<string, SyntaxNode>, concreteTypedefRanges: ReadonlySet<string>) => boolean;
|
|
65
|
+
/** True when `label` is the kind of node a value capture emits. */
|
|
66
|
+
export declare const isValueDefinitionLabel: (label: NodeLabel) => boolean;
|
|
67
|
+
/**
|
|
68
|
+
* One pass over a file's matches: definition-name claims by rank, plus the
|
|
69
|
+
* concrete-typedef ranges the loop's separate typedef guard consumes.
|
|
70
|
+
*/
|
|
71
|
+
export interface DefinitionPreScan {
|
|
72
|
+
/**
|
|
73
|
+
* Keys claimed by any non-value capture — consulted by `Const`/`Static`/
|
|
74
|
+
* `Variable`. Includes `Property`, so an annotated Python attribute still
|
|
75
|
+
* beats the bare-assignment `Variable` capture on the same statement.
|
|
76
|
+
*/
|
|
77
|
+
readonly nonValue: ReadonlySet<string>;
|
|
78
|
+
/**
|
|
79
|
+
* Keys claimed by a *callable* capture (`Function`/`Method`/`Constructor`) —
|
|
80
|
+
* consulted by `Property`. Narrower than `nonValue` on purpose: a `Property`
|
|
81
|
+
* must be collapsible by a callable (Kotlin `val f = { … }`, Swift
|
|
82
|
+
* `let f = { … }`) without being collapsible by its own claim.
|
|
83
|
+
*/
|
|
84
|
+
readonly callable: ReadonlySet<string>;
|
|
85
|
+
/** Ranges of `type_definition` nodes that already emit a concrete struct/enum. */
|
|
86
|
+
readonly concreteTypedefRanges: ReadonlySet<string>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Pre-scan `matches` for the `${definitionNode.startIndex}:${name}` keys already
|
|
90
|
+
* claimed by a higher-ranked definition capture, so the parse-worker's duplicate
|
|
91
|
+
* suppression is order-independent.
|
|
92
|
+
*
|
|
93
|
+
* Rank, highest first: callable (`Function`/`Method`/`Constructor`) → `Property`
|
|
94
|
+
* → value (`Const`/`Static`/`Variable`). A capture is dropped only when a
|
|
95
|
+
* STRICTLY higher rank claimed the same declaration node and name, so no capture
|
|
96
|
+
* can suppress itself and no rank can suppress a peer.
|
|
97
|
+
*
|
|
98
|
+
* ## Why this exists (#2687)
|
|
99
|
+
*
|
|
100
|
+
* `const X = () => {}` matches BOTH `@definition.function` and
|
|
101
|
+
* `@definition.const` on the same `lexical_declaration`. Only one graph node
|
|
102
|
+
* should survive — the `Function`, because that is what `CALLS` edges target.
|
|
103
|
+
* The parse-worker's in-loop dedup intends exactly that, but only the value
|
|
104
|
+
* branch consults its `processedDefinitionNodes` set, so suppression worked only
|
|
105
|
+
* if the function match happened to be processed first. It is not: tree-sitter
|
|
106
|
+
* completes the const pattern at `@name`, while the function pattern must also
|
|
107
|
+
* match the trailing `(arrow_function)` / `(function_expression)` value, so the
|
|
108
|
+
* const match is yielded FIRST and the edgeless `Const:` twin escaped.
|
|
109
|
+
*
|
|
110
|
+
* Consulting this set makes the outcome independent of match order.
|
|
111
|
+
*
|
|
112
|
+
* ## Keying
|
|
113
|
+
*
|
|
114
|
+
* Keys are `startIndex:name`, never `startIndex` alone — a multi-name
|
|
115
|
+
* declaration (`const a = 1, b = () => {}`) shares ONE definition node, and a
|
|
116
|
+
* bare-index key would wrongly suppress `a`'s legitimate `Const` node.
|
|
117
|
+
*
|
|
118
|
+
* Labels come from {@link getLabelFromCaptures}, the same function the main loop
|
|
119
|
+
* uses, so the pre-scan and the loop can never disagree about what counts as a
|
|
120
|
+
* value capture — including when a provider's `labelOverride` reclassifies one.
|
|
121
|
+
* A match that resolves to a value label registers nothing, so a match can never
|
|
122
|
+
* suppress itself.
|
|
123
|
+
*
|
|
124
|
+
* Language-agnostic: keyed off capture names and labels only.
|
|
125
|
+
*
|
|
126
|
+
* Also collects the concrete-typedef ranges that suppress the analogous
|
|
127
|
+
* typedef/struct duplicate, so both suppression sets come from one traversal.
|
|
128
|
+
*/
|
|
129
|
+
export declare const buildDefinitionPreScan: (matches: readonly QueryMatchLike[], provider: LanguageProvider) => DefinitionPreScan;
|
|
46
130
|
/**
|
|
47
131
|
* Node types that represent function/method definitions across languages.
|
|
48
132
|
* Used by parent-walk in call-processor, parse-worker, and type-env to detect
|
|
@@ -63,6 +147,26 @@ export declare const FUNCTION_NODE_TYPES: Set<string>;
|
|
|
63
147
|
* orphaned HAS_METHOD edges or incorrect labels.
|
|
64
148
|
*/
|
|
65
149
|
export declare const CLASS_CONTAINER_TYPES: Set<string>;
|
|
150
|
+
/**
|
|
151
|
+
* Node types whose OWN node id must not be re-keyed by an enclosing-scope
|
|
152
|
+
* qualifier (see {@link qualifyByEnclosingModScope}) unless the owner-edge
|
|
153
|
+
* anchor moves in the same change.
|
|
154
|
+
*
|
|
155
|
+
* These are the containers a member can be declared inside. Their members'
|
|
156
|
+
* `HAS_METHOD` / `HAS_PROPERTY` edges anchor on `findEnclosingClassInfo().classId`,
|
|
157
|
+
* which is minted from the container's bare `nameNode.text` further down this
|
|
158
|
+
* file and only follows a qualified shape when the provider opts in via
|
|
159
|
+
* `classExtractor.qualifiedNodeId`. So qualifying a container's id alone points
|
|
160
|
+
* every one of its member edges at a node that does not exist — the edges are
|
|
161
|
+
* dropped at COPY time and the container silently loses all its members.
|
|
162
|
+
*
|
|
163
|
+
* Derived from `CLASS_CONTAINER_TYPES` on purpose: that set is already the
|
|
164
|
+
* single source of "this node type owns member edges", carries the INVARIANT
|
|
165
|
+
* note above binding it to `CONTAINER_TYPE_TO_LABEL`, and so a language adding
|
|
166
|
+
* a container cannot gain a mismatched id shape here without also failing that
|
|
167
|
+
* invariant. Keyed purely on tree-sitter node types — no language names.
|
|
168
|
+
*/
|
|
169
|
+
export declare const MEMBER_OWNER_NODE_TYPES: ReadonlySet<string>;
|
|
66
170
|
export declare const CONTAINER_TYPE_TO_LABEL: Record<string, string>;
|
|
67
171
|
/**
|
|
68
172
|
* Pre-order walk over a node and all its named descendants, invoking `cb` on
|
|
@@ -81,6 +185,38 @@ export declare const CONTAINER_TYPE_TO_LABEL: Record<string, string>;
|
|
|
81
185
|
export declare function walkNamedTree(node: SyntaxNode, cb: (node: SyntaxNode) => void): void;
|
|
82
186
|
/** Return the first matching ancestor unless a boundary ancestor is reached first. */
|
|
83
187
|
export declare function findAncestorBeforeBoundary(node: SyntaxNode, targetTypes: ReadonlySet<string>, boundaryTypes: ReadonlySet<string>): SyntaxNode | null;
|
|
188
|
+
/**
|
|
189
|
+
* Enclosing callable for grammars that split a callable into a SIGNATURE node
|
|
190
|
+
* and a SIBLING body, where the callable is therefore never an ancestor of the
|
|
191
|
+
* code inside it.
|
|
192
|
+
*
|
|
193
|
+
* Dart is the case that forced this: `int outer() { … }` parses as
|
|
194
|
+
* `function_signature` followed by `function_body` as SIBLINGS, so an ancestor
|
|
195
|
+
* walk from a closure inside the body can never reach `outer`. No membership
|
|
196
|
+
* set fixes that — the walk is looking in the wrong direction (#2699).
|
|
197
|
+
*
|
|
198
|
+
* Deliberately a FALLBACK, used only when the ancestor walk found nothing.
|
|
199
|
+
*
|
|
200
|
+
* The sibling must be a BARE SIGNATURE, and that restriction is load-bearing —
|
|
201
|
+
* "any preceding callable sibling" is WRONG and was caught regressing PHP. In
|
|
202
|
+
* `<?php function target($x) {…} $handler = function ($x) {…};` the closure is
|
|
203
|
+
* at FILE level, so the primary ancestor walk correctly finds nothing and this
|
|
204
|
+
* fallback runs; an unrestricted version then grabs the preceding
|
|
205
|
+
* `function_definition` and mis-qualifies the file-level `$handler` as
|
|
206
|
+
* `target.$handler`. A preceding sibling is only an ENCLOSING callable when it
|
|
207
|
+
* cannot hold its own body — i.e. when the grammar split the body off.
|
|
208
|
+
*
|
|
209
|
+
* `SPLIT_SIGNATURE_NODE_TYPES` is exactly that set, and it is derived rather
|
|
210
|
+
* than listed: `LOCAL_SCOPE_BODY_NODE_TYPES` already filters the bare-signature
|
|
211
|
+
* types out of `FUNCTION_NODE_TYPES`, so the difference between them IS the
|
|
212
|
+
* split-signature set. PHP's `function_definition` carries a body and is in
|
|
213
|
+
* both, so it is excluded; Dart's `function_signature` is in only the former,
|
|
214
|
+
* so it qualifies.
|
|
215
|
+
*
|
|
216
|
+
* Language-neutral by construction — it names no grammar, and any future
|
|
217
|
+
* signature/body-split language is covered for free.
|
|
218
|
+
*/
|
|
219
|
+
export declare function findSplitBodyCallableAncestor(node: SyntaxNode, signatureOnlyTypes: ReadonlySet<string>, boundaryTypes: ReadonlySet<string>): SyntaxNode | null;
|
|
84
220
|
/**
|
|
85
221
|
* Determine the graph node label from a tree-sitter capture map.
|
|
86
222
|
* Handles language-specific reclassification via the provider's labelOverride hook
|
|
@@ -141,7 +277,33 @@ getQualifiedOwnerName?: (node: SyntaxNode, simpleName: string) => string | null)
|
|
|
141
277
|
/** Object literal binding info for TS/JS shorthand methods. */
|
|
142
278
|
export interface ObjectLiteralBindingInfo {
|
|
143
279
|
ownerId: string;
|
|
280
|
+
/**
|
|
281
|
+
* Owner name, when the owner is also the member's qualifier.
|
|
282
|
+
*
|
|
283
|
+
* Set by {@link findMemberAssignmentOwnerInfo} so a prototype method keys as
|
|
284
|
+
* `Foo.bar` — without it two constructors in one file that each define
|
|
285
|
+
* `bar` collapse onto a single `Method:<file>:bar` id.
|
|
286
|
+
*
|
|
287
|
+
* {@link findObjectLiteralBindingInfo} sets it ONLY when the caller opts in
|
|
288
|
+
* via `includeOwnerName`. Its `Method` ids must stay exactly as they were —
|
|
289
|
+
* qualifying them would rewrite every object-literal method id in every
|
|
290
|
+
* indexed repo — but object-literal KEYS (indexed since A1/A5) genuinely
|
|
291
|
+
* need it: two config objects in one file sharing a key name otherwise
|
|
292
|
+
* collapse onto a single `Property:<file>:<key>` id, merging two distinct
|
|
293
|
+
* settings into one symbol.
|
|
294
|
+
*/
|
|
295
|
+
ownerName?: string;
|
|
144
296
|
}
|
|
297
|
+
/**
|
|
298
|
+
* True when an object-literal member is contained by an array before reaching
|
|
299
|
+
* another callable or class boundary.
|
|
300
|
+
*
|
|
301
|
+
* An array does not provide a stable named owner for its elements, so members
|
|
302
|
+
* below one cannot use `<binding>.<member>` identity or ownership. They still
|
|
303
|
+
* need distinct graph identities, however; callers use this predicate to opt
|
|
304
|
+
* into source-position qualification while keeping ownership suppressed.
|
|
305
|
+
*/
|
|
306
|
+
export declare const isArrayContainedObjectLiteralMember: (node: SyntaxNode) => boolean;
|
|
145
307
|
/**
|
|
146
308
|
* Find the file-scope variable that owns an object literal method definition.
|
|
147
309
|
*
|
|
@@ -167,7 +329,109 @@ export interface ObjectLiteralBindingInfo {
|
|
|
167
329
|
* ancestor also returns null (catches block-scoped declarations inside
|
|
168
330
|
* top-level `if`/`for`/`try`/etc., which cannot be imported).
|
|
169
331
|
*/
|
|
170
|
-
|
|
332
|
+
/**
|
|
333
|
+
* Owner for the keys of an ANONYMOUS object literal in return position (R3-4).
|
|
334
|
+
*
|
|
335
|
+
* `return { symbol, score, wickRatio, … }` binds to nothing, so its keys had no
|
|
336
|
+
* anchor and could not be qualified — which on the reporting repo left the
|
|
337
|
+
* central payload of the signal pipeline, ~25 fields, entirely unqueryable.
|
|
338
|
+
* There are 437 such sites in one backend directory, so this is the dominant
|
|
339
|
+
* shape, not an edge case.
|
|
340
|
+
*
|
|
341
|
+
* The enclosing FUNCTION is the honest owner: the literal is that function's
|
|
342
|
+
* return shape, which is a contract its callers consume. Qualifying by it keeps
|
|
343
|
+
* two functions returning the same key name as two distinct nodes, exactly as
|
|
344
|
+
* `ownerName` does for variable-bound literals.
|
|
345
|
+
*
|
|
346
|
+
* Returns null when the literal is not DIRECTLY returned (a nested literal, or
|
|
347
|
+
* one inside a callback several frames down), because then the enclosing
|
|
348
|
+
* function is not what the object describes.
|
|
349
|
+
*/
|
|
350
|
+
/**
|
|
351
|
+
* True when this definition node is a key of a literal in RETURN position.
|
|
352
|
+
*
|
|
353
|
+
* Deliberately independent of whether an OWNER NAME could be derived. The two
|
|
354
|
+
* are different questions, and conflating them mislabels the anonymous case:
|
|
355
|
+
* `[function (row) { return { k: row.x }; }]` yields no name to qualify by, so
|
|
356
|
+
* the owner lookup returns null — but the key is still a return shape, and
|
|
357
|
+
* flagging it by owner-presence would leave it looking like a DECLARED anchor
|
|
358
|
+
* and let it outrank a real declaration during narrowing.
|
|
359
|
+
*/
|
|
360
|
+
export declare const isReturnShapeProperty: (node: SyntaxNode) => boolean;
|
|
361
|
+
export declare const findReturnShapeOwnerInfo: (node: SyntaxNode, filePath: string) => {
|
|
362
|
+
readonly ownerId?: string;
|
|
363
|
+
readonly ownerName: string;
|
|
364
|
+
} | null;
|
|
365
|
+
export declare const findObjectLiteralBindingInfo: (node: SyntaxNode, filePath: string, options?: {
|
|
366
|
+
/**
|
|
367
|
+
* Also return `ownerName` so the member qualifies as `<owner>.<member>`.
|
|
368
|
+
* Opt-in because turning it on for `Method` would rewrite existing ids.
|
|
369
|
+
*/
|
|
370
|
+
readonly includeOwnerName?: boolean;
|
|
371
|
+
}) => ObjectLiteralBindingInfo | null;
|
|
372
|
+
/**
|
|
373
|
+
* Find the owner of a member assigned by `<Owner>.prototype.<member> = fn`
|
|
374
|
+
* (#2723 follow-up).
|
|
375
|
+
*
|
|
376
|
+
* Sibling of {@link findObjectLiteralBindingInfo}: same seam, same return
|
|
377
|
+
* shape, different syntax. There the owner is the variable the literal is
|
|
378
|
+
* bound to; here it is the identifier to the left of `.prototype`.
|
|
379
|
+
*
|
|
380
|
+
* The owner label is read from the file's own module-scope declaration, so the
|
|
381
|
+
* edge points at the node that actually exists — `function Foo() {}` is a
|
|
382
|
+
* `Function` node, `class Foo {}` is a `Class` node. When the file declares no
|
|
383
|
+
* such name (the constructor lives in another module) no owner is claimed:
|
|
384
|
+
* a HAS_METHOD edge to a fabricated node is worse than a top-level Method.
|
|
385
|
+
*/
|
|
386
|
+
export declare const findMemberAssignmentOwnerInfo: (node: SyntaxNode, filePath: string) => ObjectLiteralBindingInfo | null;
|
|
387
|
+
/**
|
|
388
|
+
* The receiver name of a `<Owner>.prototype.<member> = <function>` assignment,
|
|
389
|
+
* or null when `assignment` is not that shape.
|
|
390
|
+
*
|
|
391
|
+
* Only a bare identifier owner is accepted. `a.b.prototype.c = …` and
|
|
392
|
+
* `getClass().prototype.c = …` name an owner this layer cannot resolve to a
|
|
393
|
+
* definition, so they are left alone rather than attributed to a guess.
|
|
394
|
+
*/
|
|
395
|
+
export declare const prototypeAssignmentOwnerName: (assignment: SyntaxNode) => string | null;
|
|
396
|
+
/**
|
|
397
|
+
* The constructor function that owns a `this.member = <function>` assignment,
|
|
398
|
+
* or null when there is none (module top level, or an owner this layer cannot
|
|
399
|
+
* name).
|
|
400
|
+
*
|
|
401
|
+
* Only a `function_declaration` counts. An `arrow_function` does NOT bind its
|
|
402
|
+
* own `this` (ECMA-262 gives it `[[ThisMode]] = lexical`), so the walk passes
|
|
403
|
+
* through arrows to the function that actually binds the receiver — the same
|
|
404
|
+
* rule `@receiver-owner.this` encodes in the scope queries (#2701). A class
|
|
405
|
+
* method never reaches here: parse-worker resolves its owner from the
|
|
406
|
+
* enclosing class container first.
|
|
407
|
+
*/
|
|
408
|
+
export declare const thisAssignmentOwnerName: (assignment: SyntaxNode) => string | null;
|
|
409
|
+
/**
|
|
410
|
+
* True when `node` is a `X.prototype.Y = <function>` or `this.Y = <function>`
|
|
411
|
+
* assignment — i.e. a callable MEMBER rather than a free function.
|
|
412
|
+
*
|
|
413
|
+
* Takes the ASSIGNMENT node, because that is what the `@definition.function`
|
|
414
|
+
* capture is anchored on and therefore what `provider.labelOverride` receives.
|
|
415
|
+
*/
|
|
416
|
+
export declare const isPrototypeMemberAssignmentNode: (node: SyntaxNode) => boolean;
|
|
417
|
+
/**
|
|
418
|
+
* True when `node` is `module.exports = <anonymous function>` (#2723).
|
|
419
|
+
*
|
|
420
|
+
* The whole module IS the callable, so there is no property to take a name
|
|
421
|
+
* from and the caller supplies a file-derived one. A NAMED function expression
|
|
422
|
+
* is excluded — its own name is captured directly and is more informative.
|
|
423
|
+
*/
|
|
424
|
+
/**
|
|
425
|
+
* True when `node` is `module.exports = <function>`, named or anonymous — the
|
|
426
|
+
* CommonJS default export, where the whole module IS the callable.
|
|
427
|
+
*
|
|
428
|
+
* `exports = fn` is deliberately NOT this shape: reassigning the `exports`
|
|
429
|
+
* binding does not export anything in CommonJS, it only breaks the alias to
|
|
430
|
+
* `module.exports`.
|
|
431
|
+
*/
|
|
432
|
+
export declare const isCjsDefaultExportAssignment: (node: SyntaxNode) => boolean;
|
|
433
|
+
/** True when `node` is a `this.Y = <function>` assignment, at any nesting. */
|
|
434
|
+
export declare const isThisMemberAssignmentNode: (node: SyntaxNode) => boolean;
|
|
171
435
|
/** Convenience wrapper: returns just the class ID string (backward compat). */
|
|
172
436
|
export declare const findEnclosingClassId: (node: SyntaxNode, filePath: string) => string | null;
|
|
173
437
|
/**
|
|
@@ -234,12 +498,30 @@ export declare const PARAMETER_LIST_NODE_TYPES: Set<string>;
|
|
|
234
498
|
* and accessor bodies must not.
|
|
235
499
|
*/
|
|
236
500
|
export declare const LOCAL_SCOPE_BODY_NODE_TYPES: ReadonlySet<string>;
|
|
501
|
+
/**
|
|
502
|
+
* Callable node types whose grammar splits the body off into a SIBLING node, so
|
|
503
|
+
* the callable is never an ancestor of the code inside it (Dart
|
|
504
|
+
* `function_signature` / `method_signature`).
|
|
505
|
+
*
|
|
506
|
+
* Derived, not listed, so it cannot drift from the two sets that define it:
|
|
507
|
+
* `LOCAL_SCOPE_BODY_NODE_TYPES` is `FUNCTION_NODE_TYPES` minus exactly the bare
|
|
508
|
+
* signature types, so the difference IS the split-signature set.
|
|
509
|
+
*
|
|
510
|
+
* Must stay BELOW `LOCAL_SCOPE_BODY_NODE_TYPES` — reading it earlier hits the
|
|
511
|
+
* temporal dead zone and throws at module load.
|
|
512
|
+
*/
|
|
513
|
+
export declare const SPLIT_SIGNATURE_NODE_TYPES: ReadonlySet<string>;
|
|
237
514
|
/** Walk an AST node depth-first, returning the first descendant with the given type. */
|
|
238
515
|
export declare function findDescendant(root: SyntaxNode, type: string): SyntaxNode | null;
|
|
239
516
|
/** Extract the text content from a string or encapsed_string AST node. */
|
|
240
517
|
export declare function extractStringContent(node: SyntaxNode | null | undefined): string | null;
|
|
241
518
|
/** Find the first direct named child of a tree-sitter node matching the given type. */
|
|
242
519
|
export declare function findChild(node: SyntaxNode, type: string): SyntaxNode | null;
|
|
520
|
+
/** Remove bidi-override and zero-width control characters from attacker-
|
|
521
|
+
* influenced repository text before it is exposed through graph descriptions
|
|
522
|
+
* or MCP output (#2286). Global `sanitizeUTF8` intentionally remains focused
|
|
523
|
+
* on encoding/control-character validity. */
|
|
524
|
+
export declare const stripBidiAndZeroWidth: (text: string) => string;
|
|
243
525
|
/**
|
|
244
526
|
* Extract the normalized text of a leading doc comment immediately preceding a
|
|
245
527
|
* definition node — covering both block doc comments (Javadoc / KDoc / JSDoc /
|