gitnexus 1.6.10-rc.21 → 1.6.10-rc.211
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 +212 -22
- package/dist/_shared/graph/types.d.ts +27 -8
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +4 -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 +19 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +23 -10
- 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/callable-flow-site.d.ts +110 -0
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +6 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +316 -37
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/parsed-file.d.ts +7 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +124 -1
- 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 +297 -5
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +10 -2
- package/dist/cli/ai-context.js +128 -61
- 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 +25 -114
- package/dist/cli/analyze.js +194 -36
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +23 -0
- package/dist/cli/doctor.js +72 -9
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.d.ts +23 -1
- package/dist/cli/eval-server.js +128 -9
- 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 +23 -2
- package/dist/cli/help-i18n.js +3 -0
- package/dist/cli/i18n/en.d.ts +17 -8
- package/dist/cli/i18n/en.js +19 -8
- package/dist/cli/i18n/resources.d.ts +26 -8
- package/dist/cli/i18n/zh-CN.d.ts +9 -0
- package/dist/cli/i18n/zh-CN.js +17 -8
- package/dist/cli/index.js +16 -9
- package/dist/cli/lazy-action.d.ts +7 -0
- package/dist/cli/lazy-action.js +27 -0
- package/dist/cli/mcp.js +6 -3
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +30 -7
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/skill-gen.js +88 -18
- package/dist/cli/standard-skills.d.ts +76 -0
- package/dist/cli/standard-skills.js +45 -0
- package/dist/cli/status.d.ts +4 -1
- package/dist/cli/status.js +57 -4
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +75 -7
- package/dist/cli/uninstall.js +7 -2
- package/dist/cli/wiki.d.ts +1 -0
- package/dist/cli/wiki.js +59 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +31 -4
- package/dist/core/analysis-features.d.ts +21 -0
- package/dist/core/analysis-features.js +59 -0
- package/dist/core/analyzer-identity.d.ts +154 -0
- package/dist/core/analyzer-identity.js +2158 -0
- package/dist/core/augmentation/engine.js +95 -76
- 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/embedder.d.ts +3 -2
- package/dist/core/embeddings/embedder.js +8 -5
- package/dist/core/embeddings/embedding-identity.d.ts +11 -0
- package/dist/core/embeddings/embedding-identity.js +24 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +24 -1
- package/dist/core/embeddings/embedding-pipeline.js +341 -19
- package/dist/core/embeddings/http-client.d.ts +10 -2
- package/dist/core/embeddings/http-client.js +282 -47
- package/dist/core/embeddings/node-module-compat.d.ts +4 -2
- package/dist/core/embeddings/node-module-compat.js +4 -2
- package/dist/core/embeddings/onnxruntime-common-resolver.js +5 -5
- package/dist/core/embeddings/onnxruntime-node-resolver.js +2 -2
- package/dist/core/embeddings/runtime-install.js +1 -1
- package/dist/core/git-staleness.js +1 -1
- 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.js +5 -27
- package/dist/core/group/cross-impact.d.ts +21 -0
- package/dist/core/group/cross-impact.js +128 -15
- package/dist/core/group/cross-trace.js +27 -16
- package/dist/core/group/extractors/http-patterns/java.js +91 -14
- package/dist/core/group/extractors/http-patterns/node.js +19 -0
- 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/service.js +10 -1
- package/dist/core/group/storage.js +2 -33
- package/dist/core/group/types.d.ts +18 -0
- 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 +80 -0
- package/dist/core/index-freshness.js +120 -0
- 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/class-extractors/configs/jvm.js +29 -0
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +88 -83
- package/dist/core/ingestion/di-extractors/index.d.ts +22 -34
- package/dist/core/ingestion/di-extractors/index.js +17 -18
- package/dist/core/ingestion/di-extractors/spring.d.ts +27 -5
- package/dist/core/ingestion/di-extractors/spring.js +87 -3
- 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/emit-references.js +4 -0
- package/dist/core/ingestion/filesystem-walker.js +16 -12
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +9 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +41 -0
- 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-candidates.d.ts +30 -0
- package/dist/core/ingestion/frameworks/spring/bean-candidates.js +182 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.d.ts +12 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +27 -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/config-bindings.d.ts +24 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.js +115 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +48 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +379 -0
- 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 +428 -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 +27 -8
- 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 +20 -1
- package/dist/core/ingestion/language-config.js +18 -23
- package/dist/core/ingestion/language-provider.d.ts +133 -7
- package/dist/core/ingestion/languages/c/captures.js +63 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/query.js +17 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +26 -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/captures.js +93 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +34 -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 +222 -3
- 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 +62 -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 +44 -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 +686 -16
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.d.ts +7 -0
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.js +30 -0
- 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 +8 -1
- package/dist/core/ingestion/languages/go/captures.js +142 -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 +7 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +25 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +38 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +124 -0
- package/dist/core/ingestion/languages/java/captures.d.ts +4 -3
- package/dist/core/ingestion/languages/java/captures.js +321 -49
- 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/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/java/package-facts.js +9 -0
- package/dist/core/ingestion/languages/java/package-siblings.d.ts +3 -16
- package/dist/core/ingestion/languages/java/package-siblings.js +8 -147
- package/dist/core/ingestion/languages/java/query.js +39 -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 +35 -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-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/java/spring-bean-metadata.js +8 -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-config-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.js +215 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +20 -0
- package/dist/core/ingestion/languages/java/spring-di.js +160 -0
- 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 +76 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +278 -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 +232 -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-facts.d.ts +35 -0
- package/dist/core/ingestion/languages/jvm/package-facts.js +40 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.d.ts +14 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.js +197 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +40 -3
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +111 -8
- package/dist/core/ingestion/languages/kotlin/captures.js +112 -0
- 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/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/kotlin/package-facts.js +9 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.d.ts +4 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.js +8 -0
- package/dist/core/ingestion/languages/kotlin/query.js +47 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +36 -3
- 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-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.js +8 -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 +20 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +299 -0
- 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/kotlin.js +5 -6
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +359 -51
- package/dist/core/ingestion/languages/php/import-decomposer.js +12 -0
- package/dist/core/ingestion/languages/php/import-target.d.ts +2 -1
- package/dist/core/ingestion/languages/php/import-target.js +229 -7
- package/dist/core/ingestion/languages/php/interpret.js +10 -0
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/php/scope-resolver.js +1 -1
- 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.d.ts +3 -4
- package/dist/core/ingestion/languages/python/captures.js +53 -5
- 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 -3
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +17 -2
- package/dist/core/ingestion/languages/python/receiver-binding.js +192 -2
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +5 -5
- package/dist/core/ingestion/languages/python/simple-hooks.js +9 -5
- package/dist/core/ingestion/languages/ruby/captures.js +200 -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 +52 -1
- package/dist/core/ingestion/languages/rust/interpret.js +18 -0
- 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 +48 -6
- package/dist/core/ingestion/languages/rust/range-binding.d.ts +1 -11
- package/dist/core/ingestion/languages/rust/range-binding.js +149 -63
- 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 +99 -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 +288 -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/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/nuxt-auto-imports.js +2 -1
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +340 -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 +291 -0
- package/dist/core/ingestion/languages/typescript.js +87 -1
- 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/parsing-processor.js +32 -1
- package/dist/core/ingestion/pipeline-phases/di.d.ts +8 -33
- package/dist/core/ingestion/pipeline-phases/di.js +275 -157
- package/dist/core/ingestion/pipeline-phases/index.d.ts +3 -0
- package/dist/core/ingestion/pipeline-phases/index.js +3 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +158 -3
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +11 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +102 -7
- package/dist/core/ingestion/pipeline-phases/routes.js +56 -10
- 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/spring-config.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/spring-config.js +433 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +27 -3
- package/dist/core/ingestion/pipeline.js +62 -12
- 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 +78 -6
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +25 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +864 -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/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 +109 -24
- 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 +617 -59
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +381 -22
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.d.ts +7 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +8 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +15 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +53 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +275 -41
- 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 +56 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +130 -32
- 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 +46 -3
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +64 -0
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1233 -0
- 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 +19 -4
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +160 -4
- 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 +64 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +118 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +109 -8
- 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 +34 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +82 -38
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +61 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +384 -48
- 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 +968 -56
- 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/taint/typescript-model.js +34 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +688 -5
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/jvm.js +17 -2
- 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 +311 -14
- package/dist/core/ingestion/utils/ast-helpers.js +745 -48
- 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 +153 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +928 -0
- 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 +72 -0
- package/dist/core/ingestion/workers/callable-id.js +116 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +409 -39
- package/dist/core/ingestion/workers/worker-pool.d.ts +34 -27
- package/dist/core/ingestion/workers/worker-pool.js +133 -25
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +80 -17
- package/dist/core/lbug/extension-load-error.d.ts +2 -2
- package/dist/core/lbug/extension-load-error.js +44 -27
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +32 -7
- 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 +337 -3
- package/dist/core/lbug/lbug-adapter.js +772 -67
- package/dist/core/lbug/lbug-config.d.ts +93 -6
- package/dist/core/lbug/lbug-config.js +269 -9
- package/dist/core/lbug/native-check.d.ts +39 -0
- package/dist/core/lbug/native-check.js +323 -46
- 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 +23 -1
- package/dist/core/lbug/pool-adapter.js +115 -7
- 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 +162 -3
- package/dist/core/lbug/schema.js +392 -157
- package/dist/core/lbug/sidecar-recovery.d.ts +1 -0
- package/dist/core/lbug/sidecar-recovery.js +1 -1
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/lbug/wal-checkpoint-driver.js +3 -0
- package/dist/core/platform/capabilities.d.ts +0 -1
- package/dist/core/platform/capabilities.js +12 -7
- package/dist/core/run-analyze.d.ts +150 -3
- package/dist/core/run-analyze.js +1562 -151
- 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 +167 -2
- package/dist/core/search/fts-indexes.js +264 -10
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +37 -5
- package/dist/core/wiki/llm-client.js +88 -17
- 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/http-transport.d.ts +5 -0
- package/dist/mcp/http-transport.js +19 -5
- 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 +3 -0
- package/dist/mcp/local/bean-metadata.js +46 -0
- package/dist/mcp/local/local-backend.d.ts +167 -6
- package/dist/mcp/local/local-backend.js +1756 -405
- 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/output-budget.d.ts +5 -0
- package/dist/mcp/output-budget.js +52 -0
- package/dist/mcp/read-only-policy.d.ts +12 -0
- package/dist/mcp/read-only-policy.js +102 -0
- package/dist/mcp/repository-policy.d.ts +35 -0
- package/dist/mcp/repository-policy.js +333 -0
- package/dist/mcp/resources.js +34 -7
- package/dist/mcp/server.d.ts +5 -2
- package/dist/mcp/server.js +48 -18
- package/dist/mcp/tools.d.ts +8 -8
- package/dist/mcp/tools.js +91 -20
- package/dist/server/analyze-job.d.ts +40 -2
- package/dist/server/analyze-job.js +30 -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 +3 -2
- package/dist/server/analyze-worker-core.js +15 -3
- 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/analyze-worker.js +29 -6
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +200 -155
- 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/mcp-http.d.ts +1 -1
- package/dist/server/mcp-http.js +4 -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/server/upload-ingest.js +2 -1
- package/dist/server/validation.js +2 -1
- 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 +165 -0
- package/dist/storage/git.js +352 -3
- package/dist/storage/index-lock.d.ts +83 -0
- package/dist/storage/index-lock.js +654 -0
- package/dist/storage/parse-cache.js +482 -1
- package/dist/storage/parsedfile-store.d.ts +8 -0
- package/dist/storage/parsedfile-store.js +235 -1
- package/dist/storage/repo-manager.d.ts +29 -309
- package/dist/storage/repo-manager.js +187 -165
- 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 +20 -12
- package/scripts/cross-platform-shard.ts +143 -0
- package/scripts/cross-platform-tests.ts +94 -0
- package/scripts/ensure-fts.ts +14 -3
- package/scripts/run-cross-platform.ts +36 -10
- package/scripts/sync-plugin-manifests.mjs +192 -0
- 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-lfg/README.md +55 -0
- package/skills/gitnexus-lfg/SKILL.md +86 -0
- package/skills/gitnexus-plan/README.md +147 -0
- package/skills/gitnexus-plan/SKILL.md +348 -0
- package/skills/gitnexus-plan/references/context-ledger.md +137 -0
- package/skills/gitnexus-plan/references/context-pack.md +126 -0
- package/skills/gitnexus-plan/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-plan/references/pdg-slice.md +109 -0
- package/skills/gitnexus-plan/references/plan-template.md +201 -0
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +2366 -0
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +279 -0
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +39 -0
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +37 -0
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +40 -0
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +39 -0
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/README.md +71 -0
- package/skills/gitnexus-work/SKILL.md +272 -0
- package/skills/gitnexus-work/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +2366 -0
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/__vite-browser-external-bMKyYQkO.js +1 -0
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-DIzEQ1JJ.js +626 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/blockDiagram-54WLDVWM-Dg_hrRWE.js +132 -0
- package/web/assets/{c4Diagram-Y2BXMSZH-DOXVs7-C.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +6 -6
- 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-6L755F7B-CMhLBxi2.js +1 -0
- package/web/assets/chunk-7CWYLC5S-DRgGkkpF.js +2 -0
- package/web/assets/chunk-A7VWPJGB-B4O3oQdQ.js +1 -0
- 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-SZD42YQK-ijyKKVr1.js +70 -0
- package/web/assets/chunk-TFPGFQPA-Dj6a-0pC.js +231 -0
- 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-VJFVEZTB-CX66F2ep.js +206 -0
- 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-KFBZAVDW-Dfmf_4ti.js +3 -0
- 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/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-B4eB4dNZ.js → index-BBNl0qfX.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-BLjivjXL.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +6 -6
- package/web/assets/{journeyDiagram-M6C3CM3L-Cetgs3NH.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +6 -6
- package/web/assets/{kanban-definition-75IXJCU3-DMlCaIpf.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +27 -27
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-B4GbXQBc.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +29 -29
- package/web/assets/node-Ct_zna8U.js +8 -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/preload-helper-Czpn1I53.js +1 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-B1TQnlm0.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +6 -6
- 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-RASO5HTO-B-l8InpK.js +84 -0
- package/web/assets/sankeyDiagram-F32LOJ6L-Kd7zjJgX.js +40 -0
- package/web/assets/sdk-CzHHH8tD.js +37 -0
- package/web/assets/sequenceDiagram-URATNSBD-BlcdY9DS.js +162 -0
- 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-WJXWRH4I-DUfp1R3E.js +120 -0
- 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 +17 -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/skills/gitnexus-pr-review.md +0 -163
- package/web/assets/ProcessFlowModal-Dna7GkwO.js +0 -22
- package/web/assets/agent-DNYDy-KA.js +0 -660
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-BU5ZRITg.js +0 -36
- package/web/assets/blockDiagram-7IZFK4PR-Dut1BpTV.js +0 -132
- package/web/assets/chunk-2T2R6R2M-pkw2oXHH.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-zxhDWgyF.js +0 -124
- package/web/assets/chunk-7J6CGLKN-AmkN8jJN.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-INKRHTLW-D9BM9HWZ.js +0 -70
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-tD2F6wxK.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-LCXTWHL2-Ba9JK-6F.js +0 -231
- package/web/assets/chunk-LII3EMHJ-EGx-eBIu.js +0 -1
- package/web/assets/chunk-LRIF4GLE-C3_PqUBq.js +0 -1
- package/web/assets/chunk-QA3QBVWF-D4cSJBf6.js +0 -2
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RG4AUYOV-OqBBMwuQ.js +0 -206
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BJusEiGe.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-BCpUlARQ.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BeXVk45_.js +0 -2
- package/web/assets/chunk-ZXARS5L4-BI_qR2Nm.js +0 -1
- package/web/assets/classDiagram-KGZ6W3CR-D9zSIg0x.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CpcV5kbl.js +0 -4
- package/web/assets/diagram-3NCE3AQN-6SMxBRpj.js +0 -43
- package/web/assets/diagram-GF46GFSD-BZEdNcRZ.js +0 -24
- package/web/assets/diagram-HNR7UZ2L-DxKW2a2Y.js +0 -3
- package/web/assets/diagram-QXG6HAR7-HfTHcXX_.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-CyijUS8r.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-D0fvpWEX.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-TzODrLzv.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.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-DIPVUIQ6.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- 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-D3YC_xyg.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/requirementDiagram-JXO7QTGE-f8wczLQf.js +0 -84
- package/web/assets/sankeyDiagram-URQDO5SZ-BTxzG5j0.js +0 -40
- package/web/assets/sequenceDiagram-VS2MUI6T-DuamM-IR.js +0 -162
- package/web/assets/src-BNCXICdA.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-Ch2pEUcw.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js +0 -1
- package/web/assets/timeline-definition-O6YCAMPW-07BR8R8G.js +0 -120
- 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-BQX2ossk.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-CGIJBBiK.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-B3HNMuWp.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -71,7 +71,7 @@ const TSX_GRAMMAR = TS.tsx;
|
|
|
71
71
|
function isTsxFile(filePath) {
|
|
72
72
|
return filePath.endsWith('.tsx');
|
|
73
73
|
}
|
|
74
|
-
const TYPESCRIPT_SCOPE_QUERY = `
|
|
74
|
+
export const TYPESCRIPT_SCOPE_QUERY = `
|
|
75
75
|
;; Scopes — module / namespace / class-likes / function-likes
|
|
76
76
|
(program) @scope.module
|
|
77
77
|
|
|
@@ -87,14 +87,53 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
87
87
|
;; class expressions omit it); ScopeExtractor tolerates missing names.
|
|
88
88
|
(class) @scope.class
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
(
|
|
92
|
-
|
|
93
|
-
(
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
;; \`@receiver-owner.this\` marks a scope that BINDS its own \`this\` rather
|
|
91
|
+
;; than inheriting one (#2701) — see \`Scope.ownsReceivers\`. Every function
|
|
92
|
+
;; form except \`arrow_function\` carries it: ECMA-262 gives an arrow
|
|
93
|
+
;; \`[[ThisMode]] = lexical\` (no \`this\` in its environment record, so the
|
|
94
|
+
;; lookup passes through), while every other form binds \`this\` at call time.
|
|
95
|
+
;; \`method_definition\` is marked too and is unaffected — it also carries a
|
|
96
|
+
;; synthesized \`this\` typeBinding, which the walk consults first.
|
|
97
|
+
;; The marker rides on the same node as \`@scope.function\`; it is outside the
|
|
98
|
+
;; \`@scope.\` namespace so \`anchorCaptureFor\` cannot mistake it for the anchor.
|
|
99
|
+
(function_declaration) @scope.function @receiver-owner.this
|
|
100
|
+
(generator_function_declaration) @scope.function @receiver-owner.this
|
|
101
|
+
(function_signature) @scope.function @receiver-owner.this
|
|
102
|
+
(method_definition) @scope.function @receiver-owner.this
|
|
103
|
+
(method_signature) @scope.function @receiver-owner.this
|
|
104
|
+
(abstract_method_signature) @scope.function @receiver-owner.this
|
|
96
105
|
(arrow_function) @scope.function
|
|
97
|
-
(function_expression) @scope.function
|
|
106
|
+
(function_expression) @scope.function @receiver-owner.this
|
|
107
|
+
;; \`function*(){}\` as an EXPRESSION. Absent from this list before #2701, so it
|
|
108
|
+
;; was not a scope at all and \`this\` inside one read as the enclosing method's.
|
|
109
|
+
(generator_function) @scope.function @receiver-owner.this
|
|
110
|
+
|
|
111
|
+
;; Object literals (the { ... } value expression, NOT object_type or
|
|
112
|
+
;; object_pattern) get their own scope boundary. Without it, a
|
|
113
|
+
;; method_definition/property-arrow's auto-hoist (scope-extractor.ts)
|
|
114
|
+
;; has nowhere to stop and leaks the name past the literal into whatever
|
|
115
|
+
;; lexically encloses it -- e.g. 'export default { async fetch(req) {} }'
|
|
116
|
+
;; would bind fetch at Module scope, letting an unrelated same-file
|
|
117
|
+
;; fetch(...) call (the platform global) incorrectly resolve to it
|
|
118
|
+
;; (#2545). Object (not Block or Class): object-literal members are
|
|
119
|
+
;; reachable only via property access, never as bare identifiers -- not
|
|
120
|
+
;; even by a SIBLING property's function body, unlike a real Block
|
|
121
|
+
;; (if/for/while, where a nested closure legitimately sees a sibling
|
|
122
|
+
;; let/const) or a Class (implicit-this sibling dispatch). Scope-chain
|
|
123
|
+
;; walkers (scope-resolution/scope/walkers.ts) skip an Object scope's
|
|
124
|
+
;; own bindings entirely while still treating it as a hoist boundary
|
|
125
|
+
;; (#2551).
|
|
126
|
+
(object) @scope.object
|
|
127
|
+
|
|
128
|
+
;; Statement blocks are BINDING scopes (#2699). ECMAScript gives every block its
|
|
129
|
+
;; own environment record, so \`let\`/\`const\`/\`class\`/\`function\` declared in
|
|
130
|
+
;; sibling blocks of one function are DIFFERENT bindings — without this the
|
|
131
|
+
;; resolver sees both as function-level and a call in one branch resolves to
|
|
132
|
+
;; both. \`tsBindingScopeFor\` already implements the other half of the rule:
|
|
133
|
+
;; \`var\` hoists past blocks to the enclosing Function/Module, \`let\`/\`const\`
|
|
134
|
+
;; take the innermost scope, which is now the block.
|
|
135
|
+
(statement_block) @scope.block
|
|
136
|
+
|
|
98
137
|
|
|
99
138
|
;; Type aliases that contain an object_type are structurally class-like —
|
|
100
139
|
;; they define a shape with named members. Emit @scope.class so the
|
|
@@ -104,30 +143,45 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
104
143
|
value: (object_type)) @scope.class
|
|
105
144
|
|
|
106
145
|
;; Declarations — types
|
|
146
|
+
;; The type-parameter list is captured with \`?\` rather than as a second
|
|
147
|
+
;; pattern: a separate rule would make a GENERIC declaration match twice, and
|
|
148
|
+
;; both matches mint the same def id (filePath+range+type+name), so which one
|
|
149
|
+
;; survived — the one carrying the parameters or the one without — would be
|
|
150
|
+
;; decided by match order. An optional child keeps it at one match either way.
|
|
107
151
|
(class_declaration
|
|
108
|
-
name: (type_identifier) @declaration.name
|
|
152
|
+
name: (type_identifier) @declaration.name
|
|
153
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.class
|
|
109
154
|
|
|
110
155
|
(abstract_class_declaration
|
|
111
|
-
name: (type_identifier) @declaration.name
|
|
156
|
+
name: (type_identifier) @declaration.name
|
|
157
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.class
|
|
112
158
|
|
|
113
159
|
(interface_declaration
|
|
114
|
-
name: (type_identifier) @declaration.name
|
|
160
|
+
name: (type_identifier) @declaration.name
|
|
161
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.interface
|
|
115
162
|
|
|
116
163
|
(enum_declaration
|
|
117
164
|
name: (identifier) @declaration.name) @declaration.enum
|
|
118
165
|
|
|
166
|
+
;; Tagged @declaration.type_alias, NOT @declaration.type: normalizeNodeLabel
|
|
167
|
+
;; accepts typealias / type_alias and has no "type" case, so the old tag mapped
|
|
168
|
+
;; to no label and TypeScript aliases produced NO scope-resolution def at all.
|
|
169
|
+
;; Kotlin and Dart already spell it this way.
|
|
119
170
|
(type_alias_declaration
|
|
120
|
-
name: (type_identifier) @declaration.name
|
|
171
|
+
name: (type_identifier) @declaration.name
|
|
172
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.type_alias
|
|
121
173
|
|
|
122
174
|
(internal_module
|
|
123
175
|
name: (identifier) @declaration.name) @declaration.namespace
|
|
124
176
|
|
|
125
177
|
;; Declarations — methods / functions / constructors
|
|
126
178
|
(function_declaration
|
|
127
|
-
name: (identifier) @declaration.name
|
|
179
|
+
name: (identifier) @declaration.name
|
|
180
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.function
|
|
128
181
|
|
|
129
182
|
(generator_function_declaration
|
|
130
|
-
name: (identifier) @declaration.name
|
|
183
|
+
name: (identifier) @declaration.name
|
|
184
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.function
|
|
131
185
|
|
|
132
186
|
;; Function overload signatures (declaration-only; body in a separate
|
|
133
187
|
;; function_declaration). Extractors dedup by (name, parameterTypes).
|
|
@@ -169,6 +223,51 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
169
223
|
name: (identifier) @declaration.name
|
|
170
224
|
value: (function_expression) @declaration.function))
|
|
171
225
|
|
|
226
|
+
;; CJS property-assignment exports (#2723) — see the matching block in
|
|
227
|
+
;; \`languages/javascript/query.ts\` for the rationale. Mirrored here because
|
|
228
|
+
;; \`.ts\` files in a CommonJS package use the same form, and because the JS
|
|
229
|
+
;; provider delegates several hooks to these TypeScript counterparts.
|
|
230
|
+
;; One pattern per receiver form, RHS forms folded into an inner LEAF
|
|
231
|
+
;; alternation — see the matching note in \`languages/javascript/query.ts\` for
|
|
232
|
+
;; why that shape is safe under the tree-sitter 0.21.1 alternation hazard.
|
|
233
|
+
(assignment_expression
|
|
234
|
+
left: (member_expression
|
|
235
|
+
object: (identifier) @_cjs.receiver
|
|
236
|
+
property: (property_identifier) @declaration.name)
|
|
237
|
+
right: [
|
|
238
|
+
(arrow_function)
|
|
239
|
+
(function_expression)
|
|
240
|
+
(generator_function)
|
|
241
|
+
] @declaration.function)
|
|
242
|
+
|
|
243
|
+
;; \`this.X = fn\` at MODULE level of a CommonJS file — there \`this\` IS
|
|
244
|
+
;; \`module.exports\`, so this declares an export. Pruned emit-side for ESM
|
|
245
|
+
;; files (where top-level \`this\` is undefined) and for a \`this\` inside a
|
|
246
|
+
;; function, which is an instance member rather than an export.
|
|
247
|
+
(assignment_expression
|
|
248
|
+
left: (member_expression
|
|
249
|
+
object: (this)
|
|
250
|
+
property: (property_identifier) @declaration.name)
|
|
251
|
+
right: [
|
|
252
|
+
(arrow_function)
|
|
253
|
+
(function_expression)
|
|
254
|
+
(generator_function)
|
|
255
|
+
] @declaration.function)
|
|
256
|
+
|
|
257
|
+
(assignment_expression
|
|
258
|
+
left: (member_expression
|
|
259
|
+
object: (member_expression
|
|
260
|
+
object: (identifier) @_cjs.module
|
|
261
|
+
property: (property_identifier) @_cjs.exports)
|
|
262
|
+
property: (property_identifier) @declaration.name)
|
|
263
|
+
right: [
|
|
264
|
+
(arrow_function)
|
|
265
|
+
(function_expression)
|
|
266
|
+
(generator_function)
|
|
267
|
+
] @declaration.function
|
|
268
|
+
(#eq? @_cjs.module "module")
|
|
269
|
+
(#eq? @_cjs.exports "exports"))
|
|
270
|
+
|
|
172
271
|
;; Object-property arrows / function expressions named by their pair key:
|
|
173
272
|
;; \`{ addItem: (item) => ..., removeItem: (item) => ... }\`. The legacy
|
|
174
273
|
;; TYPESCRIPT_QUERIES emits the same shape; mirroring it here keeps
|
|
@@ -407,6 +506,48 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
407
506
|
(method_signature
|
|
408
507
|
name: (property_identifier) @declaration.name) @declaration.method
|
|
409
508
|
|
|
509
|
+
;; Members of a declared SHAPE — interface bodies and object-type aliases both
|
|
510
|
+
;; spell them as property_signature (A4). The sibling method_signature rule
|
|
511
|
+
;; above declared interface METHODS, so only properties were missing: a typed
|
|
512
|
+
;; receiver resolved to the shape's scope and then found no member there, and
|
|
513
|
+
;; the field's consumers were unreachable. TypeScript sets
|
|
514
|
+
;; fieldFallbackOnMethodLookup:false, so there is no name-based safety net
|
|
515
|
+
;; here — the precise path is the only one, and it needs the declaration.
|
|
516
|
+
;; ANCHORED to declared shapes — see the matching rule in TYPESCRIPT_QUERIES
|
|
517
|
+
;; for why. Unanchored this matched inline parameter and return types and
|
|
518
|
+
;; nested object types, whose members then collided onto the enclosing
|
|
519
|
+
;; class/interface/alias.
|
|
520
|
+
(interface_body
|
|
521
|
+
(property_signature
|
|
522
|
+
name: (property_identifier) @declaration.name) @declaration.property)
|
|
523
|
+
|
|
524
|
+
;; Object-literal keys of a NAMED object — the scope-resolution half of the
|
|
525
|
+
;; matching rule in TYPESCRIPT_QUERIES. The parse query mints the Property NODE;
|
|
526
|
+
;; this mints the DEF a precise read can resolve to.
|
|
527
|
+
(variable_declarator
|
|
528
|
+
name: (identifier)
|
|
529
|
+
value: (object
|
|
530
|
+
(pair
|
|
531
|
+
key: (property_identifier) @declaration.name) @declaration.property))
|
|
532
|
+
|
|
533
|
+
(variable_declarator
|
|
534
|
+
name: (identifier)
|
|
535
|
+
value: (call_expression
|
|
536
|
+
function: (member_expression
|
|
537
|
+
object: (identifier) @_ts.identity.obj
|
|
538
|
+
property: (property_identifier) @_ts.identity.fn)
|
|
539
|
+
arguments: (arguments
|
|
540
|
+
(object
|
|
541
|
+
(pair
|
|
542
|
+
key: (property_identifier) @declaration.name) @declaration.property)))
|
|
543
|
+
(#eq? @_ts.identity.obj "Object")
|
|
544
|
+
(#match? @_ts.identity.fn "^(freeze|seal|preventExtensions)$"))
|
|
545
|
+
|
|
546
|
+
(type_alias_declaration
|
|
547
|
+
value: (object_type
|
|
548
|
+
(property_signature
|
|
549
|
+
name: (property_identifier) @declaration.name) @declaration.property))
|
|
550
|
+
|
|
410
551
|
;; Declarations — class fields
|
|
411
552
|
(public_field_definition
|
|
412
553
|
name: (property_identifier) @declaration.name) @declaration.property
|
|
@@ -791,6 +932,40 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
791
932
|
type: (type_annotation
|
|
792
933
|
(type_identifier) @type-binding.type)) @type-binding.annotation
|
|
793
934
|
|
|
935
|
+
;; Type bindings — class field constructor-inferred: \`private p = new Outer()\`.
|
|
936
|
+
;; The annotation patterns above cover a field that DECLARES its type; a field
|
|
937
|
+
;; whose type must be inferred from its initializer matched nothing, so it had
|
|
938
|
+
;; no typeBinding, so \`this.p\` could not be typed and the receiver fold declined
|
|
939
|
+
;; the whole chain — losing even the first, ordinary named link (#2807).
|
|
940
|
+
;;
|
|
941
|
+
;; Anchored on \`public_field_definition\` exactly like the annotation patterns,
|
|
942
|
+
;; so the binding lands in the same (class body) scope with no bindingScopeFor
|
|
943
|
+
;; override. \`annotation\` outranks \`constructor-inferred\` in
|
|
944
|
+
;; typeBindingStrength, so \`private p: Outer = new Outer()\` still resolves
|
|
945
|
+
;; through its annotation regardless of which pattern matches first.
|
|
946
|
+
;;
|
|
947
|
+
;; Kotlin and Swift express both a local and a stored property with ONE grammar
|
|
948
|
+
;; node (property_declaration) and so needed no separate field pattern; the
|
|
949
|
+
;; TypeScript grammar splits them (variable_declarator vs
|
|
950
|
+
;; public_field_definition), which is why only the local form was ever covered.
|
|
951
|
+
(public_field_definition
|
|
952
|
+
name: (property_identifier) @type-binding.name
|
|
953
|
+
value: (new_expression
|
|
954
|
+
constructor: (identifier) @type-binding.type)) @type-binding.constructor
|
|
955
|
+
|
|
956
|
+
;; Qualified: \`private p = new models.Outer()\` — mirrors the local form above;
|
|
957
|
+
;; the member_expression's text is resolved via QualifiedNameIndex.
|
|
958
|
+
(public_field_definition
|
|
959
|
+
name: (property_identifier) @type-binding.name
|
|
960
|
+
value: (new_expression
|
|
961
|
+
constructor: (member_expression) @type-binding.type)) @type-binding.constructor
|
|
962
|
+
|
|
963
|
+
;; Private-name field: \`#p = new Outer()\`.
|
|
964
|
+
(public_field_definition
|
|
965
|
+
name: (private_property_identifier) @type-binding.name
|
|
966
|
+
value: (new_expression
|
|
967
|
+
constructor: (identifier) @type-binding.type)) @type-binding.constructor
|
|
968
|
+
|
|
794
969
|
;; Type bindings — method return type: \`save(): User { … }\` / \`function f(): User { … }\`.
|
|
795
970
|
;; Function/method return-type is the type_annotation that is a direct
|
|
796
971
|
;; child of the function node (not the parameter's annotation). Anchor on
|
|
@@ -919,6 +1094,78 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
919
1094
|
right: (new_expression
|
|
920
1095
|
constructor: (identifier) @type-binding.type)) @type-binding.constructor
|
|
921
1096
|
|
|
1097
|
+
;; Type bindings — field assigned through \`this\`: \`this.p = new Outer()\` on a
|
|
1098
|
+
;; field that declares no type (#2807). The rebind pattern above only matches a
|
|
1099
|
+
;; bare identifier LHS, so an unannotated field assigned in the constructor had
|
|
1100
|
+
;; no typeBinding at all. (An ANNOTATED field does not need this — its
|
|
1101
|
+
;; annotation already types it, which is why \`private p: Outer;\` + the same
|
|
1102
|
+
;; assignment always resolved.)
|
|
1103
|
+
;;
|
|
1104
|
+
;; The nesting is the whole safety property. \`this.x = new Y()\` is a legal
|
|
1105
|
+
;; statement ANYWHERE, and the binding it produces is hoisted onto the nearest
|
|
1106
|
+
;; enclosing Class — so a context-free version of this pattern typed a class's
|
|
1107
|
+
;; field from an assignment whose \`this\` was some OTHER object, overwriting the
|
|
1108
|
+
;; field's real type (pass4CollectTypeBindings resolves a same-source tie in
|
|
1109
|
+
;; favour of the LATER match). Requiring the chain
|
|
1110
|
+
;; \`class_body → method_definition → statement_block → expression_statement\`
|
|
1111
|
+
;; makes the marker fire only where \`this\` provably IS an instance of the class
|
|
1112
|
+
;; the binding lands on. It rejects, in order of how easily each was hit:
|
|
1113
|
+
;; a non-arrow callback inside a method (\`function () { this.x = new Y(); }\` —
|
|
1114
|
+
;; \`this\` is the call's receiver), an object-literal method (also a
|
|
1115
|
+
;; \`method_definition\`, but under \`object\`, not \`class_body\`), and module top
|
|
1116
|
+
;; level (no enclosing Class at all, where the hoist used to fall back to the
|
|
1117
|
+
;; innermost scope and could overwrite a module local of the same name).
|
|
1118
|
+
;;
|
|
1119
|
+
;; This mirrors \`synthesizeConstructorFieldBindings\` in
|
|
1120
|
+
;; \`languages/javascript/captures.ts\`, which walks only \`method_definition\`
|
|
1121
|
+
;; bodies and only their DIRECT \`expression_statement\` children — the two
|
|
1122
|
+
;; languages must not read the same source differently. TypeScript accepts any
|
|
1123
|
+
;; method rather than only \`constructor\` (a later \`setUp()\` assignment types
|
|
1124
|
+
;; the field just as well), which is the one intended divergence.
|
|
1125
|
+
;;
|
|
1126
|
+
;; Two shapes are deliberately NOT matched, both erring toward no binding:
|
|
1127
|
+
;; an assignment nested in a block (\`if (…) { this.p = new Outer(); }\`) and one
|
|
1128
|
+
;; inside an arrow (\`() => { this.p = new Outer(); }\`, where \`this\` IS the
|
|
1129
|
+
;; instance). Both are only ever a MISSING binding, never a wrong one, and JS
|
|
1130
|
+
;; declines them too.
|
|
1131
|
+
;;
|
|
1132
|
+
;; \`@type-binding.this-field\` is a MARKER, not the anchor: it sits on the narrow
|
|
1133
|
+
;; \`(this)\` node, so anchorCaptureFor's broadest-range rule keeps the whole
|
|
1134
|
+
;; assignment_expression (@type-binding.constructor) as the anchor and the
|
|
1135
|
+
;; source stays \`constructor-inferred\`. tsBindingScopeFor reads the marker to
|
|
1136
|
+
;; hoist the binding onto the enclosing Class scope — without that hoist the
|
|
1137
|
+
;; binding would land on the method's own Function scope, where
|
|
1138
|
+
;; typeOfMemberOnClass never looks. The marker must stay specific to THIS
|
|
1139
|
+
;; pattern: hoisting every constructor-inferred binding would move method-local
|
|
1140
|
+
;; \`const o = new Outer()\` out of its own scope.
|
|
1141
|
+
;;
|
|
1142
|
+
;; One constraint the grammar cannot carry: \`static\` is an ANONYMOUS token on
|
|
1143
|
+
;; \`method_definition\` with no field name, and tree-sitter patterns cannot
|
|
1144
|
+
;; negate one. \`this\` in a static method is the class object, so that last
|
|
1145
|
+
;; wrong receiver is dropped by \`emitTsScopeCaptures\` instead.
|
|
1146
|
+
(class_body
|
|
1147
|
+
(method_definition
|
|
1148
|
+
body: (statement_block
|
|
1149
|
+
(expression_statement
|
|
1150
|
+
(assignment_expression
|
|
1151
|
+
left: (member_expression
|
|
1152
|
+
object: (this) @type-binding.this-field
|
|
1153
|
+
property: (property_identifier) @type-binding.name)
|
|
1154
|
+
right: (new_expression
|
|
1155
|
+
constructor: (identifier) @type-binding.type)) @type-binding.constructor))))
|
|
1156
|
+
|
|
1157
|
+
;; Qualified form: \`this.p = new models.Outer()\`.
|
|
1158
|
+
(class_body
|
|
1159
|
+
(method_definition
|
|
1160
|
+
body: (statement_block
|
|
1161
|
+
(expression_statement
|
|
1162
|
+
(assignment_expression
|
|
1163
|
+
left: (member_expression
|
|
1164
|
+
object: (this) @type-binding.this-field
|
|
1165
|
+
property: (property_identifier) @type-binding.name)
|
|
1166
|
+
right: (new_expression
|
|
1167
|
+
constructor: (member_expression) @type-binding.type)) @type-binding.constructor))))
|
|
1168
|
+
|
|
922
1169
|
(assignment_expression
|
|
923
1170
|
left: (identifier) @type-binding.name
|
|
924
1171
|
right: (call_expression
|
|
@@ -987,6 +1234,85 @@ const TYPESCRIPT_SCOPE_QUERY = `
|
|
|
987
1234
|
(member_expression
|
|
988
1235
|
object: (_) @reference.receiver
|
|
989
1236
|
property: (property_identifier) @reference.name) @reference.read.member
|
|
1237
|
+
|
|
1238
|
+
;; References — value position (#2437): a function identifier assigned as an
|
|
1239
|
+
;; object-literal property value (\`{ emitScopeCaptures: emitCppScopeCaptures }\`)
|
|
1240
|
+
;; or shorthand (\`{ emitHook }\`). Resolution keeps only callable targets
|
|
1241
|
+
;; (MethodRegistry), so plain-value pairs (\`{ port: DEFAULT_PORT }\`) emit
|
|
1242
|
+
;; nothing; the emitted edge is a reference-class USES (registration ≠
|
|
1243
|
+
;; invocation). \`@reference.property-key\` records the key so the
|
|
1244
|
+
;; property-dispatch pass can synthesize CALLS at \`x.<key>()\` sites; for
|
|
1245
|
+
;; shorthand the key IS the name (both tags on one node). Two separate
|
|
1246
|
+
;; patterns — never combined in \`[...]\` (tree-sitter 0.21 drops alternation
|
|
1247
|
+
;; siblings around predicates). Destructuring shorthand is a different node
|
|
1248
|
+
;; (\`shorthand_property_identifier_pattern\`), so \`const { a } = o\` cannot
|
|
1249
|
+
;; match; string/computed keys carry no \`property_identifier\` and register
|
|
1250
|
+
;; without a dispatch key.
|
|
1251
|
+
(pair
|
|
1252
|
+
key: (property_identifier) @reference.property-key
|
|
1253
|
+
value: (identifier) @reference.name @reference.value-ref)
|
|
1254
|
+
|
|
1255
|
+
(object
|
|
1256
|
+
(shorthand_property_identifier) @reference.name @reference.property-key @reference.value-ref)
|
|
1257
|
+
|
|
1258
|
+
;; Bare-identifier reads (A2), VALUE POSITIONS ONLY — a blanket \`(identifier)\`
|
|
1259
|
+
;; rule would mint a site for every token in the file.
|
|
1260
|
+
;;
|
|
1261
|
+
;; These existed only in the JavaScript query, so A2 did not work for
|
|
1262
|
+
;; TypeScript AT ALL: a \`.ts\` module reading its own \`const\` by bare name
|
|
1263
|
+
;; produced no reference site, and "who uses this constant?" answered a
|
|
1264
|
+
;; confident zero for an entire language. Found by writing the namespace
|
|
1265
|
+
;; fixture below and watching it fail for the wrong reason.
|
|
1266
|
+
(arguments
|
|
1267
|
+
(identifier) @reference.name @reference.read.identifier)
|
|
1268
|
+
|
|
1269
|
+
(assignment_pattern
|
|
1270
|
+
right: (identifier) @reference.name @reference.read.identifier)
|
|
1271
|
+
|
|
1272
|
+
(return_statement
|
|
1273
|
+
(identifier) @reference.name @reference.read.identifier)
|
|
1274
|
+
|
|
1275
|
+
;; \`const next = LIMIT\` and \`n > LIMIT\` — both plainly value reads, and both
|
|
1276
|
+
;; named in review as gaps between what A2 claimed and what it matched.
|
|
1277
|
+
(variable_declarator
|
|
1278
|
+
value: (identifier) @reference.name @reference.read.identifier)
|
|
1279
|
+
|
|
1280
|
+
(binary_expression
|
|
1281
|
+
left: (identifier) @reference.name @reference.read.identifier)
|
|
1282
|
+
|
|
1283
|
+
(binary_expression
|
|
1284
|
+
right: (identifier) @reference.name @reference.read.identifier)
|
|
1285
|
+
|
|
1286
|
+
;; References — TYPE POSITION (R2-2). An annotation naming a declared type is
|
|
1287
|
+
;; the only thing that makes that type's declaration reachable from the code
|
|
1288
|
+
;; that depends on it, and TypeScript captured none: only cpp and csharp emitted
|
|
1289
|
+
;; type references at all. So an exported API-contract type owned its members
|
|
1290
|
+
;; (round 1) but had \`incoming: {}\`, and "what breaks if I remove this field?"
|
|
1291
|
+
;; — the question a contract type exists to answer — had no edge to walk.
|
|
1292
|
+
;;
|
|
1293
|
+
;; The resolution path was already complete on the other side:
|
|
1294
|
+
;; \`type-reference\` routes to the ClassRegistry, whose CLASS_KINDS already
|
|
1295
|
+
;; lists TypeAlias, Interface and Enum, and \`edges.ts\` already maps the kind to
|
|
1296
|
+
;; USES. Only the capture was missing.
|
|
1297
|
+
;;
|
|
1298
|
+
;; Anchored to the CONTEXTS a type is used in — annotations, type arguments,
|
|
1299
|
+
;; and heritage \`implements\` — never a bare \`(type_identifier)\`. A blanket rule
|
|
1300
|
+
;; would also match the identifier in \`type X = …\` and \`interface X\`, making
|
|
1301
|
+
;; every declaration a consumer of itself.
|
|
1302
|
+
(type_annotation
|
|
1303
|
+
(type_identifier) @reference.name @reference.type_reference)
|
|
1304
|
+
|
|
1305
|
+
(type_annotation
|
|
1306
|
+
(generic_type
|
|
1307
|
+
name: (type_identifier) @reference.name @reference.type_reference))
|
|
1308
|
+
|
|
1309
|
+
(type_arguments
|
|
1310
|
+
(type_identifier) @reference.name @reference.type_reference)
|
|
1311
|
+
|
|
1312
|
+
;; \`x as SomeType\` / \`satisfies SomeType\` — an assertion is a claim ABOUT a
|
|
1313
|
+
;; declared type, so the code making it depends on that declaration.
|
|
1314
|
+
(as_expression
|
|
1315
|
+
(type_identifier) @reference.name @reference.type_reference)
|
|
990
1316
|
`;
|
|
991
1317
|
/**
|
|
992
1318
|
* JSX-only query suffix. Appended to the base query when compiling
|
|
@@ -57,3 +57,20 @@ import { type SyntaxNode } from '../../utils/ast-helpers.js';
|
|
|
57
57
|
* of the scope function nodes the scope query emits.
|
|
58
58
|
*/
|
|
59
59
|
export declare function synthesizeTsReceiverBinding(fnNode: SyntaxNode): CaptureMatch | null;
|
|
60
|
+
/**
|
|
61
|
+
* Nodes that REBIND `this`, so the walk for an enclosing type must stop at them.
|
|
62
|
+
*
|
|
63
|
+
* Without these the walk ran to the top of the file and happily synthesized a binding
|
|
64
|
+
* from a type that does not own the member. An object-literal method nested in a class
|
|
65
|
+
* bound `this` to the CLASS:
|
|
66
|
+
*
|
|
67
|
+
* class A { outer() { const o = { inner() { return this.x; } }; return o; } }
|
|
68
|
+
*
|
|
69
|
+
* `this` inside `o.inner` is `o`, never `A` — so every `this.…` in such a method
|
|
70
|
+
* resolved against the wrong type. Only the module-level object literal escaped, because
|
|
71
|
+
* there was no enclosing class to reach.
|
|
72
|
+
*
|
|
73
|
+
* An arrow is deliberately absent: it inherits `this` lexically, so the walk SHOULD pass
|
|
74
|
+
* through it (that is what makes a class-field arrow `m = () => this.x` resolve).
|
|
75
|
+
*/
|
|
76
|
+
export declare const THIS_REBINDING_BOUNDARY_TYPES: ReadonlySet<string>;
|
|
@@ -140,9 +140,36 @@ function isStaticMember(memberNode) {
|
|
|
140
140
|
}
|
|
141
141
|
return false;
|
|
142
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Nodes that REBIND `this`, so the walk for an enclosing type must stop at them.
|
|
145
|
+
*
|
|
146
|
+
* Without these the walk ran to the top of the file and happily synthesized a binding
|
|
147
|
+
* from a type that does not own the member. An object-literal method nested in a class
|
|
148
|
+
* bound `this` to the CLASS:
|
|
149
|
+
*
|
|
150
|
+
* class A { outer() { const o = { inner() { return this.x; } }; return o; } }
|
|
151
|
+
*
|
|
152
|
+
* `this` inside `o.inner` is `o`, never `A` — so every `this.…` in such a method
|
|
153
|
+
* resolved against the wrong type. Only the module-level object literal escaped, because
|
|
154
|
+
* there was no enclosing class to reach.
|
|
155
|
+
*
|
|
156
|
+
* An arrow is deliberately absent: it inherits `this` lexically, so the walk SHOULD pass
|
|
157
|
+
* through it (that is what makes a class-field arrow `m = () => this.x` resolve).
|
|
158
|
+
*/
|
|
159
|
+
export const THIS_REBINDING_BOUNDARY_TYPES = new Set([
|
|
160
|
+
'object', // object literal — `this` is the literal, not any enclosing type
|
|
161
|
+
'function_declaration',
|
|
162
|
+
'function_expression',
|
|
163
|
+
'generator_function',
|
|
164
|
+
'generator_function_declaration',
|
|
165
|
+
]);
|
|
143
166
|
function findEnclosingType(node) {
|
|
144
167
|
let cur = node.parent;
|
|
145
168
|
while (cur !== null) {
|
|
169
|
+
// Boundary before the type check: a rebinding node between the member and a type
|
|
170
|
+
// means the type does not own this `this`.
|
|
171
|
+
if (THIS_REBINDING_BOUNDARY_TYPES.has(cur.type))
|
|
172
|
+
return null;
|
|
146
173
|
if (TYPE_DECL_NODE_TYPES.has(cur.type))
|
|
147
174
|
return cur;
|
|
148
175
|
cur = cur.parent;
|
|
@@ -17,9 +17,10 @@ import { buildMro, defaultLinearize } from '../../scope-resolution/passes/mro.js
|
|
|
17
17
|
import { populateClassOwnedMembers } from '../../scope-resolution/scope/walkers.js';
|
|
18
18
|
import { simpleKey } from '../../scope-resolution/graph-bridge/node-lookup.js';
|
|
19
19
|
import { typescriptProvider } from '../typescript.js';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
20
|
+
import { loadTsconfigIndex } from './tsconfig.js';
|
|
21
|
+
import { loadNodeWorkspacePackages, } from '../../import-resolvers/node-workspace-packages.js';
|
|
22
|
+
import { indexOnlyElementType } from '../../type-extractors/shared.js';
|
|
23
|
+
import { typescriptArityCompatibility, typescriptMergeBindings, resolveTsTarget } from './index.js';
|
|
23
24
|
import { getNuxtAutoImportEntry, hasNuxtAutoImports, loadNuxtAutoImports, } from './nuxt-auto-imports.js';
|
|
24
25
|
const TYPESCRIPT_TYPE_ONLY_BINDING_TYPES = new Set([
|
|
25
26
|
'Interface',
|
|
@@ -31,47 +32,32 @@ const TYPESCRIPT_TYPE_ONLY_BINDING_TYPES = new Set([
|
|
|
31
32
|
'Decorator',
|
|
32
33
|
]);
|
|
33
34
|
/**
|
|
34
|
-
* Build
|
|
35
|
-
* file list, the lower-cased file list, and the per-pass `resolveCache`
|
|
36
|
-
* across every import lookup in a single workspace pass. The
|
|
37
|
-
* orchestrator passes the same `ReadonlySet` reference for every call
|
|
38
|
-
* within a pass — we use that identity to detect when the workspace
|
|
39
|
-
* changes and recompute the derived state lazily.
|
|
35
|
+
* Build the `resolveImportTarget` adapter.
|
|
40
36
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
37
|
+
* No per-file-set memo any more: the suffix index it existed to amortize is
|
|
38
|
+
* gone with #2953. Real resolution derives nothing from the file list — every
|
|
39
|
+
* candidate comes from a config the repo declares, and checking one is a
|
|
40
|
+
* `Set.has` — so there is nothing left to cache per pass.
|
|
45
41
|
*/
|
|
46
42
|
function makeTsResolveImportTarget() {
|
|
47
|
-
let cached = null;
|
|
48
43
|
return (targetRaw, fromFile, allFilePaths, resolutionConfig) => {
|
|
49
|
-
if (cached === null || cached.key !== allFilePaths) {
|
|
50
|
-
const allFileList = Array.from(allFilePaths);
|
|
51
|
-
const normalizedFileList = allFileList.map((f) => f.toLowerCase());
|
|
52
|
-
cached = {
|
|
53
|
-
key: allFilePaths,
|
|
54
|
-
allFilePaths: new Set(allFilePaths),
|
|
55
|
-
allFileList,
|
|
56
|
-
normalizedFileList,
|
|
57
|
-
index: buildSuffixIndex(normalizedFileList, allFileList),
|
|
58
|
-
resolveCache: new Map(),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
44
|
const cfg = resolutionConfig;
|
|
62
|
-
|
|
45
|
+
return resolveTsTarget(targetRaw, {
|
|
63
46
|
fromFile,
|
|
64
|
-
allFilePaths
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
resolveCache: cached.resolveCache,
|
|
69
|
-
tsconfigPaths: cfg?.tsconfigPaths ?? null,
|
|
70
|
-
};
|
|
71
|
-
return resolveTsTarget(targetRaw, ws);
|
|
47
|
+
allFilePaths,
|
|
48
|
+
tsconfigs: cfg?.tsconfigs ?? null,
|
|
49
|
+
nodeWorkspacePackages: cfg?.nodeWorkspacePackages ?? null,
|
|
50
|
+
});
|
|
72
51
|
};
|
|
73
52
|
}
|
|
74
53
|
const typescriptScopeResolver = {
|
|
54
|
+
// One hook, both routes. TypeScript exposes collection views as METHOD calls
|
|
55
|
+
// (`.values()`), which the call-expression branch already handles, so the
|
|
56
|
+
// accessor route yields nothing here — but it is now the same hook rather
|
|
57
|
+
// than a second one left undefined.
|
|
58
|
+
elementTypeOf: indexOnlyElementType,
|
|
59
|
+
// Construction is keyword-prefixed: `new Service(db).doWork()` (#2708).
|
|
60
|
+
constructionSyntax: { keyword: 'new' },
|
|
75
61
|
language: SupportedLanguages.TypeScript,
|
|
76
62
|
languageProvider: typescriptProvider,
|
|
77
63
|
importEdgeReason: 'typescript-scope: import',
|
|
@@ -83,7 +69,8 @@ const typescriptScopeResolver = {
|
|
|
83
69
|
// `nuxtAutoImports` is null for non-Nuxt projects (no .nuxt/imports.d.ts),
|
|
84
70
|
// so this adds zero overhead to ordinary TypeScript repos.
|
|
85
71
|
loadResolutionConfig: async (repoPath) => ({
|
|
86
|
-
|
|
72
|
+
tsconfigs: await loadTsconfigIndex(repoPath),
|
|
73
|
+
nodeWorkspacePackages: await loadNodeWorkspacePackages(repoPath),
|
|
87
74
|
nuxtAutoImports: await loadNuxtAutoImports(repoPath),
|
|
88
75
|
}),
|
|
89
76
|
// TypeScript declaration merging + LEGB: local > import > wildcard,
|
|
@@ -109,10 +96,10 @@ const typescriptScopeResolver = {
|
|
|
109
96
|
// boundaries and resolve chained member calls).
|
|
110
97
|
fieldFallbackOnMethodLookup: false,
|
|
111
98
|
propagatesReturnTypesAcrossImports: true,
|
|
112
|
-
// TypeScript uses `.values()` / `.keys()` method-call syntax for
|
|
113
|
-
//
|
|
114
|
-
// `
|
|
115
|
-
//
|
|
99
|
+
// TypeScript uses `.values()` / `.keys()` method-call syntax for collection
|
|
100
|
+
// views -- no property-style accessors like C#'s `Dictionary<K,V>.Values` --
|
|
101
|
+
// so `elementTypeOf` answers only the `index` route and lets the regular
|
|
102
|
+
// member-call branch handle the rest.
|
|
116
103
|
//
|
|
117
104
|
// `collapseMemberCallsByCallerTarget` left undefined (= false) --
|
|
118
105
|
// TypeScript legacy DAG emits one edge per call site, so
|
|
@@ -26,16 +26,6 @@ import type { CaptureMatch, ParsedImport, Scope, ScopeId, ScopeTree, TypeRef } f
|
|
|
26
26
|
* propagation.
|
|
27
27
|
*/
|
|
28
28
|
export declare function tsBindingScopeFor(decl: CaptureMatch, innermost: Scope, tree: ScopeTree): ScopeId | null;
|
|
29
|
-
/**
|
|
30
|
-
* Walk up the scope chain to find the first scope whose `kind` matches
|
|
31
|
-
* any of `kinds`. Returns the matching scope's id or `null` when no
|
|
32
|
-
* ancestor matches (e.g., a return type binding emitted outside any
|
|
33
|
-
* Module scope — shouldn't happen in well-formed input).
|
|
34
|
-
*
|
|
35
|
-
* Exported so language-specific hook wrappers (e.g. `jsBindingScopeFor`)
|
|
36
|
-
* can reuse it without duplicating the traversal logic.
|
|
37
|
-
*/
|
|
38
|
-
export declare function walkToScope(from: Scope, tree: ScopeTree, ...kinds: readonly Scope['kind'][]): ScopeId | null;
|
|
39
29
|
/**
|
|
40
30
|
* TypeScript imports are syntactically top-level: `import_statement` is
|
|
41
31
|
* legal only inside `program` (the module root). `namespace X { … }`
|