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,52 @@
|
|
|
1
|
+
import type { ImportConfigs } from './import-resolvers/types.js';
|
|
2
|
+
/** TypeScript path alias config parsed from tsconfig.json */
|
|
3
|
+
export interface TsconfigPaths {
|
|
4
|
+
/** Map of alias prefix -> target prefix (e.g., "@/" -> "src/") */
|
|
5
|
+
aliases: Map<string, string>;
|
|
6
|
+
/** Base URL for path resolution (relative to repo root) */
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
}
|
|
9
|
+
/** Go module config parsed from go.mod */
|
|
10
|
+
export interface GoModuleConfig {
|
|
11
|
+
/** Module path (e.g., "github.com/user/repo") */
|
|
12
|
+
modulePath: string;
|
|
13
|
+
}
|
|
14
|
+
/** PHP Composer PSR-4 autoload config */
|
|
15
|
+
export interface ComposerConfig {
|
|
16
|
+
/** Map of namespace prefix -> directory (e.g., "App\\" -> "app/") */
|
|
17
|
+
psr4: Map<string, string>;
|
|
18
|
+
/** PSR-4 entries sorted by namespace length descending (longest match wins).
|
|
19
|
+
* Cached once at config load time to avoid re-sorting on every import. */
|
|
20
|
+
psr4Sorted?: readonly [string, string][];
|
|
21
|
+
}
|
|
22
|
+
/** C# project config parsed from .csproj files */
|
|
23
|
+
export interface CSharpProjectConfig {
|
|
24
|
+
/** Root namespace from <RootNamespace> or assembly name (default: project directory name) */
|
|
25
|
+
rootNamespace: string;
|
|
26
|
+
/** Directory containing the .csproj file */
|
|
27
|
+
projectDir: string;
|
|
28
|
+
}
|
|
29
|
+
/** Swift Package Manager module config */
|
|
30
|
+
export interface SwiftPackageConfig {
|
|
31
|
+
/** Map of target name -> source directory path (e.g., "SiuperModel" -> "Package/Sources/SiuperModel") */
|
|
32
|
+
targets: Map<string, string>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse tsconfig.json to extract path aliases.
|
|
36
|
+
* Tries tsconfig.json, tsconfig.app.json, tsconfig.base.json in order.
|
|
37
|
+
*/
|
|
38
|
+
export declare function loadTsconfigPaths(repoRoot: string): Promise<TsconfigPaths | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Parse go.mod to extract module path.
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadGoModulePath(repoRoot: string): Promise<GoModuleConfig | null>;
|
|
43
|
+
/** Parse composer.json to extract PSR-4 autoload mappings (including autoload-dev). */
|
|
44
|
+
export declare function loadComposerConfig(repoRoot: string): Promise<ComposerConfig | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Parse .csproj files to extract RootNamespace.
|
|
47
|
+
* Scans the repo root for .csproj files and returns configs for each.
|
|
48
|
+
*/
|
|
49
|
+
export declare function loadCSharpProjectConfig(repoRoot: string): Promise<CSharpProjectConfig[]>;
|
|
50
|
+
export declare function loadSwiftPackageConfig(repoRoot: string): Promise<SwiftPackageConfig | null>;
|
|
51
|
+
/** Load all language-specific configs once for an ingestion run. */
|
|
52
|
+
export declare function loadImportConfigs(repoRoot: string): Promise<ImportConfigs>;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
const isDev = process.env.NODE_ENV === 'development';
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// LANGUAGE-SPECIFIC CONFIG LOADERS
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/**
|
|
8
|
+
* Parse tsconfig.json to extract path aliases.
|
|
9
|
+
* Tries tsconfig.json, tsconfig.app.json, tsconfig.base.json in order.
|
|
10
|
+
*/
|
|
11
|
+
export async function loadTsconfigPaths(repoRoot) {
|
|
12
|
+
const candidates = ['tsconfig.json', 'tsconfig.app.json', 'tsconfig.base.json'];
|
|
13
|
+
for (const filename of candidates) {
|
|
14
|
+
try {
|
|
15
|
+
const tsconfigPath = path.join(repoRoot, filename);
|
|
16
|
+
const raw = await fs.readFile(tsconfigPath, 'utf-8');
|
|
17
|
+
// Strip JSON comments (// and /* */ style) for robustness
|
|
18
|
+
const stripped = raw.replace(/\/\/.*$/gm, '').replace(/\/\*[\s\S]*?\*\//g, '');
|
|
19
|
+
const tsconfig = JSON.parse(stripped);
|
|
20
|
+
const compilerOptions = tsconfig.compilerOptions;
|
|
21
|
+
if (!compilerOptions?.paths)
|
|
22
|
+
continue;
|
|
23
|
+
const baseUrl = compilerOptions.baseUrl || '.';
|
|
24
|
+
const aliases = new Map();
|
|
25
|
+
for (const [pattern, targets] of Object.entries(compilerOptions.paths)) {
|
|
26
|
+
if (!Array.isArray(targets) || targets.length === 0)
|
|
27
|
+
continue;
|
|
28
|
+
const target = targets[0];
|
|
29
|
+
// Convert glob patterns: "@/*" -> "@/", "src/*" -> "src/"
|
|
30
|
+
const aliasPrefix = pattern.endsWith('/*') ? pattern.slice(0, -1) : pattern;
|
|
31
|
+
const targetPrefix = target.endsWith('/*') ? target.slice(0, -1) : target;
|
|
32
|
+
aliases.set(aliasPrefix, targetPrefix);
|
|
33
|
+
}
|
|
34
|
+
if (aliases.size > 0) {
|
|
35
|
+
if (isDev) {
|
|
36
|
+
console.log(`📦 Loaded ${aliases.size} path aliases from ${filename}`);
|
|
37
|
+
}
|
|
38
|
+
return { aliases, baseUrl };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// File doesn't exist or isn't valid JSON - try next
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parse go.mod to extract module path.
|
|
49
|
+
*/
|
|
50
|
+
export async function loadGoModulePath(repoRoot) {
|
|
51
|
+
try {
|
|
52
|
+
const goModPath = path.join(repoRoot, 'go.mod');
|
|
53
|
+
const content = await fs.readFile(goModPath, 'utf-8');
|
|
54
|
+
const match = content.match(/^module\s+(\S+)/m);
|
|
55
|
+
if (match) {
|
|
56
|
+
if (isDev) {
|
|
57
|
+
console.log(`📦 Loaded Go module path: ${match[1]}`);
|
|
58
|
+
}
|
|
59
|
+
return { modulePath: match[1] };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// No go.mod
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
/** Parse composer.json to extract PSR-4 autoload mappings (including autoload-dev). */
|
|
68
|
+
export async function loadComposerConfig(repoRoot) {
|
|
69
|
+
try {
|
|
70
|
+
const composerPath = path.join(repoRoot, 'composer.json');
|
|
71
|
+
const raw = await fs.readFile(composerPath, 'utf-8');
|
|
72
|
+
const composer = JSON.parse(raw);
|
|
73
|
+
const psr4Raw = composer.autoload?.['psr-4'] ?? {};
|
|
74
|
+
const psr4Dev = composer['autoload-dev']?.['psr-4'] ?? {};
|
|
75
|
+
const merged = { ...psr4Raw, ...psr4Dev };
|
|
76
|
+
const psr4 = new Map();
|
|
77
|
+
for (const [ns, dir] of Object.entries(merged)) {
|
|
78
|
+
const nsNorm = ns.replace(/\\+$/, '');
|
|
79
|
+
const dirNorm = dir.replace(/\\/g, '/').replace(/\/+$/, '');
|
|
80
|
+
psr4.set(nsNorm, dirNorm);
|
|
81
|
+
}
|
|
82
|
+
if (isDev) {
|
|
83
|
+
console.log(`📦 Loaded ${psr4.size} PSR-4 mappings from composer.json`);
|
|
84
|
+
}
|
|
85
|
+
return { psr4 };
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse .csproj files to extract RootNamespace.
|
|
93
|
+
* Scans the repo root for .csproj files and returns configs for each.
|
|
94
|
+
*/
|
|
95
|
+
export async function loadCSharpProjectConfig(repoRoot) {
|
|
96
|
+
const configs = [];
|
|
97
|
+
// BFS scan for .csproj files up to 5 levels deep, cap at 100 dirs to avoid runaway scanning
|
|
98
|
+
const scanQueue = [{ dir: repoRoot, depth: 0 }];
|
|
99
|
+
const maxDepth = 5;
|
|
100
|
+
const maxDirs = 100;
|
|
101
|
+
let dirsScanned = 0;
|
|
102
|
+
while (scanQueue.length > 0 && dirsScanned < maxDirs) {
|
|
103
|
+
const { dir, depth } = scanQueue.shift();
|
|
104
|
+
dirsScanned++;
|
|
105
|
+
try {
|
|
106
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
107
|
+
for (const entry of entries) {
|
|
108
|
+
if (entry.isDirectory() && depth < maxDepth) {
|
|
109
|
+
// Skip common non-project directories
|
|
110
|
+
if (entry.name === 'node_modules' ||
|
|
111
|
+
entry.name === '.git' ||
|
|
112
|
+
entry.name === 'bin' ||
|
|
113
|
+
entry.name === 'obj')
|
|
114
|
+
continue;
|
|
115
|
+
scanQueue.push({ dir: path.join(dir, entry.name), depth: depth + 1 });
|
|
116
|
+
}
|
|
117
|
+
if (entry.isFile() && entry.name.endsWith('.csproj')) {
|
|
118
|
+
try {
|
|
119
|
+
const csprojPath = path.join(dir, entry.name);
|
|
120
|
+
const content = await fs.readFile(csprojPath, 'utf-8');
|
|
121
|
+
const nsMatch = content.match(/<RootNamespace>\s*([^<]+)\s*<\/RootNamespace>/);
|
|
122
|
+
const rootNamespace = nsMatch ? nsMatch[1].trim() : entry.name.replace(/\.csproj$/, '');
|
|
123
|
+
const projectDir = path.relative(repoRoot, dir).replace(/\\/g, '/');
|
|
124
|
+
configs.push({ rootNamespace, projectDir });
|
|
125
|
+
if (isDev) {
|
|
126
|
+
console.log(`📦 Loaded C# project: ${entry.name} (namespace: ${rootNamespace}, dir: ${projectDir})`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// Can't read .csproj
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Can't read directory
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return configs;
|
|
140
|
+
}
|
|
141
|
+
export async function loadSwiftPackageConfig(repoRoot) {
|
|
142
|
+
// Swift imports are module-name based (e.g., `import SiuperModel`)
|
|
143
|
+
// SPM convention: Sources/<TargetName>/ or Package/Sources/<TargetName>/
|
|
144
|
+
// We scan for these directories to build a target map
|
|
145
|
+
const targets = new Map();
|
|
146
|
+
const sourceDirs = ['Sources', 'Package/Sources', 'src'];
|
|
147
|
+
for (const sourceDir of sourceDirs) {
|
|
148
|
+
try {
|
|
149
|
+
const fullPath = path.join(repoRoot, sourceDir);
|
|
150
|
+
const entries = await fs.readdir(fullPath, { withFileTypes: true });
|
|
151
|
+
for (const entry of entries) {
|
|
152
|
+
if (entry.isDirectory()) {
|
|
153
|
+
targets.set(entry.name, sourceDir + '/' + entry.name);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Directory doesn't exist
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (targets.size > 0) {
|
|
162
|
+
if (isDev) {
|
|
163
|
+
console.log(`📦 Loaded ${targets.size} Swift package targets`);
|
|
164
|
+
}
|
|
165
|
+
return { targets };
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
// ============================================================================
|
|
170
|
+
// BUNDLED CONFIG LOADER
|
|
171
|
+
// ============================================================================
|
|
172
|
+
/** Load all language-specific configs once for an ingestion run. */
|
|
173
|
+
export async function loadImportConfigs(repoRoot) {
|
|
174
|
+
return {
|
|
175
|
+
tsconfigPaths: await loadTsconfigPaths(repoRoot),
|
|
176
|
+
goModule: await loadGoModulePath(repoRoot),
|
|
177
|
+
composerConfig: await loadComposerConfig(repoRoot),
|
|
178
|
+
swiftPackageConfig: await loadSwiftPackageConfig(repoRoot),
|
|
179
|
+
csharpConfigs: await loadCSharpProjectConfig(repoRoot),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=language-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-config.js","sourceRoot":"","sources":["../../../src/core/parser/language-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Provider interface — the complete capability contract for a supported language.
|
|
3
|
+
*
|
|
4
|
+
* Each language implements this interface in a single file under `languages/`.
|
|
5
|
+
* The pipeline accesses all per-language behavior through this interface.
|
|
6
|
+
*
|
|
7
|
+
* Design pattern: Strategy pattern with compile-time exhaustiveness.
|
|
8
|
+
* The providers table in `languages/index.ts` uses `satisfies Record<SupportedLanguages, LanguageProvider>`
|
|
9
|
+
* so adding a language to the enum without creating a provider is a compiler error.
|
|
10
|
+
*/
|
|
11
|
+
import type { SupportedLanguages } from '../shared/index.js';
|
|
12
|
+
import type { LanguageTypeConfig } from './type-extractors/types.js';
|
|
13
|
+
import type { CallRouter } from './call-routing.js';
|
|
14
|
+
import type { ExportChecker } from './export-detection.js';
|
|
15
|
+
import type { FieldExtractor } from './field-extractor.js';
|
|
16
|
+
import type { MethodExtractor } from './method-types.js';
|
|
17
|
+
import type { ImportResolverFn } from './import-resolvers/types.js';
|
|
18
|
+
import type { NamedBindingExtractorFn } from './named-bindings/types.js';
|
|
19
|
+
import type { SyntaxNode } from './utils/ast-helpers.js';
|
|
20
|
+
import type { NodeLabel } from '../shared/index.js';
|
|
21
|
+
/** Tree-sitter query captures: capture name → AST node (or undefined if not captured). */
|
|
22
|
+
export type CaptureMap = Record<string, SyntaxNode | undefined>;
|
|
23
|
+
/** MRO strategy for multiple inheritance resolution. */
|
|
24
|
+
export type MroStrategy = 'first-wins' | 'c3' | 'leftmost-base' | 'implements-split' | 'qualified-syntax';
|
|
25
|
+
/** How a language handles imports — determines wildcard synthesis behavior. */
|
|
26
|
+
export type ImportSemantics = 'named' | 'wildcard' | 'namespace';
|
|
27
|
+
/**
|
|
28
|
+
* Everything a language needs to provide.
|
|
29
|
+
* Required fields must be explicitly set; optional fields have defaults
|
|
30
|
+
* applied by defineLanguage().
|
|
31
|
+
*/
|
|
32
|
+
interface LanguageProviderConfig {
|
|
33
|
+
readonly id: SupportedLanguages;
|
|
34
|
+
/** File extensions that map to this language (e.g., ['.ts', '.tsx']) */
|
|
35
|
+
readonly extensions: readonly string[];
|
|
36
|
+
/** Parse strategy: 'tree-sitter' (default) uses AST parsing via tree-sitter.
|
|
37
|
+
* 'standalone' means the language has its own regex-based processor and
|
|
38
|
+
* should be skipped by the tree-sitter pipeline (e.g., COBOL, Markdown). */
|
|
39
|
+
readonly parseStrategy?: 'tree-sitter' | 'standalone';
|
|
40
|
+
/** Tree-sitter query strings for definitions, imports, calls, heritage.
|
|
41
|
+
* Required for tree-sitter languages; empty string for standalone processors. */
|
|
42
|
+
readonly treeSitterQueries: string;
|
|
43
|
+
/** Type extraction: declarations, initializers, for-loop bindings */
|
|
44
|
+
readonly typeConfig: LanguageTypeConfig;
|
|
45
|
+
/** Export detection: is this AST node a public/exported symbol? */
|
|
46
|
+
readonly exportChecker: ExportChecker;
|
|
47
|
+
/** Import resolution: resolves raw import path to file system path */
|
|
48
|
+
readonly importResolver: ImportResolverFn;
|
|
49
|
+
/** Call routing for languages that express imports/heritage as calls (e.g., Ruby).
|
|
50
|
+
* Default: no routing (all calls are normal call expressions). */
|
|
51
|
+
readonly callRouter?: CallRouter;
|
|
52
|
+
/** Named binding extraction from import statements.
|
|
53
|
+
* Default: undefined (language uses wildcard/whole-module imports). */
|
|
54
|
+
readonly namedBindingExtractor?: NamedBindingExtractorFn;
|
|
55
|
+
/** How this language handles imports.
|
|
56
|
+
* - 'named': per-symbol imports (JS/TS, Java, C#, Rust, PHP, Kotlin)
|
|
57
|
+
* - 'wildcard': whole-module imports, needs synthesis (Go, Ruby, C/C++, Swift)
|
|
58
|
+
* - 'namespace': namespace imports, needs moduleAliasMap (Python)
|
|
59
|
+
* Default: 'named'. */
|
|
60
|
+
readonly importSemantics?: ImportSemantics;
|
|
61
|
+
/** Language-specific transformation of raw import path text before resolution.
|
|
62
|
+
* Called after sanitization. E.g., Kotlin appends wildcard suffixes.
|
|
63
|
+
* Default: undefined (no preprocessing). */
|
|
64
|
+
readonly importPathPreprocessor?: (cleaned: string, importNode: SyntaxNode) => string;
|
|
65
|
+
/** Wire implicit inter-file imports for languages where all files in a module
|
|
66
|
+
* see each other (e.g., Swift targets, C header inclusion units).
|
|
67
|
+
* Called with only THIS language's files (pre-grouped by the processor).
|
|
68
|
+
* Default: undefined (no implicit imports). */
|
|
69
|
+
readonly implicitImportWirer?: (languageFiles: string[], importMap: ReadonlyMap<string, ReadonlySet<string>>, addImportEdge: (src: string, target: string) => void, projectConfig: unknown) => void;
|
|
70
|
+
/** Resolve the enclosing function name + label from an AST ancestor node
|
|
71
|
+
* that is NOT a standard FUNCTION_NODE_TYPE. For languages where the
|
|
72
|
+
* function body is a sibling of the signature (e.g. Dart: function_body ↔
|
|
73
|
+
* function_signature are siblings under program/class_body), the default
|
|
74
|
+
* parent walk cannot find the enclosing function. This hook lets the
|
|
75
|
+
* language provider inspect each ancestor and return the resolved result.
|
|
76
|
+
* Return null to continue the default walk.
|
|
77
|
+
* Default: undefined (standard parent walk only). */
|
|
78
|
+
readonly enclosingFunctionFinder?: (ancestorNode: SyntaxNode) => {
|
|
79
|
+
funcName: string;
|
|
80
|
+
label: NodeLabel;
|
|
81
|
+
} | null;
|
|
82
|
+
/** Override the default node label for definition.function captures.
|
|
83
|
+
* Return null to skip (C/C++ duplicate), a different label to reclassify
|
|
84
|
+
* (e.g., 'Method' for Kotlin), or defaultLabel to keep as-is.
|
|
85
|
+
* Default: undefined (standard label assignment). */
|
|
86
|
+
readonly labelOverride?: (functionNode: SyntaxNode, defaultLabel: NodeLabel) => NodeLabel | null;
|
|
87
|
+
/** Default edge type when parent symbol is ambiguous (interface vs class).
|
|
88
|
+
* Default: 'EXTENDS'. */
|
|
89
|
+
readonly heritageDefaultEdge?: 'EXTENDS' | 'IMPLEMENTS';
|
|
90
|
+
/** Regex to detect interface names by convention (e.g., /^I[A-Z]/ for C#/Java).
|
|
91
|
+
* When matched, IMPLEMENTS edge is used instead of heritageDefaultEdge. */
|
|
92
|
+
readonly interfaceNamePattern?: RegExp;
|
|
93
|
+
/** MRO strategy for multiple inheritance resolution.
|
|
94
|
+
* Default: 'first-wins'. */
|
|
95
|
+
readonly mroStrategy?: MroStrategy;
|
|
96
|
+
/** Field extractor for extracting field/property definitions from class/struct
|
|
97
|
+
* declarations. Produces FieldInfo[] with name, type, visibility, static,
|
|
98
|
+
* readonly metadata. Default: undefined (no field extraction). */
|
|
99
|
+
readonly fieldExtractor?: FieldExtractor;
|
|
100
|
+
/** Method extractor for extracting method/function definitions from class/struct/interface
|
|
101
|
+
* declarations. Produces MethodInfo[] with name, parameters, visibility, isAbstract,
|
|
102
|
+
* isFinal, annotations metadata. Default: undefined (no method extraction). */
|
|
103
|
+
readonly methodExtractor?: MethodExtractor;
|
|
104
|
+
/** Extract a semantic description for a definition node (e.g., PHP Eloquent
|
|
105
|
+
* property arrays, relation method descriptions).
|
|
106
|
+
* Default: undefined (no description extraction). */
|
|
107
|
+
readonly descriptionExtractor?: (nodeLabel: NodeLabel, nodeName: string, captureMap: CaptureMap) => string | undefined;
|
|
108
|
+
/** Detect if a file contains framework route definitions (e.g., Laravel routes.php).
|
|
109
|
+
* When true, the worker extracts routes via the language's route extraction logic.
|
|
110
|
+
* Default: undefined (no route files). */
|
|
111
|
+
readonly isRouteFile?: (filePath: string) => boolean;
|
|
112
|
+
/** Built-in/stdlib names that should be filtered from the call graph for this language.
|
|
113
|
+
* Default: undefined (no language-specific filtering). */
|
|
114
|
+
readonly builtInNames?: ReadonlySet<string>;
|
|
115
|
+
}
|
|
116
|
+
/** Runtime type — same as LanguageProviderConfig but with defaults guaranteed present. */
|
|
117
|
+
export interface LanguageProvider extends Omit<LanguageProviderConfig, 'importSemantics' | 'heritageDefaultEdge' | 'mroStrategy'> {
|
|
118
|
+
readonly importSemantics: ImportSemantics;
|
|
119
|
+
readonly heritageDefaultEdge: 'EXTENDS' | 'IMPLEMENTS';
|
|
120
|
+
readonly mroStrategy: MroStrategy;
|
|
121
|
+
/** Check if a name is a built-in/stdlib function that should be filtered from the call graph. */
|
|
122
|
+
readonly isBuiltInName: (name: string) => boolean;
|
|
123
|
+
}
|
|
124
|
+
/** Define a language provider — required fields must be supplied, optional fields get sensible defaults. */
|
|
125
|
+
export declare function defineLanguage(config: LanguageProviderConfig): LanguageProvider;
|
|
126
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Provider interface — the complete capability contract for a supported language.
|
|
3
|
+
*
|
|
4
|
+
* Each language implements this interface in a single file under `languages/`.
|
|
5
|
+
* The pipeline accesses all per-language behavior through this interface.
|
|
6
|
+
*
|
|
7
|
+
* Design pattern: Strategy pattern with compile-time exhaustiveness.
|
|
8
|
+
* The providers table in `languages/index.ts` uses `satisfies Record<SupportedLanguages, LanguageProvider>`
|
|
9
|
+
* so adding a language to the enum without creating a provider is a compiler error.
|
|
10
|
+
*/
|
|
11
|
+
const DEFAULTS = {
|
|
12
|
+
importSemantics: 'named',
|
|
13
|
+
heritageDefaultEdge: 'EXTENDS',
|
|
14
|
+
mroStrategy: 'first-wins',
|
|
15
|
+
};
|
|
16
|
+
/** Define a language provider — required fields must be supplied, optional fields get sensible defaults. */
|
|
17
|
+
export function defineLanguage(config) {
|
|
18
|
+
const builtIns = config.builtInNames;
|
|
19
|
+
return {
|
|
20
|
+
...DEFAULTS,
|
|
21
|
+
...config,
|
|
22
|
+
isBuiltInName: builtIns ? (name) => builtIns.has(name) : () => false,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=language-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-provider.js","sourceRoot":"","sources":["../../../src/core/parser/language-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2JH,MAAM,QAAQ,GACZ;IACE,eAAe,EAAE,OAAO;IACxB,mBAAmB,EAAE,SAAS;IAC9B,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEJ,4GAA4G;AAC5G,MAAM,UAAU,cAAc,CAAC,MAA8B;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,MAAM;QACT,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;KAC7E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C and C++ language providers.
|
|
3
|
+
*
|
|
4
|
+
* Both languages use wildcard import semantics (headers expose all symbols
|
|
5
|
+
* via #include). Neither language has named binding extraction.
|
|
6
|
+
*
|
|
7
|
+
* C uses 'first-wins' MRO (no inheritance). C++ uses 'leftmost-base' MRO
|
|
8
|
+
* for its left-to-right multiple inheritance resolution order.
|
|
9
|
+
*/
|
|
10
|
+
import type { LanguageProvider } from '../language-provider.js';
|
|
11
|
+
export declare const cProvider: LanguageProvider;
|
|
12
|
+
export declare const cppProvider: LanguageProvider;
|