cotx-engine 0.1.0
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/LICENSE +94 -0
- package/README.md +103 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.js +93 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/context.d.ts +1 -0
- package/dist/commands/context.js +98 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/diff.d.ts +19 -0
- package/dist/commands/diff.js +127 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/impact.d.ts +3 -0
- package/dist/commands/impact.js +91 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +13 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.d.ts +13 -0
- package/dist/commands/lint.js +290 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/map.d.ts +6 -0
- package/dist/commands/map.js +409 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/migrate.d.ts +16 -0
- package/dist/commands/migrate.js +150 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/query.d.ts +3 -0
- package/dist/commands/query.js +47 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/rename.d.ts +5 -0
- package/dist/commands/rename.js +163 -0
- package/dist/commands/rename.js.map +1 -0
- package/dist/commands/snapshot.d.ts +6 -0
- package/dist/commands/snapshot.js +48 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +72 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update.d.ts +8 -0
- package/dist/commands/update.js +163 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/write.d.ts +6 -0
- package/dist/commands/write.js +221 -0
- package/dist/commands/write.js.map +1 -0
- package/dist/compiler/auto-describe.d.ts +13 -0
- package/dist/compiler/auto-describe.js +91 -0
- package/dist/compiler/auto-describe.js.map +1 -0
- package/dist/compiler/concept-compiler.d.ts +21 -0
- package/dist/compiler/concept-compiler.js +125 -0
- package/dist/compiler/concept-compiler.js.map +1 -0
- package/dist/compiler/contract-compiler.d.ts +16 -0
- package/dist/compiler/contract-compiler.js +90 -0
- package/dist/compiler/contract-compiler.js.map +1 -0
- package/dist/compiler/delta-detector.d.ts +8 -0
- package/dist/compiler/delta-detector.js +34 -0
- package/dist/compiler/delta-detector.js.map +1 -0
- package/dist/compiler/flow-compiler.d.ts +18 -0
- package/dist/compiler/flow-compiler.js +69 -0
- package/dist/compiler/flow-compiler.js.map +1 -0
- package/dist/compiler/module-compiler.d.ts +18 -0
- package/dist/compiler/module-compiler.js +420 -0
- package/dist/compiler/module-compiler.js.map +1 -0
- package/dist/compiler/stale-detector.d.ts +22 -0
- package/dist/compiler/stale-detector.js +79 -0
- package/dist/compiler/stale-detector.js.map +1 -0
- package/dist/config/ignore-service.d.ts +26 -0
- package/dist/config/ignore-service.js +366 -0
- package/dist/config/ignore-service.js.map +1 -0
- package/dist/core/analysis/cluster-enricher.d.ts +38 -0
- package/dist/core/analysis/cluster-enricher.js +169 -0
- package/dist/core/analysis/cluster-enricher.js.map +1 -0
- package/dist/core/analysis/community-processor.d.ts +39 -0
- package/dist/core/analysis/community-processor.js +319 -0
- package/dist/core/analysis/community-processor.js.map +1 -0
- package/dist/core/analysis/process-processor.d.ts +51 -0
- package/dist/core/analysis/process-processor.js +318 -0
- package/dist/core/analysis/process-processor.js.map +1 -0
- package/dist/core/bridge.d.ts +15 -0
- package/dist/core/bridge.js +63 -0
- package/dist/core/bridge.js.map +1 -0
- package/dist/core/export/json-exporter.d.ts +43 -0
- package/dist/core/export/json-exporter.js +13 -0
- package/dist/core/export/json-exporter.js.map +1 -0
- package/dist/core/graph/graph.d.ts +2 -0
- package/dist/core/graph/graph.js +79 -0
- package/dist/core/graph/graph.js.map +1 -0
- package/dist/core/graph/types.d.ts +25 -0
- package/dist/core/graph/types.js +2 -0
- package/dist/core/graph/types.js.map +1 -0
- package/dist/core/parser/ast-cache.d.ts +11 -0
- package/dist/core/parser/ast-cache.js +36 -0
- package/dist/core/parser/ast-cache.js.map +1 -0
- package/dist/core/parser/call-processor.d.ts +105 -0
- package/dist/core/parser/call-processor.js +1807 -0
- package/dist/core/parser/call-processor.js.map +1 -0
- package/dist/core/parser/call-routing.d.ts +55 -0
- package/dist/core/parser/call-routing.js +113 -0
- package/dist/core/parser/call-routing.js.map +1 -0
- package/dist/core/parser/call-sites/extract-language-call-site.d.ts +10 -0
- package/dist/core/parser/call-sites/extract-language-call-site.js +23 -0
- package/dist/core/parser/call-sites/extract-language-call-site.js.map +1 -0
- package/dist/core/parser/call-sites/java.d.ts +9 -0
- package/dist/core/parser/call-sites/java.js +31 -0
- package/dist/core/parser/call-sites/java.js.map +1 -0
- package/dist/core/parser/cluster-enricher.d.ts +38 -0
- package/dist/core/parser/cluster-enricher.js +169 -0
- package/dist/core/parser/cluster-enricher.js.map +1 -0
- package/dist/core/parser/community-processor.d.ts +39 -0
- package/dist/core/parser/community-processor.js +321 -0
- package/dist/core/parser/community-processor.js.map +1 -0
- package/dist/core/parser/constants.d.ts +16 -0
- package/dist/core/parser/constants.js +17 -0
- package/dist/core/parser/constants.js.map +1 -0
- package/dist/core/parser/entry-point-scoring.d.ts +57 -0
- package/dist/core/parser/entry-point-scoring.js +377 -0
- package/dist/core/parser/entry-point-scoring.js.map +1 -0
- package/dist/core/parser/export-detection.d.ts +57 -0
- package/dist/core/parser/export-detection.js +234 -0
- package/dist/core/parser/export-detection.js.map +1 -0
- package/dist/core/parser/field-extractor.d.ts +34 -0
- package/dist/core/parser/field-extractor.js +33 -0
- package/dist/core/parser/field-extractor.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/c-cpp.d.ts +16 -0
- package/dist/core/parser/field-extractors/configs/c-cpp.js +129 -0
- package/dist/core/parser/field-extractors/configs/c-cpp.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/csharp.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/csharp.js +129 -0
- package/dist/core/parser/field-extractors/configs/csharp.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/dart.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/dart.js +93 -0
- package/dist/core/parser/field-extractors/configs/dart.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/go.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/go.js +66 -0
- package/dist/core/parser/field-extractors/configs/go.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/helpers.d.ts +40 -0
- package/dist/core/parser/field-extractors/configs/helpers.js +118 -0
- package/dist/core/parser/field-extractors/configs/helpers.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/jvm.d.ts +17 -0
- package/dist/core/parser/field-extractors/configs/jvm.js +139 -0
- package/dist/core/parser/field-extractors/configs/jvm.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/php.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/php.js +69 -0
- package/dist/core/parser/field-extractors/configs/php.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/python.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/python.js +92 -0
- package/dist/core/parser/field-extractors/configs/python.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/ruby.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/ruby.js +68 -0
- package/dist/core/parser/field-extractors/configs/ruby.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/rust.d.ts +12 -0
- package/dist/core/parser/field-extractors/configs/rust.js +58 -0
- package/dist/core/parser/field-extractors/configs/rust.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/swift.d.ts +15 -0
- package/dist/core/parser/field-extractors/configs/swift.js +75 -0
- package/dist/core/parser/field-extractors/configs/swift.js.map +1 -0
- package/dist/core/parser/field-extractors/configs/typescript-javascript.d.ts +14 -0
- package/dist/core/parser/field-extractors/configs/typescript-javascript.js +72 -0
- package/dist/core/parser/field-extractors/configs/typescript-javascript.js.map +1 -0
- package/dist/core/parser/field-extractors/generic.d.ts +61 -0
- package/dist/core/parser/field-extractors/generic.js +170 -0
- package/dist/core/parser/field-extractors/generic.js.map +1 -0
- package/dist/core/parser/field-extractors/typescript.d.ts +16 -0
- package/dist/core/parser/field-extractors/typescript.js +167 -0
- package/dist/core/parser/field-extractors/typescript.js.map +1 -0
- package/dist/core/parser/field-types.d.ts +46 -0
- package/dist/core/parser/field-types.js +2 -0
- package/dist/core/parser/field-types.js.map +1 -0
- package/dist/core/parser/filesystem-walker.d.ts +28 -0
- package/dist/core/parser/filesystem-walker.js +82 -0
- package/dist/core/parser/filesystem-walker.js.map +1 -0
- package/dist/core/parser/framework-detection.d.ts +149 -0
- package/dist/core/parser/framework-detection.js +782 -0
- package/dist/core/parser/framework-detection.js.map +1 -0
- package/dist/core/parser/heritage-processor.d.ts +52 -0
- package/dist/core/parser/heritage-processor.js +339 -0
- package/dist/core/parser/heritage-processor.js.map +1 -0
- package/dist/core/parser/import-processor.d.ts +33 -0
- package/dist/core/parser/import-processor.js +382 -0
- package/dist/core/parser/import-processor.js.map +1 -0
- package/dist/core/parser/import-resolvers/csharp.d.ts +19 -0
- package/dist/core/parser/import-resolvers/csharp.js +132 -0
- package/dist/core/parser/import-resolvers/csharp.js.map +1 -0
- package/dist/core/parser/import-resolvers/dart.d.ts +7 -0
- package/dist/core/parser/import-resolvers/dart.js +45 -0
- package/dist/core/parser/import-resolvers/dart.js.map +1 -0
- package/dist/core/parser/import-resolvers/go.d.ts +18 -0
- package/dist/core/parser/import-resolvers/go.js +62 -0
- package/dist/core/parser/import-resolvers/go.js.map +1 -0
- package/dist/core/parser/import-resolvers/jvm.d.ts +32 -0
- package/dist/core/parser/import-resolvers/jvm.js +160 -0
- package/dist/core/parser/import-resolvers/jvm.js.map +1 -0
- package/dist/core/parser/import-resolvers/php.d.ts +25 -0
- package/dist/core/parser/import-resolvers/php.js +81 -0
- package/dist/core/parser/import-resolvers/php.js.map +1 -0
- package/dist/core/parser/import-resolvers/python.d.ts +25 -0
- package/dist/core/parser/import-resolvers/python.js +85 -0
- package/dist/core/parser/import-resolvers/python.js.map +1 -0
- package/dist/core/parser/import-resolvers/ruby.d.ts +15 -0
- package/dist/core/parser/import-resolvers/ruby.js +21 -0
- package/dist/core/parser/import-resolvers/ruby.js.map +1 -0
- package/dist/core/parser/import-resolvers/rust.d.ts +18 -0
- package/dist/core/parser/import-resolvers/rust.js +119 -0
- package/dist/core/parser/import-resolvers/rust.js.map +1 -0
- package/dist/core/parser/import-resolvers/standard.d.ts +36 -0
- package/dist/core/parser/import-resolvers/standard.js +144 -0
- package/dist/core/parser/import-resolvers/standard.js.map +1 -0
- package/dist/core/parser/import-resolvers/swift.d.ts +7 -0
- package/dist/core/parser/import-resolvers/swift.js +25 -0
- package/dist/core/parser/import-resolvers/swift.js.map +1 -0
- package/dist/core/parser/import-resolvers/types.d.ts +44 -0
- package/dist/core/parser/import-resolvers/types.js +7 -0
- package/dist/core/parser/import-resolvers/types.js.map +1 -0
- package/dist/core/parser/import-resolvers/utils.d.ts +35 -0
- package/dist/core/parser/import-resolvers/utils.js +150 -0
- package/dist/core/parser/import-resolvers/utils.js.map +1 -0
- package/dist/core/parser/import-resolvers/vue.d.ts +8 -0
- package/dist/core/parser/import-resolvers/vue.js +10 -0
- package/dist/core/parser/import-resolvers/vue.js.map +1 -0
- package/dist/core/parser/language-config.d.ts +52 -0
- package/dist/core/parser/language-config.js +182 -0
- package/dist/core/parser/language-config.js.map +1 -0
- package/dist/core/parser/language-provider.d.ts +126 -0
- package/dist/core/parser/language-provider.js +25 -0
- package/dist/core/parser/language-provider.js.map +1 -0
- package/dist/core/parser/languages/c-cpp.d.ts +12 -0
- package/dist/core/parser/languages/c-cpp.js +312 -0
- package/dist/core/parser/languages/c-cpp.js.map +1 -0
- package/dist/core/parser/languages/csharp.d.ts +8 -0
- package/dist/core/parser/languages/csharp.js +127 -0
- package/dist/core/parser/languages/csharp.js.map +1 -0
- package/dist/core/parser/languages/dart.d.ts +12 -0
- package/dist/core/parser/languages/dart.js +91 -0
- package/dist/core/parser/languages/dart.js.map +1 -0
- package/dist/core/parser/languages/go.d.ts +11 -0
- package/dist/core/parser/languages/go.js +32 -0
- package/dist/core/parser/languages/go.js.map +1 -0
- package/dist/core/parser/languages/index.d.ts +38 -0
- package/dist/core/parser/languages/index.js +63 -0
- package/dist/core/parser/languages/index.js.map +1 -0
- package/dist/core/parser/languages/java.d.ts +9 -0
- package/dist/core/parser/languages/java.js +33 -0
- package/dist/core/parser/languages/java.js.map +1 -0
- package/dist/core/parser/languages/kotlin.d.ts +9 -0
- package/dist/core/parser/languages/kotlin.js +112 -0
- package/dist/core/parser/languages/kotlin.js.map +1 -0
- package/dist/core/parser/languages/php.d.ts +8 -0
- package/dist/core/parser/languages/php.js +226 -0
- package/dist/core/parser/languages/php.js.map +1 -0
- package/dist/core/parser/languages/python.d.ts +12 -0
- package/dist/core/parser/languages/python.js +66 -0
- package/dist/core/parser/languages/python.js.map +1 -0
- package/dist/core/parser/languages/ruby.d.ts +9 -0
- package/dist/core/parser/languages/ruby.js +109 -0
- package/dist/core/parser/languages/ruby.js.map +1 -0
- package/dist/core/parser/languages/rust.d.ts +12 -0
- package/dist/core/parser/languages/rust.js +121 -0
- package/dist/core/parser/languages/rust.js.map +1 -0
- package/dist/core/parser/languages/swift.d.ts +12 -0
- package/dist/core/parser/languages/swift.js +233 -0
- package/dist/core/parser/languages/swift.js.map +1 -0
- package/dist/core/parser/languages/typescript.d.ts +11 -0
- package/dist/core/parser/languages/typescript.js +169 -0
- package/dist/core/parser/languages/typescript.js.map +1 -0
- package/dist/core/parser/languages/vue.d.ts +13 -0
- package/dist/core/parser/languages/vue.js +65 -0
- package/dist/core/parser/languages/vue.js.map +1 -0
- package/dist/core/parser/markdown-processor.d.ts +17 -0
- package/dist/core/parser/markdown-processor.js +125 -0
- package/dist/core/parser/markdown-processor.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/parser/method-extractors/configs/c-cpp.js +276 -0
- package/dist/core/parser/method-extractors/configs/c-cpp.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/csharp.js +243 -0
- package/dist/core/parser/method-extractors/configs/csharp.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/dart.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/dart.js +263 -0
- package/dist/core/parser/method-extractors/configs/dart.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/go.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/go.js +120 -0
- package/dist/core/parser/method-extractors/configs/go.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/parser/method-extractors/configs/jvm.js +309 -0
- package/dist/core/parser/method-extractors/configs/jvm.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/php.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/php.js +243 -0
- package/dist/core/parser/method-extractors/configs/php.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/python.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/python.js +219 -0
- package/dist/core/parser/method-extractors/configs/python.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/ruby.js +201 -0
- package/dist/core/parser/method-extractors/configs/ruby.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/rust.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/rust.js +120 -0
- package/dist/core/parser/method-extractors/configs/rust.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/swift.d.ts +2 -0
- package/dist/core/parser/method-extractors/configs/swift.js +191 -0
- package/dist/core/parser/method-extractors/configs/swift.js.map +1 -0
- package/dist/core/parser/method-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/parser/method-extractors/configs/typescript-javascript.js +231 -0
- package/dist/core/parser/method-extractors/configs/typescript-javascript.js.map +1 -0
- package/dist/core/parser/method-extractors/generic.d.ts +11 -0
- package/dist/core/parser/method-extractors/generic.js +162 -0
- package/dist/core/parser/method-extractors/generic.js.map +1 -0
- package/dist/core/parser/method-types.d.ts +110 -0
- package/dist/core/parser/method-types.js +2 -0
- package/dist/core/parser/method-types.js.map +1 -0
- package/dist/core/parser/mro-processor.d.ts +46 -0
- package/dist/core/parser/mro-processor.js +677 -0
- package/dist/core/parser/mro-processor.js.map +1 -0
- package/dist/core/parser/named-binding-processor.d.ts +18 -0
- package/dist/core/parser/named-binding-processor.js +43 -0
- package/dist/core/parser/named-binding-processor.js.map +1 -0
- package/dist/core/parser/named-bindings/csharp.d.ts +3 -0
- package/dist/core/parser/named-bindings/csharp.js +38 -0
- package/dist/core/parser/named-bindings/csharp.js.map +1 -0
- package/dist/core/parser/named-bindings/java.d.ts +3 -0
- package/dist/core/parser/named-bindings/java.js +30 -0
- package/dist/core/parser/named-bindings/java.js.map +1 -0
- package/dist/core/parser/named-bindings/kotlin.d.ts +3 -0
- package/dist/core/parser/named-bindings/kotlin.js +37 -0
- package/dist/core/parser/named-bindings/kotlin.js.map +1 -0
- package/dist/core/parser/named-bindings/php.d.ts +3 -0
- package/dist/core/parser/named-bindings/php.js +62 -0
- package/dist/core/parser/named-bindings/php.js.map +1 -0
- package/dist/core/parser/named-bindings/python.d.ts +3 -0
- package/dist/core/parser/named-bindings/python.js +50 -0
- package/dist/core/parser/named-bindings/python.js.map +1 -0
- package/dist/core/parser/named-bindings/rust.d.ts +3 -0
- package/dist/core/parser/named-bindings/rust.js +67 -0
- package/dist/core/parser/named-bindings/rust.js.map +1 -0
- package/dist/core/parser/named-bindings/types.d.ts +16 -0
- package/dist/core/parser/named-bindings/types.js +7 -0
- package/dist/core/parser/named-bindings/types.js.map +1 -0
- package/dist/core/parser/named-bindings/typescript.d.ts +3 -0
- package/dist/core/parser/named-bindings/typescript.js +59 -0
- package/dist/core/parser/named-bindings/typescript.js.map +1 -0
- package/dist/core/parser/parsing-processor.d.ts +23 -0
- package/dist/core/parser/parsing-processor.js +464 -0
- package/dist/core/parser/parsing-processor.js.map +1 -0
- package/dist/core/parser/pipeline.d.ts +17 -0
- package/dist/core/parser/pipeline.js +1405 -0
- package/dist/core/parser/pipeline.js.map +1 -0
- package/dist/core/parser/process-processor.d.ts +51 -0
- package/dist/core/parser/process-processor.js +318 -0
- package/dist/core/parser/process-processor.js.map +1 -0
- package/dist/core/parser/resolution-context.d.ts +58 -0
- package/dist/core/parser/resolution-context.js +136 -0
- package/dist/core/parser/resolution-context.js.map +1 -0
- package/dist/core/parser/route-extractors/expo.d.ts +1 -0
- package/dist/core/parser/route-extractors/expo.js +37 -0
- package/dist/core/parser/route-extractors/expo.js.map +1 -0
- package/dist/core/parser/route-extractors/middleware.d.ts +47 -0
- package/dist/core/parser/route-extractors/middleware.js +168 -0
- package/dist/core/parser/route-extractors/middleware.js.map +1 -0
- package/dist/core/parser/route-extractors/nextjs.d.ts +3 -0
- package/dist/core/parser/route-extractors/nextjs.js +77 -0
- package/dist/core/parser/route-extractors/nextjs.js.map +1 -0
- package/dist/core/parser/route-extractors/php.d.ts +7 -0
- package/dist/core/parser/route-extractors/php.js +23 -0
- package/dist/core/parser/route-extractors/php.js.map +1 -0
- package/dist/core/parser/route-extractors/response-shapes.d.ts +20 -0
- package/dist/core/parser/route-extractors/response-shapes.js +295 -0
- package/dist/core/parser/route-extractors/response-shapes.js.map +1 -0
- package/dist/core/parser/structure-processor.d.ts +2 -0
- package/dist/core/parser/structure-processor.js +37 -0
- package/dist/core/parser/structure-processor.js.map +1 -0
- package/dist/core/parser/symbol-table.d.ts +79 -0
- package/dist/core/parser/symbol-table.js +116 -0
- package/dist/core/parser/symbol-table.js.map +1 -0
- package/dist/core/parser/tree-sitter-queries.d.ts +16 -0
- package/dist/core/parser/tree-sitter-queries.js +1180 -0
- package/dist/core/parser/tree-sitter-queries.js.map +1 -0
- package/dist/core/parser/type-env.d.ts +81 -0
- package/dist/core/parser/type-env.js +1048 -0
- package/dist/core/parser/type-env.js.map +1 -0
- package/dist/core/parser/type-extractors/c-cpp.d.ts +7 -0
- package/dist/core/parser/type-extractors/c-cpp.js +533 -0
- package/dist/core/parser/type-extractors/c-cpp.js.map +1 -0
- package/dist/core/parser/type-extractors/csharp.d.ts +2 -0
- package/dist/core/parser/type-extractors/csharp.js +584 -0
- package/dist/core/parser/type-extractors/csharp.js.map +1 -0
- package/dist/core/parser/type-extractors/dart.d.ts +15 -0
- package/dist/core/parser/type-extractors/dart.js +370 -0
- package/dist/core/parser/type-extractors/dart.js.map +1 -0
- package/dist/core/parser/type-extractors/go.d.ts +2 -0
- package/dist/core/parser/type-extractors/go.js +514 -0
- package/dist/core/parser/type-extractors/go.js.map +1 -0
- package/dist/core/parser/type-extractors/jvm.d.ts +3 -0
- package/dist/core/parser/type-extractors/jvm.js +857 -0
- package/dist/core/parser/type-extractors/jvm.js.map +1 -0
- package/dist/core/parser/type-extractors/php.d.ts +2 -0
- package/dist/core/parser/type-extractors/php.js +535 -0
- package/dist/core/parser/type-extractors/php.js.map +1 -0
- package/dist/core/parser/type-extractors/python.d.ts +2 -0
- package/dist/core/parser/type-extractors/python.js +475 -0
- package/dist/core/parser/type-extractors/python.js.map +1 -0
- package/dist/core/parser/type-extractors/ruby.d.ts +2 -0
- package/dist/core/parser/type-extractors/ruby.js +378 -0
- package/dist/core/parser/type-extractors/ruby.js.map +1 -0
- package/dist/core/parser/type-extractors/rust.d.ts +2 -0
- package/dist/core/parser/type-extractors/rust.js +516 -0
- package/dist/core/parser/type-extractors/rust.js.map +1 -0
- package/dist/core/parser/type-extractors/shared.d.ts +131 -0
- package/dist/core/parser/type-extractors/shared.js +797 -0
- package/dist/core/parser/type-extractors/shared.js.map +1 -0
- package/dist/core/parser/type-extractors/swift.d.ts +2 -0
- package/dist/core/parser/type-extractors/swift.js +485 -0
- package/dist/core/parser/type-extractors/swift.js.map +1 -0
- package/dist/core/parser/type-extractors/types.d.ts +172 -0
- package/dist/core/parser/type-extractors/types.js +2 -0
- package/dist/core/parser/type-extractors/types.js.map +1 -0
- package/dist/core/parser/type-extractors/typescript.d.ts +2 -0
- package/dist/core/parser/type-extractors/typescript.js +662 -0
- package/dist/core/parser/type-extractors/typescript.js.map +1 -0
- package/dist/core/parser/utils/ast-helpers.d.ts +73 -0
- package/dist/core/parser/utils/ast-helpers.js +415 -0
- package/dist/core/parser/utils/ast-helpers.js.map +1 -0
- package/dist/core/parser/utils/call-analysis.d.ts +75 -0
- package/dist/core/parser/utils/call-analysis.js +575 -0
- package/dist/core/parser/utils/call-analysis.js.map +1 -0
- package/dist/core/parser/utils/event-loop.d.ts +5 -0
- package/dist/core/parser/utils/event-loop.js +6 -0
- package/dist/core/parser/utils/event-loop.js.map +1 -0
- package/dist/core/parser/utils/method-props.d.ts +8 -0
- package/dist/core/parser/utils/method-props.js +39 -0
- package/dist/core/parser/utils/method-props.js.map +1 -0
- package/dist/core/parser/utils/verbose.d.ts +1 -0
- package/dist/core/parser/utils/verbose.js +8 -0
- package/dist/core/parser/utils/verbose.js.map +1 -0
- package/dist/core/parser/vue-sfc-extractor.d.ts +44 -0
- package/dist/core/parser/vue-sfc-extractor.js +95 -0
- package/dist/core/parser/vue-sfc-extractor.js.map +1 -0
- package/dist/core/parser/workers/parse-worker.d.ts +171 -0
- package/dist/core/parser/workers/parse-worker.js +1724 -0
- package/dist/core/parser/workers/parse-worker.js.map +1 -0
- package/dist/core/parser/workers/worker-pool.d.ts +16 -0
- package/dist/core/parser/workers/worker-pool.js +124 -0
- package/dist/core/parser/workers/worker-pool.js.map +1 -0
- package/dist/core/shared/graph-types.d.ts +61 -0
- package/dist/core/shared/graph-types.js +5 -0
- package/dist/core/shared/graph-types.js.map +1 -0
- package/dist/core/shared/index.d.ts +4 -0
- package/dist/core/shared/index.js +4 -0
- package/dist/core/shared/index.js.map +1 -0
- package/dist/core/shared/language-detection.d.ts +22 -0
- package/dist/core/shared/language-detection.js +137 -0
- package/dist/core/shared/language-detection.js.map +1 -0
- package/dist/core/shared/languages.d.ts +23 -0
- package/dist/core/shared/languages.js +25 -0
- package/dist/core/shared/languages.js.map +1 -0
- package/dist/core/shared/pipeline.d.ts +15 -0
- package/dist/core/shared/pipeline.js +5 -0
- package/dist/core/shared/pipeline.js.map +1 -0
- package/dist/core/tree-sitter/parser-loader.d.ts +5 -0
- package/dist/core/tree-sitter/parser-loader.js +71 -0
- package/dist/core/tree-sitter/parser-loader.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +132 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/hash.d.ts +1 -0
- package/dist/lib/hash.js +6 -0
- package/dist/lib/hash.js.map +1 -0
- package/dist/lib/naming.d.ts +12 -0
- package/dist/lib/naming.js +28 -0
- package/dist/lib/naming.js.map +1 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +4 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.js +282 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +37 -0
- package/dist/mcp/tools.js +650 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/query/bm25.d.ts +19 -0
- package/dist/query/bm25.js +60 -0
- package/dist/query/bm25.js.map +1 -0
- package/dist/query/graph-index.d.ts +40 -0
- package/dist/query/graph-index.js +178 -0
- package/dist/query/graph-index.js.map +1 -0
- package/dist/store/derived-index.d.ts +4 -0
- package/dist/store/derived-index.js +68 -0
- package/dist/store/derived-index.js.map +1 -0
- package/dist/store/meta.d.ts +1 -0
- package/dist/store/meta.js +3 -0
- package/dist/store/meta.js.map +1 -0
- package/dist/store/schema.d.ts +135 -0
- package/dist/store/schema.js +2 -0
- package/dist/store/schema.js.map +1 -0
- package/dist/store/store.d.ts +49 -0
- package/dist/store/store.js +254 -0
- package/dist/store/store.js.map +1 -0
- package/dist/types/pipeline.d.ts +12 -0
- package/dist/types/pipeline.js +2 -0
- package/dist/types/pipeline.js.map +1 -0
- package/package.json +69 -0
- package/skills/cotx-enrich/SKILL.md +59 -0
- package/vendor/leiden/index.cjs +355 -0
- package/vendor/leiden/utils.cjs +392 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../../src/core/parser/type-extractors/typescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type Parser from 'tree-sitter';
|
|
2
|
+
import type { NodeLabel } from '../../shared/index.js';
|
|
3
|
+
import type { LanguageProvider } from '../language-provider.js';
|
|
4
|
+
/** Tree-sitter AST node. Re-exported for use across ingestion modules. */
|
|
5
|
+
export type SyntaxNode = Parser.SyntaxNode;
|
|
6
|
+
/**
|
|
7
|
+
* Ordered list of definition capture keys for tree-sitter query matches.
|
|
8
|
+
* Used to extract the definition node from a capture map.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFINITION_CAPTURE_KEYS: readonly ["definition.function", "definition.class", "definition.interface", "definition.method", "definition.struct", "definition.enum", "definition.namespace", "definition.module", "definition.trait", "definition.impl", "definition.type", "definition.const", "definition.static", "definition.typedef", "definition.macro", "definition.union", "definition.property", "definition.record", "definition.delegate", "definition.annotation", "definition.constructor", "definition.template"];
|
|
11
|
+
/** Extract the definition node from a tree-sitter query capture map. */
|
|
12
|
+
export declare const getDefinitionNodeFromCaptures: (captureMap: Record<string, SyntaxNode>) => SyntaxNode | null;
|
|
13
|
+
/**
|
|
14
|
+
* Node types that represent function/method definitions across languages.
|
|
15
|
+
* Used by parent-walk in call-processor, parse-worker, and type-env to detect
|
|
16
|
+
* enclosing function scope boundaries.
|
|
17
|
+
*
|
|
18
|
+
* INVARIANT: This set MUST be a superset of every language's
|
|
19
|
+
* MethodExtractionConfig.methodNodeTypes. When adding a new node type to a
|
|
20
|
+
* MethodExtractor config, add it here too — otherwise enclosing-function
|
|
21
|
+
* resolution will silently miss that node type during parent-walks.
|
|
22
|
+
*/
|
|
23
|
+
export declare const FUNCTION_NODE_TYPES: Set<string>;
|
|
24
|
+
/**
|
|
25
|
+
* AST node types that represent a class-like container (for HAS_METHOD edge extraction).
|
|
26
|
+
*
|
|
27
|
+
* INVARIANT: When a language config adds a new node type to `typeDeclarationNodes`,
|
|
28
|
+
* that type must also be added here AND to `CONTAINER_TYPE_TO_LABEL` below,
|
|
29
|
+
* otherwise `findEnclosingClassNode` won't recognize it and methods may get
|
|
30
|
+
* orphaned HAS_METHOD edges or incorrect labels.
|
|
31
|
+
*/
|
|
32
|
+
export declare const CLASS_CONTAINER_TYPES: Set<string>;
|
|
33
|
+
export declare const CONTAINER_TYPE_TO_LABEL: Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Determine the graph node label from a tree-sitter capture map.
|
|
36
|
+
* Handles language-specific reclassification via the provider's labelOverride hook
|
|
37
|
+
* (e.g. C/C++ duplicate skipping, Kotlin Method promotion).
|
|
38
|
+
* Returns null if the capture should be skipped (import, call, C/C++ duplicate, missing name).
|
|
39
|
+
*/
|
|
40
|
+
export declare function getLabelFromCaptures(captureMap: Record<string, SyntaxNode>, provider: LanguageProvider): NodeLabel | null;
|
|
41
|
+
/** Enclosing class info: both the generated node ID and the bare class name. */
|
|
42
|
+
export interface EnclosingClassInfo {
|
|
43
|
+
classId: string;
|
|
44
|
+
className: string;
|
|
45
|
+
}
|
|
46
|
+
/** Walk up AST to find enclosing class/struct/interface/impl, return its ID and name.
|
|
47
|
+
* For Go method_declaration nodes, extracts receiver type (e.g. `func (u *User) Save()` → User struct). */
|
|
48
|
+
export declare const findEnclosingClassInfo: (node: SyntaxNode, filePath: string) => EnclosingClassInfo | null;
|
|
49
|
+
/** Convenience wrapper: returns just the class ID string (backward compat). */
|
|
50
|
+
export declare const findEnclosingClassId: (node: SyntaxNode, filePath: string) => string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Find a child of `childType` within a sibling node of `siblingType`.
|
|
53
|
+
* Used for Kotlin AST traversal where visibility_modifier lives inside a modifiers sibling.
|
|
54
|
+
*/
|
|
55
|
+
export declare const findSiblingChild: (parent: SyntaxNode, siblingType: string, childType: string) => SyntaxNode | null;
|
|
56
|
+
/** Generic name extraction from a function-like AST node.
|
|
57
|
+
* Tries `node.childForFieldName('name')?.text`, then scans children for
|
|
58
|
+
* `identifier` / `property_identifier` / `simple_identifier`. */
|
|
59
|
+
export declare const genericFuncName: (node: SyntaxNode) => string | null;
|
|
60
|
+
/** AST node types that represent a method definition (for `inferFunctionLabel`). */
|
|
61
|
+
export declare const METHOD_LABEL_NODE_TYPES: Set<string>;
|
|
62
|
+
/** AST node types that represent a constructor definition (for `inferFunctionLabel`). */
|
|
63
|
+
export declare const CONSTRUCTOR_LABEL_NODE_TYPES: Set<string>;
|
|
64
|
+
/** Infer node label from AST node type for function-like nodes without a provider hook. */
|
|
65
|
+
export declare const inferFunctionLabel: (nodeType: string) => NodeLabel;
|
|
66
|
+
/** Argument list node types shared between countCallArguments and call-resolution helpers. */
|
|
67
|
+
export declare const CALL_ARGUMENT_LIST_TYPES: Set<string>;
|
|
68
|
+
/** Walk an AST node depth-first, returning the first descendant with the given type. */
|
|
69
|
+
export declare function findDescendant(node: SyntaxNode, type: string): SyntaxNode | null;
|
|
70
|
+
/** Extract the text content from a string or encapsed_string AST node. */
|
|
71
|
+
export declare function extractStringContent(node: SyntaxNode | null | undefined): string | null;
|
|
72
|
+
/** Find the first direct named child of a tree-sitter node matching the given type. */
|
|
73
|
+
export declare function findChild(node: SyntaxNode, type: string): SyntaxNode | null;
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import { generateId } from '../../../lib/utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* Ordered list of definition capture keys for tree-sitter query matches.
|
|
4
|
+
* Used to extract the definition node from a capture map.
|
|
5
|
+
*/
|
|
6
|
+
export const DEFINITION_CAPTURE_KEYS = [
|
|
7
|
+
'definition.function',
|
|
8
|
+
'definition.class',
|
|
9
|
+
'definition.interface',
|
|
10
|
+
'definition.method',
|
|
11
|
+
'definition.struct',
|
|
12
|
+
'definition.enum',
|
|
13
|
+
'definition.namespace',
|
|
14
|
+
'definition.module',
|
|
15
|
+
'definition.trait',
|
|
16
|
+
'definition.impl',
|
|
17
|
+
'definition.type',
|
|
18
|
+
'definition.const',
|
|
19
|
+
'definition.static',
|
|
20
|
+
'definition.typedef',
|
|
21
|
+
'definition.macro',
|
|
22
|
+
'definition.union',
|
|
23
|
+
'definition.property',
|
|
24
|
+
'definition.record',
|
|
25
|
+
'definition.delegate',
|
|
26
|
+
'definition.annotation',
|
|
27
|
+
'definition.constructor',
|
|
28
|
+
'definition.template',
|
|
29
|
+
];
|
|
30
|
+
/** Extract the definition node from a tree-sitter query capture map. */
|
|
31
|
+
export const getDefinitionNodeFromCaptures = (captureMap) => {
|
|
32
|
+
for (const key of DEFINITION_CAPTURE_KEYS) {
|
|
33
|
+
if (captureMap[key])
|
|
34
|
+
return captureMap[key];
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Node types that represent function/method definitions across languages.
|
|
40
|
+
* Used by parent-walk in call-processor, parse-worker, and type-env to detect
|
|
41
|
+
* enclosing function scope boundaries.
|
|
42
|
+
*
|
|
43
|
+
* INVARIANT: This set MUST be a superset of every language's
|
|
44
|
+
* MethodExtractionConfig.methodNodeTypes. When adding a new node type to a
|
|
45
|
+
* MethodExtractor config, add it here too — otherwise enclosing-function
|
|
46
|
+
* resolution will silently miss that node type during parent-walks.
|
|
47
|
+
*/
|
|
48
|
+
export const FUNCTION_NODE_TYPES = new Set([
|
|
49
|
+
// TypeScript/JavaScript
|
|
50
|
+
'function_declaration',
|
|
51
|
+
'arrow_function',
|
|
52
|
+
'function_expression',
|
|
53
|
+
'method_definition',
|
|
54
|
+
'generator_function_declaration',
|
|
55
|
+
// Python
|
|
56
|
+
'function_definition',
|
|
57
|
+
// Common async variants
|
|
58
|
+
'async_function_declaration',
|
|
59
|
+
'async_arrow_function',
|
|
60
|
+
// Java
|
|
61
|
+
'method_declaration',
|
|
62
|
+
'constructor_declaration',
|
|
63
|
+
'compact_constructor_declaration',
|
|
64
|
+
'annotation_type_element_declaration',
|
|
65
|
+
// C/C++
|
|
66
|
+
// 'function_definition' already included above
|
|
67
|
+
// Go
|
|
68
|
+
// 'method_declaration' already included from Java
|
|
69
|
+
// C#
|
|
70
|
+
'local_function_statement',
|
|
71
|
+
// Rust
|
|
72
|
+
'function_item',
|
|
73
|
+
'impl_item', // Methods inside impl blocks
|
|
74
|
+
// PHP
|
|
75
|
+
'anonymous_function',
|
|
76
|
+
// Kotlin
|
|
77
|
+
'lambda_literal',
|
|
78
|
+
// Swift
|
|
79
|
+
'init_declaration',
|
|
80
|
+
'deinit_declaration',
|
|
81
|
+
// Ruby
|
|
82
|
+
'method', // def foo
|
|
83
|
+
'singleton_method', // def self.foo
|
|
84
|
+
// Dart
|
|
85
|
+
'function_signature',
|
|
86
|
+
'method_signature',
|
|
87
|
+
]);
|
|
88
|
+
/**
|
|
89
|
+
* AST node types that represent a class-like container (for HAS_METHOD edge extraction).
|
|
90
|
+
*
|
|
91
|
+
* INVARIANT: When a language config adds a new node type to `typeDeclarationNodes`,
|
|
92
|
+
* that type must also be added here AND to `CONTAINER_TYPE_TO_LABEL` below,
|
|
93
|
+
* otherwise `findEnclosingClassNode` won't recognize it and methods may get
|
|
94
|
+
* orphaned HAS_METHOD edges or incorrect labels.
|
|
95
|
+
*/
|
|
96
|
+
export const CLASS_CONTAINER_TYPES = new Set([
|
|
97
|
+
'class_declaration',
|
|
98
|
+
'abstract_class_declaration',
|
|
99
|
+
'interface_declaration',
|
|
100
|
+
'struct_declaration',
|
|
101
|
+
'record_declaration',
|
|
102
|
+
'class_specifier',
|
|
103
|
+
'struct_specifier',
|
|
104
|
+
'impl_item',
|
|
105
|
+
'trait_item',
|
|
106
|
+
'struct_item',
|
|
107
|
+
'enum_item',
|
|
108
|
+
'class_definition',
|
|
109
|
+
'trait_declaration',
|
|
110
|
+
// PHP
|
|
111
|
+
'enum_declaration',
|
|
112
|
+
'protocol_declaration',
|
|
113
|
+
// Dart
|
|
114
|
+
'mixin_declaration',
|
|
115
|
+
'extension_declaration',
|
|
116
|
+
// Ruby
|
|
117
|
+
'class',
|
|
118
|
+
'module',
|
|
119
|
+
'singleton_class', // Ruby: class << self
|
|
120
|
+
// Kotlin
|
|
121
|
+
'object_declaration',
|
|
122
|
+
'companion_object',
|
|
123
|
+
]);
|
|
124
|
+
export const CONTAINER_TYPE_TO_LABEL = {
|
|
125
|
+
class_declaration: 'Class',
|
|
126
|
+
abstract_class_declaration: 'Class',
|
|
127
|
+
interface_declaration: 'Interface',
|
|
128
|
+
struct_declaration: 'Struct',
|
|
129
|
+
struct_specifier: 'Struct',
|
|
130
|
+
class_specifier: 'Class',
|
|
131
|
+
class_definition: 'Class',
|
|
132
|
+
impl_item: 'Impl',
|
|
133
|
+
trait_item: 'Trait',
|
|
134
|
+
struct_item: 'Struct',
|
|
135
|
+
enum_item: 'Enum',
|
|
136
|
+
trait_declaration: 'Trait',
|
|
137
|
+
enum_declaration: 'Enum',
|
|
138
|
+
record_declaration: 'Record',
|
|
139
|
+
protocol_declaration: 'Interface',
|
|
140
|
+
mixin_declaration: 'Mixin',
|
|
141
|
+
extension_declaration: 'Extension',
|
|
142
|
+
class: 'Class',
|
|
143
|
+
module: 'Module',
|
|
144
|
+
singleton_class: 'Class', // Ruby: class << self inherits enclosing class name
|
|
145
|
+
object_declaration: 'Class',
|
|
146
|
+
companion_object: 'Class',
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Determine the graph node label from a tree-sitter capture map.
|
|
150
|
+
* Handles language-specific reclassification via the provider's labelOverride hook
|
|
151
|
+
* (e.g. C/C++ duplicate skipping, Kotlin Method promotion).
|
|
152
|
+
* Returns null if the capture should be skipped (import, call, C/C++ duplicate, missing name).
|
|
153
|
+
*/
|
|
154
|
+
export function getLabelFromCaptures(captureMap, provider) {
|
|
155
|
+
if (captureMap['import'] || captureMap['call'])
|
|
156
|
+
return null;
|
|
157
|
+
if (!captureMap['name'] && !captureMap['definition.constructor'])
|
|
158
|
+
return null;
|
|
159
|
+
if (captureMap['definition.function']) {
|
|
160
|
+
if (provider.labelOverride) {
|
|
161
|
+
const override = provider.labelOverride(captureMap['definition.function'], 'Function');
|
|
162
|
+
if (override !== 'Function')
|
|
163
|
+
return override;
|
|
164
|
+
}
|
|
165
|
+
return 'Function';
|
|
166
|
+
}
|
|
167
|
+
if (captureMap['definition.class'])
|
|
168
|
+
return 'Class';
|
|
169
|
+
if (captureMap['definition.interface'])
|
|
170
|
+
return 'Interface';
|
|
171
|
+
if (captureMap['definition.method'])
|
|
172
|
+
return 'Method';
|
|
173
|
+
if (captureMap['definition.struct'])
|
|
174
|
+
return 'Struct';
|
|
175
|
+
if (captureMap['definition.enum'])
|
|
176
|
+
return 'Enum';
|
|
177
|
+
if (captureMap['definition.namespace'])
|
|
178
|
+
return 'Namespace';
|
|
179
|
+
if (captureMap['definition.module'])
|
|
180
|
+
return 'Module';
|
|
181
|
+
if (captureMap['definition.trait'])
|
|
182
|
+
return 'Trait';
|
|
183
|
+
if (captureMap['definition.impl'])
|
|
184
|
+
return 'Impl';
|
|
185
|
+
if (captureMap['definition.type'])
|
|
186
|
+
return 'TypeAlias';
|
|
187
|
+
if (captureMap['definition.const'])
|
|
188
|
+
return 'Const';
|
|
189
|
+
if (captureMap['definition.static'])
|
|
190
|
+
return 'Static';
|
|
191
|
+
if (captureMap['definition.typedef'])
|
|
192
|
+
return 'Typedef';
|
|
193
|
+
if (captureMap['definition.macro'])
|
|
194
|
+
return 'Macro';
|
|
195
|
+
if (captureMap['definition.union'])
|
|
196
|
+
return 'Union';
|
|
197
|
+
if (captureMap['definition.property'])
|
|
198
|
+
return 'Property';
|
|
199
|
+
if (captureMap['definition.record'])
|
|
200
|
+
return 'Record';
|
|
201
|
+
if (captureMap['definition.delegate'])
|
|
202
|
+
return 'Delegate';
|
|
203
|
+
if (captureMap['definition.annotation'])
|
|
204
|
+
return 'Annotation';
|
|
205
|
+
if (captureMap['definition.constructor'])
|
|
206
|
+
return 'Constructor';
|
|
207
|
+
if (captureMap['definition.template'])
|
|
208
|
+
return 'Template';
|
|
209
|
+
return 'CodeElement';
|
|
210
|
+
}
|
|
211
|
+
/** Walk up AST to find enclosing class/struct/interface/impl, return its ID and name.
|
|
212
|
+
* For Go method_declaration nodes, extracts receiver type (e.g. `func (u *User) Save()` → User struct). */
|
|
213
|
+
export const findEnclosingClassInfo = (node, filePath) => {
|
|
214
|
+
let current = node.parent;
|
|
215
|
+
while (current) {
|
|
216
|
+
// Go: method_declaration has a receiver parameter with the struct type
|
|
217
|
+
if (current.type === 'method_declaration') {
|
|
218
|
+
const receiver = current.childForFieldName?.('receiver');
|
|
219
|
+
if (receiver) {
|
|
220
|
+
const paramDecl = receiver.namedChildren?.find?.((c) => c.type === 'parameter_declaration');
|
|
221
|
+
if (paramDecl) {
|
|
222
|
+
const typeNode = paramDecl.childForFieldName?.('type');
|
|
223
|
+
if (typeNode) {
|
|
224
|
+
const inner = typeNode.type === 'pointer_type' ? typeNode.firstNamedChild : typeNode;
|
|
225
|
+
if (inner && (inner.type === 'type_identifier' || inner.type === 'identifier')) {
|
|
226
|
+
return {
|
|
227
|
+
classId: generateId('Struct', `${filePath}:${inner.text}`),
|
|
228
|
+
className: inner.text,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// Go: type_declaration wrapping a struct_type (type User struct { ... })
|
|
236
|
+
if (current.type === 'type_declaration') {
|
|
237
|
+
const typeSpec = current.children?.find((c) => c.type === 'type_spec');
|
|
238
|
+
if (typeSpec) {
|
|
239
|
+
const typeBody = typeSpec.childForFieldName?.('type');
|
|
240
|
+
if (typeBody?.type === 'struct_type' || typeBody?.type === 'interface_type') {
|
|
241
|
+
const nameNode = typeSpec.childForFieldName?.('name');
|
|
242
|
+
if (nameNode) {
|
|
243
|
+
const label = typeBody.type === 'struct_type' ? 'Struct' : 'Interface';
|
|
244
|
+
return {
|
|
245
|
+
classId: generateId(label, `${filePath}:${nameNode.text}`),
|
|
246
|
+
className: nameNode.text,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (CLASS_CONTAINER_TYPES.has(current.type)) {
|
|
253
|
+
// Rust impl_item: for `impl Trait for Struct {}`, pick the type after `for`
|
|
254
|
+
// NOTE: This impl_item ownership logic is duplicated in rust.ts:extractOwnerName.
|
|
255
|
+
// If modifying this block, update the other location too.
|
|
256
|
+
if (current.type === 'impl_item') {
|
|
257
|
+
const children = current.children ?? [];
|
|
258
|
+
const forIdx = children.findIndex((c) => c.text === 'for');
|
|
259
|
+
if (forIdx !== -1) {
|
|
260
|
+
const nameNode = children
|
|
261
|
+
.slice(forIdx + 1)
|
|
262
|
+
.find((c) => c.type === 'type_identifier' ||
|
|
263
|
+
c.type === 'scoped_type_identifier' ||
|
|
264
|
+
c.type === 'identifier');
|
|
265
|
+
if (nameNode) {
|
|
266
|
+
return {
|
|
267
|
+
classId: generateId('Struct', `${filePath}:${nameNode.text}`),
|
|
268
|
+
className: nameNode.text,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
const firstType = children.find((c) => c.type === 'type_identifier');
|
|
273
|
+
if (firstType) {
|
|
274
|
+
return {
|
|
275
|
+
classId: generateId('Impl', `${filePath}:${firstType.text}`),
|
|
276
|
+
className: firstType.text,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
// Ruby singleton_class (class << self): walk up to the enclosing class/module
|
|
281
|
+
// to inherit its name. singleton_class has no name field — its receiver is
|
|
282
|
+
// `self` (node type 'self'), not 'identifier' or 'constant'.
|
|
283
|
+
if (current.type === 'singleton_class') {
|
|
284
|
+
let ancestor = current.parent;
|
|
285
|
+
while (ancestor) {
|
|
286
|
+
if (ancestor.type === 'class' || ancestor.type === 'module') {
|
|
287
|
+
const classNameNode = ancestor.childForFieldName?.('name');
|
|
288
|
+
if (classNameNode) {
|
|
289
|
+
return {
|
|
290
|
+
classId: generateId('Class', `${filePath}:${classNameNode.text}`),
|
|
291
|
+
className: classNameNode.text,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
ancestor = ancestor.parent;
|
|
296
|
+
}
|
|
297
|
+
// No enclosing class/module — skip singleton_class and keep walking up
|
|
298
|
+
}
|
|
299
|
+
const nameNode = current.childForFieldName?.('name') ??
|
|
300
|
+
current.children?.find((c) => c.type === 'type_identifier' ||
|
|
301
|
+
c.type === 'identifier' ||
|
|
302
|
+
c.type === 'name' ||
|
|
303
|
+
c.type === 'constant');
|
|
304
|
+
if (nameNode) {
|
|
305
|
+
let label = CONTAINER_TYPE_TO_LABEL[current.type] || 'Class';
|
|
306
|
+
// Kotlin: class_declaration with an anonymous "interface" keyword child
|
|
307
|
+
// is actually an interface, not a class. Refine the label to match the
|
|
308
|
+
// node ID generated from the tree-sitter query capture (@definition.interface).
|
|
309
|
+
if (current.type === 'class_declaration' &&
|
|
310
|
+
label === 'Class' &&
|
|
311
|
+
current.children?.some((c) => c.type === 'interface')) {
|
|
312
|
+
label = 'Interface';
|
|
313
|
+
}
|
|
314
|
+
return {
|
|
315
|
+
classId: generateId(label, `${filePath}:${nameNode.text}`),
|
|
316
|
+
className: nameNode.text,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
current = current.parent;
|
|
321
|
+
}
|
|
322
|
+
return null;
|
|
323
|
+
};
|
|
324
|
+
/** Convenience wrapper: returns just the class ID string (backward compat). */
|
|
325
|
+
export const findEnclosingClassId = (node, filePath) => {
|
|
326
|
+
return findEnclosingClassInfo(node, filePath)?.classId ?? null;
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Find a child of `childType` within a sibling node of `siblingType`.
|
|
330
|
+
* Used for Kotlin AST traversal where visibility_modifier lives inside a modifiers sibling.
|
|
331
|
+
*/
|
|
332
|
+
export const findSiblingChild = (parent, siblingType, childType) => {
|
|
333
|
+
for (let i = 0; i < parent.childCount; i++) {
|
|
334
|
+
const sibling = parent.child(i);
|
|
335
|
+
if (sibling?.type === siblingType) {
|
|
336
|
+
for (let j = 0; j < sibling.childCount; j++) {
|
|
337
|
+
const child = sibling.child(j);
|
|
338
|
+
if (child?.type === childType)
|
|
339
|
+
return child;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
return null;
|
|
344
|
+
};
|
|
345
|
+
/** Generic name extraction from a function-like AST node.
|
|
346
|
+
* Tries `node.childForFieldName('name')?.text`, then scans children for
|
|
347
|
+
* `identifier` / `property_identifier` / `simple_identifier`. */
|
|
348
|
+
export const genericFuncName = (node) => {
|
|
349
|
+
const nameField = node.childForFieldName?.('name');
|
|
350
|
+
if (nameField)
|
|
351
|
+
return nameField.text;
|
|
352
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
353
|
+
const c = node.child(i);
|
|
354
|
+
if (c?.type === 'identifier' ||
|
|
355
|
+
c?.type === 'property_identifier' ||
|
|
356
|
+
c?.type === 'simple_identifier')
|
|
357
|
+
return c.text;
|
|
358
|
+
}
|
|
359
|
+
return null;
|
|
360
|
+
};
|
|
361
|
+
/** AST node types that represent a method definition (for `inferFunctionLabel`). */
|
|
362
|
+
export const METHOD_LABEL_NODE_TYPES = new Set([
|
|
363
|
+
'method_definition',
|
|
364
|
+
'method_declaration',
|
|
365
|
+
'method',
|
|
366
|
+
'singleton_method',
|
|
367
|
+
]);
|
|
368
|
+
/** AST node types that represent a constructor definition (for `inferFunctionLabel`). */
|
|
369
|
+
export const CONSTRUCTOR_LABEL_NODE_TYPES = new Set([
|
|
370
|
+
'constructor_declaration',
|
|
371
|
+
'compact_constructor_declaration',
|
|
372
|
+
]);
|
|
373
|
+
/** Infer node label from AST node type for function-like nodes without a provider hook. */
|
|
374
|
+
export const inferFunctionLabel = (nodeType) => METHOD_LABEL_NODE_TYPES.has(nodeType)
|
|
375
|
+
? 'Method'
|
|
376
|
+
: CONSTRUCTOR_LABEL_NODE_TYPES.has(nodeType)
|
|
377
|
+
? 'Constructor'
|
|
378
|
+
: 'Function';
|
|
379
|
+
/** Argument list node types shared between countCallArguments and call-resolution helpers. */
|
|
380
|
+
export const CALL_ARGUMENT_LIST_TYPES = new Set(['arguments', 'argument_list', 'value_arguments']);
|
|
381
|
+
// ============================================================================
|
|
382
|
+
// Generic AST traversal helpers (shared by parse-worker + php-helpers)
|
|
383
|
+
// ============================================================================
|
|
384
|
+
/** Walk an AST node depth-first, returning the first descendant with the given type. */
|
|
385
|
+
export function findDescendant(node, type) {
|
|
386
|
+
if (node.type === type)
|
|
387
|
+
return node;
|
|
388
|
+
for (const child of node.children ?? []) {
|
|
389
|
+
const found = findDescendant(child, type);
|
|
390
|
+
if (found)
|
|
391
|
+
return found;
|
|
392
|
+
}
|
|
393
|
+
return null;
|
|
394
|
+
}
|
|
395
|
+
/** Extract the text content from a string or encapsed_string AST node. */
|
|
396
|
+
export function extractStringContent(node) {
|
|
397
|
+
if (!node)
|
|
398
|
+
return null;
|
|
399
|
+
const content = node.children?.find((c) => c.type === 'string_content');
|
|
400
|
+
if (content)
|
|
401
|
+
return content.text;
|
|
402
|
+
if (node.type === 'string_content')
|
|
403
|
+
return node.text;
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
/** Find the first direct named child of a tree-sitter node matching the given type. */
|
|
407
|
+
export function findChild(node, type) {
|
|
408
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
409
|
+
const child = node.namedChild(i);
|
|
410
|
+
if (child?.type === type)
|
|
411
|
+
return child;
|
|
412
|
+
}
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
//# sourceMappingURL=ast-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-helpers.js","sourceRoot":"","sources":["../../../../src/core/parser/utils/ast-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { SyntaxNode } from './ast-helpers.js';
|
|
2
|
+
/** Node types representing call expressions across supported languages. */
|
|
3
|
+
export declare const CALL_EXPRESSION_TYPES: Set<string>;
|
|
4
|
+
/**
|
|
5
|
+
* Hard limit on chain depth to prevent runaway recursion.
|
|
6
|
+
* For `a.b().c().d()`, the chain has depth 2 (b and c before d).
|
|
7
|
+
*/
|
|
8
|
+
export declare const MAX_CHAIN_DEPTH = 3;
|
|
9
|
+
/**
|
|
10
|
+
* Count direct arguments for a call expression across common tree-sitter grammars.
|
|
11
|
+
* Returns undefined when the argument container cannot be located cheaply.
|
|
12
|
+
*/
|
|
13
|
+
export declare const countCallArguments: (callNode: SyntaxNode | null | undefined) => number | undefined;
|
|
14
|
+
type CallForm = 'free' | 'member' | 'constructor';
|
|
15
|
+
/**
|
|
16
|
+
* Infer whether a captured call site is a free call, member call, or constructor.
|
|
17
|
+
* Returns undefined if the form cannot be determined.
|
|
18
|
+
*
|
|
19
|
+
* Works by inspecting the AST structure between callNode (@call) and nameNode (@call.name).
|
|
20
|
+
* No tree-sitter query changes needed — the distinction is in the node types.
|
|
21
|
+
*/
|
|
22
|
+
export declare const inferCallForm: (callNode: SyntaxNode, nameNode: SyntaxNode) => CallForm | undefined;
|
|
23
|
+
export declare const extractReceiverName: (nameNode: SyntaxNode) => string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Extract the raw receiver AST node for a member call.
|
|
26
|
+
* Unlike extractReceiverName, this returns the receiver node regardless of its type —
|
|
27
|
+
* including call_expression / method_invocation nodes that appear in chained calls
|
|
28
|
+
* like `svc.getUser().save()`.
|
|
29
|
+
*
|
|
30
|
+
* Returns undefined when the call is not a member call or when no receiver node
|
|
31
|
+
* can be found (e.g. top-level free calls).
|
|
32
|
+
*/
|
|
33
|
+
export declare const extractReceiverNode: (nameNode: SyntaxNode) => SyntaxNode | undefined;
|
|
34
|
+
/** One step in a mixed receiver chain. */
|
|
35
|
+
export type MixedChainStep = {
|
|
36
|
+
kind: 'field' | 'call';
|
|
37
|
+
name: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Walk a receiver AST node that is itself a call expression, accumulating the
|
|
41
|
+
* chain of intermediate method names up to MAX_CHAIN_DEPTH.
|
|
42
|
+
*
|
|
43
|
+
* For `svc.getUser().save()`, called with the receiver of `save` (getUser() call):
|
|
44
|
+
* returns { chain: ['getUser'], baseReceiverName: 'svc' }
|
|
45
|
+
*
|
|
46
|
+
* For `a.b().c().d()`, called with the receiver of `d` (c() call):
|
|
47
|
+
* returns { chain: ['b', 'c'], baseReceiverName: 'a' }
|
|
48
|
+
*/
|
|
49
|
+
export declare function extractCallChain(receiverCallNode: SyntaxNode): {
|
|
50
|
+
chain: string[];
|
|
51
|
+
baseReceiverName: string | undefined;
|
|
52
|
+
} | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Walk a receiver AST node that may interleave field accesses and method calls,
|
|
55
|
+
* building a unified chain of steps up to MAX_CHAIN_DEPTH.
|
|
56
|
+
*
|
|
57
|
+
* For `svc.getUser().address.save()`, called with the receiver of `save`
|
|
58
|
+
* (`svc.getUser().address`, a field access node):
|
|
59
|
+
* returns { chain: [{ kind:'call', name:'getUser' }, { kind:'field', name:'address' }],
|
|
60
|
+
* baseReceiverName: 'svc' }
|
|
61
|
+
*
|
|
62
|
+
* For `user.getAddress().city.getName()`, called with receiver of `getName`
|
|
63
|
+
* (`user.getAddress().city`):
|
|
64
|
+
* returns { chain: [{ kind:'call', name:'getAddress' }, { kind:'field', name:'city' }],
|
|
65
|
+
* baseReceiverName: 'user' }
|
|
66
|
+
*
|
|
67
|
+
* Pure field chains and pure call chains are special cases (all steps same kind).
|
|
68
|
+
*/
|
|
69
|
+
export declare function extractMixedChain(receiverNode: SyntaxNode): {
|
|
70
|
+
chain: MixedChainStep[];
|
|
71
|
+
baseReceiverName: string | undefined;
|
|
72
|
+
} | undefined;
|
|
73
|
+
/** Arg types per call position (literals + optional TypeEnv for ids); undefined if unusable */
|
|
74
|
+
export declare const extractCallArgTypes: (callNode: SyntaxNode, inferLiteralType: (node: SyntaxNode) => string | undefined, typeEnvLookup?: (varName: string, callNode: SyntaxNode) => string | undefined) => (string | undefined)[] | undefined;
|
|
75
|
+
export {};
|