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
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* synthesized streams on top:
|
|
7
7
|
*
|
|
8
8
|
* 1. **Import decomposition** — each `import_statement` / re-export is
|
|
9
|
-
* re-emitted with `@import.kind/source/name/alias/
|
|
9
|
+
* re-emitted with `@import.kind/source/name/alias/type-only` markers so
|
|
10
10
|
* `interpretTsImport` can recover the `ParsedImport` shape without
|
|
11
11
|
* re-parsing raw text (see `import-decomposer.ts`). Unit 2 adds this;
|
|
12
12
|
* until then, raw `@import.statement` matches flow through as-is.
|
|
@@ -31,13 +31,18 @@ import { recordCacheHit, recordCacheMiss } from './cache-stats.js';
|
|
|
31
31
|
import { synthesizeTsReceiverBinding } from './receiver-binding.js';
|
|
32
32
|
import { computeTsArityMetadata } from './arity-metadata.js';
|
|
33
33
|
import { isArrayMethodCallbackArrow } from './array-callback.js';
|
|
34
|
+
import { isShadowedCjsExportAssignment, isUnexportedMemberAssignmentValue, isUndeclarableThisMemberValue, } from './cjs-export-assignment.js';
|
|
35
|
+
import { hasKeyword } from '../../field-extractors/configs/helpers.js';
|
|
34
36
|
import { getTreeSitterBufferSize } from '../../constants.js';
|
|
35
37
|
import { parseSourceSafe } from '../../../tree-sitter/safe-parse.js';
|
|
38
|
+
import { synthesizeCallableFlowCaptures } from '../../utils/callable-flow-captures.js';
|
|
39
|
+
import { synthesizeCjsModuleExports } from './cjs-module-exports.js';
|
|
40
|
+
import { synthesizeReceiverChainCapture } from '../../utils/receiver-chain-captures.js';
|
|
36
41
|
import { deriveDefaultExportHocName, isBlockedDefaultExportHoc, isDefaultExportHocFunctionNode, } from '../../ts-js-hoc-utils.js';
|
|
37
42
|
/** tree-sitter-typescript node types for function-like scopes that may
|
|
38
43
|
* carry a synthesized `this` binding. Kept in sync with the
|
|
39
44
|
* `@scope.function` patterns in `query.ts`. */
|
|
40
|
-
const FUNCTION_NODE_TYPES = [
|
|
45
|
+
export const FUNCTION_NODE_TYPES = [
|
|
41
46
|
'method_definition',
|
|
42
47
|
'method_signature',
|
|
43
48
|
'abstract_method_signature',
|
|
@@ -45,8 +50,47 @@ const FUNCTION_NODE_TYPES = [
|
|
|
45
50
|
'function_expression',
|
|
46
51
|
'function_declaration',
|
|
47
52
|
'generator_function_declaration',
|
|
53
|
+
// The EXPRESSION form (`const g = function* () {}`). Both queries capture it
|
|
54
|
+
// as `@scope.function`, and both `this`-boundary lists already carry it, but
|
|
55
|
+
// this list did not — so callable-flow synthesis and the body-block filter
|
|
56
|
+
// treated a generator expression as a non-function.
|
|
57
|
+
//
|
|
58
|
+
// Measured: adding it changes no graph output today. A generator-expression
|
|
59
|
+
// binding still emits a `Const` node rather than a `Function` one, so the
|
|
60
|
+
// call never resolves either way — that label comes from the definition
|
|
61
|
+
// rules, not from here, and closing it is a separate change. This entry is
|
|
62
|
+
// list consistency, enforced by
|
|
63
|
+
// `test/unit/ts-js-function-node-type-lists.test.ts`.
|
|
64
|
+
'generator_function',
|
|
48
65
|
'function_signature',
|
|
49
66
|
];
|
|
67
|
+
/** Nodes whose `statement_block` child is their BODY, not a nested block.
|
|
68
|
+
* Such a block duplicates the enclosing Function scope — see the emit-side
|
|
69
|
+
* filter in `emitTsScopeCaptures`. */
|
|
70
|
+
const FUNCTION_BODY_OWNER_TYPES = new Set(FUNCTION_NODE_TYPES);
|
|
71
|
+
/** Direct-child node types that create a BINDING in their enclosing block.
|
|
72
|
+
* `variable_declaration` (`var`) is deliberately absent: it hoists past the
|
|
73
|
+
* block to the function, so a block containing only `var` binds nothing. */
|
|
74
|
+
const BLOCK_BINDING_CHILD_TYPES = new Set([
|
|
75
|
+
'lexical_declaration',
|
|
76
|
+
'class_declaration',
|
|
77
|
+
'function_declaration',
|
|
78
|
+
'generator_function_declaration',
|
|
79
|
+
]);
|
|
80
|
+
/** True when `block` directly declares a name, i.e. it is a real environment
|
|
81
|
+
* record rather than punctuation. A block that binds nothing is transparent to
|
|
82
|
+
* every scope-chain walk — a lookup finds nothing in it and continues to the
|
|
83
|
+
* parent — so emitting a scope for it costs tree size and walk depth and buys
|
|
84
|
+
* exactly nothing. Only DIRECT children count: a declaration in a nested block
|
|
85
|
+
* belongs to that block, which gets its own scope by the same rule. */
|
|
86
|
+
const blockDeclaresBinding = (block) => {
|
|
87
|
+
for (let i = 0; i < block.namedChildCount; i++) {
|
|
88
|
+
const child = block.namedChild(i);
|
|
89
|
+
if (child !== null && BLOCK_BINDING_CHILD_TYPES.has(child.type))
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
};
|
|
50
94
|
/** Declaration anchors that carry function-like arity metadata. */
|
|
51
95
|
const FUNCTION_DECL_TAGS = ['@declaration.method', '@declaration.function'];
|
|
52
96
|
/** Callsite anchors that should carry `@reference.arity` + param types. */
|
|
@@ -55,6 +99,25 @@ const CALL_TAGS = [
|
|
|
55
99
|
'@reference.call.member',
|
|
56
100
|
'@reference.call.constructor',
|
|
57
101
|
];
|
|
102
|
+
const TS_CALLABLE_CAPTURE_OPTIONS = {
|
|
103
|
+
functionNodeTypes: new Set(FUNCTION_NODE_TYPES),
|
|
104
|
+
callNodeTypes: new Set(['call_expression']),
|
|
105
|
+
parameterListNodeTypes: new Set(['formal_parameters', 'arguments']),
|
|
106
|
+
parameterNodeTypes: new Set([
|
|
107
|
+
'required_parameter',
|
|
108
|
+
'optional_parameter',
|
|
109
|
+
'rest_pattern',
|
|
110
|
+
'identifier',
|
|
111
|
+
]),
|
|
112
|
+
bindingNodeTypes: new Set(['variable_declarator']),
|
|
113
|
+
assignmentNodeTypes: new Set(['assignment_expression', 'augmented_assignment_expression']),
|
|
114
|
+
identifierNodeTypes: new Set([
|
|
115
|
+
'identifier',
|
|
116
|
+
'property_identifier',
|
|
117
|
+
'shorthand_property_identifier_pattern',
|
|
118
|
+
'private_property_identifier',
|
|
119
|
+
]),
|
|
120
|
+
};
|
|
58
121
|
function pickFirstCapture(grouped, tags) {
|
|
59
122
|
for (const tag of tags) {
|
|
60
123
|
const cap = grouped[tag];
|
|
@@ -112,6 +175,131 @@ function shouldEmitReadMember(memberNode) {
|
|
|
112
175
|
return true;
|
|
113
176
|
}
|
|
114
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Is this `(this)` node the `this` of a STATIC method?
|
|
180
|
+
*
|
|
181
|
+
* `this` in a static method is the class object, so `this.x = new Y()` there
|
|
182
|
+
* assigns a STATIC property and must never type the instance field of the same
|
|
183
|
+
* name (#2807). Every other context that rebinds `this` is excluded
|
|
184
|
+
* structurally, by the query's `class_body → method_definition →
|
|
185
|
+
* statement_block → expression_statement` nesting; `static` is the one
|
|
186
|
+
* constraint tree-sitter cannot carry, because it is an ANONYMOUS token with no
|
|
187
|
+
* field name and patterns cannot negate one.
|
|
188
|
+
*
|
|
189
|
+
* The caller only reaches here for a capture the query already pinned inside a
|
|
190
|
+
* class method, so the `method_definition` lookup is a short walk. Detection is
|
|
191
|
+
* the shared `hasKeyword`, which is what the TypeScript METHOD EXTRACTOR already
|
|
192
|
+
* uses to decide the same question — matching on child TEXT, and skipping the
|
|
193
|
+
* `name` field so a method literally called `static()` is not misread.
|
|
194
|
+
*
|
|
195
|
+
* Text, not node type: `static` reaches the tree as an anonymous token in some
|
|
196
|
+
* grammar versions and as a keyword node in others (see `isStaticMember` in
|
|
197
|
+
* `receiver-binding.ts`), so a `child.type === 'static'` test silently stops
|
|
198
|
+
* firing on a grammar bump and every static `this.x = new Y()` starts typing the
|
|
199
|
+
* instance field of that name. `hasKeyword` scans the whole `method_definition`
|
|
200
|
+
* rather than stopping at the name, which is safe here because a
|
|
201
|
+
* `method_definition`'s own children are its modifiers, name, parameters and
|
|
202
|
+
* body — a mention of `static` inside the BODY is a descendant of the body node,
|
|
203
|
+
* never a direct child.
|
|
204
|
+
*/
|
|
205
|
+
function isStaticMethodThis(thisNode) {
|
|
206
|
+
const method = findSelfOrAncestorOfType(thisNode, 'method_definition');
|
|
207
|
+
if (method === null)
|
|
208
|
+
return false;
|
|
209
|
+
return hasKeyword(method, 'static');
|
|
210
|
+
}
|
|
211
|
+
/** The class-field declaration node a field `@type-binding.*` match anchors on
|
|
212
|
+
* in TypeScript/TSX. JavaScript spells the same construct `field_definition`
|
|
213
|
+
* and passes its own set in — the predicate below is shared because both
|
|
214
|
+
* grammars carry `static` identically, but each language must NAME its own
|
|
215
|
+
* node type. Listing both here made `field_definition` a dead literal in the
|
|
216
|
+
* typescript grammar, which `grammar-literal-validation` fails on: the gate
|
|
217
|
+
* checks every literal against the grammar of the FILE it appears in, and a
|
|
218
|
+
* node type that is dead there is exactly how a guard silently stops firing. */
|
|
219
|
+
export const TS_CLASS_FIELD_DEFINITION_TYPES = new Set([
|
|
220
|
+
'public_field_definition',
|
|
221
|
+
]);
|
|
222
|
+
/**
|
|
223
|
+
* Is this type-binding anchored on a **`static`** class field?
|
|
224
|
+
*
|
|
225
|
+
* A static member belongs to the CLASS OBJECT; an instance field belongs to
|
|
226
|
+
* instances. JavaScript and TypeScript keep the two in separate namespaces, so
|
|
227
|
+
* one class may legally declare both under one name:
|
|
228
|
+
*
|
|
229
|
+
* class Host {
|
|
230
|
+
* p = new Right();
|
|
231
|
+
* static p = new Wrong(); // legal — a different member
|
|
232
|
+
* hit() { return this.p.hit(); } // `this.p` is Right
|
|
233
|
+
* }
|
|
234
|
+
*
|
|
235
|
+
* Both field patterns anchor their binding on the same CLASS scope with the
|
|
236
|
+
* same `constructor-inferred` source, and `scope-extractor` breaks a
|
|
237
|
+
* same-strength tie with `>=` — last match wins. So the static field silently
|
|
238
|
+
* RETYPED the instance field of that name and `this.p.hit()` resolved to
|
|
239
|
+
* `Wrong.hit`: not a missing edge but a wrong one, the failure mode
|
|
240
|
+
* `scope-resolution/passes/compound-receiver.ts` exists to avoid. The scope
|
|
241
|
+
* tree has one `typeBindings` map per scope with no static/instance split, so a
|
|
242
|
+
* static field cannot be recorded separately — it is dropped instead.
|
|
243
|
+
*
|
|
244
|
+
* WHAT THAT COSTS, MEASURED rather than assumed (#2807 review, S7). An earlier
|
|
245
|
+
* version of this comment called the cost "a missed edge beats a wrong one".
|
|
246
|
+
* Only half of that is true, and the false half is the one that matters:
|
|
247
|
+
*
|
|
248
|
+
* shape with the drop without it
|
|
249
|
+
* -------------------------- ---------------- ----------------
|
|
250
|
+
* `this.p` (instance twin) Right ✓ Wrong ✗
|
|
251
|
+
* `Host.p` (static twin) Right ✗ WRONG Wrong ✓
|
|
252
|
+
* `Host.q` (static, no twin) — none, missed Wrong ✓
|
|
253
|
+
*
|
|
254
|
+
* For a class declaring BOTH twins the wrong edge does not disappear, it MOVES:
|
|
255
|
+
* `Host.p` now reads the INSTANCE twin's binding, because that is what is left
|
|
256
|
+
* in the map under that name. Only the no-twin case — the common static shape —
|
|
257
|
+
* is a true missed edge.
|
|
258
|
+
*
|
|
259
|
+
* The trade is still the right one, since `this.p` is overwhelmingly the more
|
|
260
|
+
* common access and a `Host.p` static chain is the cheaper place to be wrong.
|
|
261
|
+
* It is recorded here as a wrong edge rather than described as a missing one so
|
|
262
|
+
* that the next person weighing it is weighing the real thing. Closing it
|
|
263
|
+
* properly needs a static/instance split that the shared receiver fold cannot
|
|
264
|
+
* express today — `foldReceiverChain` in
|
|
265
|
+
* `scope-resolution/passes/compound-receiver.ts` explicitly discards whether a
|
|
266
|
+
* chain's base was a class reference or a value — so it is a separate change
|
|
267
|
+
* with a `SCHEMA_BUMP`, not a tweak here. Both shapes are pinned by rows in
|
|
268
|
+
* `test/integration/resolvers/inferred-field-receiver-matrix.test.ts`
|
|
269
|
+
* (`static-read-of-a-same-name-twin-picks-up-the-instance-type`,
|
|
270
|
+
* `static-read-without-a-twin-loses-its-type`), so the cost moves visibly.
|
|
271
|
+
*
|
|
272
|
+
* Sibling of {@link isStaticMethodThis}, which drops the ASSIGNMENT form
|
|
273
|
+
* (`this.x = new Y()` inside a static method). Together they cover both ways a
|
|
274
|
+
* static member can reach the field-typing path. This is an emit-side filter
|
|
275
|
+
* for the same reason that one is: `static` is an ANONYMOUS token on the
|
|
276
|
+
* declaration node, and a tree-sitter pattern cannot negate one.
|
|
277
|
+
*
|
|
278
|
+
* Detection is the shared `hasKeyword` — matching on child TEXT, never
|
|
279
|
+
* `child.type === 'static'`, because the token reaches the tree as an anonymous
|
|
280
|
+
* token in some grammar versions and a keyword node in others (see
|
|
281
|
+
* `isStaticMember` in `receiver-binding.ts`); a node-type test silently stops
|
|
282
|
+
* firing on a grammar bump and every static field starts retyping its instance
|
|
283
|
+
* twin again. Verified against both grammars in use here: `static` is an
|
|
284
|
+
* anonymous direct child of the caller's field-definition node —
|
|
285
|
+
* `public_field_definition` in TypeScript, `field_definition` in JavaScript —
|
|
286
|
+
* ahead of the name. Each language passes its OWN node-type set rather than the
|
|
287
|
+
* predicate holding both: a literal is only valid in the grammar of the file it
|
|
288
|
+
* appears in, and `grammar-literal-validation` fails a dead one.
|
|
289
|
+
*
|
|
290
|
+
* One deliberate over-fire: `hasKeyword` skips the node's `name` FIELD, and the
|
|
291
|
+
* JavaScript grammar names a field's name `property:`, not `name:` — so the
|
|
292
|
+
* legal-but-rare JavaScript field literally called `static`
|
|
293
|
+
* (`class C { static = new Right(); }`) reads as static and goes untyped. That
|
|
294
|
+
* is a declined binding, the safe direction of the same trade.
|
|
295
|
+
*/
|
|
296
|
+
export function isStaticClassFieldBinding(anchorNode, fieldDefinitionTypes) {
|
|
297
|
+
if (anchorNode === undefined)
|
|
298
|
+
return false;
|
|
299
|
+
if (!fieldDefinitionTypes.has(anchorNode.type))
|
|
300
|
+
return false;
|
|
301
|
+
return hasKeyword(anchorNode, 'static');
|
|
302
|
+
}
|
|
115
303
|
/** Walks the parent chain from `node` (inclusive), returning the first node
|
|
116
304
|
* whose type matches, or null. Faster than `findNodeAtRange` when the caller
|
|
117
305
|
* already holds the anchor node — avoids re-scanning the tree from the root. */
|
|
@@ -219,6 +407,24 @@ export function emitTsScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
219
407
|
}
|
|
220
408
|
continue;
|
|
221
409
|
}
|
|
410
|
+
// A `statement_block` that IS a function body adds nothing: the enclosing
|
|
411
|
+
// Function scope already provides that environment record, so emitting one
|
|
412
|
+
// here just puts a redundant level inside EVERY function for every
|
|
413
|
+
// scope-chain walk to step through. Measured on a 762-file TypeScript
|
|
414
|
+
// corpus, keeping them cost ~6% of total analyze wall time; dropping them
|
|
415
|
+
// keeps the block scopes that matter (if/else/for/while/try/bare blocks,
|
|
416
|
+
// where `let`/`const` genuinely shadow) at no measurable cost.
|
|
417
|
+
//
|
|
418
|
+
// Semantically safe: nothing can be declared between a function and its
|
|
419
|
+
// own body, so a binding in either resolves identically.
|
|
420
|
+
if (grouped['@scope.block'] !== undefined) {
|
|
421
|
+
const blockNode = groupedNodes['@scope.block'];
|
|
422
|
+
const parentType = blockNode?.parent?.type;
|
|
423
|
+
if (parentType !== undefined && FUNCTION_BODY_OWNER_TYPES.has(parentType))
|
|
424
|
+
continue;
|
|
425
|
+
if (blockNode === undefined || !blockDeclaresBinding(blockNode))
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
222
428
|
// Filter out `@reference.read.member` matches whose AST parent tells
|
|
223
429
|
// us they are actually calls / writes / constructor invocations. The
|
|
224
430
|
// tree-sitter pattern is context-free and matches every member_expression;
|
|
@@ -231,6 +437,27 @@ export function emitTsScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
231
437
|
continue;
|
|
232
438
|
}
|
|
233
439
|
}
|
|
440
|
+
// `this.<field> = new …` inside a STATIC method types a static property,
|
|
441
|
+
// not the instance field of the same name (#2807). Every other `this`-
|
|
442
|
+
// rebinding context is already excluded by the pattern's nesting — see the
|
|
443
|
+
// note on it in `query.ts`; `static` is an anonymous token, so no pattern
|
|
444
|
+
// can negate it and the last case is dropped here.
|
|
445
|
+
const thisFieldNode = groupedNodes['@type-binding.this-field'];
|
|
446
|
+
if (thisFieldNode !== undefined && isStaticMethodThis(thisFieldNode)) {
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
// …and a `static` FIELD is a member of the class object, not of instances,
|
|
450
|
+
// so it must not type the instance field of the same name either — see
|
|
451
|
+
// `isStaticClassFieldBinding`. Both class-field anchors are tested: the
|
|
452
|
+
// initializer form (`static p = new Wrong()`, `@type-binding.constructor`)
|
|
453
|
+
// and the annotated form (`static p: Wrong`, `@type-binding.annotation`),
|
|
454
|
+
// which collide on the Class scope the same way. The predicate self-gates on
|
|
455
|
+
// the anchor's node type, so the local `variable_declarator` patterns that
|
|
456
|
+
// share these tags are untouched.
|
|
457
|
+
if (isStaticClassFieldBinding(groupedNodes['@type-binding.constructor'], TS_CLASS_FIELD_DEFINITION_TYPES) ||
|
|
458
|
+
isStaticClassFieldBinding(groupedNodes['@type-binding.annotation'], TS_CLASS_FIELD_DEFINITION_TYPES)) {
|
|
459
|
+
continue;
|
|
460
|
+
}
|
|
234
461
|
// #1876: drop @declaration.function for array higher-order-method
|
|
235
462
|
// callbacks (`const x = arr.map(a => …)`). The HOC-wrapped-arrow
|
|
236
463
|
// pattern matches them, but the binding holds a value, not a callable.
|
|
@@ -247,6 +474,27 @@ export function emitTsScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
247
474
|
if (arrowNode !== null && isBlockedDefaultExportHoc(arrowNode)) {
|
|
248
475
|
continue;
|
|
249
476
|
}
|
|
477
|
+
// #2723: a CJS export assignment must not register a SECOND module-scope
|
|
478
|
+
// declaration for a name the file already declares lexically — the name
|
|
479
|
+
// would become ambiguous and the resolver would drop the intra-module
|
|
480
|
+
// edge that resolved before #2723.
|
|
481
|
+
if (arrowNode !== null && isShadowedCjsExportAssignment(arrowNode, tree.rootNode)) {
|
|
482
|
+
continue;
|
|
483
|
+
}
|
|
484
|
+
// #2723 follow-up: the member-assignment rule matches ANY identifier
|
|
485
|
+
// receiver so an `exports` alias can be recognised. A receiver that is
|
|
486
|
+
// not the exports object declares nothing at module scope — drop it, or
|
|
487
|
+
// every `obj.handler = fn` would bind `handler` as a module symbol.
|
|
488
|
+
if (arrowNode !== null && isUnexportedMemberAssignmentValue(arrowNode, tree.rootNode)) {
|
|
489
|
+
continue;
|
|
490
|
+
}
|
|
491
|
+
// A `this.X = fn` declares a module symbol ONLY at the top level of a
|
|
492
|
+
// CommonJS file, where `this` is `module.exports`. Inside a function it
|
|
493
|
+
// is an instance member (a Method with an owner, no module binding), and
|
|
494
|
+
// in ESM top-level `this` is undefined and exports nothing.
|
|
495
|
+
if (arrowNode !== null && isUndeclarableThisMemberValue(arrowNode, tree.rootNode)) {
|
|
496
|
+
continue;
|
|
497
|
+
}
|
|
250
498
|
}
|
|
251
499
|
if (fnDeclAnchor !== undefined) {
|
|
252
500
|
const fnNode = findFunctionNode(tree.rootNode, fnDeclAnchor.range, groupedNodes['@declaration.function']);
|
|
@@ -315,6 +563,12 @@ export function emitTsScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
315
563
|
grouped['@reference.parameter-types'] = syntheticCapture('@reference.parameter-types', callNode, JSON.stringify(argTypes));
|
|
316
564
|
}
|
|
317
565
|
}
|
|
566
|
+
// Structural receiver chain for a call whose receiver is itself an
|
|
567
|
+
// expression, so resolution can type it by folding over structure
|
|
568
|
+
// instead of re-parsing the receiver's source text. Self-gating: a
|
|
569
|
+
// non-call match, an absent receiver, or a chain with no nameable base
|
|
570
|
+
// all leave `grouped` untouched.
|
|
571
|
+
synthesizeReceiverChainCapture(grouped, groupedNodes['@reference.receiver']);
|
|
318
572
|
out.push(grouped);
|
|
319
573
|
// Synthesize `this` receiver type-bindings on every function-like
|
|
320
574
|
// scope that is structurally a class member. `receiver-binding.ts`
|
|
@@ -344,6 +598,12 @@ export function emitTsScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
344
598
|
synthesizeForOfMapTupleBindings(tree.rootNode, out);
|
|
345
599
|
synthesizeInstanceofNarrowings(tree.rootNode, out);
|
|
346
600
|
synthesizeTsInheritanceReferences(tree.rootNode, out);
|
|
601
|
+
out.push(...synthesizeCallableFlowCaptures(tree.rootNode, TS_CALLABLE_CAPTURE_OPTIONS));
|
|
602
|
+
// CommonJS module-export declarations (#2723). Shared with the JavaScript
|
|
603
|
+
// emitter: a `.ts` file in a CommonJS package uses the same forms, and
|
|
604
|
+
// without this the default-export NODE was emitted with nothing declaring it
|
|
605
|
+
// — the "found, zero callers" state this work exists to remove (#2729 F7).
|
|
606
|
+
synthesizeCjsModuleExports(tree.rootNode, filePath, out);
|
|
347
607
|
return out;
|
|
348
608
|
}
|
|
349
609
|
/**
|
|
@@ -369,8 +629,12 @@ export function emitTsScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
369
629
|
* matching arms (member_expression for extends, nested_type_identifier plain +
|
|
370
630
|
* generic-wrapped for implements).
|
|
371
631
|
*
|
|
372
|
-
* `interface_declaration`
|
|
373
|
-
*
|
|
632
|
+
* `interface_declaration` and `abstract_class_declaration` heritage IS emitted
|
|
633
|
+
* (#2842 review; both were silently skipped before, so `interface B extends A`
|
|
634
|
+
* and `abstract class X implements I` produced no edge and every dispatch walk
|
|
635
|
+
* dead-ended on a bodiless declaration). They reach their bases by different
|
|
636
|
+
* shapes: an abstract class carries the same `class_heritage` child a concrete
|
|
637
|
+
* one does, while an interface's bases hang off `extends_type_clause` directly. The EXTENDS-vs-IMPLEMENTS split is decided downstream from the
|
|
374
638
|
* resolved target's symbol kind in `preEmitInheritanceEdges` (class-extends →
|
|
375
639
|
* EXTENDS, implements-interface / interface-target → IMPLEMENTS), so all bases
|
|
376
640
|
* are emitted with the same `inherits` kind here. The base lookup name is
|
|
@@ -387,7 +651,26 @@ function synthesizeTsInheritanceReferences(root, out) {
|
|
|
387
651
|
if (child !== null)
|
|
388
652
|
stack.push(child);
|
|
389
653
|
}
|
|
390
|
-
|
|
654
|
+
// `interface B extends A, C` hangs its bases off an `extends_type_clause`
|
|
655
|
+
// DIRECTLY on the interface — there is no `class_heritage` wrapper, so the
|
|
656
|
+
// class path below cannot reach them (#2842 review). The clause's `type`
|
|
657
|
+
// field is `multiple: true`, so `childForFieldName('type')` would silently
|
|
658
|
+
// return only `A` and drop `C`; iterate the named children instead.
|
|
659
|
+
if (node.type === 'interface_declaration') {
|
|
660
|
+
for (const child of node.namedChildren) {
|
|
661
|
+
if (child === null || child.type !== 'extends_type_clause')
|
|
662
|
+
continue;
|
|
663
|
+
for (const base of child.namedChildren) {
|
|
664
|
+
emitTsInheritanceBase(base, out);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
continue;
|
|
668
|
+
}
|
|
669
|
+
// `abstract class X implements I` carries an identical `class_heritage`
|
|
670
|
+
// child, so the existing body handles it once the node type is admitted.
|
|
671
|
+
// Omitting it severed the only link between an interface and the concrete
|
|
672
|
+
// classes below an abstract base — a whole subtree, not a leaf.
|
|
673
|
+
if (node.type !== 'class_declaration' && node.type !== 'abstract_class_declaration')
|
|
391
674
|
continue;
|
|
392
675
|
// Find the `class_heritage` child (holds extends / implements clauses).
|
|
393
676
|
let heritage = null;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shadowed CommonJS export-assignment detection (issue #2723).
|
|
3
|
+
*
|
|
4
|
+
* The CJS declaration rules in the JS/TS scope queries bind the bare property
|
|
5
|
+
* name of `exports.X = function () {}` / `module.exports.X = (a) => a` into the
|
|
6
|
+
* enclosing module scope, so importers resolve to it by name. That is the whole
|
|
7
|
+
* point of #2723 — without it the graph node exists and nothing resolves to it.
|
|
8
|
+
*
|
|
9
|
+
* But a file may ALSO declare that same name lexically:
|
|
10
|
+
*
|
|
11
|
+
* function dup(v) { return v; }
|
|
12
|
+
* exports.dup = function (v) { return !v; };
|
|
13
|
+
* function callIt(v) { return dup(v); }
|
|
14
|
+
*
|
|
15
|
+
* Then the module scope holds TWO declarations named `dup`, the name is
|
|
16
|
+
* ambiguous, and the resolver drops `callIt -> dup` altogether — an edge that
|
|
17
|
+
* resolved fine before #2723. A silently missing caller is worse than the gap
|
|
18
|
+
* #2723 set out to close, so the emitter drops the CJS declaration in exactly
|
|
19
|
+
* this case: the lexical declaration already supplies the module-scope name,
|
|
20
|
+
* so importers still resolve, and intra-module resolution is unchanged from
|
|
21
|
+
* before #2723.
|
|
22
|
+
*
|
|
23
|
+
* Only the `@declaration.function` match is suppressed. The graph node comes
|
|
24
|
+
* from a separate query (`tree-sitter-queries.ts`) and collapses onto the
|
|
25
|
+
* lexical declaration's node by name anyway, so no node is lost.
|
|
26
|
+
*
|
|
27
|
+
* Shared by both the JavaScript and TypeScript capture emitters — every
|
|
28
|
+
* grammar node named here (`assignment_expression`, `member_expression`,
|
|
29
|
+
* `property_identifier`, `function_declaration`, `lexical_declaration`,
|
|
30
|
+
* `variable_declaration`, `export_statement`) exists in both
|
|
31
|
+
* `tree-sitter-javascript` and `tree-sitter-typescript`.
|
|
32
|
+
*
|
|
33
|
+
* Pure given the input nodes. No I/O, no globals; the cache is keyed on the
|
|
34
|
+
* root node it derives from, so it cannot outlive its tree.
|
|
35
|
+
*/
|
|
36
|
+
import type { SyntaxNode } from '../../utils/ast-helpers.js';
|
|
37
|
+
/**
|
|
38
|
+
* True when `assignment` is a `this.X = <function>` at MODULE level — i.e. no
|
|
39
|
+
* `this`-binding function encloses it — inside a CommonJS module, which makes
|
|
40
|
+
* it an export of `X`.
|
|
41
|
+
*
|
|
42
|
+
* Arrow functions are transparent here: ECMA-262 gives an arrow
|
|
43
|
+
* `[[ThisMode]] = lexical`, so a top-level arrow's `this` is still the
|
|
44
|
+
* module's. Every other function form binds its own receiver and stops the
|
|
45
|
+
* walk — that is an instance member, handled as a Method instead.
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* True when `assignment` is a `this.X = <callable>` at MODULE level, regardless
|
|
49
|
+
* of module system.
|
|
50
|
+
*
|
|
51
|
+
* Distinct from {@link isModuleLevelThisExport}, which additionally requires the
|
|
52
|
+
* file to be CommonJS. A module-level `this` member in ESM (or in a file with no
|
|
53
|
+
* module-system signal) is neither an export nor an instance member — `this` is
|
|
54
|
+
* `undefined` there — so it should produce nothing rather than an ownerless
|
|
55
|
+
* `Method` node (#2729 review F13).
|
|
56
|
+
*/
|
|
57
|
+
export declare function isModuleLevelThisAssignment(assignment: SyntaxNode): boolean;
|
|
58
|
+
export declare function isModuleLevelThisExport(assignment: SyntaxNode, root: SyntaxNode, filePath?: string): boolean;
|
|
59
|
+
/** The property name of a module-level `this.X = fn` export, or null. */
|
|
60
|
+
export declare function moduleLevelThisExportName(assignment: SyntaxNode, root: SyntaxNode, filePath?: string): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* The name this assignment exports, or null when it exports nothing.
|
|
63
|
+
*
|
|
64
|
+
* Takes the VALUE node (the function literal) and the program root, because
|
|
65
|
+
* alias resolution is a whole-file question. Used by the capture emitters to
|
|
66
|
+
* keep the widened `<identifier>.X = fn` match only when the receiver really
|
|
67
|
+
* is the exports object.
|
|
68
|
+
*/
|
|
69
|
+
export declare function cjsExportedNameFor(node: SyntaxNode, root: SyntaxNode): string | null;
|
|
70
|
+
/**
|
|
71
|
+
* True when `node` is the value of a `this.X = fn` assignment that declares
|
|
72
|
+
* NOTHING at module scope — either because a function encloses it (an instance
|
|
73
|
+
* member, which gets a Method + owner edge instead) or because the file is not
|
|
74
|
+
* CommonJS (top-level `this` is undefined in ESM).
|
|
75
|
+
*/
|
|
76
|
+
export declare function isUndeclarableThisMemberValue(node: SyntaxNode, root: SyntaxNode): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* True when `node` is the value of a `<identifier>.<member> = fn` assignment
|
|
79
|
+
* whose receiver is NOT the exports object — the over-match the widened
|
|
80
|
+
* member-assignment rule accepts so an `exports` alias can be recognised.
|
|
81
|
+
*
|
|
82
|
+
* Such a receiver declares nothing at module scope: `obj.handler = fn` binds a
|
|
83
|
+
* property of `obj`, not a module symbol named `handler`. Prototype and `this`
|
|
84
|
+
* receivers are not identifiers, so they never reach this guard and keep their
|
|
85
|
+
* own (Method) treatment.
|
|
86
|
+
*/
|
|
87
|
+
export declare function isUnexportedMemberAssignmentValue(node: SyntaxNode, root: SyntaxNode): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* True when `node` (an `arrow_function` / `function_expression` /
|
|
90
|
+
* `generator_function`) is the value of a CJS export assignment whose property
|
|
91
|
+
* name is ALREADY declared at module scope of `root`.
|
|
92
|
+
*
|
|
93
|
+
* False for a CJS export whose name is declared only by the assignment (the
|
|
94
|
+
* ordinary #2723 case — the declaration must be emitted), and false for
|
|
95
|
+
* anything that is not a CJS export assignment at all.
|
|
96
|
+
*/
|
|
97
|
+
export declare function isShadowedCjsExportAssignment(node: SyntaxNode, root: SyntaxNode): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* The module-scope name this assignment value exports, across EVERY export
|
|
100
|
+
* form — direct `exports.X`, `module.exports.X`, an alias receiver, a
|
|
101
|
+
* module-level `this.X`, and the anonymous/named default export.
|
|
102
|
+
*
|
|
103
|
+
* One entry point so the shadow guard cannot silently miss a form. Previously
|
|
104
|
+
* it consulted only the direct path: the alias path was skipped because `root`
|
|
105
|
+
* was not forwarded, `this` never reached it at all, and the default export had
|
|
106
|
+
* no check — three holes that each dropped a real call edge or, for the
|
|
107
|
+
* default, fabricated a self-recursive one (#2729 review F3/F4).
|
|
108
|
+
*/
|
|
109
|
+
export declare function cjsExportedName(value: SyntaxNode, root: SyntaxNode): string | null;
|
|
110
|
+
/**
|
|
111
|
+
* True when the DERIVED default-export name collides with a callable the module
|
|
112
|
+
* already declares.
|
|
113
|
+
*
|
|
114
|
+
* `format.js` containing `function format() {}` plus an anonymous
|
|
115
|
+
* `module.exports = function () { return format(v); }` merged both onto one
|
|
116
|
+
* node, and the inner call to `format` then resolved to the merged node —
|
|
117
|
+
* fabricating a self-recursion edge present in no source (#2729 review F4).
|
|
118
|
+
* A fabricated edge is worse than a missing one: it misleads `impact` with a
|
|
119
|
+
* caller that does not exist.
|
|
120
|
+
*/
|
|
121
|
+
export declare function defaultExportNameCollides(assignment: SyntaxNode, root: SyntaxNode, derivedName: string): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Same question as {@link isShadowedCjsExportAssignment}, asked of the
|
|
124
|
+
* ASSIGNMENT node rather than its value — the shape `provider.labelOverride`
|
|
125
|
+
* receives, since the graph-node capture is anchored on the assignment.
|
|
126
|
+
*
|
|
127
|
+
* Used to drop the graph node too, not just the scope declaration. When the
|
|
128
|
+
* shadowed name is a `function`, the node collapsed onto the lexical
|
|
129
|
+
* declaration's node anyway (same label, same id), but a `class Dup {}` plus
|
|
130
|
+
* `exports.Dup = function () {}` produced `Class:f:Dup` AND an orphan
|
|
131
|
+
* `Function:f:Dup` — a node nothing can reach, because the declaration that
|
|
132
|
+
* would have made it reachable is suppressed by the rule above.
|
|
133
|
+
*/
|
|
134
|
+
export declare function isShadowedCjsExportAssignmentNode(node: SyntaxNode, root: SyntaxNode): boolean;
|