gitnexus 1.6.10-rc.99 → 1.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +177 -18
- package/dist/_shared/graph/types.d.ts +21 -2
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +3 -3
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +16 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +19 -7
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +2 -2
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +5 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +315 -36
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +115 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +278 -3
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +3 -2
- package/dist/cli/ai-context.js +71 -16
- package/dist/cli/analyze-config.d.ts +1 -1
- package/dist/cli/analyze-options.d.ts +131 -0
- package/dist/cli/analyze-options.js +1 -0
- package/dist/cli/analyze.d.ts +21 -113
- package/dist/cli/analyze.js +172 -29
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +12 -0
- package/dist/cli/doctor.js +32 -5
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.js +2 -1
- package/dist/cli/format-symbol.d.ts +15 -0
- package/dist/cli/format-symbol.js +17 -0
- package/dist/cli/generated-skill.d.ts +17 -0
- package/dist/cli/generated-skill.js +1 -0
- package/dist/cli/group.js +229 -21
- package/dist/cli/help-i18n.js +1 -2
- package/dist/cli/i18n/en.d.ts +11 -9
- package/dist/cli/i18n/en.js +13 -9
- package/dist/cli/i18n/resources.d.ts +15 -11
- package/dist/cli/i18n/zh-CN.d.ts +4 -2
- package/dist/cli/i18n/zh-CN.js +11 -9
- package/dist/cli/index.js +8 -4
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.js +4 -3
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +74 -17
- package/dist/cli/wiki.js +53 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +54 -13
- package/dist/core/analyzer-identity.d.ts +80 -0
- package/dist/core/analyzer-identity.js +364 -26
- package/dist/core/augmentation/engine.js +86 -71
- package/dist/core/embedding-checkpoint.d.ts +143 -0
- package/dist/core/embedding-checkpoint.js +221 -0
- package/dist/core/embedding-count.d.ts +61 -0
- package/dist/core/embedding-count.js +69 -0
- package/dist/core/embeddings/ast-utils.js +9 -1
- package/dist/core/embeddings/embedding-pipeline.d.ts +8 -0
- package/dist/core/embeddings/embedding-pipeline.js +253 -14
- package/dist/core/embeddings/http-client.d.ts +5 -0
- package/dist/core/embeddings/http-client.js +142 -27
- package/dist/core/graph/graph.js +3 -0
- package/dist/core/graph/import-cycles.d.ts +194 -3
- package/dist/core/graph/import-cycles.js +522 -73
- package/dist/core/graph/types.d.ts +18 -0
- package/dist/core/group/bridge-db.d.ts +204 -1
- package/dist/core/group/bridge-db.js +401 -28
- package/dist/core/group/completeness.d.ts +130 -0
- package/dist/core/group/completeness.js +83 -0
- package/dist/core/group/config-parser.js +0 -5
- package/dist/core/group/cross-impact.d.ts +46 -1
- package/dist/core/group/cross-impact.js +220 -19
- package/dist/core/group/cross-trace.d.ts +32 -11
- package/dist/core/group/cross-trace.js +114 -20
- package/dist/core/group/extractors/http-patterns/java.js +278 -22
- package/dist/core/group/extractors/http-patterns/node.js +332 -216
- package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
- package/dist/core/group/extractors/http-route-extractor.js +122 -48
- package/dist/core/group/extractors/include-extractor.js +20 -2
- package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
- package/dist/core/group/extractors/manifest-extractor.js +7 -7
- package/dist/core/group/extractors/python-workspace-extractor.js +5 -2
- package/dist/core/group/group-lock.d.ts +31 -0
- package/dist/core/group/group-lock.js +166 -0
- package/dist/core/group/service.js +297 -16
- package/dist/core/group/storage.d.ts +3 -0
- package/dist/core/group/storage.js +7 -39
- package/dist/core/group/sync.d.ts +49 -3
- package/dist/core/group/sync.js +0 -0
- package/dist/core/group/types.d.ts +183 -8
- package/dist/core/group/types.js +28 -1
- package/dist/core/incremental/subgraph-extract.d.ts +9 -6
- package/dist/core/incremental/subgraph-extract.js +33 -10
- package/dist/core/index-freshness.d.ts +77 -2
- package/dist/core/index-freshness.js +109 -2
- package/dist/core/ingestion/call-processor.d.ts +13 -1
- package/dist/core/ingestion/call-processor.js +110 -3
- package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
- package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
- package/dist/core/ingestion/cfg/emit.d.ts +8 -23
- package/dist/core/ingestion/cfg/emit.js +9 -23
- package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +81 -82
- package/dist/core/ingestion/di-extractors/index.d.ts +9 -33
- package/dist/core/ingestion/di-extractors/spring.d.ts +1 -1
- package/dist/core/ingestion/di-extractors/spring.js +8 -1
- package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
- package/dist/core/ingestion/di-extractors/types.js +15 -0
- package/dist/core/ingestion/filesystem-walker.js +30 -14
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +6 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +35 -1
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
- package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
- package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +1 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +3 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +162 -13
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
- package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
- package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
- package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
- package/dist/core/ingestion/import-resolvers/go.js +44 -17
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +429 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/php.js +65 -19
- package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
- package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
- package/dist/core/ingestion/import-resolvers/python.js +25 -6
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
- package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
- package/dist/core/ingestion/import-resolvers/utils.js +215 -36
- package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
- package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
- package/dist/core/ingestion/language-config.d.ts +29 -1
- package/dist/core/ingestion/language-config.js +110 -35
- package/dist/core/ingestion/language-provider.d.ts +209 -7
- package/dist/core/ingestion/language-provider.js +37 -0
- package/dist/core/ingestion/languages/c/captures.js +7 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/scope-resolver.js +20 -19
- package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
- package/dist/core/ingestion/languages/c-cpp.js +13 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +27 -20
- package/dist/core/ingestion/languages/cobol.js +13 -0
- package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
- package/dist/core/ingestion/languages/cpp/adl.js +67 -44
- package/dist/core/ingestion/languages/cpp/captures.js +14 -2
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
- package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
- package/dist/core/ingestion/languages/cpp/query.js +106 -0
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +48 -20
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
- package/dist/core/ingestion/languages/csharp/captures.js +19 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
- package/dist/core/ingestion/languages/csharp/query.js +25 -5
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
- package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/captures.js +598 -16
- package/dist/core/ingestion/languages/dart/import-target.js +32 -9
- package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
- package/dist/core/ingestion/languages/dart/index.js +1 -1
- package/dist/core/ingestion/languages/dart/query.js +98 -1
- package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
- package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
- package/dist/core/ingestion/languages/dart.js +6 -1
- package/dist/core/ingestion/languages/go/captures.js +108 -3
- package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
- package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
- package/dist/core/ingestion/languages/go/import-target.js +34 -30
- package/dist/core/ingestion/languages/go/index.d.ts +1 -1
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
- package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
- package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/go/interpret.js +22 -8
- package/dist/core/ingestion/languages/go/method-owners.js +31 -12
- package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
- package/dist/core/ingestion/languages/go/package-clause.js +75 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
- package/dist/core/ingestion/languages/go/query.js +56 -3
- package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
- package/dist/core/ingestion/languages/go.js +9 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +4 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/java/captures.js +77 -32
- package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
- package/dist/core/ingestion/languages/java/import-target.js +68 -88
- package/dist/core/ingestion/languages/java/interpret.js +3 -2
- package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
- package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
- package/dist/core/ingestion/languages/java/query.js +15 -3
- package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
- package/dist/core/ingestion/languages/java/record-components.js +185 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +10 -2
- package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +4 -1
- package/dist/core/ingestion/languages/java/spring-di.js +41 -9
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
- package/dist/core/ingestion/languages/java.js +94 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +262 -4
- package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
- package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
- package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
- package/dist/core/ingestion/languages/javascript/index.js +54 -5
- package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/javascript/query.js +211 -5
- package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
- package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
- package/dist/core/ingestion/languages/jvm/package-siblings.js +77 -9
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +15 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +43 -1
- package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
- package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
- package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
- package/dist/core/ingestion/languages/kotlin/index.js +1 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
- package/dist/core/ingestion/languages/kotlin/query.js +28 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +23 -2
- package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +60 -11
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +319 -51
- package/dist/core/ingestion/languages/php/import-target.d.ts +3 -4
- package/dist/core/ingestion/languages/php/import-target.js +192 -62
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
- package/dist/core/ingestion/languages/python/captures.js +29 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
- package/dist/core/ingestion/languages/python/import-target.js +277 -91
- package/dist/core/ingestion/languages/python/index.d.ts +1 -1
- package/dist/core/ingestion/languages/python/index.js +1 -1
- package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
- package/dist/core/ingestion/languages/python/interpret.js +249 -7
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +8 -6
- package/dist/core/ingestion/languages/python/receiver-binding.js +108 -12
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.js +2 -8
- package/dist/core/ingestion/languages/python.js +13 -0
- package/dist/core/ingestion/languages/ruby/captures.js +158 -0
- package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
- package/dist/core/ingestion/languages/ruby/query.js +93 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
- package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
- package/dist/core/ingestion/languages/rust/captures.js +39 -1
- package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
- package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
- package/dist/core/ingestion/languages/rust/module-path.js +214 -0
- package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
- package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
- package/dist/core/ingestion/languages/rust/query.js +39 -6
- package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
- package/dist/core/ingestion/languages/rust.js +17 -0
- package/dist/core/ingestion/languages/swift/captures.js +87 -3
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
- package/dist/core/ingestion/languages/swift/import-target.js +4 -9
- package/dist/core/ingestion/languages/swift/query.js +17 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
- package/dist/core/ingestion/languages/swift.js +2 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
- package/dist/core/ingestion/languages/typescript/captures.js +267 -5
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.d.ts +7 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.js +92 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
- package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
- package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
- package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
- package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +303 -14
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
- package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/tsconfig.js +292 -0
- package/dist/core/ingestion/languages/typescript.js +93 -2
- package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
- package/dist/core/ingestion/languages/vue/import-target.js +11 -47
- package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
- package/dist/core/ingestion/local-symbol-pruner.js +11 -11
- package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
- package/dist/core/ingestion/method-extractors/generic.js +1 -0
- package/dist/core/ingestion/method-types.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/di.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/di.js +136 -21
- package/dist/core/ingestion/pipeline-phases/index.d.ts +2 -0
- package/dist/core/ingestion/pipeline-phases/index.js +2 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +154 -4
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +3 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +91 -6
- package/dist/core/ingestion/pipeline-phases/routes.js +116 -25
- package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +26 -2
- package/dist/core/ingestion/pipeline.js +60 -11
- package/dist/core/ingestion/process-processor.d.ts +109 -2
- package/dist/core/ingestion/process-processor.js +464 -52
- package/dist/core/ingestion/resolve-references.d.ts +6 -1
- package/dist/core/ingestion/resolve-references.js +66 -6
- package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +8 -2
- package/dist/core/ingestion/route-extractors/constant-resolver.js +11 -7
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +40 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +876 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.d.ts +114 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.js +569 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.d.ts +192 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.js +1033 -0
- package/dist/core/ingestion/route-extractors/nest.d.ts +53 -0
- package/dist/core/ingestion/route-extractors/nest.js +523 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
- package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
- package/dist/core/ingestion/route-extractors/spring.js +214 -29
- package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
- package/dist/core/ingestion/scope-extractor.d.ts +22 -7
- package/dist/core/ingestion/scope-extractor.js +309 -15
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +311 -21
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +12 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +47 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +280 -42
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +58 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +137 -34
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +39 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +18 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +113 -18
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +101 -41
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +5 -1
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +8 -1
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +105 -5
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +29 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +57 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +55 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +241 -19
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
- package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +905 -22
- package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +678 -4
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
- package/dist/core/ingestion/type-extractors/shared.js +16 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
- package/dist/core/ingestion/type-extractors/typescript.js +26 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +297 -15
- package/dist/core/ingestion/utils/ast-helpers.js +578 -46
- package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
- package/dist/core/ingestion/utils/call-analysis.js +202 -7
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +59 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +51 -1
- package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
- package/dist/core/ingestion/utils/callable-labels.js +31 -0
- package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
- package/dist/core/ingestion/utils/effective-ram.js +58 -0
- package/dist/core/ingestion/utils/line-base.d.ts +14 -0
- package/dist/core/ingestion/utils/line-base.js +14 -0
- package/dist/core/ingestion/utils/method-props.d.ts +27 -4
- package/dist/core/ingestion/utils/method-props.js +29 -4
- package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
- package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
- package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
- package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
- package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
- package/dist/core/ingestion/utils/template-arguments.js +196 -0
- package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
- package/dist/core/ingestion/utils/type-parameters.js +206 -0
- package/dist/core/ingestion/workers/callable-id.d.ts +80 -0
- package/dist/core/ingestion/workers/callable-id.js +125 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +493 -54
- package/dist/core/ingestion/workers/worker-pool.d.ts +20 -27
- package/dist/core/ingestion/workers/worker-pool.js +91 -3
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +72 -17
- package/dist/core/lbug/extension-load-error.js +13 -2
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +31 -6
- package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
- package/dist/core/lbug/graph-emit-sink.js +581 -0
- package/dist/core/lbug/lbug-adapter.d.ts +290 -11
- package/dist/core/lbug/lbug-adapter.js +652 -69
- package/dist/core/lbug/native-check.d.ts +21 -0
- package/dist/core/lbug/native-check.js +248 -32
- package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
- package/dist/core/lbug/pdg-emit-sink.js +21 -111
- package/dist/core/lbug/pool-adapter.d.ts +9 -0
- package/dist/core/lbug/pool-adapter.js +164 -14
- package/dist/core/lbug/query-batch.d.ts +75 -0
- package/dist/core/lbug/query-batch.js +102 -0
- package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
- package/dist/core/lbug/rel-pair-routing.js +228 -10
- package/dist/core/lbug/schema.d.ts +163 -4
- package/dist/core/lbug/schema.js +404 -159
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/run-analyze.d.ts +147 -0
- package/dist/core/run-analyze.js +1215 -179
- package/dist/core/search/bm25-index.d.ts +11 -0
- package/dist/core/search/bm25-index.js +60 -26
- package/dist/core/search/fts-indexes.d.ts +150 -9
- package/dist/core/search/fts-indexes.js +241 -23
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +29 -3
- package/dist/core/wiki/llm-client.js +47 -12
- package/dist/core/wiki/prompts.d.ts +19 -0
- package/dist/core/wiki/prompts.js +20 -1
- package/dist/lib/utils.d.ts +113 -0
- package/dist/lib/utils.js +185 -0
- package/dist/mcp/local/aop-metadata.d.ts +77 -0
- package/dist/mcp/local/aop-metadata.js +227 -0
- package/dist/mcp/local/bean-metadata.d.ts +2 -1
- package/dist/mcp/local/bean-metadata.js +22 -1
- package/dist/mcp/local/convex-metadata.d.ts +8 -0
- package/dist/mcp/local/convex-metadata.js +45 -0
- package/dist/mcp/local/local-backend.d.ts +174 -11
- package/dist/mcp/local/local-backend.js +1678 -331
- package/dist/mcp/local/path-predicate.d.ts +19 -0
- package/dist/mcp/local/path-predicate.js +21 -0
- package/dist/mcp/local/pdg-impact.d.ts +132 -10
- package/dist/mcp/local/pdg-impact.js +391 -98
- package/dist/mcp/repository-policy.d.ts +1 -0
- package/dist/mcp/repository-policy.js +5 -0
- package/dist/mcp/resources.js +26 -4
- package/dist/mcp/server.js +23 -13
- package/dist/mcp/tools.d.ts +8 -0
- package/dist/mcp/tools.js +76 -23
- package/dist/server/analyze-job.d.ts +37 -2
- package/dist/server/analyze-job.js +13 -2
- package/dist/server/analyze-launch.d.ts +1 -1
- package/dist/server/analyze-launch.js +79 -10
- package/dist/server/analyze-worker-core.d.ts +1 -1
- package/dist/server/analyze-worker-core.js +10 -1
- package/dist/server/analyze-worker-ipc.d.ts +1 -1
- package/dist/server/analyze-worker-ipc.js +4 -0
- package/dist/server/analyze-worker-protocol.d.ts +59 -0
- package/dist/server/analyze-worker-protocol.js +1 -0
- package/dist/server/analyze-worker.d.ts +1 -17
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +164 -163
- package/dist/server/embed-run-outcome.d.ts +89 -0
- package/dist/server/embed-run-outcome.js +88 -0
- package/dist/server/git-clone.js +6 -2
- package/dist/server/middleware.d.ts +116 -9
- package/dist/server/middleware.js +291 -22
- package/dist/server/sse-progress.d.ts +41 -0
- package/dist/server/sse-progress.js +125 -0
- package/dist/storage/branch-index.d.ts +11 -6
- package/dist/storage/branch-index.js +15 -7
- package/dist/storage/file-hash.js +2 -2
- package/dist/storage/fs-atomic.d.ts +25 -0
- package/dist/storage/fs-atomic.js +42 -0
- package/dist/storage/git.d.ts +131 -0
- package/dist/storage/git.js +236 -2
- package/dist/storage/index-lock.d.ts +102 -0
- package/dist/storage/index-lock.js +660 -0
- package/dist/storage/parse-cache.js +588 -6
- package/dist/storage/parsedfile-store.js +76 -6
- package/dist/storage/repo-manager.d.ts +54 -441
- package/dist/storage/repo-manager.js +312 -221
- package/dist/storage/repo-meta.d.ts +530 -0
- package/dist/storage/repo-meta.js +100 -0
- package/dist/types/pipeline.d.ts +37 -0
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
- package/hooks/claude/gitnexus-hook.cjs +1 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
- package/package.json +11 -2
- package/scripts/cross-platform-shard.ts +153 -0
- package/scripts/cross-platform-tests.ts +122 -0
- package/scripts/run-cross-platform.ts +16 -5
- package/skills/gitnexus-cli.md +3 -3
- package/skills/gitnexus-debugging.md +37 -7
- package/skills/gitnexus-exploring.md +26 -4
- package/skills/gitnexus-impact-analysis.md +71 -10
- package/skills/gitnexus-plan/README.md +11 -6
- package/skills/gitnexus-plan/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +654 -372
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +12 -6
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +1 -1
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/SKILL.md +4 -1
- package/skills/gitnexus-work/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +654 -372
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/{__vite-browser-external-bMKyYQkO.js → __vite-browser-external-COxE8F0G.js} +1 -1
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-Dr4l5EOp.js +662 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/{blockDiagram-7IZFK4PR-DBefcjof.js → blockDiagram-54WLDVWM-Dg_hrRWE.js} +4 -4
- package/web/assets/{c4Diagram-Y2BXMSZH-EjWnjEJl.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +2 -2
- package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
- package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
- package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
- package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
- package/web/assets/{chunk-LII3EMHJ-BL6lKJ_P.js → chunk-6L755F7B-CMhLBxi2.js} +1 -1
- package/web/assets/{chunk-QA3QBVWF-DVXPOIxe.js → chunk-7CWYLC5S-DRgGkkpF.js} +1 -1
- package/web/assets/{chunk-ZXARS5L4-C3v-4Fsw.js → chunk-A7VWPJGB-B4O3oQdQ.js} +1 -1
- package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
- package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
- package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
- package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
- package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
- package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
- package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
- package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
- package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
- package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
- package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
- package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
- package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
- package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
- package/web/assets/{chunk-INKRHTLW-Ckl3_KkO.js → chunk-SZD42YQK-ijyKKVr1.js} +21 -21
- package/web/assets/{chunk-LCXTWHL2-C162wE5z.js → chunk-TFPGFQPA-Dj6a-0pC.js} +3 -3
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
- package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
- package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
- package/web/assets/{chunk-RG4AUYOV-ZNgyLFq6.js → chunk-VJFVEZTB-CX66F2ep.js} +3 -3
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
- package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
- package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
- package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
- package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
- package/web/assets/{diagram-HNR7UZ2L-DVRltWbL.js → diagram-KFBZAVDW-Dfmf_4ti.js} +3 -3
- package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
- package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
- package/web/assets/error-D9MtuG9s.js +1 -0
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
- package/web/assets/{index-D7mTFcvQ.js → index-2zdvEdzg.js} +51 -51
- package/web/assets/index-CJDpyH-n.css +2 -0
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-XpjJRU9h.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +2 -2
- package/web/assets/{journeyDiagram-M6C3CM3L-C6wjooas.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +3 -3
- package/web/assets/{kanban-definition-75IXJCU3-5_UVY79g.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +6 -6
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-8xDLzk2e.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +5 -5
- package/web/assets/node.browser-U-KyT5AW.js +1 -0
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
- package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-DR54jOeR.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +3 -3
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
- package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
- package/web/assets/{requirementDiagram-JXO7QTGE-PEkg7sKC.js → requirementDiagram-RASO5HTO-B-l8InpK.js} +4 -4
- package/web/assets/{sankeyDiagram-URQDO5SZ-DDWEtjcs.js → sankeyDiagram-F32LOJ6L-Kd7zjJgX.js} +3 -3
- package/web/assets/{sequenceDiagram-VS2MUI6T-Bv-uwANx.js → sequenceDiagram-URATNSBD-BlcdY9DS.js} +7 -7
- package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
- package/web/assets/src-C5sx_gMp.js +1 -0
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
- package/web/assets/{timeline-definition-O6YCAMPW-Qmsuo7qS.js → timeline-definition-WJXWRH4I-DUfp1R3E.js} +3 -3
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
- package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
- package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
- package/web/index.html +16 -15
- package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
- package/dist/core/ingestion/languages/python/index-stats.js +0 -25
- package/web/assets/ProcessFlowModal-CwkpVkv-.js +0 -22
- package/web/assets/agent-Ds-lkZjX.js +0 -626
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-CmG3uPWf.js +0 -36
- package/web/assets/chunk-2T2R6R2M-Bb6Sy3_j.js +0 -4
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
- package/web/assets/chunk-67TQ5CYL-CA7OhIEf.js +0 -124
- package/web/assets/chunk-7J6CGLKN-BlKwgXKs.js +0 -10
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-BZeP-55u.js +0 -62
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
- package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
- package/web/assets/chunk-LRIF4GLE-n59lhprL.js +0 -1
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BEyXhZWe.js +0 -1
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
- package/web/assets/chunk-UY5QBCOK-ByqTVLvh.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BLeasdkU.js +0 -2
- package/web/assets/classDiagram-KGZ6W3CR-olpO3fMe.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-olpO3fMe.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CY4iIF7v.js +0 -4
- package/web/assets/diagram-3NCE3AQN-CO6QpzEE.js +0 -43
- package/web/assets/diagram-GF46GFSD-B2atbzmU.js +0 -24
- package/web/assets/diagram-QXG6HAR7-DR6AHD2h.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-DkpoMwTL.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-n8g_90bc.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-SGMDiCkB.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-Cb3UBqRS.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-Bs9CR7tq.js +0 -106
- package/web/assets/index-CX_fADmQ.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-T368on4D.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- package/web/assets/node-Ct_zna8U.js +0 -8
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-Bv4LpAbr.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/sdk-CzHHH8tD.js +0 -37
- package/web/assets/src-Cv1eWg0o.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-DVNjmkEq.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-CyN4Fh7_.js +0 -1
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-BD1iK1SX.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-D6TzLVob.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-CoZ_Tits.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -53,18 +53,23 @@ const JS_GRAMMAR = JS;
|
|
|
53
53
|
function isJsxFile(filePath) {
|
|
54
54
|
return filePath.endsWith('.jsx');
|
|
55
55
|
}
|
|
56
|
-
const JAVASCRIPT_SCOPE_QUERY = `
|
|
56
|
+
export const JAVASCRIPT_SCOPE_QUERY = `
|
|
57
57
|
;; Scopes — module / class-likes / function-likes
|
|
58
58
|
(program) @scope.module
|
|
59
59
|
|
|
60
60
|
(class_declaration) @scope.class
|
|
61
61
|
(class) @scope.class
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
(
|
|
65
|
-
(
|
|
63
|
+
;; \`@receiver-owner.this\` — see the matching block in typescript/query.ts
|
|
64
|
+
;; (#2701). Every function form except \`arrow_function\` binds its own \`this\`.
|
|
65
|
+
(function_declaration) @scope.function @receiver-owner.this
|
|
66
|
+
(generator_function_declaration) @scope.function @receiver-owner.this
|
|
67
|
+
(function_expression) @scope.function @receiver-owner.this
|
|
68
|
+
;; \`function*(){}\` as an EXPRESSION. Absent from this list before #2701, so it
|
|
69
|
+
;; was not a scope at all and \`this\` inside one read as the enclosing method's.
|
|
70
|
+
(generator_function) @scope.function @receiver-owner.this
|
|
66
71
|
(arrow_function) @scope.function
|
|
67
|
-
(method_definition) @scope.function
|
|
72
|
+
(method_definition) @scope.function @receiver-owner.this
|
|
68
73
|
|
|
69
74
|
;; Object literals get their own scope boundary -- see the matching
|
|
70
75
|
;; comment in typescript/query.ts (#2545/#2551). Prevents a
|
|
@@ -73,6 +78,16 @@ const JAVASCRIPT_SCOPE_QUERY = `
|
|
|
73
78
|
;; sibling properties from seeing each other as bare identifiers.
|
|
74
79
|
(object) @scope.object
|
|
75
80
|
|
|
81
|
+
;; Statement blocks are BINDING scopes (#2699). ECMAScript gives every block its
|
|
82
|
+
;; own environment record, so \`let\`/\`const\`/\`class\`/\`function\` declared in
|
|
83
|
+
;; sibling blocks of one function are DIFFERENT bindings — without this the
|
|
84
|
+
;; resolver sees both as function-level and a call in one branch resolves to
|
|
85
|
+
;; both. \`tsBindingScopeFor\` already implements the other half of the rule:
|
|
86
|
+
;; \`var\` hoists past blocks to the enclosing Function/Module, \`let\`/\`const\`
|
|
87
|
+
;; take the innermost scope, which is now the block.
|
|
88
|
+
(statement_block) @scope.block
|
|
89
|
+
|
|
90
|
+
|
|
76
91
|
;; Declarations — classes
|
|
77
92
|
(class_declaration
|
|
78
93
|
name: (identifier) @declaration.name) @declaration.class
|
|
@@ -85,6 +100,15 @@ const JAVASCRIPT_SCOPE_QUERY = `
|
|
|
85
100
|
(field_definition
|
|
86
101
|
property: (property_identifier) @declaration.name) @declaration.property
|
|
87
102
|
|
|
103
|
+
;; Object-literal keys of a NAMED object (A1/A5) — the scope-resolution half of
|
|
104
|
+
;; the same rule in TYPESCRIPT/JAVASCRIPT_QUERIES. The parse query mints the
|
|
105
|
+
;; Property NODE; this mints the DEF the resolver can point a read/write at.
|
|
106
|
+
(variable_declarator
|
|
107
|
+
name: (identifier)
|
|
108
|
+
value: (object
|
|
109
|
+
(pair
|
|
110
|
+
key: (property_identifier) @declaration.name) @declaration.property))
|
|
111
|
+
|
|
88
112
|
;; Declarations — free functions
|
|
89
113
|
(function_declaration
|
|
90
114
|
name: (identifier) @declaration.name) @declaration.function
|
|
@@ -130,6 +154,67 @@ const JAVASCRIPT_SCOPE_QUERY = `
|
|
|
130
154
|
name: (identifier) @declaration.name
|
|
131
155
|
value: (function_expression) @declaration.function))
|
|
132
156
|
|
|
157
|
+
;; CJS property-assignment exports (#2723): \`exports.foo = function () {}\`,
|
|
158
|
+
;; \`module.exports.foo = (a) => a\`. The graph node for these comes from
|
|
159
|
+
;; TYPESCRIPT/JAVASCRIPT_QUERIES; this block is the other half — without a
|
|
160
|
+
;; scope-resolution declaration the node exists but nothing resolves TO it,
|
|
161
|
+
;; so \`impact\` answered "found, zero callers" on a whole CommonJS API.
|
|
162
|
+
;;
|
|
163
|
+
;; The declaration binds the BARE property name into the enclosing (module)
|
|
164
|
+
;; scope, which is what importers see: \`const { foo } = require('./m')\`
|
|
165
|
+
;; matches by name, and a namespace \`m.foo()\` walks the module's defs.
|
|
166
|
+
;;
|
|
167
|
+
;; Same anchor discipline as the blocks above — \`@declaration.function\` sits
|
|
168
|
+
;; on the INNER arrow / function_expression so its range matches the
|
|
169
|
+
;; \`@scope.function\` range.
|
|
170
|
+
;; The three right-hand-side forms share one pattern via an inner LEAF
|
|
171
|
+
;; alternation. tree-sitter 0.21.1 has a known hazard where a top-level
|
|
172
|
+
;; \`[...]\` alternation makes sibling branches share one predicate bucket and
|
|
173
|
+
;; silently drops matches; an inner leaf alternation whose predicates all sit
|
|
174
|
+
;; on captures OUTSIDE it (here \`@_cjs.exports\` / \`@_cjs.module\`, both on the
|
|
175
|
+
;; left-hand side and bound in every branch) is the safe form. Verified by
|
|
176
|
+
;; probing all six receiver × RHS combinations, not by reading.
|
|
177
|
+
;;
|
|
178
|
+
;; \`(generator_function) @scope.function\` is declared near the top of this
|
|
179
|
+
;; query, so the anchor aligns for that branch too.
|
|
180
|
+
(assignment_expression
|
|
181
|
+
left: (member_expression
|
|
182
|
+
object: (identifier) @_cjs.receiver
|
|
183
|
+
property: (property_identifier) @declaration.name)
|
|
184
|
+
right: [
|
|
185
|
+
(arrow_function)
|
|
186
|
+
(function_expression)
|
|
187
|
+
(generator_function)
|
|
188
|
+
] @declaration.function)
|
|
189
|
+
|
|
190
|
+
;; \`this.X = fn\` at MODULE level of a CommonJS file — there \`this\` IS
|
|
191
|
+
;; \`module.exports\`, so this declares an export. Pruned emit-side for ESM
|
|
192
|
+
;; files (where top-level \`this\` is undefined) and for a \`this\` inside a
|
|
193
|
+
;; function, which is an instance member rather than an export.
|
|
194
|
+
(assignment_expression
|
|
195
|
+
left: (member_expression
|
|
196
|
+
object: (this)
|
|
197
|
+
property: (property_identifier) @declaration.name)
|
|
198
|
+
right: [
|
|
199
|
+
(arrow_function)
|
|
200
|
+
(function_expression)
|
|
201
|
+
(generator_function)
|
|
202
|
+
] @declaration.function)
|
|
203
|
+
|
|
204
|
+
(assignment_expression
|
|
205
|
+
left: (member_expression
|
|
206
|
+
object: (member_expression
|
|
207
|
+
object: (identifier) @_cjs.module
|
|
208
|
+
property: (property_identifier) @_cjs.exports)
|
|
209
|
+
property: (property_identifier) @declaration.name)
|
|
210
|
+
right: [
|
|
211
|
+
(arrow_function)
|
|
212
|
+
(function_expression)
|
|
213
|
+
(generator_function)
|
|
214
|
+
] @declaration.function
|
|
215
|
+
(#eq? @_cjs.module "module")
|
|
216
|
+
(#eq? @_cjs.exports "exports"))
|
|
217
|
+
|
|
133
218
|
;; Object-property arrows / function expressions named by their pair key.
|
|
134
219
|
;; Same anchor discipline as the lexical_declaration block above: the
|
|
135
220
|
;; @declaration.function capture must sit on the INNER arrow/fn-expression.
|
|
@@ -347,6 +432,34 @@ const JAVASCRIPT_SCOPE_QUERY = `
|
|
|
347
432
|
value: (new_expression
|
|
348
433
|
constructor: (member_expression) @type-binding.type)) @type-binding.constructor
|
|
349
434
|
|
|
435
|
+
;; Class field initializer: \`class C { p = new Outer(); }\` (#2807).
|
|
436
|
+
;; JavaScript has no field annotations at all, so a class field's type can only
|
|
437
|
+
;; ever come from its initializer — without this pattern \`this.p.inner()\` had
|
|
438
|
+
;; nothing to type the receiver with and the receiver fold declined the whole
|
|
439
|
+
;; chain. \`synthesizeConstructorFieldBindings\` in captures.ts already covers the
|
|
440
|
+
;; sibling shape (\`this.p = new Outer()\`), but only inside a \`constructor\`
|
|
441
|
+
;; body, so a field initialized at its declaration matched nothing.
|
|
442
|
+
;;
|
|
443
|
+
;; Anchored on \`field_definition\` so the binding lands in the class body scope,
|
|
444
|
+
;; where \`typeOfMemberOnClass\` reads it — the same anchoring TypeScript uses for
|
|
445
|
+
;; \`public_field_definition\`. Note the JS grammar names the field \`property:\`,
|
|
446
|
+
;; not \`name:\`.
|
|
447
|
+
(field_definition
|
|
448
|
+
property: (property_identifier) @type-binding.name
|
|
449
|
+
value: (new_expression
|
|
450
|
+
constructor: (identifier) @type-binding.type)) @type-binding.constructor
|
|
451
|
+
|
|
452
|
+
(field_definition
|
|
453
|
+
property: (property_identifier) @type-binding.name
|
|
454
|
+
value: (new_expression
|
|
455
|
+
constructor: (member_expression) @type-binding.type)) @type-binding.constructor
|
|
456
|
+
|
|
457
|
+
;; Private-name field: \`#p = new Outer()\`.
|
|
458
|
+
(field_definition
|
|
459
|
+
property: (private_property_identifier) @type-binding.name
|
|
460
|
+
value: (new_expression
|
|
461
|
+
constructor: (identifier) @type-binding.type)) @type-binding.constructor
|
|
462
|
+
|
|
350
463
|
;; Call-result alias: const u = getUser()
|
|
351
464
|
(variable_declarator
|
|
352
465
|
name: (identifier) @type-binding.name
|
|
@@ -478,6 +591,99 @@ const JAVASCRIPT_SCOPE_QUERY = `
|
|
|
478
591
|
|
|
479
592
|
(object
|
|
480
593
|
(shorthand_property_identifier) @reference.name @reference.property-key @reference.value-ref)
|
|
594
|
+
|
|
595
|
+
;; Bare-identifier reads (A2). VALUE POSITIONS ONLY — a blanket
|
|
596
|
+
;; \`(identifier)\` rule would mint a site for every token in the file.
|
|
597
|
+
(arguments
|
|
598
|
+
(identifier) @reference.name @reference.read.identifier)
|
|
599
|
+
|
|
600
|
+
(assignment_pattern
|
|
601
|
+
right: (identifier) @reference.name @reference.read.identifier)
|
|
602
|
+
|
|
603
|
+
(return_statement
|
|
604
|
+
(identifier) @reference.name @reference.read.identifier)
|
|
605
|
+
|
|
606
|
+
;; \`const next = LIMIT\` and \`n > LIMIT\` — both plainly value reads, and both
|
|
607
|
+
;; named in review as gaps between what A2 claimed and what it matched.
|
|
608
|
+
(variable_declarator
|
|
609
|
+
value: (identifier) @reference.name @reference.read.identifier)
|
|
610
|
+
|
|
611
|
+
(binary_expression
|
|
612
|
+
left: (identifier) @reference.name @reference.read.identifier)
|
|
613
|
+
|
|
614
|
+
(binary_expression
|
|
615
|
+
right: (identifier) @reference.name @reference.read.identifier)
|
|
616
|
+
|
|
617
|
+
;; Destructured PARAMETER keys (R2-1c). \`function exit({ exitMinAtrMult = 0 })\`
|
|
618
|
+
;; reads that property off whatever the caller passes, exactly as
|
|
619
|
+
;; \`cfg.exitMinAtrMult\` would — the field just never appears in a
|
|
620
|
+
;; member_expression, so the read had no site at all and the function that
|
|
621
|
+
;; implements the behaviour was missing from "who reads this setting?".
|
|
622
|
+
;;
|
|
623
|
+
;; A distinct anchor rather than @reference.read.member: that tag is filtered
|
|
624
|
+
;; emit-side to matches with a member_expression ancestor (calls and writes
|
|
625
|
+
;; share its shape), and a destructuring pattern has none, so it would be
|
|
626
|
+
;; dropped. The \`read.\` head is what maps this to a read kind, so the new tag
|
|
627
|
+
;; needs no mapping change.
|
|
628
|
+
;;
|
|
629
|
+
;; The object_pattern is the receiver. It is anonymous — there is no name to
|
|
630
|
+
;; type — which is precisely the untyped-receiver case the name-narrowing pass
|
|
631
|
+
;; exists to serve.
|
|
632
|
+
;;
|
|
633
|
+
;; Scoped to formal_parameters deliberately. A destructuring binding elsewhere
|
|
634
|
+
;; (\`const { x } = require('m')\`) is often an import rather than a field read,
|
|
635
|
+
;; and minting a property read for it would attribute module bindings to
|
|
636
|
+
;; unrelated same-named keys.
|
|
637
|
+
(formal_parameters
|
|
638
|
+
(object_pattern
|
|
639
|
+
(shorthand_property_identifier_pattern) @reference.name
|
|
640
|
+
@reference.read.destructured) @reference.receiver)
|
|
641
|
+
|
|
642
|
+
(formal_parameters
|
|
643
|
+
(object_pattern
|
|
644
|
+
(object_assignment_pattern
|
|
645
|
+
left: (shorthand_property_identifier_pattern) @reference.name
|
|
646
|
+
@reference.read.destructured)) @reference.receiver)
|
|
647
|
+
|
|
648
|
+
(formal_parameters
|
|
649
|
+
(object_pattern
|
|
650
|
+
(pair_pattern
|
|
651
|
+
key: (property_identifier) @reference.name
|
|
652
|
+
@reference.read.destructured)) @reference.receiver)
|
|
653
|
+
|
|
654
|
+
;; Object-literal keys in RECORD CONSTRUCTION position (R2-1b). Building
|
|
655
|
+
;; \`{ exitContract: { exitMinAtrMult: settings.x } }\` SETS that field, so this
|
|
656
|
+
;; is the write counterpart to the destructured read above — without it
|
|
657
|
+
;; "who reads this setting?" answers well and "who SETS it?" misses the code
|
|
658
|
+
;; that stamps the value.
|
|
659
|
+
;;
|
|
660
|
+
;; A WRITE REFERENCE, deliberately not a definition. The round-1 rule already
|
|
661
|
+
;; mints Property nodes for literals bound to a variable; minting more for
|
|
662
|
+
;; anonymous records would add same-named competitors to the very name-narrowing
|
|
663
|
+
;; that makes these reads resolvable — measured at 26 competing definitions for
|
|
664
|
+
;; one field on the reporting repo. A construction site is a USE of a field, not
|
|
665
|
+
;; another declaration of it.
|
|
666
|
+
;;
|
|
667
|
+
;; Two positions only: nested under a key, and returned. Both are records with a
|
|
668
|
+
;; name attached (the key, or the function). An inline call argument
|
|
669
|
+
;; (\`doThing({ id: 1 })\`) stays excluded for the same reason round 1 excluded
|
|
670
|
+
;; it from definitions — it is call-site data, not a named surface.
|
|
671
|
+
;;
|
|
672
|
+
;; The enclosing literal is the receiver, and it is anonymous, which routes
|
|
673
|
+
;; these through the same narrowing and the same refusal-to-guess as every other
|
|
674
|
+
;; untyped receiver.
|
|
675
|
+
(pair
|
|
676
|
+
value: (object
|
|
677
|
+
(pair
|
|
678
|
+
key: (property_identifier) @reference.name
|
|
679
|
+
@reference.write.property-key) @_r2b.nested) @reference.receiver)
|
|
680
|
+
|
|
681
|
+
(return_statement
|
|
682
|
+
(object
|
|
683
|
+
(pair
|
|
684
|
+
key: (property_identifier) @reference.name
|
|
685
|
+
@reference.write.property-key) @_r2b.returned) @reference.receiver)
|
|
686
|
+
|
|
481
687
|
`;
|
|
482
688
|
/** JSX-only suffix — appended when compiling against the JSX grammar for .jsx files. */
|
|
483
689
|
const JSX_QUERY_SUFFIX = `
|
|
@@ -39,11 +39,23 @@ import { javascriptProvider } from '../typescript.js';
|
|
|
39
39
|
import { jsMergeBindings } from './merge-bindings.js';
|
|
40
40
|
import { jsArityCompatibility } from './arity.js';
|
|
41
41
|
import { makeJsResolveImportTarget } from './import-target.js';
|
|
42
|
+
import { loadTsconfigIndex } from '../typescript/tsconfig.js';
|
|
43
|
+
import { loadNodeWorkspacePackages } from '../../import-resolvers/node-workspace-packages.js';
|
|
42
44
|
const javascriptScopeResolver = {
|
|
45
|
+
// Construction is keyword-prefixed: `new Service(db).doWork()` (#2708).
|
|
46
|
+
constructionSyntax: { keyword: 'new' },
|
|
43
47
|
language: SupportedLanguages.JavaScript,
|
|
44
48
|
languageProvider: javascriptProvider,
|
|
45
49
|
importEdgeReason: 'javascript-scope: import',
|
|
46
50
|
resolveImportTarget: makeJsResolveImportTarget(),
|
|
51
|
+
// JavaScript resolution reads the same declared inputs TypeScript does —
|
|
52
|
+
// `jsconfig.json` is a tsconfig by another name, and `package.json` is shared
|
|
53
|
+
// outright. Without them a bare specifier used to fall through to suffix
|
|
54
|
+
// matching (#2953); now it simply does not resolve.
|
|
55
|
+
loadResolutionConfig: async (repoPath) => ({
|
|
56
|
+
tsconfigs: await loadTsconfigIndex(repoPath),
|
|
57
|
+
nodeWorkspacePackages: await loadNodeWorkspacePackages(repoPath),
|
|
58
|
+
}),
|
|
47
59
|
// JavaScript LEGB — same tier ordering as TypeScript; no declaration-
|
|
48
60
|
// merging across type/value/namespace spaces.
|
|
49
61
|
mergeBindings: (existing, incoming) => [...jsMergeBindings([...existing, ...incoming])],
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
* prevents language-specific logic from leaking into shared TypeScript
|
|
17
17
|
* infrastructure (DoD.md §2.2).
|
|
18
18
|
*/
|
|
19
|
-
import {
|
|
19
|
+
import { walkToScope } from '../../utils/scope-tree-walk.js';
|
|
20
|
+
import { tsBindingScopeFor } from '../typescript/simple-hooks.js';
|
|
20
21
|
export { tsImportOwningScope as jsImportOwningScope, tsReceiverBinding as jsReceiverBinding, } from '../typescript/simple-hooks.js';
|
|
21
22
|
/**
|
|
22
23
|
* Like `tsBindingScopeFor` but additionally hoists
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { logger } from '../../../logger.js';
|
|
2
2
|
import { isClassLike } from '../../scope-resolution/scope/walkers.js';
|
|
3
|
+
/** Packages larger than this get no implicit sibling visibility at all — every
|
|
4
|
+
* file in them is marked incomplete. `GITNEXUS_MAX_INJECTED_SIBLINGS` bounds
|
|
5
|
+
* injection *within* a package and does not lift this skip. */
|
|
3
6
|
const MAX_PACKAGE_FILES = 500;
|
|
7
|
+
const DEFAULT_MAX_INJECTED_SIBLINGS = 200;
|
|
8
|
+
function getMaxInjectedSiblings() {
|
|
9
|
+
const raw = process.env.GITNEXUS_MAX_INJECTED_SIBLINGS;
|
|
10
|
+
if (raw === undefined || raw === '')
|
|
11
|
+
return DEFAULT_MAX_INJECTED_SIBLINGS;
|
|
12
|
+
const parsed = Number(raw);
|
|
13
|
+
return Number.isInteger(parsed) && parsed >= 0 ? parsed : DEFAULT_MAX_INJECTED_SIBLINGS;
|
|
14
|
+
}
|
|
4
15
|
export function createJvmPackageSiblingVisibility(options) {
|
|
5
16
|
const incompleteFiles = new Set();
|
|
6
17
|
function populateNamespaceSiblings(parsedFiles, indexes, ctx) {
|
|
@@ -40,6 +51,8 @@ export function createJvmPackageSiblingVisibility(options) {
|
|
|
40
51
|
logger.warn(`[${options.languageLabel}-package-siblings] ${unknownPackageFiles.size} file(s) lacked reliable package facts; wildcard attribution disabled for this language workspace`);
|
|
41
52
|
}
|
|
42
53
|
const augmentations = indexes.bindingAugmentations;
|
|
54
|
+
const maxInjectedSiblings = getMaxInjectedSiblings();
|
|
55
|
+
let truncatedFiles = 0;
|
|
43
56
|
for (const bucket of buckets.values()) {
|
|
44
57
|
if (bucket.moduleScopes.length < 2)
|
|
45
58
|
continue;
|
|
@@ -60,25 +73,53 @@ export function createJvmPackageSiblingVisibility(options) {
|
|
|
60
73
|
classDefs.push({ def, filePath: parsed.filePath });
|
|
61
74
|
}
|
|
62
75
|
}
|
|
76
|
+
// Per-bucket lookups: the per-file loop below is O(files²) over these,
|
|
77
|
+
// so split each path into segments once here instead of re-splitting it
|
|
78
|
+
// on every pairwise proximity comparison, and address siblings by path
|
|
79
|
+
// so a truncated scope can merge its bounded set without rescanning the
|
|
80
|
+
// whole package.
|
|
81
|
+
const segmentsByPath = new Map();
|
|
82
|
+
const moduleScopeByPath = new Map();
|
|
83
|
+
const parsedByPath = new Map();
|
|
84
|
+
for (const parsed of bucket.parsed) {
|
|
85
|
+
segmentsByPath.set(parsed.filePath, pathSegments(parsed.filePath));
|
|
86
|
+
parsedByPath.set(parsed.filePath, parsed);
|
|
87
|
+
}
|
|
88
|
+
for (const sibling of bucket.moduleScopes)
|
|
89
|
+
moduleScopeByPath.set(sibling.filePath, sibling);
|
|
90
|
+
const allSiblingPaths = [...parsedByPath.keys()];
|
|
63
91
|
for (const { filePath, scope } of bucket.moduleScopes) {
|
|
64
92
|
let scopeAug = augmentations.get(scope.id);
|
|
65
93
|
if (scopeAug === undefined) {
|
|
66
94
|
scopeAug = new Map();
|
|
67
95
|
augmentations.set(scope.id, scopeAug);
|
|
68
96
|
}
|
|
97
|
+
const ownSegments = segmentsByPath.get(filePath) ?? pathSegments(filePath);
|
|
69
98
|
const proximityCache = new Map();
|
|
70
99
|
const candidates = classDefs.filter((candidate) => candidate.filePath !== filePath);
|
|
71
100
|
for (const candidate of candidates) {
|
|
72
101
|
if (!proximityCache.has(candidate.filePath)) {
|
|
73
|
-
proximityCache.set(candidate.filePath, sharedSegmentCount(candidate.filePath,
|
|
102
|
+
proximityCache.set(candidate.filePath, sharedSegmentCount(segmentsByPath.get(candidate.filePath) ?? [], ownSegments));
|
|
74
103
|
}
|
|
75
104
|
}
|
|
105
|
+
// Nearest-first by shared path prefix. Ties (the common case in a flat
|
|
106
|
+
// package, where every sibling shares the same directory) keep the
|
|
107
|
+
// walker's traversal order, so the retained set is deterministic but
|
|
108
|
+
// arbitrary among equally-near candidates — which is why truncation
|
|
109
|
+
// marks the file incomplete below rather than being treated as exact.
|
|
76
110
|
candidates.sort((a, b) => (proximityCache.get(b.filePath) ?? 0) - (proximityCache.get(a.filePath) ?? 0));
|
|
77
111
|
const injectedIds = new Set();
|
|
78
|
-
|
|
112
|
+
const injectedPaths = new Set();
|
|
113
|
+
let truncated = false;
|
|
114
|
+
for (const { def, filePath: defPath } of candidates) {
|
|
79
115
|
if (injectedIds.has(def.nodeId) || def.qualifiedName === undefined)
|
|
80
116
|
continue;
|
|
117
|
+
if (maxInjectedSiblings > 0 && injectedIds.size >= maxInjectedSiblings) {
|
|
118
|
+
truncated = true;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
81
121
|
injectedIds.add(def.nodeId);
|
|
122
|
+
injectedPaths.add(defPath);
|
|
82
123
|
const simpleName = def.qualifiedName.includes('.')
|
|
83
124
|
? def.qualifiedName.slice(def.qualifiedName.lastIndexOf('.') + 1)
|
|
84
125
|
: def.qualifiedName;
|
|
@@ -87,17 +128,40 @@ export function createJvmPackageSiblingVisibility(options) {
|
|
|
87
128
|
scopeAug.set(simpleName, bindings);
|
|
88
129
|
bindings.push({ def, origin: 'namespace' });
|
|
89
130
|
}
|
|
131
|
+
if (truncated) {
|
|
132
|
+
// Sibling visibility for this file is now partial, and downstream
|
|
133
|
+
// Spring attribution treats a complete flag as "this package's names
|
|
134
|
+
// are fully known". Marking it incomplete keeps wildcard attribution
|
|
135
|
+
// conservative instead of silently resolving against a truncated set.
|
|
136
|
+
incompleteFiles.add(filePath);
|
|
137
|
+
truncatedFiles++;
|
|
138
|
+
}
|
|
139
|
+
// Keep the two halves of "what this file can see" in agreement: when
|
|
140
|
+
// the cap truncated the binding set, merge type bindings from the same
|
|
141
|
+
// bounded sibling set only — and iterate that set directly, so the cap
|
|
142
|
+
// bounds the merge work too instead of just filtering a full scan. An
|
|
143
|
+
// untruncated scope merges every sibling as before, including ones that
|
|
144
|
+
// contribute no class-like def.
|
|
90
145
|
const typeBindings = scope.typeBindings;
|
|
91
|
-
|
|
92
|
-
|
|
146
|
+
const mergePaths = truncated ? injectedPaths : allSiblingPaths;
|
|
147
|
+
// Module scopes first, then class scopes: module-level bindings win on
|
|
148
|
+
// a name collision, which the two-pass order (not file order) encodes.
|
|
149
|
+
for (const siblingPath of mergePaths) {
|
|
150
|
+
if (siblingPath === filePath)
|
|
151
|
+
continue;
|
|
152
|
+
const sibling = moduleScopeByPath.get(siblingPath);
|
|
153
|
+
if (sibling === undefined)
|
|
93
154
|
continue;
|
|
94
155
|
for (const [name, ref] of sibling.scope.typeBindings) {
|
|
95
156
|
if (!typeBindings.has(name))
|
|
96
157
|
typeBindings.set(name, ref);
|
|
97
158
|
}
|
|
98
159
|
}
|
|
99
|
-
for (const
|
|
100
|
-
if (
|
|
160
|
+
for (const siblingPath of mergePaths) {
|
|
161
|
+
if (siblingPath === filePath)
|
|
162
|
+
continue;
|
|
163
|
+
const sibling = parsedByPath.get(siblingPath);
|
|
164
|
+
if (sibling === undefined)
|
|
101
165
|
continue;
|
|
102
166
|
for (const siblingScope of sibling.scopes) {
|
|
103
167
|
if (siblingScope.kind !== 'Class')
|
|
@@ -110,15 +174,19 @@ export function createJvmPackageSiblingVisibility(options) {
|
|
|
110
174
|
}
|
|
111
175
|
}
|
|
112
176
|
}
|
|
177
|
+
if (truncatedFiles > 0) {
|
|
178
|
+
logger.warn(`[${options.languageLabel}-package-siblings] sibling injection truncated at ${maxInjectedSiblings} per file for ${truncatedFiles} file(s); wildcard attribution disabled for those files (raise or unset GITNEXUS_MAX_INJECTED_SIBLINGS to widen, 0 for unbounded)`);
|
|
179
|
+
}
|
|
113
180
|
}
|
|
114
181
|
return {
|
|
115
182
|
populateNamespaceSiblings,
|
|
116
183
|
isVisibilityIncomplete: (filePath) => incompleteFiles.has(filePath),
|
|
117
184
|
};
|
|
118
185
|
}
|
|
119
|
-
function
|
|
120
|
-
|
|
121
|
-
|
|
186
|
+
function pathSegments(filePath) {
|
|
187
|
+
return filePath.replace(/\\/g, '/').split('/');
|
|
188
|
+
}
|
|
189
|
+
function sharedSegmentCount(aSegments, bSegments) {
|
|
122
190
|
let index = 0;
|
|
123
191
|
while (index < aSegments.length &&
|
|
124
192
|
index < bSegments.length &&
|
|
@@ -39,7 +39,10 @@
|
|
|
39
39
|
import type { ParsedFile, ScopeId } from '../../../../_shared/index.js';
|
|
40
40
|
import { type ClassAnnotationFact } from '../../frameworks/spring/bean-candidates.js';
|
|
41
41
|
import { type JvmPackageFact } from '../jvm/package-facts.js';
|
|
42
|
+
import type { KotlinSpringAopFact } from './spring-aop.js';
|
|
43
|
+
import type { KotlinSpringConditionalFact } from './spring-conditionals.js';
|
|
42
44
|
import type { KotlinSpringDiClassFact } from './spring-di.js';
|
|
45
|
+
import type { KotlinSpringNonHttpHandlerFact } from './spring-non-http-handlers.js';
|
|
43
46
|
/**
|
|
44
47
|
* Plain JSON-serializable snapshot of the per-file Kotlin capture-time
|
|
45
48
|
* side-channel. Carried opaquely on `ParsedFile.captureSideChannel`. The
|
|
@@ -54,14 +57,26 @@ export interface KotlinCaptureSideChannel {
|
|
|
54
57
|
readonly packageFact: JvmPackageFact;
|
|
55
58
|
/** Class annotation syntax collected by the existing scope traversal. */
|
|
56
59
|
readonly classAnnotations: readonly ClassAnnotationFact[];
|
|
60
|
+
/** Spring proxy/advice syntax captured per class or callable owner. */
|
|
61
|
+
readonly springAopFacts?: readonly KotlinSpringAopFact[];
|
|
62
|
+
/** Profile, conditional, and auto-configuration syntax captured per owner. */
|
|
63
|
+
readonly springConditionalFacts?: readonly KotlinSpringConditionalFact[];
|
|
57
64
|
/** Constructor, property, and method injection syntax captured per class. */
|
|
58
65
|
readonly springDiFacts?: readonly KotlinSpringDiClassFact[];
|
|
66
|
+
/** Scheduled, event, messaging, and managed-job handler syntax captured per callable. */
|
|
67
|
+
readonly springNonHttpHandlerFacts?: readonly KotlinSpringNonHttpHandlerFact[];
|
|
59
68
|
}
|
|
60
69
|
export declare function clearKotlinClassAnnotationFacts(): void;
|
|
70
|
+
export declare function setKotlinSpringAopFacts(filePath: string, facts: readonly KotlinSpringAopFact[]): void;
|
|
71
|
+
export declare function getKotlinSpringAopFacts(filePath: string): readonly KotlinSpringAopFact[];
|
|
61
72
|
export declare function setKotlinClassAnnotationFacts(filePath: string, facts: readonly ClassAnnotationFact[]): void;
|
|
62
73
|
export declare function getKotlinClassAnnotationFacts(filePath: string): readonly ClassAnnotationFact[];
|
|
74
|
+
export declare function setKotlinSpringConditionalFacts(filePath: string, facts: readonly KotlinSpringConditionalFact[]): void;
|
|
75
|
+
export declare function getKotlinSpringConditionalFacts(filePath: string): readonly KotlinSpringConditionalFact[];
|
|
63
76
|
export declare function setKotlinSpringDiFacts(filePath: string, facts: readonly KotlinSpringDiClassFact[]): void;
|
|
64
77
|
export declare function getKotlinSpringDiFacts(filePath: string): readonly KotlinSpringDiClassFact[];
|
|
78
|
+
export declare function setKotlinSpringNonHttpHandlerFacts(filePath: string, facts: readonly KotlinSpringNonHttpHandlerFact[]): void;
|
|
79
|
+
export declare function getKotlinSpringNonHttpHandlerFacts(filePath: string): readonly KotlinSpringNonHttpHandlerFact[];
|
|
65
80
|
/**
|
|
66
81
|
* `LanguageProvider.collectCaptureSideChannel` implementation for Kotlin.
|
|
67
82
|
* Returns `undefined` when this file recorded no side-channel state at all, so
|
|
@@ -41,10 +41,25 @@ import { isJvmPackageFact, UNKNOWN_JVM_PACKAGE_FACT, } from '../jvm/package-fact
|
|
|
41
41
|
import { getCompanionScopesForFile, markCompanionScope } from './companion-scopes.js';
|
|
42
42
|
import { getKotlinPackageFact, setKotlinPackageFact } from './package-facts.js';
|
|
43
43
|
const classAnnotations = createClassAnnotationFactStore();
|
|
44
|
+
const springAopFacts = new Map();
|
|
45
|
+
const springConditionalFacts = new Map();
|
|
44
46
|
const springDiFacts = new Map();
|
|
47
|
+
const springNonHttpHandlerFacts = new Map();
|
|
45
48
|
export function clearKotlinClassAnnotationFacts() {
|
|
46
49
|
classAnnotations.clear();
|
|
50
|
+
springAopFacts.clear();
|
|
51
|
+
springConditionalFacts.clear();
|
|
47
52
|
springDiFacts.clear();
|
|
53
|
+
springNonHttpHandlerFacts.clear();
|
|
54
|
+
}
|
|
55
|
+
export function setKotlinSpringAopFacts(filePath, facts) {
|
|
56
|
+
if (facts.length === 0)
|
|
57
|
+
springAopFacts.delete(filePath);
|
|
58
|
+
else
|
|
59
|
+
springAopFacts.set(filePath, facts);
|
|
60
|
+
}
|
|
61
|
+
export function getKotlinSpringAopFacts(filePath) {
|
|
62
|
+
return springAopFacts.get(filePath) ?? [];
|
|
48
63
|
}
|
|
49
64
|
export function setKotlinClassAnnotationFacts(filePath, facts) {
|
|
50
65
|
classAnnotations.set(filePath, facts);
|
|
@@ -52,6 +67,15 @@ export function setKotlinClassAnnotationFacts(filePath, facts) {
|
|
|
52
67
|
export function getKotlinClassAnnotationFacts(filePath) {
|
|
53
68
|
return classAnnotations.get(filePath);
|
|
54
69
|
}
|
|
70
|
+
export function setKotlinSpringConditionalFacts(filePath, facts) {
|
|
71
|
+
if (facts.length === 0)
|
|
72
|
+
springConditionalFacts.delete(filePath);
|
|
73
|
+
else
|
|
74
|
+
springConditionalFacts.set(filePath, facts);
|
|
75
|
+
}
|
|
76
|
+
export function getKotlinSpringConditionalFacts(filePath) {
|
|
77
|
+
return springConditionalFacts.get(filePath) ?? [];
|
|
78
|
+
}
|
|
55
79
|
export function setKotlinSpringDiFacts(filePath, facts) {
|
|
56
80
|
if (facts.length === 0)
|
|
57
81
|
springDiFacts.delete(filePath);
|
|
@@ -61,6 +85,15 @@ export function setKotlinSpringDiFacts(filePath, facts) {
|
|
|
61
85
|
export function getKotlinSpringDiFacts(filePath) {
|
|
62
86
|
return springDiFacts.get(filePath) ?? [];
|
|
63
87
|
}
|
|
88
|
+
export function setKotlinSpringNonHttpHandlerFacts(filePath, facts) {
|
|
89
|
+
if (facts.length === 0)
|
|
90
|
+
springNonHttpHandlerFacts.delete(filePath);
|
|
91
|
+
else
|
|
92
|
+
springNonHttpHandlerFacts.set(filePath, facts);
|
|
93
|
+
}
|
|
94
|
+
export function getKotlinSpringNonHttpHandlerFacts(filePath) {
|
|
95
|
+
return springNonHttpHandlerFacts.get(filePath) ?? [];
|
|
96
|
+
}
|
|
64
97
|
/**
|
|
65
98
|
* `LanguageProvider.collectCaptureSideChannel` implementation for Kotlin.
|
|
66
99
|
* Returns `undefined` when this file recorded no side-channel state at all, so
|
|
@@ -69,11 +102,17 @@ export function getKotlinSpringDiFacts(filePath) {
|
|
|
69
102
|
export function collectKotlinCaptureSideChannel(filePath) {
|
|
70
103
|
const companionScopes = getCompanionScopesForFile(filePath);
|
|
71
104
|
const annotationFacts = classAnnotations.get(filePath);
|
|
105
|
+
const aopFacts = springAopFacts.get(filePath) ?? [];
|
|
106
|
+
const conditionFacts = springConditionalFacts.get(filePath) ?? [];
|
|
72
107
|
const diFacts = springDiFacts.get(filePath) ?? [];
|
|
108
|
+
const nonHttpHandlerFacts = springNonHttpHandlerFacts.get(filePath) ?? [];
|
|
73
109
|
const packageFact = getKotlinPackageFact(filePath);
|
|
74
110
|
if (companionScopes.length === 0 &&
|
|
75
111
|
annotationFacts.length === 0 &&
|
|
112
|
+
aopFacts.length === 0 &&
|
|
113
|
+
conditionFacts.length === 0 &&
|
|
76
114
|
diFacts.length === 0 &&
|
|
115
|
+
nonHttpHandlerFacts.length === 0 &&
|
|
77
116
|
packageFact === undefined) {
|
|
78
117
|
return undefined;
|
|
79
118
|
}
|
|
@@ -82,7 +121,10 @@ export function collectKotlinCaptureSideChannel(filePath) {
|
|
|
82
121
|
companionScopes,
|
|
83
122
|
packageFact: packageFact ?? UNKNOWN_JVM_PACKAGE_FACT,
|
|
84
123
|
classAnnotations: annotationFacts,
|
|
124
|
+
...(aopFacts.length > 0 ? { springAopFacts: aopFacts } : {}),
|
|
125
|
+
...(conditionFacts.length > 0 ? { springConditionalFacts: conditionFacts } : {}),
|
|
85
126
|
...(diFacts.length > 0 ? { springDiFacts: diFacts } : {}),
|
|
127
|
+
...(nonHttpHandlerFacts.length > 0 ? { springNonHttpHandlerFacts: nonHttpHandlerFacts } : {}),
|
|
86
128
|
};
|
|
87
129
|
}
|
|
88
130
|
/**
|
|
@@ -102,7 +144,10 @@ export function applyKotlinCaptureSideChannel(parsed) {
|
|
|
102
144
|
!Array.isArray(data.companionScopes) ||
|
|
103
145
|
!Array.isArray(data.classAnnotations)) {
|
|
104
146
|
classAnnotations.set(parsed.filePath, []);
|
|
147
|
+
setKotlinSpringAopFacts(parsed.filePath, []);
|
|
148
|
+
setKotlinSpringConditionalFacts(parsed.filePath, []);
|
|
105
149
|
setKotlinSpringDiFacts(parsed.filePath, []);
|
|
150
|
+
setKotlinSpringNonHttpHandlerFacts(parsed.filePath, []);
|
|
106
151
|
setKotlinPackageFact(parsed.filePath, UNKNOWN_JVM_PACKAGE_FACT);
|
|
107
152
|
return;
|
|
108
153
|
}
|
|
@@ -110,6 +155,9 @@ export function applyKotlinCaptureSideChannel(parsed) {
|
|
|
110
155
|
markCompanionScope(parsed.filePath, scopeId);
|
|
111
156
|
}
|
|
112
157
|
classAnnotations.set(parsed.filePath, data.classAnnotations);
|
|
158
|
+
setKotlinSpringAopFacts(parsed.filePath, Array.isArray(data.springAopFacts) ? data.springAopFacts : []);
|
|
159
|
+
setKotlinSpringConditionalFacts(parsed.filePath, Array.isArray(data.springConditionalFacts) ? data.springConditionalFacts : []);
|
|
113
160
|
setKotlinSpringDiFacts(parsed.filePath, Array.isArray(data.springDiFacts) ? data.springDiFacts : []);
|
|
161
|
+
setKotlinSpringNonHttpHandlerFacts(parsed.filePath, Array.isArray(data.springNonHttpHandlerFacts) ? data.springNonHttpHandlerFacts : []);
|
|
114
162
|
setKotlinPackageFact(parsed.filePath, isJvmPackageFact(data.packageFact) ? data.packageFact : UNKNOWN_JVM_PACKAGE_FACT);
|
|
115
163
|
}
|