gitnexus 1.6.6-rc.99 → 1.6.6
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 +122 -68
- package/dist/_shared/graph/types.d.ts +17 -1
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +3 -5
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +2 -4
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/scope-resolution/module-scope-index.d.ts +1 -2
- package/dist/_shared/scope-resolution/module-scope-index.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/module-scope-index.js +1 -2
- package/dist/_shared/scope-resolution/module-scope-index.js.map +1 -1
- package/dist/_shared/scope-resolution/parsed-file.d.ts +24 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +13 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/context.d.ts +1 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/context.js +6 -0
- package/dist/_shared/scope-resolution/registries/context.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/evidence.d.ts +2 -3
- package/dist/_shared/scope-resolution/registries/evidence.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/evidence.js +2 -3
- package/dist/_shared/scope-resolution/registries/evidence.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/macro-registry.d.ts +29 -0
- package/dist/_shared/scope-resolution/registries/macro-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/macro-registry.js +32 -0
- package/dist/_shared/scope-resolution/registries/macro-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +9 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +1 -1
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +35 -1
- package/dist/cli/ai-context.js +111 -12
- package/dist/cli/analyze-config.d.ts +92 -0
- package/dist/cli/analyze-config.js +364 -0
- package/dist/cli/analyze.d.ts +17 -1
- package/dist/cli/analyze.js +224 -71
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/doctor.d.ts +18 -0
- package/dist/cli/doctor.js +32 -0
- package/dist/cli/i18n/en.d.ts +2 -2
- package/dist/cli/i18n/en.js +2 -2
- package/dist/cli/i18n/resources.d.ts +2 -2
- package/dist/cli/i18n/zh-CN.js +2 -2
- package/dist/cli/index.js +4 -2
- package/dist/cli/resolve-invocation.d.ts +21 -0
- package/dist/cli/resolve-invocation.js +68 -0
- package/dist/cli/setup.d.ts +33 -0
- package/dist/cli/setup.js +96 -35
- package/dist/cli/skill-gen.js +2 -2
- package/dist/cli/wiki.js +20 -4
- package/dist/core/embeddings/embedder.d.ts +1 -1
- package/dist/core/embeddings/embedder.js +14 -1
- package/dist/core/embeddings/runtime-support.d.ts +41 -0
- package/dist/core/embeddings/runtime-support.js +65 -0
- package/dist/core/group/extractors/grpc-patterns/proto.js +2 -1
- package/dist/core/group/extractors/http-patterns/java.js +15 -1
- package/dist/core/ingestion/call-processor.d.ts +57 -227
- package/dist/core/ingestion/call-processor.js +172 -2595
- package/dist/core/ingestion/call-routing.d.ts +6 -5
- package/dist/core/ingestion/call-routing.js +6 -6
- package/dist/core/ingestion/call-types.d.ts +0 -75
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +26 -1
- package/dist/core/ingestion/class-extractors/configs/ruby.js +3 -0
- package/dist/core/ingestion/class-extractors/generic.js +9 -11
- package/dist/core/ingestion/class-types.d.ts +23 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +11 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +227 -73
- package/dist/core/ingestion/cobol-processor.d.ts +1 -0
- package/dist/core/ingestion/cobol-processor.js +51 -2
- package/dist/core/ingestion/emit-references.js +8 -2
- package/dist/core/ingestion/export-detection.d.ts +2 -1
- package/dist/core/ingestion/export-detection.js +2 -6
- package/dist/core/ingestion/field-extractors/configs/dart.d.ts +0 -6
- package/dist/core/ingestion/field-extractors/configs/dart.js +62 -44
- package/dist/core/ingestion/field-extractors/configs/go.d.ts +0 -9
- package/dist/core/ingestion/field-extractors/configs/go.js +40 -1
- package/dist/core/ingestion/field-extractors/configs/jvm.js +43 -4
- package/dist/core/ingestion/field-extractors/configs/php.js +1 -2
- package/dist/core/ingestion/field-extractors/configs/swift.d.ts +12 -1
- package/dist/core/ingestion/field-extractors/configs/swift.js +31 -6
- package/dist/core/ingestion/field-extractors/generic.d.ts +6 -0
- package/dist/core/ingestion/field-extractors/generic.js +5 -4
- package/dist/core/ingestion/field-extractors/typescript.js +0 -29
- package/dist/core/ingestion/filesystem-walker.d.ts +0 -9
- package/dist/core/ingestion/filesystem-walker.js +0 -11
- package/dist/core/ingestion/finalize-orchestrator.js +14 -2
- package/dist/core/ingestion/import-resolvers/configs/swift.d.ts +21 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.js +72 -11
- package/dist/core/ingestion/import-resolvers/python.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/standard.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.js +6 -5
- package/dist/core/ingestion/import-resolvers/utils.d.ts +2 -5
- package/dist/core/ingestion/import-resolvers/utils.js +1 -9
- package/dist/core/ingestion/language-provider.d.ts +39 -119
- package/dist/core/ingestion/language-provider.js +0 -2
- package/dist/core/ingestion/languages/c/capture-side-channel.d.ts +62 -0
- package/dist/core/ingestion/languages/c/capture-side-channel.js +65 -0
- package/dist/core/ingestion/languages/c/captures.js +41 -23
- package/dist/core/ingestion/languages/c/import-decomposer.d.ts +9 -0
- package/dist/core/ingestion/languages/c/import-decomposer.js +15 -0
- package/dist/core/ingestion/languages/c/import-target.js +52 -9
- package/dist/core/ingestion/languages/c/index.d.ts +2 -1
- package/dist/core/ingestion/languages/c/index.js +2 -1
- package/dist/core/ingestion/languages/c/query.js +15 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +47 -4
- package/dist/core/ingestion/languages/c/static-linkage.d.ts +8 -0
- package/dist/core/ingestion/languages/c/static-linkage.js +46 -1
- package/dist/core/ingestion/languages/c-cpp.js +16 -7
- package/dist/core/ingestion/languages/cobol/captures.js +25 -2
- package/dist/core/ingestion/languages/cpp/adl.d.ts +88 -4
- package/dist/core/ingestion/languages/cpp/adl.js +380 -160
- package/dist/core/ingestion/languages/cpp/arity-metadata.js +2 -8
- package/dist/core/ingestion/languages/cpp/capture-side-channel.d.ts +65 -0
- package/dist/core/ingestion/languages/cpp/capture-side-channel.js +78 -0
- package/dist/core/ingestion/languages/cpp/captures.js +162 -54
- package/dist/core/ingestion/languages/cpp/file-local-linkage.d.ts +18 -52
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +49 -1
- package/dist/core/ingestion/languages/cpp/import-decomposer.d.ts +7 -0
- package/dist/core/ingestion/languages/cpp/import-decomposer.js +12 -0
- package/dist/core/ingestion/languages/cpp/index.d.ts +1 -0
- package/dist/core/ingestion/languages/cpp/index.js +1 -0
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +8 -0
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +21 -0
- package/dist/core/ingestion/languages/cpp/query.js +21 -0
- package/dist/core/ingestion/languages/cpp/range-bindings.js +20 -5
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +52 -5
- package/dist/core/ingestion/languages/cpp/two-phase-lookup.d.ts +20 -0
- package/dist/core/ingestion/languages/cpp/two-phase-lookup.js +83 -3
- package/dist/core/ingestion/languages/csharp/captures.js +205 -41
- package/dist/core/ingestion/languages/csharp/index.d.ts +3 -4
- package/dist/core/ingestion/languages/csharp/index.js +3 -4
- package/dist/core/ingestion/languages/csharp/interpret.js +17 -3
- package/dist/core/ingestion/languages/csharp/namespace-siblings.d.ts +17 -7
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +129 -124
- package/dist/core/ingestion/languages/csharp/qualified-type-names.d.ts +14 -0
- package/dist/core/ingestion/languages/csharp/qualified-type-names.js +59 -0
- package/dist/core/ingestion/languages/csharp/query.js +13 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.js +10 -6
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +8 -1
- package/dist/core/ingestion/languages/csharp.js +0 -5
- package/dist/core/ingestion/languages/dart/arity-metadata.d.ts +25 -0
- package/dist/core/ingestion/languages/dart/arity-metadata.js +35 -0
- package/dist/core/ingestion/languages/dart/arity.d.ts +19 -0
- package/dist/core/ingestion/languages/dart/arity.js +31 -0
- package/dist/core/ingestion/languages/dart/built-ins.d.ts +11 -0
- package/dist/core/ingestion/languages/dart/built-ins.js +34 -0
- package/dist/core/ingestion/languages/dart/cache-stats.d.ts +13 -0
- package/dist/core/ingestion/languages/dart/cache-stats.js +24 -0
- package/dist/core/ingestion/languages/dart/captures.d.ts +29 -0
- package/dist/core/ingestion/languages/dart/captures.js +445 -0
- package/dist/core/ingestion/languages/dart/expand-wildcards.d.ts +13 -0
- package/dist/core/ingestion/languages/dart/expand-wildcards.js +31 -0
- package/dist/core/ingestion/languages/dart/import-target.d.ts +15 -0
- package/dist/core/ingestion/languages/dart/import-target.js +65 -0
- package/dist/core/ingestion/languages/dart/index.d.ts +28 -0
- package/dist/core/ingestion/languages/dart/index.js +28 -0
- package/dist/core/ingestion/languages/dart/interpret.d.ts +24 -0
- package/dist/core/ingestion/languages/dart/interpret.js +95 -0
- package/dist/core/ingestion/languages/dart/merge-bindings.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/merge-bindings.js +39 -0
- package/dist/core/ingestion/languages/dart/query.d.ts +26 -0
- package/dist/core/ingestion/languages/dart/query.js +142 -0
- package/dist/core/ingestion/languages/dart/receiver-binding.d.ts +24 -0
- package/dist/core/ingestion/languages/dart/receiver-binding.js +87 -0
- package/dist/core/ingestion/languages/dart/scope-resolver.d.ts +29 -0
- package/dist/core/ingestion/languages/dart/scope-resolver.js +194 -0
- package/dist/core/ingestion/languages/dart/signature-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/dart/signature-bindings.js +51 -0
- package/dist/core/ingestion/languages/dart/simple-hooks.d.ts +20 -0
- package/dist/core/ingestion/languages/dart/simple-hooks.js +47 -0
- package/dist/core/ingestion/languages/dart.d.ts +0 -1
- package/dist/core/ingestion/languages/dart.js +15 -29
- package/dist/core/ingestion/languages/go/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/go/arity-metadata.js +31 -1
- package/dist/core/ingestion/languages/go/captures.js +162 -3
- package/dist/core/ingestion/languages/go/interface-impls.js +476 -50
- package/dist/core/ingestion/languages/go/interpret.js +21 -11
- package/dist/core/ingestion/languages/go/method-owners.js +20 -8
- package/dist/core/ingestion/languages/go/query.js +15 -7
- package/dist/core/ingestion/languages/go/range-binding.js +24 -9
- package/dist/core/ingestion/languages/go/receiver-binding.js +1 -1
- package/dist/core/ingestion/languages/go/scope-resolver.js +2 -2
- package/dist/core/ingestion/languages/go/simple-hooks.js +10 -5
- package/dist/core/ingestion/languages/go/type-binding.d.ts +1 -0
- package/dist/core/ingestion/languages/go/type-binding.js +40 -2
- package/dist/core/ingestion/languages/go.d.ts +0 -1
- package/dist/core/ingestion/languages/go.js +0 -5
- package/dist/core/ingestion/languages/index.d.ts +0 -5
- package/dist/core/ingestion/languages/index.js +0 -3
- package/dist/core/ingestion/languages/java/captures.js +252 -23
- package/dist/core/ingestion/languages/java/interpret.js +12 -6
- package/dist/core/ingestion/languages/java/package-siblings.js +18 -5
- package/dist/core/ingestion/languages/java/query.js +16 -1
- package/dist/core/ingestion/languages/java/scope-resolver.d.ts +2 -8
- package/dist/core/ingestion/languages/java/scope-resolver.js +2 -8
- package/dist/core/ingestion/languages/java.js +0 -5
- package/dist/core/ingestion/languages/javascript/captures.js +185 -11
- package/dist/core/ingestion/languages/javascript/query.js +107 -1
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +57 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +60 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +213 -22
- package/dist/core/ingestion/languages/kotlin/companion-scopes.d.ts +7 -0
- package/dist/core/ingestion/languages/kotlin/companion-scopes.js +10 -0
- 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/query.js +30 -0
- package/dist/core/ingestion/languages/kotlin/scope-resolver.d.ts +5 -7
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +22 -7
- package/dist/core/ingestion/languages/kotlin.js +8 -5
- package/dist/core/ingestion/languages/php/captures.js +135 -19
- package/dist/core/ingestion/languages/php/import-decomposer.js +21 -63
- package/dist/core/ingestion/languages/php/index.d.ts +3 -4
- package/dist/core/ingestion/languages/php/index.js +3 -4
- package/dist/core/ingestion/languages/php/query.js +5 -0
- package/dist/core/ingestion/languages/php/receiver-binding.js +8 -4
- package/dist/core/ingestion/languages/php.js +0 -4
- package/dist/core/ingestion/languages/python/captures.js +128 -13
- package/dist/core/ingestion/languages/python/depends-references.js +1 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +4 -5
- package/dist/core/ingestion/languages/python/import-target.js +108 -16
- package/dist/core/ingestion/languages/python/index-stats.d.ts +18 -0
- package/dist/core/ingestion/languages/python/index-stats.js +25 -0
- package/dist/core/ingestion/languages/python/index.d.ts +3 -4
- package/dist/core/ingestion/languages/python/index.js +3 -4
- package/dist/core/ingestion/languages/python/query.js +17 -0
- package/dist/core/ingestion/languages/python/scope-resolver.js +7 -6
- package/dist/core/ingestion/languages/python.d.ts +0 -2
- package/dist/core/ingestion/languages/python.js +0 -7
- package/dist/core/ingestion/languages/ruby/captures.js +174 -31
- package/dist/core/ingestion/languages/ruby/import-target.js +2 -1
- package/dist/core/ingestion/languages/ruby/interpret.js +2 -1
- package/dist/core/ingestion/languages/ruby/query.js +10 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +61 -11
- package/dist/core/ingestion/languages/ruby.js +4 -53
- package/dist/core/ingestion/languages/rust/captures.js +95 -13
- package/dist/core/ingestion/languages/rust/query.js +64 -1
- package/dist/core/ingestion/languages/rust/range-binding.js +40 -12
- package/dist/core/ingestion/languages/rust/receiver-binding.js +9 -0
- package/dist/core/ingestion/languages/rust/scope-resolver.js +75 -1
- package/dist/core/ingestion/languages/rust.d.ts +0 -2
- package/dist/core/ingestion/languages/rust.js +0 -6
- package/dist/core/ingestion/languages/swift/arity-metadata.d.ts +24 -0
- package/dist/core/ingestion/languages/swift/arity-metadata.js +41 -0
- package/dist/core/ingestion/languages/swift/arity.d.ts +29 -0
- package/dist/core/ingestion/languages/swift/arity.js +42 -0
- package/dist/core/ingestion/languages/swift/base-type.d.ts +20 -0
- package/dist/core/ingestion/languages/swift/base-type.js +27 -0
- package/dist/core/ingestion/languages/swift/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/swift/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/swift/captures.d.ts +35 -0
- package/dist/core/ingestion/languages/swift/captures.js +495 -0
- package/dist/core/ingestion/languages/swift/implicit-imports.d.ts +34 -0
- package/dist/core/ingestion/languages/swift/implicit-imports.js +57 -0
- package/dist/core/ingestion/languages/swift/import-decomposer.d.ts +24 -0
- package/dist/core/ingestion/languages/swift/import-decomposer.js +84 -0
- package/dist/core/ingestion/languages/swift/import-target.d.ts +33 -0
- package/dist/core/ingestion/languages/swift/import-target.js +81 -0
- package/dist/core/ingestion/languages/swift/index.d.ts +37 -0
- package/dist/core/ingestion/languages/swift/index.js +37 -0
- package/dist/core/ingestion/languages/swift/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/swift/interpret.js +89 -0
- package/dist/core/ingestion/languages/swift/merge-bindings.d.ts +20 -0
- package/dist/core/ingestion/languages/swift/merge-bindings.js +48 -0
- package/dist/core/ingestion/languages/swift/query.d.ts +46 -0
- package/dist/core/ingestion/languages/swift/query.js +194 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +40 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +161 -0
- package/dist/core/ingestion/languages/swift/scope-resolver.d.ts +50 -0
- package/dist/core/ingestion/languages/swift/scope-resolver.js +189 -0
- package/dist/core/ingestion/languages/swift/sibling-type-bindings.d.ts +34 -0
- package/dist/core/ingestion/languages/swift/sibling-type-bindings.js +65 -0
- package/dist/core/ingestion/languages/swift/signature-bindings.d.ts +25 -0
- package/dist/core/ingestion/languages/swift/signature-bindings.js +66 -0
- package/dist/core/ingestion/languages/swift/simple-hooks.d.ts +37 -0
- package/dist/core/ingestion/languages/swift/simple-hooks.js +60 -0
- package/dist/core/ingestion/languages/swift/target-grouping.d.ts +51 -0
- package/dist/core/ingestion/languages/swift/target-grouping.js +93 -0
- package/dist/core/ingestion/languages/swift/target-siblings.d.ts +30 -0
- package/dist/core/ingestion/languages/swift/target-siblings.js +71 -0
- package/dist/core/ingestion/languages/swift.d.ts +0 -5
- package/dist/core/ingestion/languages/swift.js +11 -87
- package/dist/core/ingestion/languages/typescript/array-callback.d.ts +3 -29
- package/dist/core/ingestion/languages/typescript/array-callback.js +4 -43
- package/dist/core/ingestion/languages/typescript/captures.js +147 -17
- package/dist/core/ingestion/languages/typescript/index.d.ts +3 -4
- package/dist/core/ingestion/languages/typescript/index.js +3 -4
- package/dist/core/ingestion/languages/typescript/query.d.ts +2 -3
- package/dist/core/ingestion/languages/typescript/query.js +125 -4
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +0 -1
- package/dist/core/ingestion/languages/typescript.d.ts +2 -3
- package/dist/core/ingestion/languages/typescript.js +46 -23
- package/dist/core/ingestion/languages/vue/captures.d.ts +46 -0
- package/dist/core/ingestion/languages/vue/captures.js +67 -0
- package/dist/core/ingestion/languages/vue/import-target.d.ts +27 -0
- package/dist/core/ingestion/languages/vue/import-target.js +58 -0
- package/dist/core/ingestion/languages/vue/index.d.ts +49 -0
- package/dist/core/ingestion/languages/vue/index.js +49 -0
- package/dist/core/ingestion/languages/vue/scope-resolver.d.ts +55 -0
- package/dist/core/ingestion/languages/vue/scope-resolver.js +292 -0
- package/dist/core/ingestion/languages/vue.js +12 -4
- package/dist/core/ingestion/local-symbol-pruner.d.ts +11 -0
- package/dist/core/ingestion/local-symbol-pruner.js +63 -0
- package/dist/core/ingestion/method-extractors/configs/dart.js +14 -1
- package/dist/core/ingestion/method-extractors/configs/jvm.js +37 -20
- package/dist/core/ingestion/method-extractors/configs/php.js +0 -1
- package/dist/core/ingestion/method-extractors/configs/swift.js +11 -4
- package/dist/core/ingestion/method-types.d.ts +2 -2
- package/dist/core/ingestion/model/index.d.ts +0 -3
- package/dist/core/ingestion/model/index.js +0 -8
- package/dist/core/ingestion/model/resolve.d.ts +7 -43
- package/dist/core/ingestion/model/resolve.js +7 -226
- package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +46 -1
- package/dist/core/ingestion/model/semantic-model.d.ts +4 -6
- package/dist/core/ingestion/model/semantic-model.js +1 -1
- package/dist/core/ingestion/model/symbol-table.d.ts +3 -4
- package/dist/core/ingestion/model/symbol-table.js +3 -4
- package/dist/core/ingestion/parsing-processor.d.ts +30 -24
- package/dist/core/ingestion/parsing-processor.js +76 -640
- package/dist/core/ingestion/pipeline-phases/communities.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/communities.js +5 -2
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +9 -8
- package/dist/core/ingestion/pipeline-phases/cross-file.js +16 -12
- 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/mro.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/mro.js +2 -2
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +44 -22
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +426 -565
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +13 -33
- package/dist/core/ingestion/pipeline-phases/parse.js +2 -2
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/processes.js +5 -3
- package/dist/core/ingestion/pipeline-phases/prune-local-symbols.d.ts +14 -0
- package/dist/core/ingestion/pipeline-phases/prune-local-symbols.js +26 -0
- package/dist/core/ingestion/pipeline.d.ts +27 -19
- package/dist/core/ingestion/pipeline.js +4 -2
- package/dist/core/ingestion/resolve-references.js +15 -3
- package/dist/core/ingestion/route-extractors/laravel.d.ts +10 -0
- package/dist/core/ingestion/route-extractors/laravel.js +88 -9
- package/dist/core/ingestion/scope-extractor-bridge.d.ts +2 -1
- package/dist/core/ingestion/scope-extractor-bridge.js +2 -2
- package/dist/core/ingestion/scope-extractor.js +13 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +181 -15
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +21 -10
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +10 -2
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +7 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +58 -6
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +24 -5
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +68 -1
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +189 -29
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +21 -1
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1 -1
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +8 -11
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +171 -50
- package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +3 -4
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +9 -4
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +28 -5
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +191 -24
- package/dist/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +31 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +72 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +440 -39
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +18 -2
- package/dist/core/ingestion/scope-resolution/workspace-index.js +94 -7
- package/dist/core/ingestion/tree-sitter-queries.d.ts +14 -14
- package/dist/core/ingestion/tree-sitter-queries.js +380 -158
- package/dist/core/ingestion/ts-js-hoc-utils.d.ts +12 -0
- package/dist/core/ingestion/ts-js-hoc-utils.js +105 -0
- package/dist/core/ingestion/type-env.d.ts +2 -1
- package/dist/core/ingestion/type-env.js +6 -8
- package/dist/core/ingestion/type-extractors/c-cpp.js +8 -10
- package/dist/core/ingestion/type-extractors/csharp.js +18 -34
- package/dist/core/ingestion/type-extractors/go.js +2 -10
- package/dist/core/ingestion/type-extractors/jvm.js +6 -5
- package/dist/core/ingestion/type-extractors/php.js +1 -1
- package/dist/core/ingestion/type-extractors/python.js +1 -1
- package/dist/core/ingestion/type-extractors/ruby.js +2 -2
- package/dist/core/ingestion/type-extractors/rust.js +0 -16
- package/dist/core/ingestion/type-extractors/shared.d.ts +2 -2
- package/dist/core/ingestion/type-extractors/shared.js +25 -11
- package/dist/core/ingestion/type-extractors/swift.js +5 -5
- package/dist/core/ingestion/type-extractors/types.d.ts +1 -1
- package/dist/core/ingestion/type-extractors/typescript.js +1 -1
- package/dist/core/ingestion/utils/ast-helpers.d.ts +119 -1
- package/dist/core/ingestion/utils/ast-helpers.js +260 -13
- package/dist/core/ingestion/utils/callable-labels.d.ts +13 -0
- package/dist/core/ingestion/utils/callable-labels.js +14 -0
- package/dist/core/ingestion/utils/deferred-resolution-profile.d.ts +10 -0
- package/dist/core/ingestion/utils/deferred-resolution-profile.js +30 -0
- package/dist/core/ingestion/utils/heap-probe.d.ts +20 -0
- package/dist/core/ingestion/utils/heap-probe.js +39 -0
- package/dist/core/ingestion/utils/heritage-marker.d.ts +33 -0
- package/dist/core/ingestion/utils/heritage-marker.js +41 -0
- package/dist/core/ingestion/utils/qualified-name.d.ts +37 -0
- package/dist/core/ingestion/utils/qualified-name.js +67 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.js +49 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.js +76 -62
- package/dist/core/ingestion/variable-extractors/configs/go.js +74 -7
- package/dist/core/ingestion/variable-extractors/configs/jvm.js +35 -8
- package/dist/core/ingestion/variable-extractors/generic.js +40 -12
- package/dist/core/ingestion/variable-types.d.ts +9 -0
- package/dist/core/ingestion/vue-sfc-extractor.d.ts +97 -7
- package/dist/core/ingestion/vue-sfc-extractor.js +433 -11
- package/dist/core/ingestion/workers/parse-worker.d.ts +0 -11
- package/dist/core/ingestion/workers/parse-worker.js +358 -187
- package/dist/core/ingestion/workers/worker-pool.d.ts +78 -9
- package/dist/core/ingestion/workers/worker-pool.js +346 -49
- package/dist/core/lbug/csv-generator.js +20 -2
- package/dist/core/lbug/lbug-adapter.js +29 -10
- package/dist/core/lbug/native-check.js +17 -5
- package/dist/core/lbug/pool-adapter.d.ts +0 -19
- package/dist/core/lbug/pool-adapter.js +40 -77
- package/dist/core/lbug/query-result-utils.d.ts +19 -0
- package/dist/core/lbug/query-result-utils.js +28 -0
- package/dist/core/run-analyze.d.ts +9 -2
- package/dist/core/run-analyze.js +24 -3
- package/dist/core/tree-sitter/parser-loader.d.ts +13 -0
- package/dist/core/tree-sitter/parser-loader.js +4 -0
- package/dist/core/tree-sitter/safe-parse.d.ts +70 -3
- package/dist/core/tree-sitter/safe-parse.js +214 -11
- package/dist/core/wiki/generator.js +13 -5
- package/dist/core/wiki/graph-queries.d.ts +3 -0
- package/dist/core/wiki/graph-queries.js +9 -1
- package/dist/core/wiki/llm-client.d.ts +1 -1
- package/dist/core/wiki/llm-client.js +7 -2
- package/dist/core/wiki/local-cli-client.d.ts +2 -1
- package/dist/core/wiki/local-cli-client.js +62 -4
- package/dist/mcp/compatible-stdio-transport.d.ts +3 -0
- package/dist/mcp/compatible-stdio-transport.js +22 -0
- package/dist/mcp/core/embedder.d.ts +1 -1
- package/dist/mcp/core/embedder.js +13 -1
- package/dist/mcp/local/local-backend.d.ts +37 -5
- package/dist/mcp/local/local-backend.js +227 -129
- package/dist/mcp/resources.js +3 -3
- package/dist/mcp/server.js +9 -1
- package/dist/storage/git.d.ts +11 -0
- package/dist/storage/git.js +30 -0
- package/dist/storage/parse-cache.d.ts +23 -1
- package/dist/storage/parse-cache.js +138 -32
- package/dist/storage/parsedfile-store.d.ts +142 -0
- package/dist/storage/parsedfile-store.js +367 -0
- package/dist/storage/repo-manager.d.ts +2 -1
- package/dist/storage/scope-index-store.d.ts +114 -0
- package/dist/storage/scope-index-store.js +236 -0
- package/dist/types/pipeline.d.ts +6 -3
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +2 -1
- package/hooks/claude/gitnexus-hook.cjs +2 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +323 -0
- package/package.json +4 -5
- package/scripts/bench-scope-resolution.ts +1 -3
- package/scripts/cross-platform-tests.ts +4 -1
- package/skills/gitnexus-cli.md +8 -6
- package/skills/gitnexus-debugging.md +15 -15
- package/skills/gitnexus-exploring.md +11 -11
- package/skills/gitnexus-guide.md +1 -1
- package/skills/gitnexus-impact-analysis.md +10 -10
- package/skills/gitnexus-pr-review.md +19 -19
- package/skills/gitnexus-refactoring.md +25 -25
- package/web/assets/{agent-BRX-afm3.js → agent-EkX7webX.js} +156 -131
- package/web/assets/{architectureDiagram-UL44E2DR-B1oYB8-c.js → architectureDiagram-UL44E2DR-BoczH8cv.js} +1 -1
- package/web/assets/{chunk-LCXTWHL2-SPC6pgWI.js → chunk-LCXTWHL2-By5HB3b-.js} +1 -1
- package/web/assets/{chunk-RG4AUYOV-DZXr4Yv3.js → chunk-RG4AUYOV-BQE_DkpL.js} +1 -1
- package/web/assets/{classDiagram-KGZ6W3CR-BqpOj8L9.js → classDiagram-KGZ6W3CR-Dj_02GUH.js} +1 -1
- package/web/assets/{classDiagram-v2-72OJOZXJ-FmElywK2.js → classDiagram-v2-72OJOZXJ-D-NArMpf.js} +1 -1
- package/web/assets/{diagram-3NCE3AQN-BWtJXMDq.js → diagram-3NCE3AQN-VXtXDO95.js} +1 -1
- package/web/assets/{diagram-GF46GFSD-Hh-fChxU.js → diagram-GF46GFSD-B1qab2Ah.js} +1 -1
- package/web/assets/{diagram-QXG6HAR7-DYeQHxGU.js → diagram-QXG6HAR7-BSCHGzzT.js} +1 -1
- package/web/assets/{diagram-WEQXMOUZ-DYGU4T0y.js → diagram-WEQXMOUZ-DHtknmNT.js} +1 -1
- package/web/assets/{erDiagram-L5TCEMPS-bN3wlP2A.js → erDiagram-L5TCEMPS-Db-IYTmm.js} +1 -1
- package/web/assets/{flowDiagram-H6V6AXG4-YACVtF3-.js → flowDiagram-H6V6AXG4-BHDoyVoW.js} +1 -1
- package/web/assets/{index-BhnAdWTt.js → index-BR0IhgbR.js} +10 -10
- package/web/assets/{infoDiagram-3YFTVSEB-BWBzD28-.js → infoDiagram-3YFTVSEB-6h8wbWEe.js} +1 -1
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-B8qYT-j9.js → ishikawaDiagram-BNXS4ZKH-Dx2OkPk1.js} +1 -1
- package/web/assets/{kanban-definition-75IXJCU3-BeoPr5Tl.js → kanban-definition-75IXJCU3-CIIEZfqV.js} +1 -1
- package/web/assets/{mindmap-definition-2TDM6QVE-CdLLN_so.js → mindmap-definition-2TDM6QVE-DUAqydRq.js} +1 -1
- package/web/assets/{pieDiagram-CU6KROY3-DEd2a_k_.js → pieDiagram-CU6KROY3-BntYuYZa.js} +1 -1
- package/web/assets/{requirementDiagram-JXO7QTGE-QNeTo5C_.js → requirementDiagram-JXO7QTGE-QCD6I29n.js} +1 -1
- package/web/assets/{sequenceDiagram-VS2MUI6T-BHC7q7yJ.js → sequenceDiagram-VS2MUI6T-DScFwLz2.js} +1 -1
- package/web/assets/{stateDiagram-7D4R322I-KONnc2Px.js → stateDiagram-7D4R322I-AkRAm6Hl.js} +1 -1
- package/web/assets/{stateDiagram-v2-36443NZ5-C2QfuMlu.js → stateDiagram-v2-36443NZ5-BCK1vigR.js} +1 -1
- package/web/assets/{timeline-definition-O6YCAMPW-D4t4NJx1.js → timeline-definition-O6YCAMPW-BvpIVXjX.js} +1 -1
- package/web/assets/{vennDiagram-MWXL3ELB-6bctC9Yg.js → vennDiagram-MWXL3ELB-BYGWk6dK.js} +1 -1
- package/web/assets/{wardleyDiagram-CUQ6CDDI-BPZYNTvC.js → wardleyDiagram-CUQ6CDDI-Dk1z7H2T.js} +1 -1
- package/web/assets/{xychartDiagram-N2JHSOCM-lBI9O6DW.js → xychartDiagram-N2JHSOCM-2N6NCSWN.js} +1 -1
- package/web/index.html +1 -1
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts +0 -63
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts.map +0 -1
- package/dist/_shared/scope-resolution/shadow/aggregate.js +0 -122
- package/dist/_shared/scope-resolution/shadow/aggregate.js.map +0 -1
- package/dist/_shared/scope-resolution/shadow/diff.d.ts +0 -59
- package/dist/_shared/scope-resolution/shadow/diff.d.ts.map +0 -1
- package/dist/_shared/scope-resolution/shadow/diff.js +0 -79
- package/dist/_shared/scope-resolution/shadow/diff.js.map +0 -1
- package/dist/core/ingestion/ast-cache.d.ts +0 -26
- package/dist/core/ingestion/ast-cache.js +0 -48
- package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +0 -13
- package/dist/core/ingestion/heritage-extractors/configs/go.js +0 -20
- package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +0 -18
- package/dist/core/ingestion/heritage-extractors/configs/ruby.js +0 -65
- package/dist/core/ingestion/heritage-extractors/generic.d.ts +0 -23
- package/dist/core/ingestion/heritage-extractors/generic.js +0 -47
- package/dist/core/ingestion/heritage-processor.d.ts +0 -54
- package/dist/core/ingestion/heritage-processor.js +0 -367
- package/dist/core/ingestion/heritage-types.d.ts +0 -73
- package/dist/core/ingestion/heritage-types.js +0 -2
- package/dist/core/ingestion/import-processor.d.ts +0 -23
- package/dist/core/ingestion/import-processor.js +0 -377
- package/dist/core/ingestion/model/heritage-map.d.ts +0 -105
- package/dist/core/ingestion/model/heritage-map.js +0 -294
- package/dist/core/ingestion/model/resolution-context.d.ts +0 -93
- package/dist/core/ingestion/model/resolution-context.js +0 -337
- package/dist/core/ingestion/named-bindings/csharp.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/csharp.js +0 -37
- package/dist/core/ingestion/named-bindings/java.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/java.js +0 -29
- package/dist/core/ingestion/named-bindings/kotlin.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/kotlin.js +0 -36
- package/dist/core/ingestion/named-bindings/php.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/php.js +0 -61
- package/dist/core/ingestion/named-bindings/python.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/python.js +0 -49
- package/dist/core/ingestion/named-bindings/rust.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/rust.js +0 -66
- package/dist/core/ingestion/named-bindings/types.d.ts +0 -16
- package/dist/core/ingestion/named-bindings/types.js +0 -6
- package/dist/core/ingestion/named-bindings/typescript.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/typescript.js +0 -58
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +0 -17
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +0 -209
- package/dist/core/ingestion/pipeline-phases/orm-extraction.d.ts +0 -22
- package/dist/core/ingestion/pipeline-phases/orm-extraction.js +0 -92
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.d.ts +0 -70
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.js +0 -312
- package/dist/core/ingestion/registry-primary-flag.d.ts +0 -89
- package/dist/core/ingestion/registry-primary-flag.js +0 -122
- package/dist/core/ingestion/shadow-harness.d.ts +0 -113
- package/dist/core/ingestion/shadow-harness.js +0 -148
- package/dist/core/ingestion/utils/ruby-self-call.d.ts +0 -52
- package/dist/core/ingestion/utils/ruby-self-call.js +0 -59
- package/scripts/ci-list-migrated-languages.ts +0 -24
- package/scripts/run-parity.ts +0 -128
|
@@ -25,10 +25,22 @@
|
|
|
25
25
|
// attribute axes; this expression closes both at once.
|
|
26
26
|
const SCRIPT_RE = /<script(\s[^>]*)?>([^]*?)<\/script[^>]*>/gi;
|
|
27
27
|
const TEMPLATE_COMPONENT_RE = /<([A-Z][A-Za-z0-9]+)/g;
|
|
28
|
+
const TEMPLATE_KEBAB_COMPONENT_RE = /<([a-z][a-z0-9]*(?:-[a-z0-9]+)+)\b/g;
|
|
28
29
|
// Greedy: matches from the first <template> to the *last* </template>.
|
|
29
30
|
// This is intentional — nested <template v-slot:...> tags are valid Vue
|
|
30
31
|
// syntax and we want the entire outermost template body.
|
|
31
32
|
const TEMPLATE_RE = /<template(\s[^>]*)?>([^]*)<\/template>/;
|
|
33
|
+
const VUE_BUILTIN_KEBAB_TAGS = new Set([
|
|
34
|
+
'router-view',
|
|
35
|
+
'router-link',
|
|
36
|
+
'transition',
|
|
37
|
+
'transition-group',
|
|
38
|
+
'keep-alive',
|
|
39
|
+
'teleport',
|
|
40
|
+
'suspense',
|
|
41
|
+
'component',
|
|
42
|
+
'slot',
|
|
43
|
+
]);
|
|
32
44
|
function countNewlines(text) {
|
|
33
45
|
let count = 0;
|
|
34
46
|
for (let i = 0; i < text.length; i++) {
|
|
@@ -37,6 +49,156 @@ function countNewlines(text) {
|
|
|
37
49
|
}
|
|
38
50
|
return count;
|
|
39
51
|
}
|
|
52
|
+
function kebabToPascal(name) {
|
|
53
|
+
return name
|
|
54
|
+
.split('-')
|
|
55
|
+
.filter((part) => part.length > 0)
|
|
56
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
57
|
+
.join('');
|
|
58
|
+
}
|
|
59
|
+
function isBuiltinKebabTag(tagName) {
|
|
60
|
+
return VUE_BUILTIN_KEBAB_TAGS.has(tagName);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Extract bare `emit('event')` / `$emit('event')` calls from script text.
|
|
64
|
+
*
|
|
65
|
+
* Uses a lightweight lexer state-machine (code vs comments/strings), so:
|
|
66
|
+
* - ignores `emit(...)` in comments and string literals
|
|
67
|
+
* - ignores property calls like `socket.emit(...)` / `this.$emit(...)`
|
|
68
|
+
* - captures only literal-string event names
|
|
69
|
+
*/
|
|
70
|
+
function collectBareEmitEventNames(input) {
|
|
71
|
+
let Mode;
|
|
72
|
+
(function (Mode) {
|
|
73
|
+
Mode[Mode["Code"] = 0] = "Code";
|
|
74
|
+
Mode[Mode["SingleQuote"] = 1] = "SingleQuote";
|
|
75
|
+
Mode[Mode["DoubleQuote"] = 2] = "DoubleQuote";
|
|
76
|
+
Mode[Mode["Template"] = 3] = "Template";
|
|
77
|
+
Mode[Mode["LineComment"] = 4] = "LineComment";
|
|
78
|
+
Mode[Mode["BlockComment"] = 5] = "BlockComment";
|
|
79
|
+
})(Mode || (Mode = {}));
|
|
80
|
+
const events = [];
|
|
81
|
+
const seen = new Set();
|
|
82
|
+
let mode = Mode.Code;
|
|
83
|
+
const isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c);
|
|
84
|
+
const skipSpaces = (idx) => {
|
|
85
|
+
let i = idx;
|
|
86
|
+
while (i < input.length && /\s/.test(input[i]))
|
|
87
|
+
i++;
|
|
88
|
+
return i;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Return true if the token immediately before the `.` at `dotIdx` is the
|
|
92
|
+
* keyword `this` and is not itself a property access (e.g. not `foo.this`).
|
|
93
|
+
* Used to allow `this.$emit(...)` while blocking `socket.emit(...)`.
|
|
94
|
+
*/
|
|
95
|
+
const lookbackIsThis = (dotIdx) => {
|
|
96
|
+
let j = dotIdx - 1; // step past the '.'
|
|
97
|
+
while (j >= 0 && /\s/.test(input[j]))
|
|
98
|
+
j--;
|
|
99
|
+
if (j < 3)
|
|
100
|
+
return false;
|
|
101
|
+
if (input.slice(j - 3, j + 1) !== 'this')
|
|
102
|
+
return false;
|
|
103
|
+
// Ensure 'this' is not itself a property target (e.g. foo.this)
|
|
104
|
+
const prevOfThis = j >= 4 ? input[j - 4] : '';
|
|
105
|
+
return !(prevOfThis.length > 0 && (isIdentChar(prevOfThis) || prevOfThis === '.'));
|
|
106
|
+
};
|
|
107
|
+
const tryConsumeEmitCall = (idx) => {
|
|
108
|
+
const hasDollar = input[idx] === '$';
|
|
109
|
+
const name = hasDollar ? '$emit' : 'emit';
|
|
110
|
+
if (!input.startsWith(name, idx))
|
|
111
|
+
return idx;
|
|
112
|
+
const prev = idx > 0 ? input[idx - 1] : '';
|
|
113
|
+
if (prev.length > 0 && isIdentChar(prev))
|
|
114
|
+
return idx;
|
|
115
|
+
if (prev === '.') {
|
|
116
|
+
// Allow `this.$emit(...)` / `this.emit(...)` but block `socket.emit(...)`.
|
|
117
|
+
if (!lookbackIsThis(idx - 1))
|
|
118
|
+
return idx;
|
|
119
|
+
}
|
|
120
|
+
const afterName = idx + name.length;
|
|
121
|
+
const next = afterName < input.length ? input[afterName] : '';
|
|
122
|
+
if (next.length > 0 && isIdentChar(next))
|
|
123
|
+
return idx;
|
|
124
|
+
let i = skipSpaces(afterName);
|
|
125
|
+
if (input[i] !== '(')
|
|
126
|
+
return idx;
|
|
127
|
+
i = skipSpaces(i + 1);
|
|
128
|
+
const quote = input[i];
|
|
129
|
+
if (quote !== "'" && quote !== '"')
|
|
130
|
+
return idx;
|
|
131
|
+
let eventName = '';
|
|
132
|
+
i++;
|
|
133
|
+
while (i < input.length) {
|
|
134
|
+
const ch = input[i];
|
|
135
|
+
if (ch === '\\') {
|
|
136
|
+
i += 2;
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (ch === quote)
|
|
140
|
+
break;
|
|
141
|
+
eventName += ch;
|
|
142
|
+
i++;
|
|
143
|
+
}
|
|
144
|
+
if (i >= input.length)
|
|
145
|
+
return idx;
|
|
146
|
+
// Allow simple names ("save"), hyphenated names ("user-loaded"), and
|
|
147
|
+
// update modifier patterns ("update:modelValue", "update:model-value").
|
|
148
|
+
if (/^[A-Za-z$_][A-Za-z0-9:_$-]*$/.test(eventName) && !seen.has(eventName)) {
|
|
149
|
+
seen.add(eventName);
|
|
150
|
+
events.push(eventName);
|
|
151
|
+
}
|
|
152
|
+
return i;
|
|
153
|
+
};
|
|
154
|
+
for (let i = 0; i < input.length; i++) {
|
|
155
|
+
const ch = input[i];
|
|
156
|
+
const next = i + 1 < input.length ? input[i + 1] : '';
|
|
157
|
+
if (mode === Mode.Code) {
|
|
158
|
+
const consumedAt = tryConsumeEmitCall(i);
|
|
159
|
+
if (consumedAt !== i) {
|
|
160
|
+
i = consumedAt;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (ch === "'" || ch === '"' || ch === '`') {
|
|
164
|
+
mode = ch === "'" ? Mode.SingleQuote : ch === '"' ? Mode.DoubleQuote : Mode.Template;
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (ch === '/' && next === '/') {
|
|
168
|
+
mode = Mode.LineComment;
|
|
169
|
+
i++;
|
|
170
|
+
}
|
|
171
|
+
else if (ch === '/' && next === '*') {
|
|
172
|
+
mode = Mode.BlockComment;
|
|
173
|
+
i++;
|
|
174
|
+
}
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (mode === Mode.LineComment) {
|
|
178
|
+
if (ch === '\n') {
|
|
179
|
+
mode = Mode.Code;
|
|
180
|
+
}
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (mode === Mode.BlockComment) {
|
|
184
|
+
if (ch === '*' && next === '/') {
|
|
185
|
+
i++;
|
|
186
|
+
mode = Mode.Code;
|
|
187
|
+
}
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (ch === '\\') {
|
|
191
|
+
i++;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
if ((mode === Mode.SingleQuote && ch === "'") ||
|
|
195
|
+
(mode === Mode.DoubleQuote && ch === '"') ||
|
|
196
|
+
(mode === Mode.Template && ch === '`')) {
|
|
197
|
+
mode = Mode.Code;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return events;
|
|
201
|
+
}
|
|
40
202
|
function parseScriptBlock(attrs, content, precedingText) {
|
|
41
203
|
const isSetup = attrs != null && /\bsetup\b/.test(attrs);
|
|
42
204
|
const langMatch = attrs?.match(/\blang\s*=\s*["']([^"']+)["']/);
|
|
@@ -48,11 +210,9 @@ function parseScriptBlock(attrs, content, precedingText) {
|
|
|
48
210
|
/**
|
|
49
211
|
* Extract script content from a Vue SFC.
|
|
50
212
|
*
|
|
51
|
-
* When both <script> and <script setup> are present,
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* only `defineOptions` or legacy option merges and is less important for
|
|
55
|
-
* the knowledge graph.
|
|
213
|
+
* When both <script> and <script setup> are present, the content of all
|
|
214
|
+
* blocks is combined (non-setup first, then setup) so the full script
|
|
215
|
+
* surface is available to the knowledge graph.
|
|
56
216
|
*/
|
|
57
217
|
export function extractVueScript(vueContent) {
|
|
58
218
|
const blocks = [];
|
|
@@ -65,13 +225,21 @@ export function extractVueScript(vueContent) {
|
|
|
65
225
|
}
|
|
66
226
|
if (blocks.length === 0)
|
|
67
227
|
return null;
|
|
68
|
-
//
|
|
69
|
-
const
|
|
70
|
-
const
|
|
228
|
+
// Merge all blocks: non-setup first, then setup, so content order is stable.
|
|
229
|
+
const nonSetupBlocks = blocks.filter((b) => !b.isSetup);
|
|
230
|
+
const setupBlocks = blocks.filter((b) => b.isSetup);
|
|
231
|
+
const ordered = [...nonSetupBlocks, ...setupBlocks];
|
|
232
|
+
const combinedContent = ordered.map((b) => b.content).join('\n');
|
|
233
|
+
const lineOffset = ordered[0].lineOffset;
|
|
234
|
+
// Only use JavaScript grammar when ALL blocks are explicitly lang="js"
|
|
235
|
+
// or lang="jsx". If any block omits lang or uses ts/tsx, TypeScript wins.
|
|
236
|
+
const allBlocksJs = blocks.length > 0 && blocks.every((b) => b.lang === 'js' || b.lang === 'jsx');
|
|
237
|
+
const lang = allBlocksJs ? 'js' : '';
|
|
71
238
|
return {
|
|
72
|
-
scriptContent:
|
|
73
|
-
lineOffset
|
|
74
|
-
isSetup:
|
|
239
|
+
scriptContent: combinedContent,
|
|
240
|
+
lineOffset,
|
|
241
|
+
isSetup: blocks.some((b) => b.isSetup),
|
|
242
|
+
lang,
|
|
75
243
|
};
|
|
76
244
|
}
|
|
77
245
|
/**
|
|
@@ -107,5 +275,259 @@ export function extractTemplateComponents(vueContent) {
|
|
|
107
275
|
while ((componentMatch = TEMPLATE_COMPONENT_RE.exec(templateContent)) !== null) {
|
|
108
276
|
components.add(componentMatch[1]);
|
|
109
277
|
}
|
|
278
|
+
TEMPLATE_KEBAB_COMPONENT_RE.lastIndex = 0;
|
|
279
|
+
while ((componentMatch = TEMPLATE_KEBAB_COMPONENT_RE.exec(templateContent)) !== null) {
|
|
280
|
+
if (isBuiltinKebabTag(componentMatch[1]))
|
|
281
|
+
continue;
|
|
282
|
+
components.add(kebabToPascal(componentMatch[1]));
|
|
283
|
+
}
|
|
110
284
|
return [...components];
|
|
111
285
|
}
|
|
286
|
+
// ── Per-element event binding extraction ──────────────────────────────────
|
|
287
|
+
//
|
|
288
|
+
// Three sibling regexes capture opening tags distinguished by PascalCase
|
|
289
|
+
// (Vue components), kebab-case (Vue components in kebab form), and simple
|
|
290
|
+
// lowercase (native HTML elements). All stop their attribute-block capture
|
|
291
|
+
// at the first `>` with a bounded span of at most 512 characters to avoid
|
|
292
|
+
// pathological backtracking on large template files (ReDoS mitigation).
|
|
293
|
+
// Multi-line tags whose attribute block contains a literal `>` are documented
|
|
294
|
+
// as a known limitation (#1647).
|
|
295
|
+
//
|
|
296
|
+
// NATIVE_TAG_RE uses `(?![A-Za-z0-9-])` to prevent matching the `post` prefix
|
|
297
|
+
// of a kebab-case component tag like `<post-list>` — such tags are handled by
|
|
298
|
+
// KEBAB_COMPONENT_TAG_RE, not NATIVE_TAG_RE.
|
|
299
|
+
const COMPONENT_TAG_RE = /<([A-Z][A-Za-z0-9]+)([^>]{0,512}?)(?:\/>|>)/g;
|
|
300
|
+
const KEBAB_COMPONENT_TAG_RE = /<([a-z][a-z0-9]*(?:-[a-z0-9]+)+)([^>]{0,512}?)(?:\/>|>)/g;
|
|
301
|
+
const NATIVE_TAG_RE = /<([a-z][a-z0-9]*)(?![A-Za-z0-9-])([^>]{0,512}?)(?:\/>|>)/g;
|
|
302
|
+
// Within any tag's attribute block: matches Vue event bindings.
|
|
303
|
+
// @action="handleAction"
|
|
304
|
+
// @keyup.enter="submit"
|
|
305
|
+
// @user-loaded="onLoaded" — hyphenated event names
|
|
306
|
+
// @update:model-value="onChange" — update modifier with colon
|
|
307
|
+
// v-on:click="onClick"
|
|
308
|
+
const TAG_EVENT_RE = /(?:@|v-on:)([\w:.-]+)\s*=\s*["']([A-Za-z_$][A-Za-z0-9_$]*)["']/g;
|
|
309
|
+
// ── Script emit() call extraction ─────────────────────────────────────────
|
|
310
|
+
// Matches simple variable references in Vue bound-attribute values.
|
|
311
|
+
// Captures only bare identifiers — not member-access (":key=\"post.id\""),
|
|
312
|
+
// literals (":id=\"1\""), or expressions (":val=\"a + b\"").
|
|
313
|
+
//
|
|
314
|
+
// :userId="currentUserId" → "currentUserId"
|
|
315
|
+
// :posts="allPosts" → "allPosts"
|
|
316
|
+
// v-bind:disabled="isLoading" → "isLoading"
|
|
317
|
+
// :key="post.id" — skipped (member access)
|
|
318
|
+
// :id="1" — skipped (literal)
|
|
319
|
+
const BOUND_ATTR_RE = /(?::[\w-]+|v-bind:[\w-]+)\s*=\s*["']([A-Za-z_$][A-Za-z0-9_$]*)["']/g;
|
|
320
|
+
/**
|
|
321
|
+
* Extract Vue component event bindings from a `<template>` block.
|
|
322
|
+
*
|
|
323
|
+
* Scans PascalCase component elements (e.g. `<PostList>`, `<UserCard>`) and
|
|
324
|
+
* returns each `@event="handler"` binding found in the element's attribute
|
|
325
|
+
* block. Native HTML element event handlers (`@click` on `<button>`, etc.)
|
|
326
|
+
* are intentionally excluded — only component-to-component event bindings
|
|
327
|
+
* that go through Vue's `emit()` / `defineEmits` system are included.
|
|
328
|
+
*
|
|
329
|
+
* **Limitation:** component tags whose attribute block spans multiple lines
|
|
330
|
+
* and contains a `>` inside an attribute value are not captured (the regex
|
|
331
|
+
* stops at the first `>`). Full template AST parsing would be required for
|
|
332
|
+
* those edge cases (tracked in #1647).
|
|
333
|
+
*/
|
|
334
|
+
export function extractComponentEventBindings(vueContent) {
|
|
335
|
+
const templateMatch = TEMPLATE_RE.exec(vueContent);
|
|
336
|
+
if (!templateMatch)
|
|
337
|
+
return [];
|
|
338
|
+
const templateContent = templateMatch[2];
|
|
339
|
+
const bindings = [];
|
|
340
|
+
const seen = new Set();
|
|
341
|
+
COMPONENT_TAG_RE.lastIndex = 0;
|
|
342
|
+
let tagMatch;
|
|
343
|
+
while ((tagMatch = COMPONENT_TAG_RE.exec(templateContent)) !== null) {
|
|
344
|
+
const componentName = tagMatch[1];
|
|
345
|
+
const attrs = tagMatch[2];
|
|
346
|
+
TAG_EVENT_RE.lastIndex = 0;
|
|
347
|
+
let eventMatch;
|
|
348
|
+
while ((eventMatch = TAG_EVENT_RE.exec(attrs)) !== null) {
|
|
349
|
+
const eventName = eventMatch[1];
|
|
350
|
+
const handlerName = eventMatch[2];
|
|
351
|
+
const key = `${componentName}::${eventName}::${handlerName}`;
|
|
352
|
+
if (seen.has(key))
|
|
353
|
+
continue;
|
|
354
|
+
seen.add(key);
|
|
355
|
+
bindings.push({ componentName, eventName, handlerName });
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
KEBAB_COMPONENT_TAG_RE.lastIndex = 0;
|
|
359
|
+
while ((tagMatch = KEBAB_COMPONENT_TAG_RE.exec(templateContent)) !== null) {
|
|
360
|
+
if (isBuiltinKebabTag(tagMatch[1]))
|
|
361
|
+
continue;
|
|
362
|
+
const componentName = kebabToPascal(tagMatch[1]);
|
|
363
|
+
const attrs = tagMatch[2];
|
|
364
|
+
TAG_EVENT_RE.lastIndex = 0;
|
|
365
|
+
let eventMatch;
|
|
366
|
+
while ((eventMatch = TAG_EVENT_RE.exec(attrs)) !== null) {
|
|
367
|
+
const eventName = eventMatch[1];
|
|
368
|
+
const handlerName = eventMatch[2];
|
|
369
|
+
const key = `${componentName}::${eventName}::${handlerName}`;
|
|
370
|
+
if (seen.has(key))
|
|
371
|
+
continue;
|
|
372
|
+
seen.add(key);
|
|
373
|
+
bindings.push({ componentName, eventName, handlerName });
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return bindings;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Extract event handler names bound to native HTML elements in the template.
|
|
380
|
+
*
|
|
381
|
+
* Only processes lowercase-named elements (`<button>`, `<input>`, `<div>`,
|
|
382
|
+
* etc.) — PascalCase component elements are handled by
|
|
383
|
+
* `extractComponentEventBindings`. Returns bare handler identifiers only;
|
|
384
|
+
* inline expressions with arguments or arrow functions are excluded.
|
|
385
|
+
*
|
|
386
|
+
* These handlers represent direct DOM-event→function relationships and
|
|
387
|
+
* are emitted as `CALLS` edges (not `BINDS_EVENT_HANDLER`), because native
|
|
388
|
+
* events are synchronous browser callbacks, not Vue's component-event system.
|
|
389
|
+
*/
|
|
390
|
+
export function extractNativeElementEventHandlers(vueContent) {
|
|
391
|
+
const templateMatch = TEMPLATE_RE.exec(vueContent);
|
|
392
|
+
if (!templateMatch)
|
|
393
|
+
return [];
|
|
394
|
+
const templateContent = templateMatch[2];
|
|
395
|
+
const handlers = [];
|
|
396
|
+
NATIVE_TAG_RE.lastIndex = 0;
|
|
397
|
+
let tagMatch;
|
|
398
|
+
while ((tagMatch = NATIVE_TAG_RE.exec(templateContent)) !== null) {
|
|
399
|
+
const attrs = tagMatch[2];
|
|
400
|
+
TAG_EVENT_RE.lastIndex = 0;
|
|
401
|
+
let eventMatch;
|
|
402
|
+
while ((eventMatch = TAG_EVENT_RE.exec(attrs)) !== null) {
|
|
403
|
+
handlers.push(eventMatch[2]);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return handlers;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Extract `emit('eventName', ...)` calls from a Vue SFC's `<script>` block.
|
|
410
|
+
*
|
|
411
|
+
* Scans the raw SFC source (full `.vue` file), extracts the script content,
|
|
412
|
+
* then finds bare `emit('...')` calls. Only captures literal string event
|
|
413
|
+
* names — dynamic expressions (`emit(eventName)`) are excluded.
|
|
414
|
+
*
|
|
415
|
+
* Returns deduplicated emit declarations.
|
|
416
|
+
*/
|
|
417
|
+
export function extractScriptEmitCalls(vueContent, options = {}) {
|
|
418
|
+
const sourceKind = options.sourceKind ?? 'full-sfc';
|
|
419
|
+
const scriptText = sourceKind === 'pre-extracted-script'
|
|
420
|
+
? vueContent
|
|
421
|
+
: (extractVueScript(vueContent)?.scriptContent ?? null);
|
|
422
|
+
if (!scriptText)
|
|
423
|
+
return [];
|
|
424
|
+
return collectBareEmitEventNames(scriptText).map((eventName) => ({ eventName }));
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Extract variable identifiers from Vue template bound-attribute values.
|
|
428
|
+
*
|
|
429
|
+
* Covers `:prop="varName"` and `v-bind:prop="varName"` patterns where
|
|
430
|
+
* the value is a single plain identifier. Member-access expressions
|
|
431
|
+
* (`:key="post.id"`) and literals are excluded by design.
|
|
432
|
+
*
|
|
433
|
+
* Returns deduplicated identifier names.
|
|
434
|
+
*/
|
|
435
|
+
export function extractTemplateAttributeBindings(vueContent) {
|
|
436
|
+
const templateMatch = TEMPLATE_RE.exec(vueContent);
|
|
437
|
+
if (!templateMatch)
|
|
438
|
+
return [];
|
|
439
|
+
const templateContent = templateMatch[2];
|
|
440
|
+
const vars = new Set();
|
|
441
|
+
let match;
|
|
442
|
+
BOUND_ATTR_RE.lastIndex = 0;
|
|
443
|
+
while ((match = BOUND_ATTR_RE.exec(templateContent)) !== null) {
|
|
444
|
+
vars.add(match[1]);
|
|
445
|
+
}
|
|
446
|
+
return [...vars];
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Extract all template-derived edge data from a Vue SFC in a single pass.
|
|
450
|
+
*
|
|
451
|
+
* Parses the `<template>` block once and the `<script>` block once, then
|
|
452
|
+
* runs all five extractors on the pre-parsed content rather than repeating
|
|
453
|
+
* the regex on every individual call. Used by `emitPostResolutionEdges`
|
|
454
|
+
* to avoid multiple full-file scans per `.vue` file.
|
|
455
|
+
*/
|
|
456
|
+
export function extractVueTemplateEdgeData(vueContent, options = {}) {
|
|
457
|
+
// Extract template content once.
|
|
458
|
+
const templateMatch = TEMPLATE_RE.exec(vueContent);
|
|
459
|
+
const tmpl = templateMatch ? templateMatch[2] : '';
|
|
460
|
+
// Template components (PascalCase + kebab-case).
|
|
461
|
+
const componentSet = new Set();
|
|
462
|
+
if (tmpl) {
|
|
463
|
+
TEMPLATE_COMPONENT_RE.lastIndex = 0;
|
|
464
|
+
let m;
|
|
465
|
+
while ((m = TEMPLATE_COMPONENT_RE.exec(tmpl)) !== null)
|
|
466
|
+
componentSet.add(m[1]);
|
|
467
|
+
TEMPLATE_KEBAB_COMPONENT_RE.lastIndex = 0;
|
|
468
|
+
while ((m = TEMPLATE_KEBAB_COMPONENT_RE.exec(tmpl)) !== null) {
|
|
469
|
+
if (!isBuiltinKebabTag(m[1]))
|
|
470
|
+
componentSet.add(kebabToPascal(m[1]));
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
// Native element event handlers.
|
|
474
|
+
const nativeHandlers = [];
|
|
475
|
+
if (tmpl) {
|
|
476
|
+
NATIVE_TAG_RE.lastIndex = 0;
|
|
477
|
+
let tagM;
|
|
478
|
+
while ((tagM = NATIVE_TAG_RE.exec(tmpl)) !== null) {
|
|
479
|
+
TAG_EVENT_RE.lastIndex = 0;
|
|
480
|
+
let evM;
|
|
481
|
+
while ((evM = TAG_EVENT_RE.exec(tagM[2])) !== null)
|
|
482
|
+
nativeHandlers.push(evM[2]);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
// Component event bindings.
|
|
486
|
+
const componentBindings = [];
|
|
487
|
+
const bindingSeen = new Set();
|
|
488
|
+
const processComponentAttrs = (componentName, attrs) => {
|
|
489
|
+
TAG_EVENT_RE.lastIndex = 0;
|
|
490
|
+
let evM;
|
|
491
|
+
while ((evM = TAG_EVENT_RE.exec(attrs)) !== null) {
|
|
492
|
+
const key = `${componentName}::${evM[1]}::${evM[2]}`;
|
|
493
|
+
if (!bindingSeen.has(key)) {
|
|
494
|
+
bindingSeen.add(key);
|
|
495
|
+
componentBindings.push({ componentName, eventName: evM[1], handlerName: evM[2] });
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
if (tmpl) {
|
|
500
|
+
COMPONENT_TAG_RE.lastIndex = 0;
|
|
501
|
+
let tagM;
|
|
502
|
+
while ((tagM = COMPONENT_TAG_RE.exec(tmpl)) !== null)
|
|
503
|
+
processComponentAttrs(tagM[1], tagM[2]);
|
|
504
|
+
KEBAB_COMPONENT_TAG_RE.lastIndex = 0;
|
|
505
|
+
while ((tagM = KEBAB_COMPONENT_TAG_RE.exec(tmpl)) !== null) {
|
|
506
|
+
if (!isBuiltinKebabTag(tagM[1]))
|
|
507
|
+
processComponentAttrs(kebabToPascal(tagM[1]), tagM[2]);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
// Script emit() calls.
|
|
511
|
+
const sourceKind = options.sourceKind ?? 'full-sfc';
|
|
512
|
+
const scriptText = sourceKind === 'pre-extracted-script'
|
|
513
|
+
? vueContent
|
|
514
|
+
: (extractVueScript(vueContent)?.scriptContent ?? null);
|
|
515
|
+
const scriptEmitCalls = scriptText
|
|
516
|
+
? collectBareEmitEventNames(scriptText).map((eventName) => ({ eventName }))
|
|
517
|
+
: [];
|
|
518
|
+
// Bound attribute bindings.
|
|
519
|
+
const attrVars = new Set();
|
|
520
|
+
if (tmpl) {
|
|
521
|
+
BOUND_ATTR_RE.lastIndex = 0;
|
|
522
|
+
let m;
|
|
523
|
+
while ((m = BOUND_ATTR_RE.exec(tmpl)) !== null)
|
|
524
|
+
attrVars.add(m[1]);
|
|
525
|
+
}
|
|
526
|
+
return {
|
|
527
|
+
templateComponents: [...componentSet],
|
|
528
|
+
nativeEventHandlers: nativeHandlers,
|
|
529
|
+
componentEventBindings: componentBindings,
|
|
530
|
+
scriptEmitCalls,
|
|
531
|
+
templateAttributeBindings: [...attrVars],
|
|
532
|
+
};
|
|
533
|
+
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
2
|
-
import type { ExtractedHeritage } from '../model/heritage-map.js';
|
|
3
2
|
import type { ExtractedRouterInclude, ExtractedRouterImport, ExtractedRouterModuleAlias } from '../route-extractors/fastapi-router-bindings.js';
|
|
4
3
|
import { type MixedChainStep } from '../utils/call-analysis.js';
|
|
5
4
|
import type { ConstructorBinding } from '../type-env.js';
|
|
6
|
-
import type { NamedBinding } from '../named-bindings/types.js';
|
|
7
5
|
import type { NodeLabel, ParameterTypeClass } from '../../../_shared/index.js';
|
|
8
6
|
import type { ParsedFile } from '../../../_shared/index.js';
|
|
9
7
|
import { type ExtractedRoute } from '../route-extractors/laravel.js';
|
|
@@ -53,13 +51,6 @@ interface ParsedSymbol {
|
|
|
53
51
|
isFinal?: boolean;
|
|
54
52
|
annotations?: string[];
|
|
55
53
|
}
|
|
56
|
-
export interface ExtractedImport {
|
|
57
|
-
filePath: string;
|
|
58
|
-
rawImportPath: string;
|
|
59
|
-
language: SupportedLanguages;
|
|
60
|
-
/** Named bindings from the import (e.g., import {User as U} → [{local:'U', exported:'User'}]) */
|
|
61
|
-
namedBindings?: NamedBinding[];
|
|
62
|
-
}
|
|
63
54
|
export interface ExtractedCall {
|
|
64
55
|
filePath: string;
|
|
65
56
|
calledName: string;
|
|
@@ -178,10 +169,8 @@ export interface ParseWorkerResult {
|
|
|
178
169
|
nodes: ParsedNode[];
|
|
179
170
|
relationships: ParsedRelationship[];
|
|
180
171
|
symbols: ParsedSymbol[];
|
|
181
|
-
imports: ExtractedImport[];
|
|
182
172
|
calls: ExtractedCall[];
|
|
183
173
|
assignments: ExtractedAssignment[];
|
|
184
|
-
heritage: ExtractedHeritage[];
|
|
185
174
|
routes: ExtractedRoute[];
|
|
186
175
|
fetchCalls: ExtractedFetchCall[];
|
|
187
176
|
fetchWrapperDefs: FetchWrapperDef[];
|