gitnexus 1.6.10-rc.98 → 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/class-extractors/configs/jvm.js +6 -6
- 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 +129 -44
- 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 +16 -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 +311 -16
- 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/jvm.js +2 -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 +322 -16
- package/dist/core/ingestion/utils/ast-helpers.js +727 -150
- 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 -3
- package/dist/storage/parsedfile-store.js +76 -6
- package/dist/storage/repo-manager.d.ts +54 -435
- package/dist/storage/repo-manager.js +312 -215
- 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
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Java import resolution against DECLARED packages (#2953).
|
|
3
|
+
*
|
|
4
|
+
* A Java import is a fully-qualified type name, not a path. `com.example.model.User`
|
|
5
|
+
* names the type `User` in the package `com.example.model`, and what places a
|
|
6
|
+
* file in that package is its own `package` declaration — not where it sits on
|
|
7
|
+
* disk. A file at `weird/path/User.java` declaring `package com.example.model;`
|
|
8
|
+
* IS `com.example.model.User`; a file at `com/example/model/User.java` declaring
|
|
9
|
+
* nothing is in the DEFAULT package and cannot be imported at all.
|
|
10
|
+
*
|
|
11
|
+
* The previous resolver worked the other way round: it turned dots into slashes
|
|
12
|
+
* and looked for a file whose path ended that way, retrying with each leading
|
|
13
|
+
* segment stripped. Path shape is a convention, so that mostly worked — and
|
|
14
|
+
* failed in the one case that matters most, because it could not tell an import
|
|
15
|
+
* of something outside the repository from one inside it. `java.util.List`
|
|
16
|
+
* became `util/List`, then `List`, and bound to any `List.java` in the tree.
|
|
17
|
+
* Every JDK and third-party import in a repo was a candidate for a fabricated
|
|
18
|
+
* IMPORTS edge at full confidence.
|
|
19
|
+
*
|
|
20
|
+
* The fix needs no new I/O. Every Java file's `package` declaration is already
|
|
21
|
+
* extracted during the parse pass and available here through
|
|
22
|
+
* `getJavaPackageFact` — the resolver simply never read it. So resolution
|
|
23
|
+
* becomes a lookup in an index the workspace already knows how to describe:
|
|
24
|
+
*
|
|
25
|
+
* `com.example.model.User` -> package `com.example.model` declares `User`
|
|
26
|
+
* `java.util.List` -> no file declares package `java.util` -> null
|
|
27
|
+
*
|
|
28
|
+
* `null` for the second is the complete and correct answer: the JDK is not in
|
|
29
|
+
* this repository, so there is no in-repo file the import could name.
|
|
30
|
+
*/
|
|
31
|
+
const EMPTY_INDEX = {
|
|
32
|
+
typesByPackage: new Map(),
|
|
33
|
+
filesByPackage: new Map(),
|
|
34
|
+
unreadablePackageFiles: 0,
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Index the workspace by what each file DECLARES.
|
|
38
|
+
*
|
|
39
|
+
* The importable type name is the file's base name, which is not a convention
|
|
40
|
+
* being relied on but the rule the language enforces: a type importable from
|
|
41
|
+
* another package must be `public`, and a public type must live in a file named
|
|
42
|
+
* after it. Additional package-private top-level types in the same file are
|
|
43
|
+
* deliberately not indexed — they are unimportable from elsewhere, so an import
|
|
44
|
+
* naming one is not a resolution this should find.
|
|
45
|
+
*/
|
|
46
|
+
export function buildJavaPackageIndex(parsedFiles, packageOf) {
|
|
47
|
+
if (parsedFiles.length === 0)
|
|
48
|
+
return EMPTY_INDEX;
|
|
49
|
+
const typesByPackage = new Map();
|
|
50
|
+
const filesByPackage = new Map();
|
|
51
|
+
let unreadablePackageFiles = 0;
|
|
52
|
+
for (const parsed of parsedFiles) {
|
|
53
|
+
const filePath = parsed.filePath;
|
|
54
|
+
const fact = packageOf(filePath);
|
|
55
|
+
if (fact === undefined)
|
|
56
|
+
continue;
|
|
57
|
+
if (fact.status !== 'known') {
|
|
58
|
+
unreadablePackageFiles++;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
// The default package (`''`) is indexed like any other so a workspace of
|
|
62
|
+
// package-less files still answers its own wildcards, but Java forbids
|
|
63
|
+
// importing FROM it, which `resolveJavaModule` enforces rather than
|
|
64
|
+
// pretending here that the entry does not exist.
|
|
65
|
+
const packageName = fact.packageName;
|
|
66
|
+
const typeName = baseTypeName(filePath);
|
|
67
|
+
if (typeName !== null) {
|
|
68
|
+
let types = typesByPackage.get(packageName);
|
|
69
|
+
if (types === undefined) {
|
|
70
|
+
types = new Map();
|
|
71
|
+
typesByPackage.set(packageName, types);
|
|
72
|
+
}
|
|
73
|
+
// First declaration wins. Two files claiming the same package+type is not
|
|
74
|
+
// legal Java; picking either is as correct as the input allows.
|
|
75
|
+
if (!types.has(typeName))
|
|
76
|
+
types.set(typeName, filePath);
|
|
77
|
+
}
|
|
78
|
+
const files = filesByPackage.get(packageName);
|
|
79
|
+
if (files === undefined)
|
|
80
|
+
filesByPackage.set(packageName, [filePath]);
|
|
81
|
+
else
|
|
82
|
+
files.push(filePath);
|
|
83
|
+
}
|
|
84
|
+
return { typesByPackage, filesByPackage, unreadablePackageFiles };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Resolve one import specifier to the file(s) it names, or `null`.
|
|
88
|
+
*
|
|
89
|
+
* A wildcard answers with every file in the package; a type import answers with
|
|
90
|
+
* one file. Anything the workspace does not declare answers `null`.
|
|
91
|
+
*/
|
|
92
|
+
export function resolveJavaModule(targetRaw, index) {
|
|
93
|
+
if (targetRaw === '')
|
|
94
|
+
return null;
|
|
95
|
+
if (targetRaw.endsWith('.*')) {
|
|
96
|
+
const stem = targetRaw.slice(0, -2);
|
|
97
|
+
const inPackage = index.filesByPackage.get(stem);
|
|
98
|
+
// Only package wildcards retain `.*`. Static wildcards are interpreted with
|
|
99
|
+
// the owning type path so a same-named package cannot capture the import.
|
|
100
|
+
return inPackage !== undefined && stem !== '' ? inPackage : null;
|
|
101
|
+
}
|
|
102
|
+
return resolveTypeName(targetRaw, index);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Split a qualified name into the longest DECLARED package prefix and the type
|
|
106
|
+
* that follows it.
|
|
107
|
+
*
|
|
108
|
+
* Longest-first is what makes both of these land correctly without a rule about
|
|
109
|
+
* capitalization, which Java does not actually enforce:
|
|
110
|
+
*
|
|
111
|
+
* `com.example.model.User` -> package `com.example.model`, type `User`
|
|
112
|
+
* `com.example.Utils.method` -> package `com.example`, type `Utils`
|
|
113
|
+
*
|
|
114
|
+
* The second is a static member import; its trailing segments name members
|
|
115
|
+
* inside the type, and the file the import binds to is the type's.
|
|
116
|
+
*/
|
|
117
|
+
function resolveTypeName(qualified, index) {
|
|
118
|
+
const parts = qualified.split('.').filter((part) => part !== '');
|
|
119
|
+
// A single bare segment names a type in the default package, which Java
|
|
120
|
+
// forbids importing. Nothing to resolve, and nothing to guess at.
|
|
121
|
+
if (parts.length < 2)
|
|
122
|
+
return null;
|
|
123
|
+
for (let split = parts.length - 1; split >= 1; split--) {
|
|
124
|
+
const packageName = parts.slice(0, split).join('.');
|
|
125
|
+
const types = index.typesByPackage.get(packageName);
|
|
126
|
+
if (types === undefined)
|
|
127
|
+
continue;
|
|
128
|
+
const file = types.get(parts[split]);
|
|
129
|
+
if (file !== undefined)
|
|
130
|
+
return file;
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
/** `src/main/java/com/example/User.java` -> `User`. */
|
|
135
|
+
function baseTypeName(filePath) {
|
|
136
|
+
const slash = filePath.replace(/\\/g, '/').lastIndexOf('/');
|
|
137
|
+
const base = slash === -1 ? filePath : filePath.slice(slash + 1);
|
|
138
|
+
if (!base.endsWith('.java'))
|
|
139
|
+
return null;
|
|
140
|
+
const name = base.slice(0, -'.java'.length);
|
|
141
|
+
return name === '' ? null : name;
|
|
142
|
+
}
|
|
@@ -53,19 +53,26 @@ const JAVA_SCOPE_QUERY = `
|
|
|
53
53
|
|
|
54
54
|
(method_declaration) @scope.function
|
|
55
55
|
(constructor_declaration) @scope.function
|
|
56
|
+
(compact_constructor_declaration) @scope.function
|
|
56
57
|
|
|
57
58
|
;; Declarations — types
|
|
59
|
+
;; Optional-quantifier capture rather than a second pattern: a separate rule
|
|
60
|
+
;; would make every GENERIC declaration match twice under one def id, leaving
|
|
61
|
+
;; match order to decide which twin kept the parameters.
|
|
58
62
|
(class_declaration
|
|
59
|
-
name: (identifier) @declaration.name
|
|
63
|
+
name: (identifier) @declaration.name
|
|
64
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.class
|
|
60
65
|
|
|
61
66
|
(interface_declaration
|
|
62
|
-
name: (identifier) @declaration.name
|
|
67
|
+
name: (identifier) @declaration.name
|
|
68
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.interface
|
|
63
69
|
|
|
64
70
|
(enum_declaration
|
|
65
71
|
name: (identifier) @declaration.name) @declaration.enum
|
|
66
72
|
|
|
67
73
|
(record_declaration
|
|
68
|
-
name: (identifier) @declaration.name
|
|
74
|
+
name: (identifier) @declaration.name
|
|
75
|
+
type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.record
|
|
69
76
|
|
|
70
77
|
(annotation_type_declaration
|
|
71
78
|
name: (identifier) @declaration.name) @declaration.class
|
|
@@ -80,7 +87,13 @@ const JAVA_SCOPE_QUERY = `
|
|
|
80
87
|
])) @class-annotation.class
|
|
81
88
|
|
|
82
89
|
;; Declarations — methods / constructors
|
|
90
|
+
;;
|
|
91
|
+
;; A generic METHOD's parameters are read for the same reason a generic type's
|
|
92
|
+
;; are (#2912 review): \`<T> boolean runAny(Validator<T> v)\` writes a receiver
|
|
93
|
+
;; whose argument is a type VARIABLE, and a pass that cannot tell that from a
|
|
94
|
+
;; concrete type prunes every implementor from the call's dispatch fan-out.
|
|
83
95
|
(method_declaration
|
|
96
|
+
type_parameters: (type_parameters)? @declaration.type-parameters
|
|
84
97
|
name: (identifier) @declaration.name) @declaration.method
|
|
85
98
|
|
|
86
99
|
(constructor_declaration
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type CaptureMatch } from '../../../../_shared/index.js';
|
|
2
|
+
import type { CaptureMap } from '../../language-provider.js';
|
|
3
|
+
import type { MethodExtractor } from '../../method-types.js';
|
|
4
|
+
import { type SyntaxNode } from '../../utils/ast-helpers.js';
|
|
5
|
+
/** Java records synthesize one public, zero-argument accessor per component. */
|
|
6
|
+
export declare const javaRecordMethodExtractor: MethodExtractor;
|
|
7
|
+
/** Scope declarations matching the structure-phase synthetic accessor nodes. */
|
|
8
|
+
export declare function synthesizeJavaRecordComponentAccessorCaptures(rootNode: SyntaxNode): CaptureMatch[];
|
|
9
|
+
/**
|
|
10
|
+
* The structure query sees every record component. Suppress that synthetic
|
|
11
|
+
* definition when the record body provides the canonical zero-argument
|
|
12
|
+
* accessor explicitly, leaving the explicit method as the single authority.
|
|
13
|
+
*/
|
|
14
|
+
export declare function shouldSkipJavaRecordComponentDefinition(captureMap: CaptureMap): boolean;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { SupportedLanguages } from '../../../../_shared/index.js';
|
|
2
|
+
import { createMethodExtractor } from '../../method-extractors/generic.js';
|
|
3
|
+
import { javaMethodConfig } from '../../method-extractors/configs/jvm.js';
|
|
4
|
+
import { extractAnnotations } from '../../field-extractors/configs/helpers.js';
|
|
5
|
+
import { nodeToCapture, syntheticCapture } from '../../utils/ast-helpers.js';
|
|
6
|
+
const javaExplicitMethodExtractor = createMethodExtractor(javaMethodConfig);
|
|
7
|
+
function recordComponents(recordNode) {
|
|
8
|
+
const parameters = recordNode.childForFieldName('parameters');
|
|
9
|
+
if (parameters === null)
|
|
10
|
+
return [];
|
|
11
|
+
return parameters.namedChildren.filter((node) => node !== null && (node.type === 'formal_parameter' || node.type === 'spread_parameter'));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A record component is named by a real `identifier` and nothing else.
|
|
15
|
+
*
|
|
16
|
+
* Two node shapes reach this that are not one, and both would mint a graph node
|
|
17
|
+
* for source that does not compile:
|
|
18
|
+
*
|
|
19
|
+
* - `record M(int x, y) {}` — a dropped type. tree-sitter recovers by
|
|
20
|
+
* synthesizing `name: (MISSING identifier)`, a zero-width node whose text is
|
|
21
|
+
* `''`. It still satisfies the query's `name: (identifier)`, so testing the
|
|
22
|
+
* node TYPE alone does not reject it.
|
|
23
|
+
* - `record R(int _) {}` — the grammar declares both `formal_parameter.name`
|
|
24
|
+
* and `variable_declarator.name` as `identifier | underscore_pattern`, and
|
|
25
|
+
* `_` parses with no error at all. `_` is illegal as a component name, and
|
|
26
|
+
* admitting it here while the query rejects it is what let the structure and
|
|
27
|
+
* scope paths disagree.
|
|
28
|
+
*
|
|
29
|
+
* Same degenerate-node shape as `javaBaseLookupNameNode` in captures.ts (#2935).
|
|
30
|
+
*/
|
|
31
|
+
function isRecordComponentName(node) {
|
|
32
|
+
return (node !== null &&
|
|
33
|
+
node !== undefined &&
|
|
34
|
+
node.type === 'identifier' &&
|
|
35
|
+
!node.isMissing &&
|
|
36
|
+
node.text.length > 0);
|
|
37
|
+
}
|
|
38
|
+
function recordComponentNameNode(component) {
|
|
39
|
+
const name = component.type === 'formal_parameter'
|
|
40
|
+
? component.childForFieldName('name')
|
|
41
|
+
: (component.namedChildren
|
|
42
|
+
.find((node) => node?.type === 'variable_declarator')
|
|
43
|
+
?.childForFieldName('name') ?? null);
|
|
44
|
+
return isRecordComponentName(name) ? name : null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Memoised per record node. `shouldSkipJavaRecordComponentDefinition` is called
|
|
48
|
+
* once per component capture, so recomputing this would rescan the whole record
|
|
49
|
+
* body per component — O(components x body members) for a single record. The
|
|
50
|
+
* scope-capture path hoists the call out of its own loop instead; this cache is
|
|
51
|
+
* what gives the structure path the same cost. Keyed weakly on the AST node, so
|
|
52
|
+
* it drops with the tree at the end of the file's parse.
|
|
53
|
+
*/
|
|
54
|
+
const explicitZeroArgAccessorNamesCache = new WeakMap();
|
|
55
|
+
function explicitZeroArgAccessorNames(recordNode) {
|
|
56
|
+
const memoized = explicitZeroArgAccessorNamesCache.get(recordNode);
|
|
57
|
+
if (memoized !== undefined)
|
|
58
|
+
return memoized;
|
|
59
|
+
const names = computeExplicitZeroArgAccessorNames(recordNode);
|
|
60
|
+
explicitZeroArgAccessorNamesCache.set(recordNode, names);
|
|
61
|
+
return names;
|
|
62
|
+
}
|
|
63
|
+
function computeExplicitZeroArgAccessorNames(recordNode) {
|
|
64
|
+
const names = new Set();
|
|
65
|
+
const body = recordNode.childForFieldName('body');
|
|
66
|
+
if (body === null)
|
|
67
|
+
return names;
|
|
68
|
+
for (const node of body.namedChildren) {
|
|
69
|
+
if (node === null || node.type !== 'method_declaration')
|
|
70
|
+
continue;
|
|
71
|
+
const name = node.childForFieldName('name')?.text;
|
|
72
|
+
const parameters = node.childForFieldName('parameters');
|
|
73
|
+
const parameterCount = parameters?.namedChildren.filter((parameter) => parameter !== null &&
|
|
74
|
+
(parameter.type === 'formal_parameter' || parameter.type === 'spread_parameter')).length ?? 0;
|
|
75
|
+
if (name !== undefined && parameterCount === 0)
|
|
76
|
+
names.add(name);
|
|
77
|
+
}
|
|
78
|
+
return names;
|
|
79
|
+
}
|
|
80
|
+
function recordComponentReturnType(component) {
|
|
81
|
+
const typeNode = component.childForFieldName('type') ??
|
|
82
|
+
(component.type === 'spread_parameter'
|
|
83
|
+
? component.namedChildren.find((node) => node?.type !== 'modifiers' && node?.type !== 'variable_declarator')
|
|
84
|
+
: undefined);
|
|
85
|
+
const type = typeNode?.text;
|
|
86
|
+
if (type === undefined)
|
|
87
|
+
return null;
|
|
88
|
+
return component.type === 'spread_parameter' ? `${type}[]` : type;
|
|
89
|
+
}
|
|
90
|
+
function implicitAccessorInfo(component, context) {
|
|
91
|
+
const name = recordComponentNameNode(component)?.text;
|
|
92
|
+
if (name === undefined)
|
|
93
|
+
return null;
|
|
94
|
+
return {
|
|
95
|
+
name,
|
|
96
|
+
receiverType: null,
|
|
97
|
+
returnType: recordComponentReturnType(component),
|
|
98
|
+
parameters: [],
|
|
99
|
+
visibility: 'public',
|
|
100
|
+
isStatic: false,
|
|
101
|
+
isAbstract: false,
|
|
102
|
+
isFinal: false,
|
|
103
|
+
// JLS 8.10.3 / 9.7.4: a component annotation reaches the generated accessor
|
|
104
|
+
// when its @Target admits METHOD (or TYPE_USE, in the return-type position).
|
|
105
|
+
// ponytail: over-approximate — we propagate every component annotation,
|
|
106
|
+
// because @Target lives in another file and parsing is per-file, so the
|
|
107
|
+
// target set is not knowable here. Nothing reads Method annotations today:
|
|
108
|
+
// `annotations` is not a column in METHOD_SCHEMA/FUNCTION_SCHEMA
|
|
109
|
+
// (src/core/lbug/schema.ts), so it lives only in the in-memory graph for one
|
|
110
|
+
// analyze run, and the sole in-memory reader (springDiFieldMatcher) is gated
|
|
111
|
+
// to `Property` nodes. If that column is ever added, revisit this: the set
|
|
112
|
+
// would then become an agent-visible claim that may over-state the target.
|
|
113
|
+
annotations: extractAnnotations(component, 'modifiers'),
|
|
114
|
+
sourceFile: context.filePath,
|
|
115
|
+
line: component.startPosition.row + 1,
|
|
116
|
+
column: component.startPosition.column,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/** Java records synthesize one public, zero-argument accessor per component. */
|
|
120
|
+
export const javaRecordMethodExtractor = {
|
|
121
|
+
...javaExplicitMethodExtractor,
|
|
122
|
+
language: SupportedLanguages.Java,
|
|
123
|
+
extract(node, context) {
|
|
124
|
+
const extracted = javaExplicitMethodExtractor.extract(node, context);
|
|
125
|
+
if (extracted === null || node.type !== 'record_declaration')
|
|
126
|
+
return extracted;
|
|
127
|
+
const explicitAccessors = explicitZeroArgAccessorNames(node);
|
|
128
|
+
const implicitAccessors = recordComponents(node)
|
|
129
|
+
.filter((component) => {
|
|
130
|
+
const name = recordComponentNameNode(component)?.text;
|
|
131
|
+
return name !== undefined && !explicitAccessors.has(name);
|
|
132
|
+
})
|
|
133
|
+
.map((component) => implicitAccessorInfo(component, context))
|
|
134
|
+
.filter((method) => method !== null);
|
|
135
|
+
return { ...extracted, methods: [...extracted.methods, ...implicitAccessors] };
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
/** Scope declarations matching the structure-phase synthetic accessor nodes. */
|
|
139
|
+
export function synthesizeJavaRecordComponentAccessorCaptures(rootNode) {
|
|
140
|
+
const captures = [];
|
|
141
|
+
for (const recordNode of rootNode.descendantsOfType('record_declaration')) {
|
|
142
|
+
const explicitAccessors = explicitZeroArgAccessorNames(recordNode);
|
|
143
|
+
for (const component of recordComponents(recordNode)) {
|
|
144
|
+
const nameNode = recordComponentNameNode(component);
|
|
145
|
+
const returnType = recordComponentReturnType(component);
|
|
146
|
+
if (nameNode === null || returnType === null || explicitAccessors.has(nameNode.text))
|
|
147
|
+
continue;
|
|
148
|
+
captures.push({
|
|
149
|
+
'@scope.function': nodeToCapture('@scope.function', component),
|
|
150
|
+
});
|
|
151
|
+
captures.push({
|
|
152
|
+
'@declaration.method': nodeToCapture('@declaration.method', component),
|
|
153
|
+
'@declaration.name': nodeToCapture('@declaration.name', nameNode),
|
|
154
|
+
'@declaration.parameter-count': syntheticCapture('@declaration.parameter-count', component, '0'),
|
|
155
|
+
'@declaration.required-parameter-count': syntheticCapture('@declaration.required-parameter-count', component, '0'),
|
|
156
|
+
'@declaration.return-type': syntheticCapture('@declaration.return-type', component, returnType),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return captures;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The structure query sees every record component. Suppress that synthetic
|
|
164
|
+
* definition when the record body provides the canonical zero-argument
|
|
165
|
+
* accessor explicitly, leaving the explicit method as the single authority.
|
|
166
|
+
*/
|
|
167
|
+
export function shouldSkipJavaRecordComponentDefinition(captureMap) {
|
|
168
|
+
const component = captureMap['definition.method'];
|
|
169
|
+
if (component?.type !== 'formal_parameter' && component?.type !== 'spread_parameter') {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
const parameters = component.parent;
|
|
173
|
+
const recordNode = parameters?.parent;
|
|
174
|
+
if (parameters?.type !== 'formal_parameters' || recordNode?.type !== 'record_declaration') {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
// Same predicate the scope path applies, so the two can never disagree about
|
|
178
|
+
// which components have an accessor. The query's `name: (identifier)` is
|
|
179
|
+
// satisfied by tree-sitter's zero-width MISSING recovery token, so the
|
|
180
|
+
// structure path has to re-check what the query cannot express.
|
|
181
|
+
const nameNode = captureMap['name'];
|
|
182
|
+
if (!isRecordComponentName(nameNode))
|
|
183
|
+
return true;
|
|
184
|
+
return explicitZeroArgAccessorNames(recordNode).has(nameNode.text);
|
|
185
|
+
}
|
|
@@ -14,8 +14,11 @@ import { javaProvider } from '../java.js';
|
|
|
14
14
|
import { javaArityCompatibility, javaMergeBindings, resolveJavaImportTarget, } from './index.js';
|
|
15
15
|
import { populateJavaPackageSiblings } from './package-siblings.js';
|
|
16
16
|
import { attachSpringBeanCandidateMetadata } from './spring-bean-metadata.js';
|
|
17
|
+
import { attachJavaSpringAopMetadata } from './spring-aop.js';
|
|
17
18
|
import { attachJavaSpringConfigBindings } from './spring-config-bindings.js';
|
|
19
|
+
import { attachJavaSpringConditionalMetadata } from './spring-conditionals.js';
|
|
18
20
|
import { attachJavaSpringDiMetadata } from './spring-di.js';
|
|
21
|
+
import { attachJavaSpringNonHttpHandlerMetadata } from './spring-non-http-handlers.js';
|
|
19
22
|
import { applyJavaCaptureSideChannel, clearJavaClassAnnotationFacts, } from './capture-side-channel.js';
|
|
20
23
|
import { clearJavaPackageFacts } from './package-facts.js';
|
|
21
24
|
const javaScopeResolver = {
|
|
@@ -30,8 +33,10 @@ const javaScopeResolver = {
|
|
|
30
33
|
clearJavaPackageFacts();
|
|
31
34
|
return undefined;
|
|
32
35
|
},
|
|
33
|
-
resolveImportTarget: (targetRaw, fromFile, allFilePaths) => {
|
|
34
|
-
|
|
36
|
+
resolveImportTarget: (targetRaw, fromFile, allFilePaths, _resolutionConfig, context) => {
|
|
37
|
+
// `context.parsedFiles` is the whole input now: a Java import names a type
|
|
38
|
+
// in a DECLARED package, and the declarations live on those files (#2953).
|
|
39
|
+
const ws = { fromFile, allFilePaths, parsedFiles: context?.parsedFiles };
|
|
35
40
|
return resolveJavaImportTarget({ kind: 'named', localName: '_', importedName: '_', targetRaw }, ws);
|
|
36
41
|
},
|
|
37
42
|
mergeBindings: (existing, incoming) => [...javaMergeBindings([...existing, ...incoming])],
|
|
@@ -55,7 +60,10 @@ const javaScopeResolver = {
|
|
|
55
60
|
populateRangeBindings: populateJavaCrossFileReturnTypes,
|
|
56
61
|
emitPostResolutionEdges: (graph, parsedFiles, nodeLookup, indexes, ctx) => {
|
|
57
62
|
attachSpringBeanCandidateMetadata(graph, parsedFiles, nodeLookup, indexes);
|
|
63
|
+
attachJavaSpringAopMetadata(graph, parsedFiles, nodeLookup, indexes);
|
|
64
|
+
attachJavaSpringConditionalMetadata(graph, parsedFiles, nodeLookup, indexes);
|
|
58
65
|
attachJavaSpringDiMetadata(graph, parsedFiles, nodeLookup, indexes);
|
|
66
|
+
attachJavaSpringNonHttpHandlerMetadata(graph, parsedFiles, nodeLookup, indexes);
|
|
59
67
|
attachJavaSpringConfigBindings(graph, parsedFiles, nodeLookup, indexes, ctx);
|
|
60
68
|
},
|
|
61
69
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type SpringAopOwnerFact } from '../../frameworks/spring/aop.js';
|
|
2
|
+
import { type SyntaxNode } from '../../utils/ast-helpers.js';
|
|
3
|
+
import { type JavaAnnotationSyntaxFact } from './spring-di.js';
|
|
4
|
+
export type JavaSpringAopAnnotationFact = JavaAnnotationSyntaxFact;
|
|
5
|
+
export type JavaSpringAopFact = SpringAopOwnerFact<JavaSpringAopAnnotationFact>;
|
|
6
|
+
/**
|
|
7
|
+
* Capture Spring AOP syntax while Java's existing class traversal already has
|
|
8
|
+
* the AST node in hand. Import/FQN resolution and pointcut matching remain in
|
|
9
|
+
* the shared post-resolution layer.
|
|
10
|
+
*/
|
|
11
|
+
export declare function captureJavaSpringAopFacts(classNode: SyntaxNode, filePath: string): JavaSpringAopFact[];
|
|
12
|
+
export declare const attachJavaSpringAopMetadata: (graph: import("../../../graph/types.js").KnowledgeGraph, parsedFiles: readonly import('../../../../_shared/index.js').ParsedFile[], nodeLookup: import("../../scope-resolution/graph-bridge/node-lookup.js").GraphNodeLookup, indexes: import("../../model/scope-resolution-indexes.js").ScopeResolutionIndexes) => void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { makeScopeId } from '../../../../_shared/index.js';
|
|
2
|
+
import { createSpringAopMetadataAttacher, hasSpringAopRelevantAnnotation, } from '../../frameworks/spring/aop.js';
|
|
3
|
+
import { nodeToCapture } from '../../utils/ast-helpers.js';
|
|
4
|
+
import { getJavaSpringAopFacts } from './capture-side-channel.js';
|
|
5
|
+
import { isJavaPackageSiblingVisibilityIncomplete } from './package-siblings.js';
|
|
6
|
+
import { javaSpringAnnotationFacts } from './spring-di.js';
|
|
7
|
+
function scopeId(filePath, node, kind) {
|
|
8
|
+
return makeScopeId({
|
|
9
|
+
filePath,
|
|
10
|
+
range: nodeToCapture('@spring-aop.owner', node).range,
|
|
11
|
+
kind,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Capture Spring AOP syntax while Java's existing class traversal already has
|
|
16
|
+
* the AST node in hand. Import/FQN resolution and pointcut matching remain in
|
|
17
|
+
* the shared post-resolution layer.
|
|
18
|
+
*/
|
|
19
|
+
export function captureJavaSpringAopFacts(classNode, filePath) {
|
|
20
|
+
const facts = [];
|
|
21
|
+
const classAnnotations = javaSpringAnnotationFacts(classNode);
|
|
22
|
+
if (hasSpringAopRelevantAnnotation(classAnnotations)) {
|
|
23
|
+
facts.push({
|
|
24
|
+
ownerScopeId: scopeId(filePath, classNode, 'Class'),
|
|
25
|
+
ownerKind: 'class',
|
|
26
|
+
annotations: classAnnotations,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const body = classNode.childForFieldName('body');
|
|
30
|
+
if (body === null)
|
|
31
|
+
return facts;
|
|
32
|
+
for (const member of body.namedChildren) {
|
|
33
|
+
if (member.type !== 'method_declaration')
|
|
34
|
+
continue;
|
|
35
|
+
const annotations = javaSpringAnnotationFacts(member);
|
|
36
|
+
if (!hasSpringAopRelevantAnnotation(annotations))
|
|
37
|
+
continue;
|
|
38
|
+
facts.push({
|
|
39
|
+
ownerScopeId: scopeId(filePath, member, 'Function'),
|
|
40
|
+
ownerKind: 'callable',
|
|
41
|
+
annotations,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return facts;
|
|
45
|
+
}
|
|
46
|
+
export const attachJavaSpringAopMetadata = createSpringAopMetadataAttacher({
|
|
47
|
+
getFacts: getJavaSpringAopFacts,
|
|
48
|
+
isPackageVisibilityIncomplete: isJavaPackageSiblingVisibilityIncomplete,
|
|
49
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type SpringConditionalOwnerFact } from '../../frameworks/spring/conditionals.js';
|
|
2
|
+
import { type SyntaxNode } from '../../utils/ast-helpers.js';
|
|
3
|
+
import { type JavaAnnotationSyntaxFact } from './spring-di.js';
|
|
4
|
+
export type JavaSpringConditionalAnnotationFact = JavaAnnotationSyntaxFact;
|
|
5
|
+
export type JavaSpringConditionalFact = SpringConditionalOwnerFact<JavaSpringConditionalAnnotationFact>;
|
|
6
|
+
/**
|
|
7
|
+
* Capture Spring condition syntax while Java's existing class traversal already
|
|
8
|
+
* has the AST node in hand. Framework/FQN semantics are resolved later.
|
|
9
|
+
*/
|
|
10
|
+
export declare function captureJavaSpringConditionalFacts(classNode: SyntaxNode, filePath: string): JavaSpringConditionalFact[];
|
|
11
|
+
export declare const attachJavaSpringConditionalMetadata: (graph: import("../../../graph/types.js").KnowledgeGraph, parsedFiles: readonly import('../../../../_shared/index.js').ParsedFile[], nodeLookup: import("../../scope-resolution/graph-bridge/node-lookup.js").GraphNodeLookup, indexes: import("../../model/scope-resolution-indexes.js").ScopeResolutionIndexes) => void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { makeScopeId } from '../../../../_shared/index.js';
|
|
2
|
+
import { createSpringConditionalMetadataAttacher, hasSpringConditionalRelevantAnnotation, } from '../../frameworks/spring/conditionals.js';
|
|
3
|
+
import { nodeToCapture } from '../../utils/ast-helpers.js';
|
|
4
|
+
import { getJavaSpringConditionalFacts } from './capture-side-channel.js';
|
|
5
|
+
import { isJavaPackageSiblingVisibilityIncomplete } from './package-siblings.js';
|
|
6
|
+
import { javaSpringAnnotationFacts } from './spring-di.js';
|
|
7
|
+
function scopeId(filePath, node, kind) {
|
|
8
|
+
return makeScopeId({
|
|
9
|
+
filePath,
|
|
10
|
+
range: nodeToCapture('@spring-condition.owner', node).range,
|
|
11
|
+
kind,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Capture Spring condition syntax while Java's existing class traversal already
|
|
16
|
+
* has the AST node in hand. Framework/FQN semantics are resolved later.
|
|
17
|
+
*/
|
|
18
|
+
export function captureJavaSpringConditionalFacts(classNode, filePath) {
|
|
19
|
+
const facts = [];
|
|
20
|
+
const classAnnotations = javaSpringAnnotationFacts(classNode);
|
|
21
|
+
if (hasSpringConditionalRelevantAnnotation(classAnnotations)) {
|
|
22
|
+
facts.push({
|
|
23
|
+
ownerScopeId: scopeId(filePath, classNode, 'Class'),
|
|
24
|
+
ownerKind: 'class',
|
|
25
|
+
annotations: classAnnotations,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const body = classNode.childForFieldName('body');
|
|
29
|
+
if (body === null)
|
|
30
|
+
return facts;
|
|
31
|
+
for (const member of body.namedChildren) {
|
|
32
|
+
if (member.type !== 'method_declaration')
|
|
33
|
+
continue;
|
|
34
|
+
const annotations = javaSpringAnnotationFacts(member);
|
|
35
|
+
if (!hasSpringConditionalRelevantAnnotation(annotations))
|
|
36
|
+
continue;
|
|
37
|
+
facts.push({
|
|
38
|
+
ownerScopeId: scopeId(filePath, member, 'Function'),
|
|
39
|
+
ownerKind: 'callable',
|
|
40
|
+
annotations,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return facts;
|
|
44
|
+
}
|
|
45
|
+
export const attachJavaSpringConditionalMetadata = createSpringConditionalMetadataAttacher({
|
|
46
|
+
getFacts: getJavaSpringConditionalFacts,
|
|
47
|
+
isPackageVisibilityIncomplete: isJavaPackageSiblingVisibilityIncomplete,
|
|
48
|
+
});
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { type SpringDiAnnotationFact, type SpringDiClassFact, type SpringDiDependencyFact, type SpringDiInjectionSiteFact } from '../../frameworks/spring/di-metadata.js';
|
|
2
2
|
import { type SyntaxNode } from '../../utils/ast-helpers.js';
|
|
3
|
-
export
|
|
3
|
+
export interface JavaAnnotationSyntaxFact extends SpringDiAnnotationFact {
|
|
4
|
+
readonly line: number;
|
|
5
|
+
}
|
|
4
6
|
export type JavaSpringDependencyFact = SpringDiDependencyFact<JavaAnnotationSyntaxFact>;
|
|
5
7
|
type JavaSpringInjectionSiteKind = 'field' | 'constructor' | 'method';
|
|
6
8
|
export type JavaSpringInjectionSiteFact = SpringDiInjectionSiteFact<JavaAnnotationSyntaxFact, JavaSpringInjectionSiteKind>;
|
|
7
9
|
export type JavaSpringDiClassFact = SpringDiClassFact<JavaAnnotationSyntaxFact, JavaSpringInjectionSiteKind>;
|
|
10
|
+
export declare function javaSpringAnnotationFacts(node: SyntaxNode): JavaAnnotationSyntaxFact[];
|
|
8
11
|
/**
|
|
9
12
|
* Capture one class already surfaced by Java's scope query.
|
|
10
13
|
*
|