gitnexus 1.6.11-rc.8 → 1.6.11
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 +95 -26
- package/dist/_shared/graph/types.d.ts +81 -2
- package/dist/_shared/graph/types.d.ts.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.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/language-detection.js +2 -0
- package/dist/_shared/language-detection.js.map +1 -1
- package/dist/_shared/languages.d.ts +2 -1
- package/dist/_shared/languages.d.ts.map +1 -1
- package/dist/_shared/languages.js +1 -0
- package/dist/_shared/languages.js.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 +4 -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.js +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/language-classification.d.ts +3 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/language-classification.js +4 -0
- package/dist/_shared/scope-resolution/language-classification.js.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +10 -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/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/types.d.ts +15 -0
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +4 -0
- package/dist/cli/ai-context.js +90 -14
- package/dist/cli/analyze-config.js +14 -0
- package/dist/cli/analyze-options.d.ts +14 -0
- package/dist/cli/analyze-watch.d.ts +20 -0
- package/dist/cli/analyze-watch.js +434 -0
- package/dist/cli/analyze.js +27 -9
- package/dist/cli/auto-sync.d.ts +1 -0
- package/dist/cli/auto-sync.js +107 -0
- package/dist/cli/command-banner.d.ts +15 -0
- package/dist/cli/command-banner.js +42 -0
- package/dist/cli/detect-changes-format.js +21 -0
- package/dist/cli/doctor.d.ts +7 -0
- package/dist/cli/doctor.js +14 -0
- package/dist/cli/group.js +7 -1
- package/dist/cli/help-i18n.js +4 -0
- package/dist/cli/i18n/en.d.ts +18 -3
- package/dist/cli/i18n/en.js +18 -3
- package/dist/cli/i18n/resources.d.ts +33 -3
- package/dist/cli/i18n/zh-CN.d.ts +15 -0
- package/dist/cli/i18n/zh-CN.js +18 -3
- package/dist/cli/index.js +34 -7
- package/dist/cli/mcp.d.ts +15 -0
- package/dist/cli/mcp.js +44 -0
- package/dist/cli/optional-grammars.d.ts +3 -2
- package/dist/cli/optional-grammars.js +19 -3
- package/dist/cli/setup.js +41 -15
- package/dist/cli/update-notice.d.ts +34 -0
- package/dist/cli/update-notice.js +91 -0
- package/dist/cli/update.d.ts +21 -0
- package/dist/cli/update.js +93 -0
- package/dist/cli/watch.d.ts +1 -20
- package/dist/cli/watch.js +5 -371
- package/dist/core/analysis-feature-registry.d.ts +2 -0
- package/dist/core/analysis-feature-registry.js +15 -0
- package/dist/core/analyzer-identity.js +21 -3
- package/dist/core/auto-sync/analysis-worker-launch.d.ts +30 -0
- package/dist/core/auto-sync/analysis-worker-launch.js +166 -0
- package/dist/core/auto-sync/config.d.ts +33 -0
- package/dist/core/auto-sync/config.js +320 -0
- package/dist/core/auto-sync/index.d.ts +6 -0
- package/dist/core/auto-sync/index.js +6 -0
- package/dist/core/auto-sync/path-security.d.ts +9 -0
- package/dist/core/auto-sync/path-security.js +251 -0
- package/dist/core/auto-sync/repo.d.ts +1 -0
- package/dist/core/auto-sync/repo.js +6 -0
- package/dist/core/auto-sync/runner.d.ts +44 -0
- package/dist/core/auto-sync/runner.js +428 -0
- package/dist/core/auto-sync/starter.d.ts +50 -0
- package/dist/core/auto-sync/starter.js +497 -0
- package/dist/core/auto-sync/state.d.ts +37 -0
- package/dist/core/auto-sync/state.js +119 -0
- package/dist/core/group/config-parser.js +8 -1
- package/dist/core/group/cross-impact.d.ts +3 -0
- package/dist/core/group/cross-impact.js +36 -4
- package/dist/core/group/extractors/http-patterns/java.js +22 -8
- package/dist/core/group/extractors/http-patterns/kotlin.js +86 -31
- package/dist/core/group/extractors/http-patterns/node.js +145 -8
- package/dist/core/group/extractors/http-patterns/python.js +11 -7
- package/dist/core/group/extractors/http-route-extractor.js +63 -17
- package/dist/core/group/extractors/java-workspace-extractor.js +244 -31
- package/dist/core/group/group-lock.js +5 -6
- package/dist/core/group/normalization.d.ts +38 -1
- package/dist/core/group/normalization.js +59 -3
- package/dist/core/group/service.d.ts +11 -0
- package/dist/core/group/service.js +13 -1
- package/dist/core/group/storage.js +2 -2
- package/dist/core/group/sync.d.ts +24 -1
- package/dist/core/group/sync.js +46 -8
- package/dist/core/group/types.d.ts +13 -0
- package/dist/core/incremental/derived-writeback.d.ts +36 -0
- package/dist/core/incremental/derived-writeback.js +68 -0
- package/dist/core/incremental/spring-config-drift.d.ts +12 -0
- package/dist/core/incremental/spring-config-drift.js +46 -0
- package/dist/core/incremental/subgraph-extract.d.ts +7 -4
- package/dist/core/incremental/subgraph-extract.js +30 -5
- package/dist/core/ingestion/asyncapi/document.d.ts +226 -0
- package/dist/core/ingestion/asyncapi/document.js +758 -0
- package/dist/core/ingestion/asyncapi/protocol.d.ts +79 -0
- package/dist/core/ingestion/asyncapi/protocol.js +203 -0
- package/dist/core/ingestion/call-extractors/configs/zig.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/zig.js +4 -0
- package/dist/core/ingestion/call-extractors/zig-static-gating.d.ts +100 -0
- package/dist/core/ingestion/call-extractors/zig-static-gating.js +319 -0
- package/dist/core/ingestion/call-processor.js +3 -1
- package/dist/core/ingestion/class-extractors/configs/zig.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/zig.js +32 -0
- package/dist/core/ingestion/class-extractors/generic.js +4 -1
- package/dist/core/ingestion/class-types.d.ts +6 -2
- package/dist/core/ingestion/destination-key.d.ts +59 -0
- package/dist/core/ingestion/destination-key.js +61 -0
- package/dist/core/ingestion/entry-point-scoring.d.ts +6 -2
- package/dist/core/ingestion/entry-point-scoring.js +8 -44
- package/dist/core/ingestion/export-detection.d.ts +37 -0
- package/dist/core/ingestion/export-detection.js +60 -0
- package/dist/core/ingestion/field-extractors/configs/zig.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/zig.js +49 -0
- package/dist/core/ingestion/field-extractors/generic.d.ts +1 -1
- package/dist/core/ingestion/field-extractors/generic.js +12 -1
- package/dist/core/ingestion/frameworks/spring/actuator-runtime.d.ts +26 -0
- package/dist/core/ingestion/frameworks/spring/actuator-runtime.js +843 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +9 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +8 -1
- package/dist/core/ingestion/frameworks/spring/argument-facts.d.ts +80 -0
- package/dist/core/ingestion/frameworks/spring/argument-facts.js +85 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.d.ts +1 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.js +2 -1
- package/dist/core/ingestion/frameworks/spring/destinations.d.ts +539 -0
- package/dist/core/ingestion/frameworks/spring/destinations.js +840 -0
- package/dist/core/ingestion/frameworks/spring/dynamic-lookups.d.ts +22 -0
- package/dist/core/ingestion/frameworks/spring/dynamic-lookups.js +124 -0
- package/dist/core/ingestion/frameworks/spring/message-producers.d.ts +78 -0
- package/dist/core/ingestion/frameworks/spring/message-producers.js +90 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +29 -0
- package/dist/core/ingestion/frameworks/spring/vendor-prefixes.d.ts +7 -0
- package/dist/core/ingestion/frameworks/spring/vendor-prefixes.js +22 -0
- package/dist/core/ingestion/import-resolvers/configs/zig.d.ts +13 -0
- package/dist/core/ingestion/import-resolvers/configs/zig.js +26 -0
- package/dist/core/ingestion/import-resolvers/zig.d.ts +34 -0
- package/dist/core/ingestion/import-resolvers/zig.js +193 -0
- package/dist/core/ingestion/language-config.d.ts +177 -0
- package/dist/core/ingestion/language-config.js +719 -0
- package/dist/core/ingestion/language-provider.d.ts +178 -1
- package/dist/core/ingestion/language-provider.js +22 -0
- package/dist/core/ingestion/languages/csharp/razor-view-components.d.ts +62 -0
- package/dist/core/ingestion/languages/csharp/razor-view-components.js +954 -0
- package/dist/core/ingestion/languages/csharp/resolution-config.d.ts +3 -0
- package/dist/core/ingestion/languages/csharp/resolution-config.js +6 -1
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +8 -0
- package/dist/core/ingestion/languages/index.d.ts +1 -0
- package/dist/core/ingestion/languages/index.js +2 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +1 -1
- package/dist/core/ingestion/languages/java/analysis-features.js +14 -6
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +8 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +34 -0
- package/dist/core/ingestion/languages/java/captures.js +22 -1
- package/dist/core/ingestion/languages/java/lombok-synthesizer.d.ts +42 -0
- package/dist/core/ingestion/languages/java/lombok-synthesizer.js +439 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/java/spring-actuator.d.ts +2 -0
- package/dist/core/ingestion/languages/java/spring-actuator.js +62 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +17 -1
- package/dist/core/ingestion/languages/java/spring-di.js +44 -2
- package/dist/core/ingestion/languages/java/spring-dynamic-lookup.d.ts +8 -0
- package/dist/core/ingestion/languages/java/spring-dynamic-lookup.js +62 -0
- package/dist/core/ingestion/languages/java/spring-message-producers.d.ts +20 -0
- package/dist/core/ingestion/languages/java/spring-message-producers.js +83 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +11 -1
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +13 -3
- package/dist/core/ingestion/languages/java.js +18 -8
- package/dist/core/ingestion/languages/jvm/accessor-synthesis.d.ts +99 -0
- package/dist/core/ingestion/languages/jvm/accessor-synthesis.js +173 -0
- package/dist/core/ingestion/languages/jvm/beanspec.d.ts +17 -0
- package/dist/core/ingestion/languages/jvm/beanspec.js +42 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +15 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +50 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +24 -1
- package/dist/core/ingestion/languages/kotlin/lombok-synthesizer.d.ts +26 -0
- package/dist/core/ingestion/languages/kotlin/lombok-synthesizer.js +417 -0
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +4 -0
- package/dist/core/ingestion/languages/kotlin/spring-actuator.d.ts +4 -0
- package/dist/core/ingestion/languages/kotlin/spring-actuator.js +172 -0
- package/dist/core/ingestion/languages/kotlin/spring-config-bindings.d.ts +18 -0
- package/dist/core/ingestion/languages/kotlin/spring-config-bindings.js +411 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +51 -1
- package/dist/core/ingestion/languages/kotlin/spring-di.js +86 -6
- package/dist/core/ingestion/languages/kotlin/spring-dynamic-lookup.d.ts +8 -0
- package/dist/core/ingestion/languages/kotlin/spring-dynamic-lookup.js +77 -0
- package/dist/core/ingestion/languages/kotlin/spring-message-producers.d.ts +17 -0
- package/dist/core/ingestion/languages/kotlin/spring-message-producers.js +119 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +16 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +77 -2
- package/dist/core/ingestion/languages/kotlin.js +24 -0
- package/dist/core/ingestion/languages/python.js +2 -0
- package/dist/core/ingestion/languages/rust/query.js +8 -8
- package/dist/core/ingestion/languages/zig/captures.d.ts +260 -0
- package/dist/core/ingestion/languages/zig/captures.js +2070 -0
- package/dist/core/ingestion/languages/zig/index.d.ts +4 -0
- package/dist/core/ingestion/languages/zig/index.js +4 -0
- package/dist/core/ingestion/languages/zig/interpret.d.ts +36 -0
- package/dist/core/ingestion/languages/zig/interpret.js +176 -0
- package/dist/core/ingestion/languages/zig/query.d.ts +3 -0
- package/dist/core/ingestion/languages/zig/query.js +426 -0
- package/dist/core/ingestion/languages/zig/range-binding.d.ts +37 -0
- package/dist/core/ingestion/languages/zig/range-binding.js +373 -0
- package/dist/core/ingestion/languages/zig/scope-resolver.d.ts +12 -0
- package/dist/core/ingestion/languages/zig/scope-resolver.js +58 -0
- package/dist/core/ingestion/languages/zig/simple-hooks.d.ts +25 -0
- package/dist/core/ingestion/languages/zig/simple-hooks.js +143 -0
- package/dist/core/ingestion/languages/zig.d.ts +32 -0
- package/dist/core/ingestion/languages/zig.js +130 -0
- package/dist/core/ingestion/method-extractors/configs/zig.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/zig.js +120 -0
- package/dist/core/ingestion/method-extractors/generic.js +16 -4
- package/dist/core/ingestion/method-types.d.ts +10 -4
- package/dist/core/ingestion/model/field-registry.d.ts +3 -3
- package/dist/core/ingestion/model/field-registry.js +11 -7
- package/dist/core/ingestion/model/method-registry.d.ts +3 -3
- package/dist/core/ingestion/model/method-registry.js +13 -8
- package/dist/core/ingestion/model/registration-table.js +3 -0
- package/dist/core/ingestion/model/type-registry.js +8 -4
- package/dist/core/ingestion/pipeline-phases/di.js +47 -14
- package/dist/core/ingestion/pipeline-phases/index.d.ts +1 -0
- package/dist/core/ingestion/pipeline-phases/index.js +1 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +7 -1
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +79 -91
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +2 -1
- package/dist/core/ingestion/pipeline-phases/processes.js +39 -4
- package/dist/core/ingestion/pipeline-phases/routes.js +27 -18
- package/dist/core/ingestion/pipeline-phases/runner.d.ts +4 -1
- package/dist/core/ingestion/pipeline-phases/runner.js +34 -14
- package/dist/core/ingestion/pipeline-phases/scan.js +82 -1
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +2 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +8 -0
- package/dist/core/ingestion/pipeline-phases/spring-destinations.d.ts +123 -0
- package/dist/core/ingestion/pipeline-phases/spring-destinations.js +688 -0
- package/dist/core/ingestion/pipeline.d.ts +30 -1
- package/dist/core/ingestion/pipeline.js +52 -14
- package/dist/core/ingestion/resolve-references.js +5 -0
- package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +16 -0
- package/dist/core/ingestion/route-extractors/constant-resolver.js +10 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.d.ts +27 -1
- package/dist/core/ingestion/route-extractors/java-const-resolver.js +161 -13
- package/dist/core/ingestion/route-extractors/kotlin-const-resolver.d.ts +12 -18
- package/dist/core/ingestion/route-extractors/kotlin-const-resolver.js +214 -33
- package/dist/core/ingestion/route-extractors/kotlin-spring.d.ts +13 -0
- package/dist/core/ingestion/route-extractors/kotlin-spring.js +259 -0
- package/dist/core/ingestion/route-extractors/python-decorator-handler.d.ts +6 -0
- package/dist/core/ingestion/route-extractors/python-decorator-handler.js +16 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +30 -1
- package/dist/core/ingestion/route-extractors/spring-shared.js +77 -9
- package/dist/core/ingestion/route-extractors/spring.js +9 -5
- package/dist/core/ingestion/scope-extractor.js +8 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +62 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +4 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +2 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +28 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +11 -2
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +23 -2
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +24 -3
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +11 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +26 -6
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +11 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +29 -3
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +8 -1
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +35 -9
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +1 -4
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +277 -9
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +2 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +7 -3
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +43 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +71 -10
- package/dist/core/ingestion/tree-sitter-queries.d.ts +1 -0
- package/dist/core/ingestion/tree-sitter-queries.js +161 -0
- package/dist/core/ingestion/type-extractors/zig.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/zig.js +17 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +40 -1
- package/dist/core/ingestion/utils/ast-helpers.js +124 -6
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +9 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +75 -14
- package/dist/core/ingestion/utils/test-file-path.d.ts +28 -0
- package/dist/core/ingestion/utils/test-file-path.js +87 -0
- package/dist/core/ingestion/variable-extractors/configs/zig.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/zig.js +71 -0
- package/dist/core/ingestion/workers/parse-worker.js +85 -14
- package/dist/core/install-context.d.ts +4 -0
- package/dist/core/install-context.js +152 -0
- package/dist/core/lbug/csv-generator.d.ts +10 -1
- package/dist/core/lbug/csv-generator.js +92 -22
- package/dist/core/lbug/graph-emit-sink.d.ts +3 -2
- package/dist/core/lbug/graph-emit-sink.js +4 -2
- package/dist/core/lbug/lbug-adapter.d.ts +100 -5
- package/dist/core/lbug/lbug-adapter.js +236 -24
- package/dist/core/lbug/schema.d.ts +6 -5
- package/dist/core/lbug/schema.js +84 -22
- package/dist/core/net/url-guard.d.ts +6 -0
- package/dist/core/net/url-guard.js +147 -0
- package/dist/core/package-version.d.ts +5 -0
- package/dist/core/package-version.js +10 -0
- package/dist/core/run-analyze.d.ts +21 -4
- package/dist/core/run-analyze.js +426 -117
- package/dist/core/search/fts-indexes.d.ts +19 -1
- package/dist/core/search/fts-indexes.js +28 -1
- package/dist/core/tree-sitter/parser-loader.js +16 -0
- package/dist/core/update-cache.d.ts +39 -0
- package/dist/core/update-cache.js +141 -0
- package/dist/core/update-check.d.ts +31 -0
- package/dist/core/update-check.js +274 -0
- package/dist/mcp/local/local-backend.d.ts +27 -13
- package/dist/mcp/local/local-backend.js +148 -60
- package/dist/mcp/repository-policy.d.ts +5 -1
- package/dist/mcp/repository-policy.js +48 -4
- package/dist/mcp/resources.js +10 -1
- package/dist/mcp/server.js +8 -9
- package/dist/mcp/tools.js +32 -22
- package/dist/server/analyze-launch.d.ts +2 -0
- package/dist/server/analyze-launch.js +2 -0
- package/dist/server/analyze-worker-protocol.d.ts +6 -1
- package/dist/server/analyze-worker.d.ts +1 -0
- package/dist/server/analyze-worker.js +38 -20
- package/dist/server/api.d.ts +5 -1
- package/dist/server/api.js +105 -88
- package/dist/server/git-clone.d.ts +40 -16
- package/dist/server/git-clone.js +253 -199
- package/dist/server/grep-params.d.ts +18 -0
- package/dist/server/grep-params.js +83 -0
- package/dist/server/grep-scan.d.ts +23 -0
- package/dist/server/grep-scan.js +107 -0
- package/dist/server/grep-worker.d.ts +1 -0
- package/dist/server/grep-worker.js +12 -0
- package/dist/server/mcp-http.d.ts +8 -0
- package/dist/server/mcp-http.js +16 -1
- package/dist/server/update-controller.d.ts +29 -0
- package/dist/server/update-controller.js +82 -0
- package/dist/storage/file-lock.d.ts +15 -0
- package/dist/storage/file-lock.js +155 -0
- package/dist/storage/fs-atomic.d.ts +24 -0
- package/dist/storage/fs-atomic.js +86 -2
- package/dist/storage/global-dir.d.ts +2 -0
- package/dist/storage/global-dir.js +6 -0
- package/dist/storage/parse-cache.d.ts +45 -7
- package/dist/storage/parse-cache.js +189 -42
- package/dist/storage/parsedfile-store.d.ts +41 -60
- package/dist/storage/parsedfile-store.js +247 -171
- package/dist/storage/repo-manager.d.ts +10 -4
- package/dist/storage/repo-manager.js +35 -25
- package/dist/storage/repo-meta.d.ts +34 -0
- package/dist/storage/v8-sidecar.d.ts +48 -0
- package/dist/storage/v8-sidecar.js +347 -0
- package/dist/types/pipeline.d.ts +14 -0
- package/dist/utils/process-identity.d.ts +2 -0
- package/dist/utils/process-identity.js +35 -0
- package/package.json +10 -4
- package/scripts/assert-web-assets.mjs +35 -0
- package/scripts/build-web.js +72 -0
- package/scripts/build.js +31 -28
- package/scripts/cross-platform-tests.ts +5 -0
- package/skills/gitnexus-cli.md +5 -1
- package/web/assets/ProcessFlowModal-DAeX2BHW.js +24 -0
- package/web/assets/{abnfDiagram-QNN2D4NM-Cq2djWWe.js → abnfDiagram-PAR5IXJI-J3OdeHLl.js} +1 -1
- package/web/assets/{agent-BWAXPjC5.js → agent-BMRqXorA.js} +6 -4
- package/web/assets/architecture-7GRP2DOG-M7G3SWCO-G3sWyX6M.js +1 -0
- package/web/assets/architectureDiagram-2PNWDENW-ysKcRlGT.js +36 -0
- package/web/assets/blockDiagram-PUWGUBOA-oLXTa1lY.js +129 -0
- package/web/assets/c4Diagram-3NLNHZP5-D3iu4eC0.js +38 -0
- package/web/assets/{chunk-2SREHG4O-Dip42xOq.js → chunk-2NMSUPJH-B24w-wng.js} +1 -1
- package/web/assets/{chunk-VJFVEZTB-CX66F2ep.js → chunk-32MCUW2P-ByUyt0Sa.js} +3 -3
- package/web/assets/{chunk-4RFN2BYJ-DHHWuC-n.js → chunk-3NPNU5GP-DocZ07Sg.js} +1 -1
- package/web/assets/{chunk-XNMVGMAZ-Cg_LnPtj.js → chunk-3SMGFRGC-CAu4JRLv.js} +1 -1
- package/web/assets/{chunk-W44A43WB-BN8EQc_u.js → chunk-4CAJECRU-DRYMwG9z.js} +1 -1
- package/web/assets/chunk-4OADUZ5Q-CxrSvOwZ.js +10 -0
- package/web/assets/{chunk-DMV4VAQV-Bn6WXDSX.js → chunk-5IQCK5RY-CCMhl4so.js} +2 -2
- package/web/assets/{chunk-RRFMTAIC-CMN0wcYA.js → chunk-5MVFYWFU-Db9KvrYO.js} +1 -1
- package/web/assets/chunk-CLS4B6BI-Uvx5QNsu.js +168 -0
- package/web/assets/chunk-DZP67EKU-B3Mt380j.js +70 -0
- package/web/assets/{chunk-6L755F7B-CMhLBxi2.js → chunk-EICP7K5X-CqwE9hui.js} +1 -1
- package/web/assets/{chunk-BI6VK774-D0oaWk8V.js → chunk-GDY2UAB4-CtQQR0a8.js} +1 -1
- package/web/assets/chunk-H7VHZCWX-CE1nAmt6.js +1 -0
- package/web/assets/chunk-IJBDOHL6-BUKtY6oF.js +1 -0
- package/web/assets/{chunk-OIYT25JQ-CQ6KOZGX.js → chunk-JFFVMJIA-0fJenqia.js} +1 -1
- package/web/assets/{chunk-HNC4WDU7-DoU3KnA7.js → chunk-JZGDI5JK-BeTMSSkJ.js} +1 -1
- package/web/assets/{chunk-EQFTRU2I-1ix7TzW9.js → chunk-KD6SPIPN-Qp1Pflah.js} +1 -1
- package/web/assets/chunk-NF366YI6-CpSpya3n.js +231 -0
- package/web/assets/chunk-NUDPKBEF-CU1-BQIW.js +34 -0
- package/web/assets/{chunk-SATU7PGQ-B1zhgOvc.js → chunk-OJINMHTS-zOCQe4eI.js} +1 -1
- package/web/assets/{chunk-E5QJAATJ-dh-5CtIV.js → chunk-Q6NGPIAH-yyBomb63.js} +1 -1
- package/web/assets/chunk-QJSWEUOL-D_rf9gPD.js +128 -0
- package/web/assets/chunk-R7JDMUKV-CRoqKpD6.js +1 -0
- package/web/assets/{chunk-VE5CLXGZ-C1vB7wpY.js → chunk-RCXAM2GK-CUqrWQDV.js} +1 -1
- package/web/assets/{chunk-66DQ2XMT-CM0xjFAN.js → chunk-RT4MAWR3-zXy9-Lvt.js} +1 -1
- package/web/assets/{chunk-TZUXEDM2-B7p9AcTw.js → chunk-SFMINX4W-J2UrvMpD.js} +1 -1
- package/web/assets/{chunk-LORZLZWG-B57uGw2N.js → chunk-SLDQ463B-CHY6e_bQ.js} +2 -2
- package/web/assets/{chunk-FWYVLQTC-BgDItRzJ.js → chunk-TCEHX7R3-CXPDEVbm.js} +1 -1
- package/web/assets/{chunk-224SPVON-B8gxtXpy.js → chunk-VQC2EELJ-Dc8fIy4R.js} +1 -1
- package/web/assets/chunk-VRZKL3EH-DB3KixTQ.js +1 -0
- package/web/assets/{chunk-A7VWPJGB-B4O3oQdQ.js → chunk-VTHDQ7BV-b7FsPQZO.js} +1 -1
- package/web/assets/chunk-VY2OSTJR-Dkgc3Brg.js +2 -0
- package/web/assets/chunk-WUBWJARI-7FwILJ3k.js +2 -0
- package/web/assets/{chunk-D6VWDJW2-BxcBdZ9c.js → chunk-YBMQ5JGJ-BSnyWZmd.js} +1 -1
- package/web/assets/chunk-YDMLL4PJ-IHhMngTz.js +2 -0
- package/web/assets/chunk-Z6V44ARX-BjCEsF0Q.js +62 -0
- package/web/assets/chunk-ZJJ7VQJP-Dz089b-K.js +321 -0
- package/web/assets/chunk-ZNLK7HRR-B0iFpmW4.js +1 -0
- package/web/assets/chunk-ZQN7UHIL-Cy7KAjQt.js +1 -0
- package/web/assets/{chunk-L5GCOVLC-CE2w8Nm_.js → chunk-ZS6VBONO-DBjJO0w9.js} +2 -2
- package/web/assets/{chunk-NV3KIAZN-5yvcpMiu.js → chunk-ZUNWM646-DNRJyNPe.js} +1 -1
- package/web/assets/classDiagram-FGAMPOII-C5Ibyode.js +1 -0
- package/web/assets/classDiagram-v2-AI5RJEK4-C5Ibyode.js +1 -0
- package/web/assets/{cose-bilkent-RZA4XIPR-BHpK4Crp.js → cose-bilkent-Q72C2OJ3-DMeFXnK8.js} +1 -1
- package/web/assets/cynefin-OW5HDTMX-6OCTWOGG-vlqakYcO.js +1 -0
- package/web/assets/{cynefinDiagram-TR7LZUCG-C3Iar9lZ.js → cynefinDiagram-2OOWUY4M-BY6DZkTt.js} +1 -1
- package/web/assets/dagre-MPVFI544-DWO70fy_.js +4 -0
- package/web/assets/diagram-AE4NWXFW-f7JRVRUL.js +24 -0
- package/web/assets/{diagram-L7DVE3PN-GIRyVUtt.js → diagram-BUJID5UG-BXZv1rCS.js} +2 -2
- package/web/assets/{diagram-JCD7PQ7C-DC5-9FRr.js → diagram-C44CZ5NI-CRNfvjCq.js} +1 -1
- package/web/assets/diagram-EYOLEXXS-DZOjKQVE.js +30 -0
- package/web/assets/diagram-P7B6PWOJ-D3SQmw3_.js +3 -0
- package/web/assets/{ebnfDiagram-DRHRQJWO-D8_CI4ZF.js → ebnfDiagram-FTPZ3PV6-jKWpIDN2.js} +1 -1
- package/web/assets/erDiagram-H3ERR26V-BqJntEuJ.js +99 -0
- package/web/assets/eventmodeling-NTZA5JFV-WKSWQHFS-Bq4FqtBL.js +1 -0
- package/web/assets/flowDiagram-YHGXBVSY-Dnlk2bEu.js +1 -0
- package/web/assets/ganttDiagram-RWFTB7ED-Bl6Y1K5T.js +292 -0
- package/web/assets/gitGraph-4MIJSDKK-JH2HKYUO-B3yc4GkH.js +1 -0
- package/web/assets/gitGraphDiagram-MAR6GKOP-CkNvsrdw.js +106 -0
- package/web/assets/{index-CJDpyH-n.css → index-C2_aej58.css} +1 -1
- package/web/assets/{index-DDRie6_8.js → index-Dj3vQOHK.js} +51 -51
- package/web/assets/info-A6RAGUB7-3TX3OFWW-BM3N5_Dv.js +1 -0
- package/web/assets/infoDiagram-LV547AFH-COkFutAf.js +2 -0
- package/web/assets/{ishikawaDiagram-4JDSWWDM-DmqWtjkl.js → ishikawaDiagram-PUJQGNDS-Bb8FylSR.js} +2 -2
- package/web/assets/{journeyDiagram-QUS3FAKT-XAzVzrQW.js → journeyDiagram-EW5QJT4W-BzoHUBhM.js} +4 -4
- package/web/assets/{kanban-definition-D4L7SQKK-YurRnmYn.js → kanban-definition-JSQERAZB-Uy2Pi0yQ.js} +4 -4
- package/web/assets/katex-CZ4GXH2S-C0Fcou7U.js +257 -0
- package/web/assets/{mindmap-definition-66QP5TD6-ChrWWnil.js → mindmap-definition-VBJCLQLM-B-CnOnt_.js} +3 -3
- package/web/assets/packet-AYTQ26CC-MKII6P3Y-Bd52ZE3V.js +1 -0
- package/web/assets/{pegDiagram-YKIO5C6U-QGeQLEq2.js → pegDiagram-7WILOQTJ-D9sneKXg.js} +1 -1
- package/web/assets/pie-WAS4IAKB-6B4OPMJ5-DW5Xy69Z.js +1 -0
- package/web/assets/pieDiagram-EFA7CBSB-Dx2NQofL.js +39 -0
- package/web/assets/{quadrantDiagram-VO5QLCXA-B7098wSc.js → quadrantDiagram-WARVYA7P-DPKL9_0A.js} +3 -3
- package/web/assets/radar-RG4KPBEZ-UPTR3XUL-CkzibT2h.js +1 -0
- package/web/assets/railroad-74A4TZTK-MEFUPFMS-D9zF-mDN.js +1 -0
- package/web/assets/railroad-abnf-HS5TGJTU-R5YG2S5D-ruacjUbX.js +1 -0
- package/web/assets/railroad-ebnf-LZEXJU2U-G5QEX2L6-S1zc5OiO.js +1 -0
- package/web/assets/railroad-peg-WCYAUIDC-H5I2ZRY2-Cbcr0XzY.js +1 -0
- package/web/assets/{railroadDiagram-M77LTMSB-AXu4vxk_.js → railroadDiagram-5NIQVNLQ-DsweTo14.js} +1 -1
- package/web/assets/{requirementDiagram-RASO5HTO-B-l8InpK.js → requirementDiagram-SXREGOKZ-CXwdNSVR.js} +4 -4
- package/web/assets/{sankeyDiagram-F32LOJ6L-Kd7zjJgX.js → sankeyDiagram-VV74M2VP-CA6jtP9P.js} +3 -3
- package/web/assets/{sequenceDiagram-URATNSBD-BlcdY9DS.js → sequenceDiagram-52ZFIFDL-k_5rEbzm.js} +15 -15
- package/web/assets/src-Df5C1Nz4.js +1 -0
- package/web/assets/stateDiagram-3QAKPIVI-BejHTf31.js +1 -0
- package/web/assets/stateDiagram-v2-HN2P4RDZ-BrfoRuOc.js +1 -0
- package/web/assets/swimlanes-QLVP42QD-CQSVO5D6.js +1 -0
- package/web/assets/swimlanesDiagram-JKPDBFCN-DrWB9kcD.js +8 -0
- package/web/assets/{timeline-definition-WJXWRH4I-DUfp1R3E.js → timeline-definition-GS45XAXW-C0Ks8rPP.js} +4 -4
- package/web/assets/treeView-Q6P3EWNA-ZRJGANNQ-DmKOCo6L.js +1 -0
- package/web/assets/treemap-WGGIJYW6-K64VN5AS-DO3xY92U.js +1 -0
- package/web/assets/{vennDiagram-K3VCMQLI-Bj-FN-XS.js → vennDiagram-QIQU2ZRJ-rgPiS837.js} +3 -3
- package/web/assets/wardley-WFR3VGLG-D67OWCCH-DiDPBNft.js +1 -0
- package/web/assets/wardleyDiagram-U6YNM66N-DRVr7SPi.js +78 -0
- package/web/assets/{xychartDiagram-5VRUVLCW-CK_rbSWE.js → xychartDiagram-XJAZEDNM-COtlZzYb.js} +3 -3
- package/web/index.html +19 -17
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +0 -24
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +0 -1
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +0 -36
- package/web/assets/blockDiagram-54WLDVWM-Dg_hrRWE.js +0 -132
- package/web/assets/c4Diagram-X2LASM7V-CnhoT4aV.js +0 -10
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +0 -127
- package/web/assets/chunk-5VCL7Z4A-CQ-2dYWj.js +0 -1
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +0 -1
- package/web/assets/chunk-7CWYLC5S-DRgGkkpF.js +0 -2
- package/web/assets/chunk-7FYTHRHK-CsmYIswB.js +0 -32
- package/web/assets/chunk-KRXBNO2N-C-UNuKKf.js +0 -1
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +0 -321
- package/web/assets/chunk-LIEV3EAG-pyKGssV3.js +0 -1
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +0 -62
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +0 -10
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +0 -156
- package/web/assets/chunk-SZD42YQK-ijyKKVr1.js +0 -70
- package/web/assets/chunk-TFPGFQPA-Dj6a-0pC.js +0 -231
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +0 -2
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +0 -1
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +0 -1
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +0 -1
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +0 -1
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +0 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +0 -1
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +0 -4
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +0 -30
- package/web/assets/diagram-KFBZAVDW-Dfmf_4ti.js +0 -3
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +0 -24
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +0 -85
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +0 -1
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +0 -1
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +0 -292
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +0 -1
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +0 -106
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +0 -1
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +0 -2
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +0 -257
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +0 -1
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +0 -1
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +0 -39
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +0 -1
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +0 -1
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +0 -1
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +0 -1
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +0 -1
- package/web/assets/src-C5sx_gMp.js +0 -1
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +0 -1
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +0 -1
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +0 -2
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +0 -8
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +0 -1
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +0 -1
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +0 -1
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +0 -78
- /package/web/assets/{sizeCapture-5GORAGP4-BEqQzsxs.js → sizeCapture-FGA5AGYP-BEqQzsxs.js} +0 -0
|
@@ -6,9 +6,12 @@
|
|
|
6
6
|
* in `../../csharp-namespace-gate.ts` (shared with the legacy DAG resolver).
|
|
7
7
|
*/
|
|
8
8
|
import { type CSharpProjectConfig, type CSharpNamespaceEvidence } from '../../language-config.js';
|
|
9
|
+
import { type RazorViewComponentConfig } from './razor-view-components.js';
|
|
9
10
|
export interface CsharpResolutionConfig {
|
|
10
11
|
readonly csharpConfigs: readonly CSharpProjectConfig[];
|
|
11
12
|
/** In-repo declared-namespace evidence gating suffix-fallback resolution (#1881). */
|
|
12
13
|
readonly namespaces?: CSharpNamespaceEvidence;
|
|
14
|
+
/** Razor views scanned for ASP.NET ViewComponent invocation conventions. */
|
|
15
|
+
readonly razorViewComponents?: RazorViewComponentConfig;
|
|
13
16
|
}
|
|
14
17
|
export declare function loadCsharpResolutionConfig(repoRoot: string): Promise<CsharpResolutionConfig>;
|
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
* in `../../csharp-namespace-gate.ts` (shared with the legacy DAG resolver).
|
|
7
7
|
*/
|
|
8
8
|
import { scanCSharpProject, csharpScanToEvidence, } from '../../language-config.js';
|
|
9
|
+
import { loadRazorViewComponentConfig, } from './razor-view-components.js';
|
|
9
10
|
export async function loadCsharpResolutionConfig(repoRoot) {
|
|
10
|
-
const scan = await
|
|
11
|
+
const [scan, razorViewComponents] = await Promise.all([
|
|
12
|
+
scanCSharpProject(repoRoot),
|
|
13
|
+
loadRazorViewComponentConfig(repoRoot),
|
|
14
|
+
]);
|
|
11
15
|
return {
|
|
12
16
|
csharpConfigs: scan.configs,
|
|
13
17
|
namespaces: csharpScanToEvidence(scan),
|
|
18
|
+
razorViewComponents,
|
|
14
19
|
};
|
|
15
20
|
}
|
|
@@ -14,6 +14,7 @@ import { csharpArityCompatibility, csharpMergeBindings, resolveCsharpImportTarge
|
|
|
14
14
|
import { populateCsharpNamespaceSiblings } from './namespace-siblings.js';
|
|
15
15
|
import { loadCsharpResolutionConfig } from './resolution-config.js';
|
|
16
16
|
import { unwrapCsharpElementType } from './accessor-unwrap.js';
|
|
17
|
+
import { emitRazorViewComponentEdges } from './razor-view-components.js';
|
|
17
18
|
const csharpScopeResolver = {
|
|
18
19
|
// Construction is keyword-prefixed: `new Service(db).doWork()` (#2708).
|
|
19
20
|
constructionSyntax: { keyword: 'new' },
|
|
@@ -80,6 +81,13 @@ const csharpScopeResolver = {
|
|
|
80
81
|
// `IValidator<string>` and `IValidator<String>` are one instantiation, so the
|
|
81
82
|
// dispatch fan-out must not read them as two (#2912). See the alias table.
|
|
82
83
|
normalizeTypeArgument: normalizeCsharpTypeArgument,
|
|
84
|
+
// Razor views stay out of the C# parser. Bind literal ViewComponent names
|
|
85
|
+
// only onto in-repo classes (Spring-style: skip the SDK type, hop to the
|
|
86
|
+
// workspace implementor).
|
|
87
|
+
emitPostResolutionEdges: (graph, parsedFiles, nodeLookup, _indexes, ctx) => {
|
|
88
|
+
const config = ctx.resolutionConfig;
|
|
89
|
+
emitRazorViewComponentEdges(graph, parsedFiles, nodeLookup, config?.razorViewComponents, ctx.fileContents);
|
|
90
|
+
},
|
|
83
91
|
};
|
|
84
92
|
/**
|
|
85
93
|
* C# predefined type aliases — the 15 keywords the language defines as exact
|
|
@@ -26,6 +26,7 @@ export declare const providers: {
|
|
|
26
26
|
dart: LanguageProvider;
|
|
27
27
|
vue: LanguageProvider;
|
|
28
28
|
cobol: LanguageProvider;
|
|
29
|
+
zig: LanguageProvider;
|
|
29
30
|
};
|
|
30
31
|
/** Get provider by language enum (always succeeds for SupportedLanguages). */
|
|
31
32
|
export declare function getProvider(language: SupportedLanguages): LanguageProvider;
|
|
@@ -22,6 +22,7 @@ import { swiftProvider } from './swift.js';
|
|
|
22
22
|
import { dartProvider } from './dart.js';
|
|
23
23
|
import { vueProvider } from './vue.js';
|
|
24
24
|
import { cobolProvider } from './cobol.js';
|
|
25
|
+
import { zigProvider } from './zig.js';
|
|
25
26
|
export const providers = {
|
|
26
27
|
[SupportedLanguages.JavaScript]: javascriptProvider,
|
|
27
28
|
[SupportedLanguages.TypeScript]: typescriptProvider,
|
|
@@ -39,6 +40,7 @@ export const providers = {
|
|
|
39
40
|
[SupportedLanguages.Dart]: dartProvider,
|
|
40
41
|
[SupportedLanguages.Vue]: vueProvider,
|
|
41
42
|
[SupportedLanguages.Cobol]: cobolProvider,
|
|
43
|
+
[SupportedLanguages.Zig]: zigProvider,
|
|
42
44
|
};
|
|
43
45
|
/** Get provider by language enum (always succeeds for SupportedLanguages). */
|
|
44
46
|
export function getProvider(language) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AnalysisFeatureDescriptor } from '../../../analysis-features.js';
|
|
2
|
-
/** Durable completeness contract for Java Spring configuration bindings. */
|
|
2
|
+
/** Durable completeness contract for Java and Kotlin Spring configuration bindings. */
|
|
3
3
|
export declare const SPRING_CONFIG_BINDINGS_FEATURE: AnalysisFeatureDescriptor;
|
|
4
4
|
/** Durable completeness contract for implicit Java record-component accessors. */
|
|
5
5
|
export declare const JAVA_RECORD_COMPONENT_ACCESSORS_FEATURE: AnalysisFeatureDescriptor;
|
|
@@ -2,14 +2,22 @@ function isSpringApplicationConfig(filePath) {
|
|
|
2
2
|
const base = filePath.replaceAll('\\', '/').split('/').pop() ?? '';
|
|
3
3
|
return /^application(?:-[^.]+)?\.(?:properties|ya?ml)$/i.test(base);
|
|
4
4
|
}
|
|
5
|
-
/** Durable completeness contract for Java Spring configuration bindings. */
|
|
5
|
+
/** Durable completeness contract for Java and Kotlin Spring configuration bindings. */
|
|
6
6
|
export const SPRING_CONFIG_BINDINGS_FEATURE = {
|
|
7
7
|
id: 'spring.config-bindings',
|
|
8
|
-
version:
|
|
9
|
-
// Java sources need consumer extraction even without config files
|
|
10
|
-
// placeholders still get unresolved markers). Config-only
|
|
11
|
-
// need a one-time rebuild to backfill language-agnostic
|
|
12
|
-
|
|
8
|
+
version: 2,
|
|
9
|
+
// Java and Kotlin sources need consumer extraction even without config files
|
|
10
|
+
// (missing placeholders still get unresolved markers). Config-only
|
|
11
|
+
// repositories also need a one-time rebuild to backfill language-agnostic
|
|
12
|
+
// Property nodes. Gradle Kotlin DSL is not a consumer source.
|
|
13
|
+
appliesTo: (filePaths) => filePaths.some((filePath) => {
|
|
14
|
+
const normalized = filePath.replaceAll('\\', '/').toLowerCase();
|
|
15
|
+
if (normalized.endsWith('.gradle.kts'))
|
|
16
|
+
return false;
|
|
17
|
+
return (normalized.endsWith('.java') ||
|
|
18
|
+
normalized.endsWith('.kt') ||
|
|
19
|
+
isSpringApplicationConfig(filePath));
|
|
20
|
+
}),
|
|
13
21
|
};
|
|
14
22
|
/** Durable completeness contract for implicit Java record-component accessors. */
|
|
15
23
|
export const JAVA_RECORD_COMPONENT_ACCESSORS_FEATURE = {
|
|
@@ -5,6 +5,8 @@ import type { JavaSpringConfigConsumerFact } from './spring-config-bindings.js';
|
|
|
5
5
|
import type { JavaSpringAopFact } from './spring-aop.js';
|
|
6
6
|
import type { JavaSpringConditionalFact } from './spring-conditionals.js';
|
|
7
7
|
import type { JavaSpringDiClassFact } from './spring-di.js';
|
|
8
|
+
import type { SpringDynamicLookupFact } from '../../frameworks/spring/dynamic-lookups.js';
|
|
9
|
+
import type { SpringMessageProducerFact } from '../../frameworks/spring/message-producers.js';
|
|
8
10
|
import type { JavaSpringNonHttpHandlerFact } from './spring-non-http-handlers.js';
|
|
9
11
|
export type JavaClassAnnotationFact = ClassAnnotationFact;
|
|
10
12
|
export interface JavaCaptureSideChannel {
|
|
@@ -15,7 +17,9 @@ export interface JavaCaptureSideChannel {
|
|
|
15
17
|
readonly springConfigConsumers?: readonly JavaSpringConfigConsumerFact[];
|
|
16
18
|
readonly springConditionalFacts?: readonly JavaSpringConditionalFact[];
|
|
17
19
|
readonly springDiFacts?: readonly JavaSpringDiClassFact[];
|
|
20
|
+
readonly springDynamicLookupFacts?: readonly SpringDynamicLookupFact[];
|
|
18
21
|
readonly springNonHttpHandlerFacts?: readonly JavaSpringNonHttpHandlerFact[];
|
|
22
|
+
readonly springMessageProducerFacts?: readonly SpringMessageProducerFact[];
|
|
19
23
|
}
|
|
20
24
|
/** Clear facts retained by a prior workspace pass in a long-lived process. */
|
|
21
25
|
export declare function clearJavaClassAnnotationFacts(): void;
|
|
@@ -29,8 +33,12 @@ export declare function setJavaSpringConditionalFacts(filePath: string, facts: r
|
|
|
29
33
|
export declare function getJavaSpringConditionalFacts(filePath: string): readonly JavaSpringConditionalFact[];
|
|
30
34
|
export declare function setJavaSpringDiFacts(filePath: string, facts: readonly JavaSpringDiClassFact[]): void;
|
|
31
35
|
export declare function getJavaSpringDiFacts(filePath: string): readonly JavaSpringDiClassFact[];
|
|
36
|
+
export declare function setJavaSpringDynamicLookupFacts(filePath: string, facts: readonly SpringDynamicLookupFact[]): void;
|
|
37
|
+
export declare function getJavaSpringDynamicLookupFacts(filePath: string): readonly SpringDynamicLookupFact[];
|
|
32
38
|
export declare function setJavaSpringNonHttpHandlerFacts(filePath: string, facts: readonly JavaSpringNonHttpHandlerFact[]): void;
|
|
33
39
|
export declare function getJavaSpringNonHttpHandlerFacts(filePath: string): readonly JavaSpringNonHttpHandlerFact[];
|
|
40
|
+
export declare function setJavaSpringMessageProducerFacts(filePath: string, facts: readonly SpringMessageProducerFact[]): void;
|
|
41
|
+
export declare function getJavaSpringMessageProducerFacts(filePath: string): readonly SpringMessageProducerFact[];
|
|
34
42
|
/** Snapshot worker-local Java annotation facts for ParsedFile serialization. */
|
|
35
43
|
export declare function collectJavaCaptureSideChannel(filePath: string): JavaCaptureSideChannel | undefined;
|
|
36
44
|
export declare function getJavaClassAnnotationFacts(filePath: string): readonly JavaClassAnnotationFact[];
|
|
@@ -6,7 +6,9 @@ const springAopFacts = new Map();
|
|
|
6
6
|
const springConfigConsumers = new Map();
|
|
7
7
|
const springConditionalFacts = new Map();
|
|
8
8
|
const springDiFacts = new Map();
|
|
9
|
+
const springDynamicLookupFacts = new Map();
|
|
9
10
|
const springNonHttpHandlerFacts = new Map();
|
|
11
|
+
const springMessageProducerFacts = new Map();
|
|
10
12
|
/** Clear facts retained by a prior workspace pass in a long-lived process. */
|
|
11
13
|
export function clearJavaClassAnnotationFacts() {
|
|
12
14
|
classAnnotations.clear();
|
|
@@ -14,7 +16,9 @@ export function clearJavaClassAnnotationFacts() {
|
|
|
14
16
|
springConfigConsumers.clear();
|
|
15
17
|
springConditionalFacts.clear();
|
|
16
18
|
springDiFacts.clear();
|
|
19
|
+
springDynamicLookupFacts.clear();
|
|
17
20
|
springNonHttpHandlerFacts.clear();
|
|
21
|
+
springMessageProducerFacts.clear();
|
|
18
22
|
}
|
|
19
23
|
export function setJavaSpringAopFacts(filePath, facts) {
|
|
20
24
|
if (facts.length === 0)
|
|
@@ -56,6 +60,15 @@ export function setJavaSpringDiFacts(filePath, facts) {
|
|
|
56
60
|
export function getJavaSpringDiFacts(filePath) {
|
|
57
61
|
return springDiFacts.get(filePath) ?? [];
|
|
58
62
|
}
|
|
63
|
+
export function setJavaSpringDynamicLookupFacts(filePath, facts) {
|
|
64
|
+
if (facts.length === 0)
|
|
65
|
+
springDynamicLookupFacts.delete(filePath);
|
|
66
|
+
else
|
|
67
|
+
springDynamicLookupFacts.set(filePath, facts);
|
|
68
|
+
}
|
|
69
|
+
export function getJavaSpringDynamicLookupFacts(filePath) {
|
|
70
|
+
return springDynamicLookupFacts.get(filePath) ?? [];
|
|
71
|
+
}
|
|
59
72
|
export function setJavaSpringNonHttpHandlerFacts(filePath, facts) {
|
|
60
73
|
if (facts.length === 0)
|
|
61
74
|
springNonHttpHandlerFacts.delete(filePath);
|
|
@@ -65,6 +78,15 @@ export function setJavaSpringNonHttpHandlerFacts(filePath, facts) {
|
|
|
65
78
|
export function getJavaSpringNonHttpHandlerFacts(filePath) {
|
|
66
79
|
return springNonHttpHandlerFacts.get(filePath) ?? [];
|
|
67
80
|
}
|
|
81
|
+
export function setJavaSpringMessageProducerFacts(filePath, facts) {
|
|
82
|
+
if (facts.length === 0)
|
|
83
|
+
springMessageProducerFacts.delete(filePath);
|
|
84
|
+
else
|
|
85
|
+
springMessageProducerFacts.set(filePath, facts);
|
|
86
|
+
}
|
|
87
|
+
export function getJavaSpringMessageProducerFacts(filePath) {
|
|
88
|
+
return springMessageProducerFacts.get(filePath) ?? [];
|
|
89
|
+
}
|
|
68
90
|
/** Snapshot worker-local Java annotation facts for ParsedFile serialization. */
|
|
69
91
|
export function collectJavaCaptureSideChannel(filePath) {
|
|
70
92
|
const facts = classAnnotations.get(filePath);
|
|
@@ -72,14 +94,18 @@ export function collectJavaCaptureSideChannel(filePath) {
|
|
|
72
94
|
const configConsumers = springConfigConsumers.get(filePath) ?? [];
|
|
73
95
|
const conditionFacts = springConditionalFacts.get(filePath) ?? [];
|
|
74
96
|
const diFacts = springDiFacts.get(filePath) ?? [];
|
|
97
|
+
const dynamicLookupFacts = springDynamicLookupFacts.get(filePath) ?? [];
|
|
75
98
|
const nonHttpHandlerFacts = springNonHttpHandlerFacts.get(filePath) ?? [];
|
|
99
|
+
const messageProducerFacts = springMessageProducerFacts.get(filePath) ?? [];
|
|
76
100
|
const packageFact = getJavaPackageFact(filePath);
|
|
77
101
|
if (facts.length === 0 &&
|
|
78
102
|
aopFacts.length === 0 &&
|
|
79
103
|
configConsumers.length === 0 &&
|
|
80
104
|
conditionFacts.length === 0 &&
|
|
81
105
|
diFacts.length === 0 &&
|
|
106
|
+
dynamicLookupFacts.length === 0 &&
|
|
82
107
|
nonHttpHandlerFacts.length === 0 &&
|
|
108
|
+
messageProducerFacts.length === 0 &&
|
|
83
109
|
packageFact === undefined) {
|
|
84
110
|
return undefined;
|
|
85
111
|
}
|
|
@@ -91,7 +117,11 @@ export function collectJavaCaptureSideChannel(filePath) {
|
|
|
91
117
|
...(configConsumers.length > 0 ? { springConfigConsumers: configConsumers } : {}),
|
|
92
118
|
...(conditionFacts.length > 0 ? { springConditionalFacts: conditionFacts } : {}),
|
|
93
119
|
...(diFacts.length > 0 ? { springDiFacts: diFacts } : {}),
|
|
120
|
+
...(dynamicLookupFacts.length > 0 ? { springDynamicLookupFacts: dynamicLookupFacts } : {}),
|
|
94
121
|
...(nonHttpHandlerFacts.length > 0 ? { springNonHttpHandlerFacts: nonHttpHandlerFacts } : {}),
|
|
122
|
+
...(messageProducerFacts.length > 0
|
|
123
|
+
? { springMessageProducerFacts: messageProducerFacts }
|
|
124
|
+
: {}),
|
|
95
125
|
};
|
|
96
126
|
}
|
|
97
127
|
export function getJavaClassAnnotationFacts(filePath) {
|
|
@@ -110,7 +140,9 @@ export function applyJavaCaptureSideChannel(parsed) {
|
|
|
110
140
|
setJavaSpringConfigConsumerFacts(parsed.filePath, []);
|
|
111
141
|
setJavaSpringConditionalFacts(parsed.filePath, []);
|
|
112
142
|
setJavaSpringDiFacts(parsed.filePath, []);
|
|
143
|
+
setJavaSpringDynamicLookupFacts(parsed.filePath, []);
|
|
113
144
|
setJavaSpringNonHttpHandlerFacts(parsed.filePath, []);
|
|
145
|
+
setJavaSpringMessageProducerFacts(parsed.filePath, []);
|
|
114
146
|
setJavaPackageFact(parsed.filePath, UNKNOWN_JVM_PACKAGE_FACT);
|
|
115
147
|
return;
|
|
116
148
|
}
|
|
@@ -119,6 +151,8 @@ export function applyJavaCaptureSideChannel(parsed) {
|
|
|
119
151
|
setJavaSpringConfigConsumerFacts(parsed.filePath, Array.isArray(data.springConfigConsumers) ? data.springConfigConsumers : []);
|
|
120
152
|
setJavaSpringConditionalFacts(parsed.filePath, Array.isArray(data.springConditionalFacts) ? data.springConditionalFacts : []);
|
|
121
153
|
setJavaSpringDiFacts(parsed.filePath, Array.isArray(data.springDiFacts) ? data.springDiFacts : []);
|
|
154
|
+
setJavaSpringDynamicLookupFacts(parsed.filePath, Array.isArray(data.springDynamicLookupFacts) ? data.springDynamicLookupFacts : []);
|
|
122
155
|
setJavaSpringNonHttpHandlerFacts(parsed.filePath, Array.isArray(data.springNonHttpHandlerFacts) ? data.springNonHttpHandlerFacts : []);
|
|
156
|
+
setJavaSpringMessageProducerFacts(parsed.filePath, Array.isArray(data.springMessageProducerFacts) ? data.springMessageProducerFacts : []);
|
|
123
157
|
setJavaPackageFact(parsed.filePath, isJvmPackageFact(data.packageFact) ? data.packageFact : UNKNOWN_JVM_PACKAGE_FACT);
|
|
124
158
|
}
|
|
@@ -7,16 +7,19 @@ import { getJavaParser, getJavaScopeQuery } from './query.js';
|
|
|
7
7
|
import { recordCacheHit, recordCacheMiss } from './cache-stats.js';
|
|
8
8
|
import { getTreeSitterBufferSize } from '../../constants.js';
|
|
9
9
|
import { parseSourceSafe } from '../../../tree-sitter/safe-parse.js';
|
|
10
|
-
import { setJavaClassAnnotationFacts, setJavaSpringAopFacts, setJavaSpringConfigConsumerFacts, setJavaSpringConditionalFacts, setJavaSpringDiFacts, setJavaSpringNonHttpHandlerFacts, } from './capture-side-channel.js';
|
|
10
|
+
import { setJavaClassAnnotationFacts, setJavaSpringAopFacts, setJavaSpringConfigConsumerFacts, setJavaSpringConditionalFacts, setJavaSpringDiFacts, setJavaSpringDynamicLookupFacts, setJavaSpringMessageProducerFacts, setJavaSpringNonHttpHandlerFacts, } from './capture-side-channel.js';
|
|
11
11
|
import { captureJavaPackageFact } from './package-facts.js';
|
|
12
12
|
import { synthesizeCallableFlowCaptures } from '../../utils/callable-flow-captures.js';
|
|
13
13
|
import { captureJavaSpringConfigConsumerFacts } from './spring-config-bindings.js';
|
|
14
14
|
import { captureJavaSpringDiClassFact } from './spring-di.js';
|
|
15
|
+
import { captureJavaSpringDynamicLookupFact } from './spring-dynamic-lookup.js';
|
|
16
|
+
import { captureJavaSpringMessageProducerFact } from './spring-message-producers.js';
|
|
15
17
|
import { synthesizeReceiverChainCapture } from '../../utils/receiver-chain-captures.js';
|
|
16
18
|
import { captureJavaSpringAopFacts } from './spring-aop.js';
|
|
17
19
|
import { captureJavaSpringConditionalFacts, } from './spring-conditionals.js';
|
|
18
20
|
import { captureJavaSpringNonHttpHandlerFacts, } from './spring-non-http-handlers.js';
|
|
19
21
|
import { synthesizeJavaRecordComponentAccessorCaptures } from './record-components.js';
|
|
22
|
+
import { synthesizeLombokAccessorCaptures } from './lombok-synthesizer.js';
|
|
20
23
|
/** Declaration anchors that carry function-like arity metadata. */
|
|
21
24
|
const FUNCTION_DECL_TAGS = ['@declaration.method', '@declaration.constructor'];
|
|
22
25
|
/** tree-sitter-java node types that the method extractor accepts. */
|
|
@@ -98,6 +101,9 @@ export function emitJavaScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
98
101
|
const springDiFacts = [];
|
|
99
102
|
const springNonHttpHandlerFacts = [];
|
|
100
103
|
const springDiClassNodeIds = new Set();
|
|
104
|
+
const springDynamicLookupFacts = [];
|
|
105
|
+
const springMessageProducerFacts = [];
|
|
106
|
+
const springMemberCallNodeIds = new Set();
|
|
101
107
|
for (const m of rawMatches) {
|
|
102
108
|
const grouped = {};
|
|
103
109
|
// Parallel tag -> captured SyntaxNode map. The tree-sitter query already
|
|
@@ -116,6 +122,18 @@ export function emitJavaScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
116
122
|
}
|
|
117
123
|
if (Object.keys(grouped).length === 0)
|
|
118
124
|
continue;
|
|
125
|
+
// One visit per member call node: the same invocation can back several
|
|
126
|
+
// query matches, and both Spring call-shape captures must see it once.
|
|
127
|
+
const memberCallNode = nodeIfType(nodeMap['@reference.call.member'], 'method_invocation');
|
|
128
|
+
if (memberCallNode !== null && !springMemberCallNodeIds.has(memberCallNode.id)) {
|
|
129
|
+
springMemberCallNodeIds.add(memberCallNode.id);
|
|
130
|
+
const lookupFact = captureJavaSpringDynamicLookupFact(memberCallNode, filePath);
|
|
131
|
+
if (lookupFact !== null)
|
|
132
|
+
springDynamicLookupFacts.push(lookupFact);
|
|
133
|
+
const producerFact = captureJavaSpringMessageProducerFact(memberCallNode, filePath);
|
|
134
|
+
if (producerFact !== null)
|
|
135
|
+
springMessageProducerFacts.push(producerFact);
|
|
136
|
+
}
|
|
119
137
|
const springAopTypeNode = [
|
|
120
138
|
nodeIfType(nodeMap['@scope.class'], 'class_declaration'),
|
|
121
139
|
nodeIfType(nodeMap['@scope.class'], 'interface_declaration'),
|
|
@@ -287,13 +305,16 @@ export function emitJavaScopeCaptures(sourceText, filePath, cachedTree) {
|
|
|
287
305
|
setJavaSpringAopFacts(filePath, springAopFacts);
|
|
288
306
|
setJavaSpringConditionalFacts(filePath, springConditionalFacts);
|
|
289
307
|
setJavaSpringDiFacts(filePath, springDiFacts);
|
|
308
|
+
setJavaSpringDynamicLookupFacts(filePath, springDynamicLookupFacts);
|
|
290
309
|
setJavaSpringNonHttpHandlerFacts(filePath, springNonHttpHandlerFacts);
|
|
310
|
+
setJavaSpringMessageProducerFacts(filePath, springMessageProducerFacts);
|
|
291
311
|
return [
|
|
292
312
|
...resolveVarTypeBindings(out),
|
|
293
313
|
...synthesizeJavaInheritanceReferences(tree.rootNode),
|
|
294
314
|
...synthesizeJavaExplicitConstructorReferences(tree.rootNode),
|
|
295
315
|
...synthesizeJavaAnonymousClassDeclarations(tree.rootNode),
|
|
296
316
|
...synthesizeJavaRecordComponentAccessorCaptures(tree.rootNode),
|
|
317
|
+
...synthesizeLombokAccessorCaptures(tree.rootNode),
|
|
297
318
|
...synthesizeCallableFlowCaptures(tree.rootNode, JAVA_CALLABLE_CAPTURE_OPTIONS),
|
|
298
319
|
];
|
|
299
320
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lombok accessor synthesizer for Java.
|
|
3
|
+
*
|
|
4
|
+
* Lombok generates getters/setters at compile time. They are absent from the
|
|
5
|
+
* AST, so calls like `obj.getOrderId()` on a `@Data` class would otherwise
|
|
6
|
+
* leave unresolved CALLS edges. This module walks the tree-sitter Java AST
|
|
7
|
+
* and synthesizes Method graph members for the accessors Lombok would emit
|
|
8
|
+
* under the supported subset.
|
|
9
|
+
*
|
|
10
|
+
* ## Supported subset (v1)
|
|
11
|
+
* - Proven `lombok.Data` / `lombok.Getter` / `lombok.Setter` (FQN or import).
|
|
12
|
+
* - Class- or field-level enable; `AccessLevel.NONE` disables.
|
|
13
|
+
* - Default JavaBeans naming; primitive `boolean isX` → `isX` / `setX`.
|
|
14
|
+
* - Access levels PUBLIC/PROTECTED/PRIVATE/PACKAGE.
|
|
15
|
+
* - `@Accessors(chain=true)` modeled as setter return = declaring type.
|
|
16
|
+
* - `@Accessors(fluent=true)` / `prefix=…`: omit affected accessors (names
|
|
17
|
+
* cannot be proven without full Lombok config).
|
|
18
|
+
* - External `lombok.config`: unsupported (may change semantics invisibly).
|
|
19
|
+
*
|
|
20
|
+
* ## Identity
|
|
21
|
+
* Owner lookup uses in-memory AST node ids only. Method ids are derived from
|
|
22
|
+
* the stable declaring-owner graph key (the Class node id's name segment),
|
|
23
|
+
* never from persisted tree-sitter node ids.
|
|
24
|
+
*/
|
|
25
|
+
import type Parser from 'tree-sitter';
|
|
26
|
+
import type { CaptureMatch } from '../../../../_shared/index.js';
|
|
27
|
+
import { type PlannedJvmAccessor, type SyntheticAccessorResult, type SyntheticVisibility } from '../jvm/accessor-synthesis.js';
|
|
28
|
+
export type LombokVisibility = SyntheticVisibility;
|
|
29
|
+
export type SyntheticSymbol = SyntheticAccessorResult['symbols'][number];
|
|
30
|
+
export type SyntheticNode = SyntheticAccessorResult['nodes'][number];
|
|
31
|
+
export type SyntheticRelationship = SyntheticAccessorResult['relationships'][number];
|
|
32
|
+
export type LombokSynthesisResult = SyntheticAccessorResult;
|
|
33
|
+
export type PlannedLombokAccessor = PlannedJvmAccessor;
|
|
34
|
+
export interface AccessorConfig {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
visibility: LombokVisibility;
|
|
37
|
+
}
|
|
38
|
+
export declare function getterName(fieldName: string, fieldType: string): string;
|
|
39
|
+
export declare function setterName(fieldName: string, fieldType: string): string;
|
|
40
|
+
export declare function synthesizeLombokAccessors(tree: Parser.Tree, filePath: string, classOwnersById: ReadonlyMap<number, string>): LombokSynthesisResult;
|
|
41
|
+
/** Scope captures for Lombok accessors (dual-path parity with record components). */
|
|
42
|
+
export declare function synthesizeLombokAccessorCaptures(rootNode: Parser.SyntaxNode): CaptureMatch[];
|