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
|
@@ -1,53 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adapter from `(ParsedImport, WorkspaceIndex)` → concrete file path.
|
|
3
3
|
*
|
|
4
|
-
* Delegates to the
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Delegates to `module-resolution.ts`, which runs the algorithm `tsc` and Node
|
|
5
|
+
* actually run. It used to delegate to the shared `resolveImportPath`, whose
|
|
6
|
+
* final step was `suffixResolve` — a repo-wide search for any file path ending
|
|
7
|
+
* in the specifier. That is what #2953 removed: this path now resolves only
|
|
8
|
+
* against declared inputs (real paths, tsconfig `paths`/`baseUrl`, package
|
|
9
|
+
* manifests) and answers `null` for everything else.
|
|
7
10
|
*
|
|
8
|
-
* The `WorkspaceIndex` is opaque at the shared contract layer; we
|
|
9
|
-
*
|
|
10
|
-
* the
|
|
11
|
-
* resolver reads.
|
|
11
|
+
* The `WorkspaceIndex` is opaque at the shared contract layer; we narrow it to
|
|
12
|
+
* a TypeScript-shaped context carrying `fromFile`, the workspace file set, and
|
|
13
|
+
* the two config indexes the algorithm reads.
|
|
12
14
|
*
|
|
13
15
|
* Returning `null` lets the finalize algorithm mark the edge as
|
|
14
|
-
* `linkStatus: 'unresolved'
|
|
16
|
+
* `linkStatus: 'unresolved'` — which for an external package is the correct
|
|
17
|
+
* and complete answer.
|
|
15
18
|
*/
|
|
16
19
|
import type { ParsedImport, WorkspaceIndex } from '../../../../_shared/index.js';
|
|
17
|
-
import {
|
|
18
|
-
import type {
|
|
19
|
-
import type { TsconfigPaths } from '../../language-config.js';
|
|
20
|
+
import type { NodeWorkspacePackages } from '../../import-resolvers/node-workspace-packages.js';
|
|
21
|
+
import type { TsconfigIndex } from './tsconfig.js';
|
|
20
22
|
export interface TsResolveContext {
|
|
21
23
|
readonly fromFile: string;
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
readonly allFileList?: readonly string[];
|
|
29
|
-
readonly normalizedFileList?: readonly string[];
|
|
30
|
-
/** Per-call resolution cache to dedupe repeated lookups. */
|
|
31
|
-
readonly resolveCache?: Map<string, string | null>;
|
|
32
|
-
/** Prebuilt suffix index for O(1)-style package/absolute import matching. */
|
|
33
|
-
readonly index?: SuffixIndex;
|
|
34
|
-
/** Parsed tsconfig path-aliases. `null` = no aliases configured. */
|
|
35
|
-
readonly tsconfigPaths?: TsconfigPaths | null;
|
|
36
|
-
/** JavaScript vs TypeScript switch — affects the extensions the
|
|
37
|
-
* resolver tries. Defaults to TypeScript. */
|
|
38
|
-
readonly language?: SupportedLanguages.TypeScript | SupportedLanguages.JavaScript;
|
|
24
|
+
/** The workspace file set. */
|
|
25
|
+
readonly allFilePaths: ReadonlySet<string>;
|
|
26
|
+
/** Every tsconfig in the repo; `null` when the repo declares none. */
|
|
27
|
+
readonly tsconfigs?: TsconfigIndex | null;
|
|
28
|
+
/** Every in-repo `package.json`; `null` when the repo declares none. */
|
|
29
|
+
readonly nodeWorkspacePackages?: NodeWorkspacePackages | null;
|
|
39
30
|
}
|
|
40
31
|
export declare function resolveTsImportTarget(parsedImport: ParsedImport, workspaceIndex: WorkspaceIndex): string | null;
|
|
41
32
|
/**
|
|
42
|
-
* Resolve a raw module-path string to a workspace file path
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* a fake `ParsedImport` to reach the resolver.
|
|
33
|
+
* Resolve a raw module-path string to a workspace file path. Operates directly
|
|
34
|
+
* on the source string without requiring a `ParsedImport`, so the
|
|
35
|
+
* `ScopeResolver.resolveImportTarget` adapter doesn't need to construct a fake
|
|
36
|
+
* one to reach the resolver.
|
|
47
37
|
*
|
|
48
|
-
* Returns `null` when
|
|
49
|
-
*
|
|
50
|
-
* - `targetRaw` is empty
|
|
51
|
-
* - the resolver finds no matching file
|
|
38
|
+
* Returns `null` when `targetRaw` is empty, names an external package, or names
|
|
39
|
+
* something no declared config maps into the repo.
|
|
52
40
|
*/
|
|
53
41
|
export declare function resolveTsTarget(targetRaw: string, ctx: TsResolveContext): string | null;
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adapter from `(ParsedImport, WorkspaceIndex)` → concrete file path.
|
|
3
3
|
*
|
|
4
|
-
* Delegates to the
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Delegates to `module-resolution.ts`, which runs the algorithm `tsc` and Node
|
|
5
|
+
* actually run. It used to delegate to the shared `resolveImportPath`, whose
|
|
6
|
+
* final step was `suffixResolve` — a repo-wide search for any file path ending
|
|
7
|
+
* in the specifier. That is what #2953 removed: this path now resolves only
|
|
8
|
+
* against declared inputs (real paths, tsconfig `paths`/`baseUrl`, package
|
|
9
|
+
* manifests) and answers `null` for everything else.
|
|
7
10
|
*
|
|
8
|
-
* The `WorkspaceIndex` is opaque at the shared contract layer; we
|
|
9
|
-
*
|
|
10
|
-
* the
|
|
11
|
-
* resolver reads.
|
|
11
|
+
* The `WorkspaceIndex` is opaque at the shared contract layer; we narrow it to
|
|
12
|
+
* a TypeScript-shaped context carrying `fromFile`, the workspace file set, and
|
|
13
|
+
* the two config indexes the algorithm reads.
|
|
12
14
|
*
|
|
13
15
|
* Returning `null` lets the finalize algorithm mark the edge as
|
|
14
|
-
* `linkStatus: 'unresolved'
|
|
16
|
+
* `linkStatus: 'unresolved'` — which for an external package is the correct
|
|
17
|
+
* and complete answer.
|
|
15
18
|
*/
|
|
16
|
-
import {
|
|
17
|
-
import { resolveImportPath } from '../../import-resolvers/standard.js';
|
|
19
|
+
import { resolveTsModule } from './module-resolution.js';
|
|
18
20
|
export function resolveTsImportTarget(parsedImport, workspaceIndex) {
|
|
19
21
|
const ctx = narrowTsContext(workspaceIndex);
|
|
20
22
|
if (ctx === null)
|
|
@@ -30,25 +32,21 @@ export function resolveTsImportTarget(parsedImport, workspaceIndex) {
|
|
|
30
32
|
return resolveTsTarget(parsedImport.targetRaw, ctx);
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
|
-
* Resolve a raw module-path string to a workspace file path
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* a fake `ParsedImport` to reach the resolver.
|
|
35
|
+
* Resolve a raw module-path string to a workspace file path. Operates directly
|
|
36
|
+
* on the source string without requiring a `ParsedImport`, so the
|
|
37
|
+
* `ScopeResolver.resolveImportTarget` adapter doesn't need to construct a fake
|
|
38
|
+
* one to reach the resolver.
|
|
38
39
|
*
|
|
39
|
-
* Returns `null` when
|
|
40
|
-
*
|
|
41
|
-
* - `targetRaw` is empty
|
|
42
|
-
* - the resolver finds no matching file
|
|
40
|
+
* Returns `null` when `targetRaw` is empty, names an external package, or names
|
|
41
|
+
* something no declared config maps into the repo.
|
|
43
42
|
*/
|
|
44
43
|
export function resolveTsTarget(targetRaw, ctx) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return resolveImportPath(ctx.fromFile, targetRaw, ctx.allFilePaths, allFileList, normalizedFileList, resolveCache, language, ctx.tsconfigPaths ?? null, ctx.index);
|
|
44
|
+
return resolveTsModule(targetRaw, {
|
|
45
|
+
fromFile: ctx.fromFile,
|
|
46
|
+
allFilePaths: ctx.allFilePaths,
|
|
47
|
+
tsconfigs: ctx.tsconfigs ?? null,
|
|
48
|
+
workspacePackages: ctx.nodeWorkspacePackages ?? null,
|
|
49
|
+
});
|
|
52
50
|
}
|
|
53
51
|
function narrowTsContext(workspaceIndex) {
|
|
54
52
|
const ctx = workspaceIndex;
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* The import matches arrive pre-decomposed by `emitTsScopeCaptures`
|
|
10
10
|
* (one imported name per match, with synthesized
|
|
11
|
-
* `@import.kind/source/name/alias` markers — see
|
|
11
|
+
* `@import.kind/source/name/alias/type-only` markers — see
|
|
12
|
+
* `import-decomposer.ts`).
|
|
12
13
|
* The type-binding matches arrive straight from the raw query captures —
|
|
13
14
|
* each `@type-binding.*` anchor carries `@type-binding.name` +
|
|
14
15
|
* `@type-binding.type`.
|
|
@@ -33,3 +34,22 @@ export declare function interpretTsImport(captures: CaptureMatch): ParsedImport
|
|
|
33
34
|
* to TS today, since TS uses `.values()` / `.keys()` call syntax)
|
|
34
35
|
*/
|
|
35
36
|
export declare function interpretTsTypeBinding(captures: CaptureMatch): ParsedTypeBinding | null;
|
|
37
|
+
/**
|
|
38
|
+
* Would this interpreter reduce `text` to the type it CONTAINS rather than to
|
|
39
|
+
* the type it names? True for the array suffix (`Repo[]`) and for every
|
|
40
|
+
* transparent wrapper on {@link stripGeneric}'s list (`Array<Repo>`,
|
|
41
|
+
* `Promise<Repo>`, `Set<Repo>`, …).
|
|
42
|
+
*
|
|
43
|
+
* Exported for the ONE caller that must decline exactly what this returns true
|
|
44
|
+
* for: the JavaScript provider's JSDoc `@type` FIELD binding (#2833). Element
|
|
45
|
+
* reduction is right where it was built — a chain step, a `for…of` variable, an
|
|
46
|
+
* awaited value — and wrong for a field, whose declared type IS the container:
|
|
47
|
+
* a field annotated `{Repo[]}` reduced to `Repo` makes `this.repos.find(…)`,
|
|
48
|
+
* an Array method call, resolve to a repository class's own `find`. A wrong
|
|
49
|
+
* edge, which #2833 treats as strictly worse than a missing one.
|
|
50
|
+
*
|
|
51
|
+
* A predicate rather than a copied name list on purpose: the list lives in
|
|
52
|
+
* `stripGeneric` and a second copy would drift out of sync silently, exactly
|
|
53
|
+
* the failure mode `python/interpret.ts` records for its own reduction.
|
|
54
|
+
*/
|
|
55
|
+
export declare function reducesToContainedType(text: string): boolean;
|
|
@@ -8,18 +8,22 @@
|
|
|
8
8
|
*
|
|
9
9
|
* The import matches arrive pre-decomposed by `emitTsScopeCaptures`
|
|
10
10
|
* (one imported name per match, with synthesized
|
|
11
|
-
* `@import.kind/source/name/alias` markers — see
|
|
11
|
+
* `@import.kind/source/name/alias/type-only` markers — see
|
|
12
|
+
* `import-decomposer.ts`).
|
|
12
13
|
* The type-binding matches arrive straight from the raw query captures —
|
|
13
14
|
* each `@type-binding.*` anchor carries `@type-binding.name` +
|
|
14
15
|
* `@type-binding.type`.
|
|
15
16
|
*/
|
|
17
|
+
/** Shared empty result for the non-type-only path — see `typeOnly` below. */
|
|
18
|
+
const NO_TYPE_ONLY = Object.freeze({});
|
|
16
19
|
// ─── interpretImport ──────────────────────────────────────────────────────
|
|
17
20
|
export function interpretTsImport(captures) {
|
|
18
21
|
// Markers attached by `splitImportStatement` (import-decomposer.ts):
|
|
19
|
-
// @import.kind
|
|
20
|
-
// @import.name
|
|
21
|
-
// @import.alias
|
|
22
|
-
// @import.source
|
|
22
|
+
// @import.kind : one of the kinds documented there
|
|
23
|
+
// @import.name : imported name from the source module
|
|
24
|
+
// @import.alias : local alias name (for default / aliased / namespace forms)
|
|
25
|
+
// @import.source : module path (always present except dynamic-unresolved)
|
|
26
|
+
// @import.type-only : presence-only — this specifier is erased by `tsc`
|
|
23
27
|
const kindCap = captures['@import.kind'];
|
|
24
28
|
const nameCap = captures['@import.name'];
|
|
25
29
|
const aliasCap = captures['@import.alias'];
|
|
@@ -27,6 +31,13 @@ export function interpretTsImport(captures) {
|
|
|
27
31
|
const kind = kindCap?.text;
|
|
28
32
|
if (kind === undefined)
|
|
29
33
|
return null;
|
|
34
|
+
// Spread rather than `typeOnly: <boolean>` so a value import keeps the exact
|
|
35
|
+
// object shape it had before this marker existed — every `ParsedImport`
|
|
36
|
+
// equality assertion in the suite compares whole objects.
|
|
37
|
+
// `NO_TYPE_ONLY` is shared rather than a fresh `{}` per import: the spread
|
|
38
|
+
// reads it and never retains it, and the ~99% of imports that are not
|
|
39
|
+
// type-only would otherwise each allocate an object to contribute nothing.
|
|
40
|
+
const typeOnly = captures['@import.type-only'] !== undefined ? { typeOnly: true } : NO_TYPE_ONLY;
|
|
30
41
|
switch (kind) {
|
|
31
42
|
case 'default': {
|
|
32
43
|
// `import D from './m'` — semantically "alias for the module's
|
|
@@ -41,6 +52,7 @@ export function interpretTsImport(captures) {
|
|
|
41
52
|
importedName: 'default',
|
|
42
53
|
alias: aliasCap.text,
|
|
43
54
|
targetRaw: sourceCap.text,
|
|
55
|
+
...typeOnly,
|
|
44
56
|
};
|
|
45
57
|
}
|
|
46
58
|
case 'named': {
|
|
@@ -52,6 +64,7 @@ export function interpretTsImport(captures) {
|
|
|
52
64
|
localName: nameCap.text,
|
|
53
65
|
importedName: nameCap.text,
|
|
54
66
|
targetRaw: sourceCap.text,
|
|
67
|
+
...typeOnly,
|
|
55
68
|
};
|
|
56
69
|
}
|
|
57
70
|
case 'named-alias': {
|
|
@@ -65,6 +78,7 @@ export function interpretTsImport(captures) {
|
|
|
65
78
|
importedName: nameCap.text,
|
|
66
79
|
alias: aliasCap.text,
|
|
67
80
|
targetRaw: sourceCap.text,
|
|
81
|
+
...typeOnly,
|
|
68
82
|
};
|
|
69
83
|
}
|
|
70
84
|
case 'namespace': {
|
|
@@ -76,6 +90,7 @@ export function interpretTsImport(captures) {
|
|
|
76
90
|
localName: aliasCap.text,
|
|
77
91
|
importedName: sourceCap.text,
|
|
78
92
|
targetRaw: sourceCap.text,
|
|
93
|
+
...typeOnly,
|
|
79
94
|
};
|
|
80
95
|
}
|
|
81
96
|
case 'reexport': {
|
|
@@ -87,6 +102,7 @@ export function interpretTsImport(captures) {
|
|
|
87
102
|
localName: nameCap.text,
|
|
88
103
|
importedName: nameCap.text,
|
|
89
104
|
targetRaw: sourceCap.text,
|
|
105
|
+
...typeOnly,
|
|
90
106
|
};
|
|
91
107
|
}
|
|
92
108
|
case 'reexport-alias': {
|
|
@@ -100,6 +116,7 @@ export function interpretTsImport(captures) {
|
|
|
100
116
|
importedName: nameCap.text,
|
|
101
117
|
alias: aliasCap.text,
|
|
102
118
|
targetRaw: sourceCap.text,
|
|
119
|
+
...typeOnly,
|
|
103
120
|
};
|
|
104
121
|
}
|
|
105
122
|
case 'reexport-wildcard': {
|
|
@@ -120,6 +137,7 @@ export function interpretTsImport(captures) {
|
|
|
120
137
|
localName: aliasCap.text,
|
|
121
138
|
importedName: sourceCap.text,
|
|
122
139
|
targetRaw: sourceCap.text,
|
|
140
|
+
...typeOnly,
|
|
123
141
|
};
|
|
124
142
|
}
|
|
125
143
|
case 'dynamic': {
|
|
@@ -315,3 +333,25 @@ function stripQualifier(text) {
|
|
|
315
333
|
return text;
|
|
316
334
|
return text.slice(lastDot + 1);
|
|
317
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* Would this interpreter reduce `text` to the type it CONTAINS rather than to
|
|
338
|
+
* the type it names? True for the array suffix (`Repo[]`) and for every
|
|
339
|
+
* transparent wrapper on {@link stripGeneric}'s list (`Array<Repo>`,
|
|
340
|
+
* `Promise<Repo>`, `Set<Repo>`, …).
|
|
341
|
+
*
|
|
342
|
+
* Exported for the ONE caller that must decline exactly what this returns true
|
|
343
|
+
* for: the JavaScript provider's JSDoc `@type` FIELD binding (#2833). Element
|
|
344
|
+
* reduction is right where it was built — a chain step, a `for…of` variable, an
|
|
345
|
+
* awaited value — and wrong for a field, whose declared type IS the container:
|
|
346
|
+
* a field annotated `{Repo[]}` reduced to `Repo` makes `this.repos.find(…)`,
|
|
347
|
+
* an Array method call, resolve to a repository class's own `find`. A wrong
|
|
348
|
+
* edge, which #2833 treats as strictly worse than a missing one.
|
|
349
|
+
*
|
|
350
|
+
* A predicate rather than a copied name list on purpose: the list lives in
|
|
351
|
+
* `stripGeneric` and a second copy would drift out of sync silently, exactly
|
|
352
|
+
* the failure mode `python/interpret.ts` records for its own reduction.
|
|
353
|
+
*/
|
|
354
|
+
export function reducesToContainedType(text) {
|
|
355
|
+
const trimmed = stripReadonly(text.trim());
|
|
356
|
+
return stripArraySuffix(trimmed) !== trimmed || stripGeneric(trimmed) !== trimmed;
|
|
357
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript / JavaScript module resolution (#2953).
|
|
3
|
+
*
|
|
4
|
+
* This is the algorithm `tsc` and Node actually run, in the order they run it.
|
|
5
|
+
* It replaces `import-resolvers/utils.ts:suffixResolve` on the TS/JS/Vue path,
|
|
6
|
+
* which answered a different question — "does any file in this repo have a path
|
|
7
|
+
* ending in this specifier?" — and answered it by dropping leading segments
|
|
8
|
+
* until something matched. That is why `@acme/telemetry/nest`, a registry
|
|
9
|
+
* dependency, landed on the repo's only path ending in `nest/index.ts`.
|
|
10
|
+
*
|
|
11
|
+
* Every rule below resolves against something DECLARED: a real path, a
|
|
12
|
+
* `tsconfig` mapping, or a `package.json` manifest. A specifier that matches
|
|
13
|
+
* none of them is external, and external resolves to nothing. There is
|
|
14
|
+
* deliberately no fallback: a guess is what this module exists to remove, and
|
|
15
|
+
* an edge nobody declared is worse than a missing one precisely because it
|
|
16
|
+
* cannot be told apart from a real one downstream.
|
|
17
|
+
*
|
|
18
|
+
* ## The order, and why it is this order
|
|
19
|
+
*
|
|
20
|
+
* 1. relative / absolute — a path is a path; nothing else can claim it.
|
|
21
|
+
* 2. `#`-prefixed — package.json `imports`, which is scoped to the importing
|
|
22
|
+
* package and shadows everything else by design.
|
|
23
|
+
* 3. tsconfig `paths` — explicit mappings win over `baseUrl`, and the LONGEST
|
|
24
|
+
* matching pattern wins among them (tsc's rule, not first-declared).
|
|
25
|
+
* 4. tsconfig `baseUrl` — the rule that makes `import 'src/utils/foo'` legal.
|
|
26
|
+
* Note it applies only when a config actually declares one; without it,
|
|
27
|
+
* TypeScript treats a non-relative specifier as a package lookup, and so
|
|
28
|
+
* does this module.
|
|
29
|
+
* 5. workspace package — the manifest map, resolved through that package's
|
|
30
|
+
* own `exports` / `main` / `module` / `types`.
|
|
31
|
+
* 6. anything else — external. `null`.
|
|
32
|
+
*/
|
|
33
|
+
import type { NodeWorkspacePackages } from '../../import-resolvers/node-workspace-packages.js';
|
|
34
|
+
import { type TsconfigIndex } from './tsconfig.js';
|
|
35
|
+
export interface TsModuleResolutionContext {
|
|
36
|
+
readonly fromFile: string;
|
|
37
|
+
readonly allFilePaths: ReadonlySet<string>;
|
|
38
|
+
readonly tsconfigs: TsconfigIndex | null;
|
|
39
|
+
readonly workspacePackages: NodeWorkspacePackages | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resolve one specifier to a repo file, or `null` when nothing in the repo
|
|
43
|
+
* declares it.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveTsModule(specifier: string, ctx: TsModuleResolutionContext): string | null;
|
|
46
|
+
/** Whether a specifier names a package rather than a path — used by callers
|
|
47
|
+
* that want to report an unresolved import as external rather than missing. */
|
|
48
|
+
export declare function isPackageSpecifier(specifier: string): boolean;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript / JavaScript module resolution (#2953).
|
|
3
|
+
*
|
|
4
|
+
* This is the algorithm `tsc` and Node actually run, in the order they run it.
|
|
5
|
+
* It replaces `import-resolvers/utils.ts:suffixResolve` on the TS/JS/Vue path,
|
|
6
|
+
* which answered a different question — "does any file in this repo have a path
|
|
7
|
+
* ending in this specifier?" — and answered it by dropping leading segments
|
|
8
|
+
* until something matched. That is why `@acme/telemetry/nest`, a registry
|
|
9
|
+
* dependency, landed on the repo's only path ending in `nest/index.ts`.
|
|
10
|
+
*
|
|
11
|
+
* Every rule below resolves against something DECLARED: a real path, a
|
|
12
|
+
* `tsconfig` mapping, or a `package.json` manifest. A specifier that matches
|
|
13
|
+
* none of them is external, and external resolves to nothing. There is
|
|
14
|
+
* deliberately no fallback: a guess is what this module exists to remove, and
|
|
15
|
+
* an edge nobody declared is worse than a missing one precisely because it
|
|
16
|
+
* cannot be told apart from a real one downstream.
|
|
17
|
+
*
|
|
18
|
+
* ## The order, and why it is this order
|
|
19
|
+
*
|
|
20
|
+
* 1. relative / absolute — a path is a path; nothing else can claim it.
|
|
21
|
+
* 2. `#`-prefixed — package.json `imports`, which is scoped to the importing
|
|
22
|
+
* package and shadows everything else by design.
|
|
23
|
+
* 3. tsconfig `paths` — explicit mappings win over `baseUrl`, and the LONGEST
|
|
24
|
+
* matching pattern wins among them (tsc's rule, not first-declared).
|
|
25
|
+
* 4. tsconfig `baseUrl` — the rule that makes `import 'src/utils/foo'` legal.
|
|
26
|
+
* Note it applies only when a config actually declares one; without it,
|
|
27
|
+
* TypeScript treats a non-relative specifier as a package lookup, and so
|
|
28
|
+
* does this module.
|
|
29
|
+
* 5. workspace package — the manifest map, resolved through that package's
|
|
30
|
+
* own `exports` / `main` / `module` / `types`.
|
|
31
|
+
* 6. anything else — external. `null`.
|
|
32
|
+
*/
|
|
33
|
+
import { matchSubpathMap, nodePackageNameOf, owningPackage, resolveNodeWorkspaceImport, substituteStar, } from '../../import-resolvers/node-workspace-packages.js';
|
|
34
|
+
import { resolveFile } from './file-candidates.js';
|
|
35
|
+
import { tsconfigFor } from './tsconfig.js';
|
|
36
|
+
/**
|
|
37
|
+
* Resolve one specifier to a repo file, or `null` when nothing in the repo
|
|
38
|
+
* declares it.
|
|
39
|
+
*/
|
|
40
|
+
export function resolveTsModule(specifier, ctx) {
|
|
41
|
+
if (specifier === '')
|
|
42
|
+
return null;
|
|
43
|
+
// 1. A path specifier.
|
|
44
|
+
if (specifier.startsWith('.')) {
|
|
45
|
+
const joined = joinFrom(ctx.fromFile, specifier);
|
|
46
|
+
return joined === null ? null : resolveFile(joined, ctx.allFilePaths);
|
|
47
|
+
}
|
|
48
|
+
if (specifier.startsWith('/')) {
|
|
49
|
+
return resolveFile(specifier.slice(1), ctx.allFilePaths);
|
|
50
|
+
}
|
|
51
|
+
// 2. Package-internal `#imports`. Scoped to the importing package, so it is
|
|
52
|
+
// looked up there and nowhere else — a `#` specifier that the package does
|
|
53
|
+
// not declare is an error in Node, not a repo-wide search.
|
|
54
|
+
if (specifier.startsWith('#')) {
|
|
55
|
+
return resolveSubpathImport(specifier, ctx);
|
|
56
|
+
}
|
|
57
|
+
const config = tsconfigFor(ctx.tsconfigs, ctx.fromFile);
|
|
58
|
+
// 3. `paths`, longest matching pattern first.
|
|
59
|
+
if (config !== null && config.paths.length > 0) {
|
|
60
|
+
const viaPaths = resolveViaPaths(specifier, config.paths, ctx.allFilePaths);
|
|
61
|
+
if (viaPaths !== null)
|
|
62
|
+
return viaPaths;
|
|
63
|
+
}
|
|
64
|
+
// 4. `baseUrl`.
|
|
65
|
+
if (config !== null && config.baseUrl !== null) {
|
|
66
|
+
const viaBaseUrl = resolveFile(joinRepo(config.baseUrl, specifier), ctx.allFilePaths);
|
|
67
|
+
if (viaBaseUrl !== null)
|
|
68
|
+
return viaBaseUrl;
|
|
69
|
+
}
|
|
70
|
+
// 5. A package that lives in this repo.
|
|
71
|
+
const viaWorkspace = resolveNodeWorkspaceImport(specifier, ctx.workspacePackages, ctx.allFilePaths);
|
|
72
|
+
if (viaWorkspace !== null)
|
|
73
|
+
return viaWorkspace;
|
|
74
|
+
// 6. External. Nothing in the repo declared it, so it resolves to nothing —
|
|
75
|
+
// which for a registry dependency is the correct and complete answer.
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Apply `paths` the way tsc does: the pattern with the longest literal prefix
|
|
80
|
+
* before `*` wins, and its targets are tried in declaration order.
|
|
81
|
+
*
|
|
82
|
+
* The old loader kept `targets[0]` and treated the pattern as a plain prefix,
|
|
83
|
+
* which silently mis-resolves the common `"@/*": ["./src/*", "./generated/*"]`
|
|
84
|
+
* shape — the second target is where half of a generated-code monorepo lives.
|
|
85
|
+
*/
|
|
86
|
+
function resolveViaPaths(specifier, paths, allFiles) {
|
|
87
|
+
const matches = [];
|
|
88
|
+
for (const mapping of paths) {
|
|
89
|
+
const star = mapping.pattern.indexOf('*');
|
|
90
|
+
if (star === -1) {
|
|
91
|
+
if (mapping.pattern === specifier) {
|
|
92
|
+
matches.push({ mapping, stem: null, prefixLength: mapping.pattern.length });
|
|
93
|
+
}
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const prefix = mapping.pattern.slice(0, star);
|
|
97
|
+
const suffix = mapping.pattern.slice(star + 1);
|
|
98
|
+
if (!specifier.startsWith(prefix) || !specifier.endsWith(suffix))
|
|
99
|
+
continue;
|
|
100
|
+
if (specifier.length < prefix.length + suffix.length)
|
|
101
|
+
continue;
|
|
102
|
+
matches.push({
|
|
103
|
+
mapping,
|
|
104
|
+
stem: specifier.slice(prefix.length, specifier.length - suffix.length),
|
|
105
|
+
prefixLength: prefix.length,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
// An exact (starless) pattern outranks any wildcard, THEN longer prefix wins.
|
|
109
|
+
// Sorting on prefix length alone left that first rule to luck: `a` and `a*`
|
|
110
|
+
// both match `a` with prefix length 1, so whichever was declared first won.
|
|
111
|
+
matches.sort((a, b) => Number(a.stem !== null) - Number(b.stem !== null) || b.prefixLength - a.prefixLength);
|
|
112
|
+
for (const match of matches) {
|
|
113
|
+
for (const target of match.mapping.targets) {
|
|
114
|
+
const candidate = match.stem === null ? target : substituteStar(target, match.stem);
|
|
115
|
+
const resolved = resolveFile(candidate, allFiles);
|
|
116
|
+
if (resolved !== null)
|
|
117
|
+
return resolved;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
/** Resolve `#name` against the importing file's own package manifest. */
|
|
123
|
+
function resolveSubpathImport(specifier, ctx) {
|
|
124
|
+
const packages = ctx.workspacePackages;
|
|
125
|
+
if (packages === null)
|
|
126
|
+
return null;
|
|
127
|
+
const owner = owningPackage(ctx.fromFile, packages);
|
|
128
|
+
if (owner === null)
|
|
129
|
+
return null;
|
|
130
|
+
// `imports` takes pattern keys (`"#internal/*"`) exactly like `exports`, so
|
|
131
|
+
// it gets the same matcher rather than an exact lookup.
|
|
132
|
+
for (const stem of matchSubpathMap(owner.subpathImports, specifier) ?? []) {
|
|
133
|
+
const resolved = resolveFile(stem, ctx.allFilePaths);
|
|
134
|
+
if (resolved !== null)
|
|
135
|
+
return resolved;
|
|
136
|
+
}
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Resolve a relative specifier against the importing file's directory, or
|
|
141
|
+
* `null` when it climbs out of the repository.
|
|
142
|
+
*
|
|
143
|
+
* Popping an empty segment list would silently CLAMP at the root, so
|
|
144
|
+
* `../../../secret` from `src/main.ts` became `secret` and could resolve a
|
|
145
|
+
* repo-root file the specifier never named. Outside the repo there is nothing
|
|
146
|
+
* indexed to resolve to, so the honest answer is nothing.
|
|
147
|
+
*/
|
|
148
|
+
function joinFrom(fromFile, specifier) {
|
|
149
|
+
const segments = fromFile.split('/').slice(0, -1);
|
|
150
|
+
for (const part of specifier.split('/')) {
|
|
151
|
+
if (part === '.' || part === '')
|
|
152
|
+
continue;
|
|
153
|
+
if (part === '..') {
|
|
154
|
+
if (segments.length === 0)
|
|
155
|
+
return null;
|
|
156
|
+
segments.pop();
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
segments.push(part);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return segments.join('/');
|
|
163
|
+
}
|
|
164
|
+
function joinRepo(dir, rest) {
|
|
165
|
+
return dir === '' ? rest : `${dir}/${rest}`;
|
|
166
|
+
}
|
|
167
|
+
/** Whether a specifier names a package rather than a path — used by callers
|
|
168
|
+
* that want to report an unresolved import as external rather than missing. */
|
|
169
|
+
export function isPackageSpecifier(specifier) {
|
|
170
|
+
return nodePackageNameOf(specifier) !== null;
|
|
171
|
+
}
|
|
@@ -202,7 +202,8 @@ function isProjectLocalPath(source) {
|
|
|
202
202
|
/** True when `absPath` is `repoRoot` itself or lives beneath it. */
|
|
203
203
|
function isWithinRepo(repoRoot, absPath) {
|
|
204
204
|
const root = path.resolve(repoRoot);
|
|
205
|
-
|
|
205
|
+
const safeRoot = root.endsWith(path.sep) ? root : root + path.sep;
|
|
206
|
+
return absPath === root || absPath.startsWith(safeRoot);
|
|
206
207
|
}
|
|
207
208
|
async function resolveExtension(base) {
|
|
208
209
|
const directFile = await firstExistingFile([...FILE_EXTENSIONS.map((ext) => base + ext), base]);
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
* sitter init cost per file.
|
|
51
51
|
*/
|
|
52
52
|
import Parser from 'tree-sitter';
|
|
53
|
+
export declare const TYPESCRIPT_SCOPE_QUERY: string;
|
|
53
54
|
/**
|
|
54
55
|
* Return the right tree-sitter parser for `filePath` (or the TS parser
|
|
55
56
|
* when no path is given — the legacy callsite shape).
|