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,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Python.
|
|
3
|
+
*
|
|
4
|
+
* Python class-level fields appear as expression_statement nodes wrapping
|
|
5
|
+
* either annotated assignments (`name: str = ""`) or plain assignments
|
|
6
|
+
* (`x = 5`). Instance variables set on `self` in `__init__` are not
|
|
7
|
+
* captured here -- only body-level declarations are in scope.
|
|
8
|
+
*
|
|
9
|
+
* Visibility uses Python convention:
|
|
10
|
+
* - `__name` (dunder without trailing __) -> private
|
|
11
|
+
* - `_name` -> protected
|
|
12
|
+
* - anything else -> public
|
|
13
|
+
*/
|
|
14
|
+
import { SupportedLanguages } from '../../../shared/index.js';
|
|
15
|
+
import { extractSimpleTypeName } from '../../type-extractors/shared.js';
|
|
16
|
+
export const pythonConfig = {
|
|
17
|
+
language: SupportedLanguages.Python,
|
|
18
|
+
typeDeclarationNodes: ['class_definition'],
|
|
19
|
+
fieldNodeTypes: ['expression_statement'],
|
|
20
|
+
bodyNodeTypes: ['block'],
|
|
21
|
+
defaultVisibility: 'public',
|
|
22
|
+
extractName(stmt) {
|
|
23
|
+
const inner = stmt.firstNamedChild;
|
|
24
|
+
if (!inner)
|
|
25
|
+
return undefined;
|
|
26
|
+
// Annotated assignment: expression_statement > type > identifier
|
|
27
|
+
if (inner.type === 'type') {
|
|
28
|
+
const ident = inner.childForFieldName('name') ?? inner.firstNamedChild;
|
|
29
|
+
return ident?.type === 'identifier' ? ident.text : undefined;
|
|
30
|
+
}
|
|
31
|
+
// Plain assignment: expression_statement > assignment > left:identifier
|
|
32
|
+
if (inner.type === 'assignment') {
|
|
33
|
+
const lhs = inner.childForFieldName('left');
|
|
34
|
+
if (lhs?.type === 'identifier')
|
|
35
|
+
return lhs.text;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
},
|
|
39
|
+
extractType(stmt) {
|
|
40
|
+
const inner = stmt.firstNamedChild;
|
|
41
|
+
if (!inner)
|
|
42
|
+
return undefined;
|
|
43
|
+
// Annotated assignment with type node
|
|
44
|
+
if (inner.type === 'type') {
|
|
45
|
+
const typeChild = inner.childForFieldName('type') ?? inner.namedChild(1);
|
|
46
|
+
if (typeChild)
|
|
47
|
+
return extractSimpleTypeName(typeChild) ?? typeChild.text?.trim();
|
|
48
|
+
}
|
|
49
|
+
// Assignment that may contain a type child (annotation without value)
|
|
50
|
+
if (inner.type === 'assignment') {
|
|
51
|
+
for (let idx = 0; idx < inner.childCount; idx++) {
|
|
52
|
+
const kid = inner.child(idx);
|
|
53
|
+
if (kid?.type === 'type') {
|
|
54
|
+
const typeId = kid.firstNamedChild;
|
|
55
|
+
if (typeId)
|
|
56
|
+
return extractSimpleTypeName(typeId) ?? typeId.text?.trim();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
},
|
|
62
|
+
extractVisibility(stmt) {
|
|
63
|
+
const inner = stmt.firstNamedChild;
|
|
64
|
+
let fieldName;
|
|
65
|
+
if (inner?.type === 'type') {
|
|
66
|
+
const ident = inner.childForFieldName('name') ?? inner.firstNamedChild;
|
|
67
|
+
fieldName = ident?.text;
|
|
68
|
+
}
|
|
69
|
+
else if (inner?.type === 'assignment') {
|
|
70
|
+
const lhs = inner.childForFieldName('left');
|
|
71
|
+
fieldName = lhs?.text;
|
|
72
|
+
}
|
|
73
|
+
if (!fieldName)
|
|
74
|
+
return 'public';
|
|
75
|
+
// Double underscore without trailing dunder => name-mangled (private)
|
|
76
|
+
if (fieldName.startsWith('__') && !fieldName.endsWith('__'))
|
|
77
|
+
return 'private';
|
|
78
|
+
// Single underscore prefix => protected by convention
|
|
79
|
+
if (fieldName.startsWith('_'))
|
|
80
|
+
return 'protected';
|
|
81
|
+
return 'public';
|
|
82
|
+
},
|
|
83
|
+
isStatic() {
|
|
84
|
+
// Python has no explicit static keyword for class variables.
|
|
85
|
+
// (Class-body assignments are class variables, but the AST has no modifier.)
|
|
86
|
+
return false;
|
|
87
|
+
},
|
|
88
|
+
isReadonly() {
|
|
89
|
+
return false;
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=python.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../../../src/core/parser/field-extractors/configs/python.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Ruby.
|
|
3
|
+
*
|
|
4
|
+
* Ruby does not have traditional field declarations. Accessible attributes
|
|
5
|
+
* are declared via `attr_accessor`, `attr_reader`, and `attr_writer` calls
|
|
6
|
+
* in the class body. Each call can list multiple symbol arguments, e.g.:
|
|
7
|
+
*
|
|
8
|
+
* attr_accessor :foo, :bar, :baz
|
|
9
|
+
*
|
|
10
|
+
* We match `call` nodes inside `body_statement` and inspect the method name.
|
|
11
|
+
* Instance variable assignments (`@var = ...`) would need deeper analysis
|
|
12
|
+
* and are not extracted here.
|
|
13
|
+
*/
|
|
14
|
+
import type { FieldExtractionConfig } from '../generic.js';
|
|
15
|
+
export declare const rubyConfig: FieldExtractionConfig;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Ruby.
|
|
3
|
+
*
|
|
4
|
+
* Ruby does not have traditional field declarations. Accessible attributes
|
|
5
|
+
* are declared via `attr_accessor`, `attr_reader`, and `attr_writer` calls
|
|
6
|
+
* in the class body. Each call can list multiple symbol arguments, e.g.:
|
|
7
|
+
*
|
|
8
|
+
* attr_accessor :foo, :bar, :baz
|
|
9
|
+
*
|
|
10
|
+
* We match `call` nodes inside `body_statement` and inspect the method name.
|
|
11
|
+
* Instance variable assignments (`@var = ...`) would need deeper analysis
|
|
12
|
+
* and are not extracted here.
|
|
13
|
+
*/
|
|
14
|
+
import { SupportedLanguages } from '../../../shared/index.js';
|
|
15
|
+
const ATTR_METHODS = new Set(['attr_accessor', 'attr_reader', 'attr_writer']);
|
|
16
|
+
/**
|
|
17
|
+
* Given an attr_* call node, collect every symbol argument into a list of
|
|
18
|
+
* field names (stripping the leading `:` from each symbol).
|
|
19
|
+
*/
|
|
20
|
+
function gatherSymbolNames(callNode) {
|
|
21
|
+
const methodChild = callNode.childForFieldName('method');
|
|
22
|
+
if (!methodChild || !ATTR_METHODS.has(methodChild.text))
|
|
23
|
+
return [];
|
|
24
|
+
const argsChild = callNode.childForFieldName('arguments');
|
|
25
|
+
if (!argsChild)
|
|
26
|
+
return [];
|
|
27
|
+
const result = [];
|
|
28
|
+
for (let idx = 0; idx < argsChild.namedChildCount; idx++) {
|
|
29
|
+
const arg = argsChild.namedChild(idx);
|
|
30
|
+
if (!arg)
|
|
31
|
+
continue;
|
|
32
|
+
const raw = arg.text;
|
|
33
|
+
result.push(raw.startsWith(':') ? raw.slice(1) : raw);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
export const rubyConfig = {
|
|
38
|
+
language: SupportedLanguages.Ruby,
|
|
39
|
+
typeDeclarationNodes: ['class'],
|
|
40
|
+
fieldNodeTypes: ['call'],
|
|
41
|
+
bodyNodeTypes: ['body_statement'],
|
|
42
|
+
defaultVisibility: 'public',
|
|
43
|
+
extractName(callNode) {
|
|
44
|
+
// Return first symbol name for the single-name interface contract.
|
|
45
|
+
// Multi-name extraction is handled by extractNames below.
|
|
46
|
+
const names = gatherSymbolNames(callNode);
|
|
47
|
+
return names.length > 0 ? names[0] : undefined;
|
|
48
|
+
},
|
|
49
|
+
extractNames(callNode) {
|
|
50
|
+
return gatherSymbolNames(callNode);
|
|
51
|
+
},
|
|
52
|
+
extractType() {
|
|
53
|
+
// Standard Ruby has no type annotations
|
|
54
|
+
return undefined;
|
|
55
|
+
},
|
|
56
|
+
extractVisibility() {
|
|
57
|
+
// attr_* declarations are public by default
|
|
58
|
+
return 'public';
|
|
59
|
+
},
|
|
60
|
+
isStatic() {
|
|
61
|
+
return false;
|
|
62
|
+
},
|
|
63
|
+
isReadonly(callNode) {
|
|
64
|
+
const methodChild = callNode.childForFieldName('method');
|
|
65
|
+
return methodChild?.text === 'attr_reader';
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=ruby.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../../../src/core/parser/field-extractors/configs/ruby.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;AAE9E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,QAAoB;IAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnE,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA0B;IAC/C,QAAQ,EAAE,kBAAkB,CAAC,IAAI;IAEjC,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,cAAc,EAAE,CAAC,MAAM,CAAC;IACxB,aAAa,EAAE,CAAC,gBAAgB,CAAC;IACjC,iBAAiB,EAAE,QAAQ;IAE3B,WAAW,CAAC,QAAQ;QAClB,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,YAAY,CAAC,QAAQ;QACnB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,WAAW;QACT,wCAAwC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iBAAiB;QACf,4CAA4C;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,QAAQ;QACjB,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,WAAW,EAAE,IAAI,KAAK,aAAa,CAAC;IAC7C,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Rust.
|
|
3
|
+
*
|
|
4
|
+
* Rust structs declare fields via `field_declaration` nodes inside a
|
|
5
|
+
* `field_declaration_list`. Visibility is determined by the presence of a
|
|
6
|
+
* `visibility_modifier` child (covers `pub`, `pub(crate)`, `pub(super)`).
|
|
7
|
+
*
|
|
8
|
+
* Rust fields are always immutable at the type level -- mutability is
|
|
9
|
+
* controlled by the variable binding, not the struct definition.
|
|
10
|
+
*/
|
|
11
|
+
import type { FieldExtractionConfig } from '../generic.js';
|
|
12
|
+
export declare const rustConfig: FieldExtractionConfig;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Rust.
|
|
3
|
+
*
|
|
4
|
+
* Rust structs declare fields via `field_declaration` nodes inside a
|
|
5
|
+
* `field_declaration_list`. Visibility is determined by the presence of a
|
|
6
|
+
* `visibility_modifier` child (covers `pub`, `pub(crate)`, `pub(super)`).
|
|
7
|
+
*
|
|
8
|
+
* Rust fields are always immutable at the type level -- mutability is
|
|
9
|
+
* controlled by the variable binding, not the struct definition.
|
|
10
|
+
*/
|
|
11
|
+
import { SupportedLanguages } from '../../../shared/index.js';
|
|
12
|
+
import { extractSimpleTypeName } from '../../type-extractors/shared.js';
|
|
13
|
+
import { hasKeyword } from './helpers.js';
|
|
14
|
+
export const rustConfig = {
|
|
15
|
+
language: SupportedLanguages.Rust,
|
|
16
|
+
typeDeclarationNodes: ['struct_item', 'enum_item'],
|
|
17
|
+
fieldNodeTypes: ['field_declaration'],
|
|
18
|
+
bodyNodeTypes: ['field_declaration_list'],
|
|
19
|
+
defaultVisibility: 'private',
|
|
20
|
+
extractName(decl) {
|
|
21
|
+
// Prefer the named 'name' field on the AST node
|
|
22
|
+
const nameChild = decl.childForFieldName('name');
|
|
23
|
+
if (nameChild)
|
|
24
|
+
return nameChild.text;
|
|
25
|
+
// Fallback: scan for a field_identifier among named children
|
|
26
|
+
for (let idx = 0; idx < decl.namedChildCount; idx++) {
|
|
27
|
+
const kid = decl.namedChild(idx);
|
|
28
|
+
if (kid?.type === 'field_identifier')
|
|
29
|
+
return kid.text;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
},
|
|
33
|
+
extractType(decl) {
|
|
34
|
+
const typeChild = decl.childForFieldName('type');
|
|
35
|
+
if (!typeChild)
|
|
36
|
+
return undefined;
|
|
37
|
+
return extractSimpleTypeName(typeChild) ?? typeChild.text?.trim();
|
|
38
|
+
},
|
|
39
|
+
extractVisibility(decl) {
|
|
40
|
+
// Look for a visibility_modifier named child (pub, pub(crate), etc.)
|
|
41
|
+
for (let idx = 0; idx < decl.namedChildCount; idx++) {
|
|
42
|
+
const kid = decl.namedChild(idx);
|
|
43
|
+
if (kid?.type === 'visibility_modifier')
|
|
44
|
+
return 'public';
|
|
45
|
+
}
|
|
46
|
+
// Also check for bare `pub` keyword token
|
|
47
|
+
return hasKeyword(decl, 'pub') ? 'public' : 'private';
|
|
48
|
+
},
|
|
49
|
+
isStatic() {
|
|
50
|
+
// Rust struct fields cannot be static
|
|
51
|
+
return false;
|
|
52
|
+
},
|
|
53
|
+
isReadonly() {
|
|
54
|
+
// All struct fields are immutable by default (mutability lives on bindings)
|
|
55
|
+
return true;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=rust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../../../src/core/parser/field-extractors/configs/rust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAA0B;IAC/C,QAAQ,EAAE,kBAAkB,CAAC,IAAI;IAEjC,oBAAoB,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;IAClD,cAAc,EAAE,CAAC,mBAAmB,CAAC;IACrC,aAAa,EAAE,CAAC,wBAAwB,CAAC;IACzC,iBAAiB,EAAE,SAAS;IAE5B,WAAW,CAAC,IAAI;QACd,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC,IAAI,CAAC;QAErC,6DAA6D;QAC7D,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QACxD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,IAAI;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO,qBAAqB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,iBAAiB,CAAC,IAAI;QACpB,qEAAqE;QACrE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG,EAAE,IAAI,KAAK,qBAAqB;gBAAE,OAAO,QAAQ,CAAC;QAC3D,CAAC;QACD,0CAA0C;QAC1C,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,sCAAsC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,4EAA4E;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Swift.
|
|
3
|
+
*
|
|
4
|
+
* Swift stored and computed properties are represented as
|
|
5
|
+
* `property_declaration` nodes inside `class_body` or `protocol_body`.
|
|
6
|
+
*
|
|
7
|
+
* The name sits inside a `pattern` child (pattern > simple_identifier).
|
|
8
|
+
* Type annotations appear as `type_annotation` children.
|
|
9
|
+
*
|
|
10
|
+
* Visibility modifiers: public, private, fileprivate, internal (default), open.
|
|
11
|
+
* Static properties use the `static` or `class` keyword.
|
|
12
|
+
* `let` declarations are readonly; `var` declarations are mutable.
|
|
13
|
+
*/
|
|
14
|
+
import type { FieldExtractionConfig } from '../generic.js';
|
|
15
|
+
export declare const swiftConfig: FieldExtractionConfig;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configuration for Swift.
|
|
3
|
+
*
|
|
4
|
+
* Swift stored and computed properties are represented as
|
|
5
|
+
* `property_declaration` nodes inside `class_body` or `protocol_body`.
|
|
6
|
+
*
|
|
7
|
+
* The name sits inside a `pattern` child (pattern > simple_identifier).
|
|
8
|
+
* Type annotations appear as `type_annotation` children.
|
|
9
|
+
*
|
|
10
|
+
* Visibility modifiers: public, private, fileprivate, internal (default), open.
|
|
11
|
+
* Static properties use the `static` or `class` keyword.
|
|
12
|
+
* `let` declarations are readonly; `var` declarations are mutable.
|
|
13
|
+
*/
|
|
14
|
+
import { SupportedLanguages } from '../../../shared/index.js';
|
|
15
|
+
import { hasKeyword, findVisibility } from './helpers.js';
|
|
16
|
+
import { extractSimpleTypeName } from '../../type-extractors/shared.js';
|
|
17
|
+
const SWIFT_VISIBILITY_SET = new Set([
|
|
18
|
+
'public',
|
|
19
|
+
'private',
|
|
20
|
+
'fileprivate',
|
|
21
|
+
'internal',
|
|
22
|
+
'open',
|
|
23
|
+
]);
|
|
24
|
+
export const swiftConfig = {
|
|
25
|
+
language: SupportedLanguages.Swift,
|
|
26
|
+
typeDeclarationNodes: ['class_declaration', 'struct_declaration', 'protocol_declaration'],
|
|
27
|
+
fieldNodeTypes: ['property_declaration'],
|
|
28
|
+
bodyNodeTypes: ['class_body', 'protocol_body'],
|
|
29
|
+
defaultVisibility: 'internal',
|
|
30
|
+
extractName(propDecl) {
|
|
31
|
+
// property_declaration > pattern > simple_identifier
|
|
32
|
+
for (let idx = 0; idx < propDecl.namedChildCount; idx++) {
|
|
33
|
+
const kid = propDecl.namedChild(idx);
|
|
34
|
+
if (kid?.type === 'pattern') {
|
|
35
|
+
// Look for simple_identifier inside the pattern
|
|
36
|
+
for (let j = 0; j < kid.namedChildCount; j++) {
|
|
37
|
+
const inner = kid.namedChild(j);
|
|
38
|
+
if (inner?.type === 'simple_identifier')
|
|
39
|
+
return inner.text;
|
|
40
|
+
}
|
|
41
|
+
// Pattern itself may be the identifier text
|
|
42
|
+
return kid.text;
|
|
43
|
+
}
|
|
44
|
+
// Direct simple_identifier child
|
|
45
|
+
if (kid?.type === 'simple_identifier')
|
|
46
|
+
return kid.text;
|
|
47
|
+
}
|
|
48
|
+
// Fallback: try the named 'name' field
|
|
49
|
+
const nameChild = propDecl.childForFieldName('name');
|
|
50
|
+
return nameChild?.text;
|
|
51
|
+
},
|
|
52
|
+
extractType(propDecl) {
|
|
53
|
+
// property_declaration > type_annotation > user_type / type_identifier
|
|
54
|
+
for (let idx = 0; idx < propDecl.namedChildCount; idx++) {
|
|
55
|
+
const kid = propDecl.namedChild(idx);
|
|
56
|
+
if (kid?.type === 'type_annotation') {
|
|
57
|
+
const inner = kid.firstNamedChild;
|
|
58
|
+
if (inner)
|
|
59
|
+
return extractSimpleTypeName(inner) ?? inner.text?.trim();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
},
|
|
64
|
+
extractVisibility(propDecl) {
|
|
65
|
+
return findVisibility(propDecl, SWIFT_VISIBILITY_SET, 'internal', 'modifiers');
|
|
66
|
+
},
|
|
67
|
+
isStatic(propDecl) {
|
|
68
|
+
return hasKeyword(propDecl, 'static') || hasKeyword(propDecl, 'class');
|
|
69
|
+
},
|
|
70
|
+
isReadonly(propDecl) {
|
|
71
|
+
// `let` = constant (readonly), `var` = variable (mutable)
|
|
72
|
+
return hasKeyword(propDecl, 'let');
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=swift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../../src/core/parser/field-extractors/configs/swift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAkB;IACpD,QAAQ;IACR,SAAS;IACT,aAAa;IACb,UAAU;IACV,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAA0B;IAChD,QAAQ,EAAE,kBAAkB,CAAC,KAAK;IAElC,oBAAoB,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;IACzF,cAAc,EAAE,CAAC,sBAAsB,CAAC;IACxC,aAAa,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;IAC9C,iBAAiB,EAAE,UAAU;IAE7B,WAAW,CAAC,QAAQ;QAClB,qDAAqD;QACrD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,gDAAgD;gBAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,KAAK,EAAE,IAAI,KAAK,mBAAmB;wBAAE,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC7D,CAAC;gBACD,4CAA4C;gBAC5C,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,CAAC;YACD,iCAAiC;YACjC,IAAI,GAAG,EAAE,IAAI,KAAK,mBAAmB;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QACzD,CAAC;QACD,uCAAuC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,SAAS,EAAE,IAAI,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,QAAQ;QAClB,uEAAuE;QACvE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;gBAClC,IAAI,KAAK;oBAAE,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACvE,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iBAAiB,CAAC,QAAQ;QACxB,OAAO,cAAc,CAAC,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAED,QAAQ,CAAC,QAAQ;QACf,OAAO,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,UAAU,CAAC,QAAQ;QACjB,0DAA0D;QAC1D,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configurations for TypeScript and JavaScript.
|
|
3
|
+
*
|
|
4
|
+
* Both languages share identical extraction logic; only the language
|
|
5
|
+
* enum value differs. Fields live in `class_body`, `interface_body`,
|
|
6
|
+
* or `object_type` as `public_field_definition`, `property_signature`,
|
|
7
|
+
* or `field_definition` nodes.
|
|
8
|
+
*
|
|
9
|
+
* Visibility is determined by `accessibility_modifier` children
|
|
10
|
+
* (TypeScript only) or direct keyword tokens.
|
|
11
|
+
*/
|
|
12
|
+
import type { FieldExtractionConfig } from '../generic.js';
|
|
13
|
+
export declare const typescriptConfig: FieldExtractionConfig;
|
|
14
|
+
export declare const javascriptConfig: FieldExtractionConfig;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field extraction configurations for TypeScript and JavaScript.
|
|
3
|
+
*
|
|
4
|
+
* Both languages share identical extraction logic; only the language
|
|
5
|
+
* enum value differs. Fields live in `class_body`, `interface_body`,
|
|
6
|
+
* or `object_type` as `public_field_definition`, `property_signature`,
|
|
7
|
+
* or `field_definition` nodes.
|
|
8
|
+
*
|
|
9
|
+
* Visibility is determined by `accessibility_modifier` children
|
|
10
|
+
* (TypeScript only) or direct keyword tokens.
|
|
11
|
+
*/
|
|
12
|
+
import { SupportedLanguages } from '../../../shared/index.js';
|
|
13
|
+
import { hasKeyword, findVisibility, typeFromAnnotation } from './helpers.js';
|
|
14
|
+
const TS_JS_VISIBILITY_SET = new Set(['public', 'private', 'protected']);
|
|
15
|
+
/**
|
|
16
|
+
* Shared config body for both TypeScript and JavaScript.
|
|
17
|
+
* The `language` property is applied by the two named exports below.
|
|
18
|
+
*/
|
|
19
|
+
const commonConfig = {
|
|
20
|
+
typeDeclarationNodes: [
|
|
21
|
+
'class_declaration',
|
|
22
|
+
'abstract_class_declaration',
|
|
23
|
+
'interface_declaration',
|
|
24
|
+
],
|
|
25
|
+
fieldNodeTypes: ['public_field_definition', 'property_signature', 'field_definition'],
|
|
26
|
+
bodyNodeTypes: ['class_body', 'interface_body', 'object_type'],
|
|
27
|
+
defaultVisibility: 'public',
|
|
28
|
+
extractName(fieldNode) {
|
|
29
|
+
const nameChild = fieldNode.childForFieldName('name') ?? fieldNode.childForFieldName('property');
|
|
30
|
+
return nameChild?.text;
|
|
31
|
+
},
|
|
32
|
+
extractType(fieldNode) {
|
|
33
|
+
// tree-sitter-typescript may expose the type via a named 'type' field
|
|
34
|
+
const typeChild = fieldNode.childForFieldName('type');
|
|
35
|
+
if (typeChild) {
|
|
36
|
+
if (typeChild.type === 'type_annotation') {
|
|
37
|
+
const inner = typeChild.firstNamedChild;
|
|
38
|
+
return inner?.text?.trim();
|
|
39
|
+
}
|
|
40
|
+
return typeChild.text?.trim();
|
|
41
|
+
}
|
|
42
|
+
// Fallback: walk children for a type_annotation node
|
|
43
|
+
return typeFromAnnotation(fieldNode);
|
|
44
|
+
},
|
|
45
|
+
extractVisibility(fieldNode) {
|
|
46
|
+
// Check for accessibility_modifier (TypeScript-specific)
|
|
47
|
+
for (let idx = 0; idx < fieldNode.namedChildCount; idx++) {
|
|
48
|
+
const kid = fieldNode.namedChild(idx);
|
|
49
|
+
if (kid && kid.type === 'accessibility_modifier') {
|
|
50
|
+
const vis = kid.text.trim();
|
|
51
|
+
if (TS_JS_VISIBILITY_SET.has(vis))
|
|
52
|
+
return vis;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return findVisibility(fieldNode, TS_JS_VISIBILITY_SET, 'public', 'modifiers');
|
|
56
|
+
},
|
|
57
|
+
isStatic(fieldNode) {
|
|
58
|
+
return hasKeyword(fieldNode, 'static');
|
|
59
|
+
},
|
|
60
|
+
isReadonly(fieldNode) {
|
|
61
|
+
return hasKeyword(fieldNode, 'readonly');
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
export const typescriptConfig = {
|
|
65
|
+
...commonConfig,
|
|
66
|
+
language: SupportedLanguages.TypeScript,
|
|
67
|
+
};
|
|
68
|
+
export const javascriptConfig = {
|
|
69
|
+
...commonConfig,
|
|
70
|
+
language: SupportedLanguages.JavaScript,
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=typescript-javascript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-javascript.js","sourceRoot":"","sources":["../../../../../src/core/parser/field-extractors/configs/typescript-javascript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG9E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAE1F;;;GAGG;AACH,MAAM,YAAY,GAA4C;IAC5D,oBAAoB,EAAE;QACpB,mBAAmB;QACnB,4BAA4B;QAC5B,uBAAuB;KACxB;IACD,cAAc,EAAE,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;IACrF,aAAa,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAC;IAC9D,iBAAiB,EAAE,QAAQ;IAE3B,WAAW,CAAC,SAAS;QACnB,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACjG,OAAO,SAAS,EAAE,IAAI,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,SAAS;QACnB,sEAAsE;QACtE,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,SAAS,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,SAAS,CAAC,eAAe,CAAC;gBACxC,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7B,CAAC;YACD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QACD,qDAAqD;QACrD,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB,CAAC,SAAS;QACzB,yDAAyD;QACzD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAqB,CAAC;gBAC/C,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,GAAG,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAC,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;IAED,QAAQ,CAAC,SAAS;QAChB,OAAO,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,SAAS;QAClB,OAAO,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,GAAG,YAAY;IACf,QAAQ,EAAE,kBAAkB,CAAC,UAAU;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,GAAG,YAAY;IACf,QAAQ,EAAE,kBAAkB,CAAC,UAAU;CACxC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic table-driven field extractor factory.
|
|
3
|
+
*
|
|
4
|
+
* Instead of 14 separate 300-line files, define a config per language and
|
|
5
|
+
* generate extractors from configs. The factory produces a plain object
|
|
6
|
+
* implementing FieldExtractor — no class hierarchy needed.
|
|
7
|
+
*/
|
|
8
|
+
import type { SyntaxNode } from '../utils/ast-helpers.js';
|
|
9
|
+
import { SupportedLanguages } from '../../shared/index.js';
|
|
10
|
+
import type { FieldExtractor } from '../field-extractor.js';
|
|
11
|
+
import type { FieldExtractorContext, FieldInfo, FieldVisibility } from '../field-types.js';
|
|
12
|
+
export interface FieldExtractionConfig {
|
|
13
|
+
language: SupportedLanguages;
|
|
14
|
+
/** AST node types that are class/struct/interface declarations */
|
|
15
|
+
typeDeclarationNodes: string[];
|
|
16
|
+
/** AST node types that represent field/property declarations inside a body */
|
|
17
|
+
fieldNodeTypes: string[];
|
|
18
|
+
/** AST node type(s) for the class body container (e.g., 'class_body', 'declaration_list') */
|
|
19
|
+
bodyNodeTypes: string[];
|
|
20
|
+
/** Default visibility when no modifier is present */
|
|
21
|
+
defaultVisibility: FieldVisibility;
|
|
22
|
+
/**
|
|
23
|
+
* Extract field name from a field declaration node.
|
|
24
|
+
* Use this for nodes that declare exactly one field.
|
|
25
|
+
*/
|
|
26
|
+
extractName: (node: SyntaxNode) => string | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Extract multiple field names from a single declaration node.
|
|
29
|
+
* Optional override for languages where one AST node can declare
|
|
30
|
+
* several fields (e.g. Ruby `attr_accessor :foo, :bar`).
|
|
31
|
+
* When present, the factory uses this instead of `extractName`.
|
|
32
|
+
*/
|
|
33
|
+
extractNames?: (node: SyntaxNode) => string[];
|
|
34
|
+
/** Extract type annotation from a field declaration node */
|
|
35
|
+
extractType: (node: SyntaxNode) => string | undefined;
|
|
36
|
+
/** Extract visibility from a field declaration node */
|
|
37
|
+
extractVisibility: (node: SyntaxNode) => FieldVisibility;
|
|
38
|
+
/** Check if a field is static */
|
|
39
|
+
isStatic: (node: SyntaxNode) => boolean;
|
|
40
|
+
/** Check if a field is readonly/final/const */
|
|
41
|
+
isReadonly: (node: SyntaxNode) => boolean;
|
|
42
|
+
/** Extract fields from primary constructor parameters on the owner node itself
|
|
43
|
+
* (e.g. C# record positional parameters, C# 12 class primary constructors). */
|
|
44
|
+
extractPrimaryFields?: (ownerNode: SyntaxNode, context: FieldExtractorContext) => FieldInfo[];
|
|
45
|
+
/**
|
|
46
|
+
* Extract fields from the value of a type declaration (e.g. TypeScript
|
|
47
|
+
* `type Config = { host: string; }` — object type literals).
|
|
48
|
+
* Called on the owner (type declaration) node when present.
|
|
49
|
+
*/
|
|
50
|
+
extractFromValue?: (ownerNode: SyntaxNode, context: FieldExtractorContext) => FieldInfo[];
|
|
51
|
+
/**
|
|
52
|
+
* AST node types to scan for when discovering nested types inside a
|
|
53
|
+
* type declaration body. E.g. `['class_declaration', 'interface_declaration']`.
|
|
54
|
+
* When omitted, nestedTypes is always empty.
|
|
55
|
+
*/
|
|
56
|
+
nestedTypeNodeTypes?: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a FieldExtractor from a declarative config.
|
|
60
|
+
*/
|
|
61
|
+
export declare function createFieldExtractor(config: FieldExtractionConfig): FieldExtractor;
|