driftdetect-core 0.4.5 → 0.5.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 +21 -0
- package/dist/boundaries/boundary-scanner.d.ts.map +1 -1
- package/dist/boundaries/boundary-scanner.js +184 -18
- package/dist/boundaries/boundary-scanner.js.map +1 -1
- package/dist/boundaries/types.d.ts +34 -2
- package/dist/boundaries/types.d.ts.map +1 -1
- package/dist/call-graph/analysis/graph-builder.d.ts +3 -0
- package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -1
- package/dist/call-graph/analysis/graph-builder.js +81 -18
- package/dist/call-graph/analysis/graph-builder.js.map +1 -1
- package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts +8 -0
- package/dist/call-graph/extractors/csharp-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/csharp-data-access-extractor.js +18 -5
- package/dist/call-graph/extractors/csharp-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/csharp-extractor.d.ts +35 -0
- package/dist/call-graph/extractors/csharp-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/csharp-extractor.js +362 -4
- package/dist/call-graph/extractors/csharp-extractor.js.map +1 -1
- package/dist/call-graph/extractors/csharp-hybrid-extractor.d.ts +37 -0
- package/dist/call-graph/extractors/csharp-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/csharp-hybrid-extractor.js +408 -0
- package/dist/call-graph/extractors/csharp-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/extractors/data-access-extractor.d.ts +16 -2
- package/dist/call-graph/extractors/data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/data-access-extractor.js +114 -5
- package/dist/call-graph/extractors/data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/hybrid-extractor-base.d.ts +102 -0
- package/dist/call-graph/extractors/hybrid-extractor-base.d.ts.map +1 -0
- package/dist/call-graph/extractors/hybrid-extractor-base.js +289 -0
- package/dist/call-graph/extractors/hybrid-extractor-base.js.map +1 -0
- package/dist/call-graph/extractors/index.d.ts +17 -13
- package/dist/call-graph/extractors/index.d.ts.map +1 -1
- package/dist/call-graph/extractors/index.js +24 -23
- package/dist/call-graph/extractors/index.js.map +1 -1
- package/dist/call-graph/extractors/java-data-access-extractor.d.ts +8 -0
- package/dist/call-graph/extractors/java-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/java-data-access-extractor.js +20 -6
- package/dist/call-graph/extractors/java-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/java-extractor.d.ts +15 -0
- package/dist/call-graph/extractors/java-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/java-extractor.js +120 -4
- package/dist/call-graph/extractors/java-extractor.js.map +1 -1
- package/dist/call-graph/extractors/java-hybrid-extractor.d.ts +36 -0
- package/dist/call-graph/extractors/java-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/java-hybrid-extractor.js +426 -0
- package/dist/call-graph/extractors/java-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/extractors/php-data-access-extractor.d.ts +8 -0
- package/dist/call-graph/extractors/php-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/php-data-access-extractor.js +20 -6
- package/dist/call-graph/extractors/php-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/php-extractor.d.ts +48 -1
- package/dist/call-graph/extractors/php-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/php-extractor.js +460 -6
- package/dist/call-graph/extractors/php-extractor.js.map +1 -1
- package/dist/call-graph/extractors/php-hybrid-extractor.d.ts +35 -0
- package/dist/call-graph/extractors/php-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/php-hybrid-extractor.js +393 -0
- package/dist/call-graph/extractors/php-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/extractors/python-data-access-extractor.d.ts +8 -0
- package/dist/call-graph/extractors/python-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/python-data-access-extractor.js +20 -6
- package/dist/call-graph/extractors/python-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/python-hybrid-extractor.d.ts +85 -0
- package/dist/call-graph/extractors/python-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/python-hybrid-extractor.js +462 -0
- package/dist/call-graph/extractors/python-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/extractors/regex/base-regex-extractor.d.ts +154 -0
- package/dist/call-graph/extractors/regex/base-regex-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/base-regex-extractor.js +346 -0
- package/dist/call-graph/extractors/regex/base-regex-extractor.js.map +1 -0
- package/dist/call-graph/extractors/regex/csharp-regex.d.ts +34 -0
- package/dist/call-graph/extractors/regex/csharp-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/csharp-regex.js +393 -0
- package/dist/call-graph/extractors/regex/csharp-regex.js.map +1 -0
- package/dist/call-graph/extractors/regex/index.d.ts +25 -0
- package/dist/call-graph/extractors/regex/index.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/index.js +66 -0
- package/dist/call-graph/extractors/regex/index.js.map +1 -0
- package/dist/call-graph/extractors/regex/java-regex.d.ts +34 -0
- package/dist/call-graph/extractors/regex/java-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/java-regex.js +327 -0
- package/dist/call-graph/extractors/regex/java-regex.js.map +1 -0
- package/dist/call-graph/extractors/regex/php-regex.d.ts +30 -0
- package/dist/call-graph/extractors/regex/php-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/php-regex.js +333 -0
- package/dist/call-graph/extractors/regex/php-regex.js.map +1 -0
- package/dist/call-graph/extractors/regex/python-regex.d.ts +46 -0
- package/dist/call-graph/extractors/regex/python-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/python-regex.js +380 -0
- package/dist/call-graph/extractors/regex/python-regex.js.map +1 -0
- package/dist/call-graph/extractors/regex/typescript-regex.d.ts +27 -0
- package/dist/call-graph/extractors/regex/typescript-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/typescript-regex.js +349 -0
- package/dist/call-graph/extractors/regex/typescript-regex.js.map +1 -0
- package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts +11 -0
- package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts.map +1 -1
- package/dist/call-graph/extractors/semantic-data-access-scanner.js +53 -2
- package/dist/call-graph/extractors/semantic-data-access-scanner.js.map +1 -1
- package/dist/call-graph/extractors/types.d.ts +111 -0
- package/dist/call-graph/extractors/types.d.ts.map +1 -0
- package/dist/call-graph/extractors/types.js +68 -0
- package/dist/call-graph/extractors/types.js.map +1 -0
- package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts +8 -0
- package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/typescript-data-access-extractor.js +31 -10
- package/dist/call-graph/extractors/typescript-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/typescript-hybrid-extractor.d.ts +116 -0
- package/dist/call-graph/extractors/typescript-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/typescript-hybrid-extractor.js +635 -0
- package/dist/call-graph/extractors/typescript-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/index.d.ts +2 -4
- package/dist/call-graph/index.d.ts.map +1 -1
- package/dist/call-graph/index.js +5 -6
- package/dist/call-graph/index.js.map +1 -1
- package/dist/error-handling/error-handling-analyzer.d.ts +73 -0
- package/dist/error-handling/error-handling-analyzer.d.ts.map +1 -0
- package/dist/error-handling/error-handling-analyzer.js +706 -0
- package/dist/error-handling/error-handling-analyzer.js.map +1 -0
- package/dist/error-handling/index.d.ts +8 -0
- package/dist/error-handling/index.d.ts.map +1 -0
- package/dist/error-handling/index.js +8 -0
- package/dist/error-handling/index.js.map +1 -0
- package/dist/error-handling/types.d.ts +307 -0
- package/dist/error-handling/types.d.ts.map +1 -0
- package/dist/error-handling/types.js +7 -0
- package/dist/error-handling/types.js.map +1 -0
- package/dist/index.d.ts +18 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -5
- package/dist/index.js.map +1 -1
- package/dist/lake/pattern-shard-store.d.ts +6 -0
- package/dist/lake/pattern-shard-store.d.ts.map +1 -1
- package/dist/lake/pattern-shard-store.js +6 -0
- package/dist/lake/pattern-shard-store.js.map +1 -1
- package/dist/language-intelligence/base-normalizer.d.ts +68 -0
- package/dist/language-intelligence/base-normalizer.d.ts.map +1 -0
- package/dist/language-intelligence/base-normalizer.js +210 -0
- package/dist/language-intelligence/base-normalizer.js.map +1 -0
- package/dist/language-intelligence/framework-registry.d.ts +89 -0
- package/dist/language-intelligence/framework-registry.d.ts.map +1 -0
- package/dist/language-intelligence/framework-registry.js +165 -0
- package/dist/language-intelligence/framework-registry.js.map +1 -0
- package/dist/language-intelligence/frameworks/aspnet.d.ts +11 -0
- package/dist/language-intelligence/frameworks/aspnet.d.ts.map +1 -0
- package/dist/language-intelligence/frameworks/aspnet.js +325 -0
- package/dist/language-intelligence/frameworks/aspnet.js.map +1 -0
- package/dist/language-intelligence/frameworks/fastapi.d.ts +11 -0
- package/dist/language-intelligence/frameworks/fastapi.d.ts.map +1 -0
- package/dist/language-intelligence/frameworks/fastapi.js +188 -0
- package/dist/language-intelligence/frameworks/fastapi.js.map +1 -0
- package/dist/language-intelligence/frameworks/index.d.ts +32 -0
- package/dist/language-intelligence/frameworks/index.d.ts.map +1 -0
- package/dist/language-intelligence/frameworks/index.js +51 -0
- package/dist/language-intelligence/frameworks/index.js.map +1 -0
- package/dist/language-intelligence/frameworks/laravel.d.ts +12 -0
- package/dist/language-intelligence/frameworks/laravel.d.ts.map +1 -0
- package/dist/language-intelligence/frameworks/laravel.js +194 -0
- package/dist/language-intelligence/frameworks/laravel.js.map +1 -0
- package/dist/language-intelligence/frameworks/nestjs.d.ts +11 -0
- package/dist/language-intelligence/frameworks/nestjs.d.ts.map +1 -0
- package/dist/language-intelligence/frameworks/nestjs.js +307 -0
- package/dist/language-intelligence/frameworks/nestjs.js.map +1 -0
- package/dist/language-intelligence/frameworks/spring.d.ts +11 -0
- package/dist/language-intelligence/frameworks/spring.d.ts.map +1 -0
- package/dist/language-intelligence/frameworks/spring.js +369 -0
- package/dist/language-intelligence/frameworks/spring.js.map +1 -0
- package/dist/language-intelligence/index.d.ts +33 -0
- package/dist/language-intelligence/index.d.ts.map +1 -0
- package/dist/language-intelligence/index.js +37 -0
- package/dist/language-intelligence/index.js.map +1 -0
- package/dist/language-intelligence/language-intelligence.d.ts +99 -0
- package/dist/language-intelligence/language-intelligence.d.ts.map +1 -0
- package/dist/language-intelligence/language-intelligence.js +239 -0
- package/dist/language-intelligence/language-intelligence.js.map +1 -0
- package/dist/language-intelligence/normalizers/csharp-normalizer.d.ts +39 -0
- package/dist/language-intelligence/normalizers/csharp-normalizer.d.ts.map +1 -0
- package/dist/language-intelligence/normalizers/csharp-normalizer.js +86 -0
- package/dist/language-intelligence/normalizers/csharp-normalizer.js.map +1 -0
- package/dist/language-intelligence/normalizers/index.d.ts +25 -0
- package/dist/language-intelligence/normalizers/index.d.ts.map +1 -0
- package/dist/language-intelligence/normalizers/index.js +60 -0
- package/dist/language-intelligence/normalizers/index.js.map +1 -0
- package/dist/language-intelligence/normalizers/java-normalizer.d.ts +39 -0
- package/dist/language-intelligence/normalizers/java-normalizer.d.ts.map +1 -0
- package/dist/language-intelligence/normalizers/java-normalizer.js +96 -0
- package/dist/language-intelligence/normalizers/java-normalizer.js.map +1 -0
- package/dist/language-intelligence/normalizers/php-normalizer.d.ts +39 -0
- package/dist/language-intelligence/normalizers/php-normalizer.d.ts.map +1 -0
- package/dist/language-intelligence/normalizers/php-normalizer.js +86 -0
- package/dist/language-intelligence/normalizers/php-normalizer.js.map +1 -0
- package/dist/language-intelligence/normalizers/python-normalizer.d.ts +39 -0
- package/dist/language-intelligence/normalizers/python-normalizer.d.ts.map +1 -0
- package/dist/language-intelligence/normalizers/python-normalizer.js +95 -0
- package/dist/language-intelligence/normalizers/python-normalizer.js.map +1 -0
- package/dist/language-intelligence/normalizers/typescript-normalizer.d.ts +39 -0
- package/dist/language-intelligence/normalizers/typescript-normalizer.d.ts.map +1 -0
- package/dist/language-intelligence/normalizers/typescript-normalizer.js +84 -0
- package/dist/language-intelligence/normalizers/typescript-normalizer.js.map +1 -0
- package/dist/language-intelligence/types.d.ts +270 -0
- package/dist/language-intelligence/types.d.ts.map +1 -0
- package/dist/language-intelligence/types.js +9 -0
- package/dist/language-intelligence/types.js.map +1 -0
- package/dist/module-coupling/coupling-analyzer.d.ts +73 -0
- package/dist/module-coupling/coupling-analyzer.d.ts.map +1 -0
- package/dist/module-coupling/coupling-analyzer.js +668 -0
- package/dist/module-coupling/coupling-analyzer.js.map +1 -0
- package/dist/module-coupling/index.d.ts +9 -0
- package/dist/module-coupling/index.d.ts.map +1 -0
- package/dist/module-coupling/index.js +9 -0
- package/dist/module-coupling/index.js.map +1 -0
- package/dist/module-coupling/types.d.ts +273 -0
- package/dist/module-coupling/types.d.ts.map +1 -0
- package/dist/module-coupling/types.js +8 -0
- package/dist/module-coupling/types.js.map +1 -0
- package/dist/patterns/adapters/index.d.ts +11 -0
- package/dist/patterns/adapters/index.d.ts.map +1 -0
- package/dist/patterns/adapters/index.js +11 -0
- package/dist/patterns/adapters/index.js.map +1 -0
- package/dist/patterns/adapters/pattern-store-adapter.d.ts +59 -0
- package/dist/patterns/adapters/pattern-store-adapter.d.ts.map +1 -0
- package/dist/patterns/adapters/pattern-store-adapter.js +468 -0
- package/dist/patterns/adapters/pattern-store-adapter.js.map +1 -0
- package/dist/patterns/adapters/service-factory.d.ts +40 -0
- package/dist/patterns/adapters/service-factory.d.ts.map +1 -0
- package/dist/patterns/adapters/service-factory.js +144 -0
- package/dist/patterns/adapters/service-factory.js.map +1 -0
- package/dist/patterns/errors.d.ts +32 -0
- package/dist/patterns/errors.d.ts.map +1 -0
- package/dist/patterns/errors.js +45 -0
- package/dist/patterns/errors.js.map +1 -0
- package/dist/patterns/impl/cached-repository.d.ts +79 -0
- package/dist/patterns/impl/cached-repository.d.ts.map +1 -0
- package/dist/patterns/impl/cached-repository.js +296 -0
- package/dist/patterns/impl/cached-repository.js.map +1 -0
- package/dist/patterns/impl/file-repository.d.ts +75 -0
- package/dist/patterns/impl/file-repository.d.ts.map +1 -0
- package/dist/patterns/impl/file-repository.js +507 -0
- package/dist/patterns/impl/file-repository.js.map +1 -0
- package/dist/patterns/impl/index.d.ts +16 -0
- package/dist/patterns/impl/index.d.ts.map +1 -0
- package/dist/patterns/impl/index.js +21 -0
- package/dist/patterns/impl/index.js.map +1 -0
- package/dist/patterns/impl/memory-repository.d.ts +56 -0
- package/dist/patterns/impl/memory-repository.d.ts.map +1 -0
- package/dist/patterns/impl/memory-repository.js +323 -0
- package/dist/patterns/impl/memory-repository.js.map +1 -0
- package/dist/patterns/impl/pattern-service.d.ts +52 -0
- package/dist/patterns/impl/pattern-service.d.ts.map +1 -0
- package/dist/patterns/impl/pattern-service.js +382 -0
- package/dist/patterns/impl/pattern-service.js.map +1 -0
- package/dist/patterns/impl/repository-factory.d.ts +44 -0
- package/dist/patterns/impl/repository-factory.d.ts.map +1 -0
- package/dist/patterns/impl/repository-factory.js +140 -0
- package/dist/patterns/impl/repository-factory.js.map +1 -0
- package/dist/patterns/impl/unified-file-repository.d.ts +111 -0
- package/dist/patterns/impl/unified-file-repository.d.ts.map +1 -0
- package/dist/patterns/impl/unified-file-repository.js +677 -0
- package/dist/patterns/impl/unified-file-repository.js.map +1 -0
- package/dist/patterns/index.d.ts +23 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +41 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/repository.d.ts +241 -0
- package/dist/patterns/repository.d.ts.map +1 -0
- package/dist/patterns/repository.js +23 -0
- package/dist/patterns/repository.js.map +1 -0
- package/dist/patterns/service.d.ts +245 -0
- package/dist/patterns/service.d.ts.map +1 -0
- package/dist/patterns/service.js +25 -0
- package/dist/patterns/service.js.map +1 -0
- package/dist/patterns/types.d.ts +227 -0
- package/dist/patterns/types.d.ts.map +1 -0
- package/dist/patterns/types.js +117 -0
- package/dist/patterns/types.js.map +1 -0
- package/dist/scanner/file-processor-worker.d.ts +66 -0
- package/dist/scanner/file-processor-worker.d.ts.map +1 -0
- package/dist/scanner/file-processor-worker.js +189 -0
- package/dist/scanner/file-processor-worker.js.map +1 -0
- package/dist/scanner/index.d.ts +2 -0
- package/dist/scanner/index.d.ts.map +1 -1
- package/dist/scanner/index.js +2 -0
- package/dist/scanner/index.js.map +1 -1
- package/dist/scanner/threaded-worker-pool.d.ts +182 -0
- package/dist/scanner/threaded-worker-pool.d.ts.map +1 -0
- package/dist/scanner/threaded-worker-pool.js +243 -0
- package/dist/scanner/threaded-worker-pool.js.map +1 -0
- package/dist/store/pattern-store.d.ts +6 -0
- package/dist/store/pattern-store.d.ts.map +1 -1
- package/dist/store/pattern-store.js +6 -0
- package/dist/store/pattern-store.js.map +1 -1
- package/dist/store/types.d.ts +6 -3
- package/dist/store/types.d.ts.map +1 -1
- package/dist/store/types.js.map +1 -1
- package/dist/test-topology/extractors/base-test-extractor.d.ts +89 -0
- package/dist/test-topology/extractors/base-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/base-test-extractor.js +187 -0
- package/dist/test-topology/extractors/base-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/csharp-test-extractor.d.ts +23 -0
- package/dist/test-topology/extractors/csharp-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/csharp-test-extractor.js +367 -0
- package/dist/test-topology/extractors/csharp-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/index.d.ts +12 -0
- package/dist/test-topology/extractors/index.d.ts.map +1 -0
- package/dist/test-topology/extractors/index.js +12 -0
- package/dist/test-topology/extractors/index.js.map +1 -0
- package/dist/test-topology/extractors/java-test-extractor.d.ts +20 -0
- package/dist/test-topology/extractors/java-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/java-test-extractor.js +275 -0
- package/dist/test-topology/extractors/java-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/php-test-extractor.d.ts +24 -0
- package/dist/test-topology/extractors/php-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/php-test-extractor.js +409 -0
- package/dist/test-topology/extractors/php-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/python-test-extractor.d.ts +23 -0
- package/dist/test-topology/extractors/python-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/python-test-extractor.js +342 -0
- package/dist/test-topology/extractors/python-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/regex/csharp-test-regex.d.ts +51 -0
- package/dist/test-topology/extractors/regex/csharp-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/csharp-test-regex.js +383 -0
- package/dist/test-topology/extractors/regex/csharp-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/regex/index.d.ts +18 -0
- package/dist/test-topology/extractors/regex/index.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/index.js +43 -0
- package/dist/test-topology/extractors/regex/index.js.map +1 -0
- package/dist/test-topology/extractors/regex/java-test-regex.d.ts +50 -0
- package/dist/test-topology/extractors/regex/java-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/java-test-regex.js +370 -0
- package/dist/test-topology/extractors/regex/java-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/regex/php-test-regex.d.ts +56 -0
- package/dist/test-topology/extractors/regex/php-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/php-test-regex.js +503 -0
- package/dist/test-topology/extractors/regex/php-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/regex/python-test-regex.d.ts +57 -0
- package/dist/test-topology/extractors/regex/python-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/python-test-regex.js +381 -0
- package/dist/test-topology/extractors/regex/python-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/regex/typescript-test-regex.d.ts +60 -0
- package/dist/test-topology/extractors/regex/typescript-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/typescript-test-regex.js +368 -0
- package/dist/test-topology/extractors/regex/typescript-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/typescript-test-extractor.d.ts +24 -0
- package/dist/test-topology/extractors/typescript-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/typescript-test-extractor.js +266 -0
- package/dist/test-topology/extractors/typescript-test-extractor.js.map +1 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.d.ts +98 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.js +555 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -0
- package/dist/test-topology/index.d.ts +16 -0
- package/dist/test-topology/index.d.ts.map +1 -0
- package/dist/test-topology/index.js +19 -0
- package/dist/test-topology/index.js.map +1 -0
- package/dist/test-topology/test-topology-analyzer.d.ts +85 -0
- package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -0
- package/dist/test-topology/test-topology-analyzer.js +538 -0
- package/dist/test-topology/test-topology-analyzer.js.map +1 -0
- package/dist/test-topology/types.d.ts +300 -0
- package/dist/test-topology/types.d.ts.map +1 -0
- package/dist/test-topology/types.js +7 -0
- package/dist/test-topology/types.js.map +1 -0
- package/dist/unified-provider/compat/index.d.ts +11 -0
- package/dist/unified-provider/compat/index.d.ts.map +1 -0
- package/dist/unified-provider/compat/index.js +13 -0
- package/dist/unified-provider/compat/index.js.map +1 -0
- package/dist/unified-provider/compat/legacy-extractors.d.ts +63 -0
- package/dist/unified-provider/compat/legacy-extractors.d.ts.map +1 -0
- package/dist/unified-provider/compat/legacy-extractors.js +80 -0
- package/dist/unified-provider/compat/legacy-extractors.js.map +1 -0
- package/dist/unified-provider/compat/legacy-scanner.d.ts +28 -0
- package/dist/unified-provider/compat/legacy-scanner.d.ts.map +1 -0
- package/dist/unified-provider/compat/legacy-scanner.js +31 -0
- package/dist/unified-provider/compat/legacy-scanner.js.map +1 -0
- package/dist/unified-provider/index.d.ts +28 -0
- package/dist/unified-provider/index.d.ts.map +1 -0
- package/dist/unified-provider/index.js +47 -0
- package/dist/unified-provider/index.js.map +1 -0
- package/dist/unified-provider/integration/index.d.ts +9 -0
- package/dist/unified-provider/integration/index.d.ts.map +1 -0
- package/dist/unified-provider/integration/index.js +11 -0
- package/dist/unified-provider/integration/index.js.map +1 -0
- package/dist/unified-provider/integration/unified-data-access-adapter.d.ts +75 -0
- package/dist/unified-provider/integration/unified-data-access-adapter.d.ts.map +1 -0
- package/dist/unified-provider/integration/unified-data-access-adapter.js +210 -0
- package/dist/unified-provider/integration/unified-data-access-adapter.js.map +1 -0
- package/dist/unified-provider/integration/unified-scanner.d.ts +90 -0
- package/dist/unified-provider/integration/unified-scanner.d.ts.map +1 -0
- package/dist/unified-provider/integration/unified-scanner.js +369 -0
- package/dist/unified-provider/integration/unified-scanner.js.map +1 -0
- package/dist/unified-provider/matching/base-matcher.d.ts +80 -0
- package/dist/unified-provider/matching/base-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/base-matcher.js +196 -0
- package/dist/unified-provider/matching/base-matcher.js.map +1 -0
- package/dist/unified-provider/matching/django-matcher.d.ts +32 -0
- package/dist/unified-provider/matching/django-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/django-matcher.js +107 -0
- package/dist/unified-provider/matching/django-matcher.js.map +1 -0
- package/dist/unified-provider/matching/drizzle-matcher.d.ts +25 -0
- package/dist/unified-provider/matching/drizzle-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/drizzle-matcher.js +123 -0
- package/dist/unified-provider/matching/drizzle-matcher.js.map +1 -0
- package/dist/unified-provider/matching/efcore-matcher.d.ts +27 -0
- package/dist/unified-provider/matching/efcore-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/efcore-matcher.js +88 -0
- package/dist/unified-provider/matching/efcore-matcher.js.map +1 -0
- package/dist/unified-provider/matching/eloquent-matcher.d.ts +32 -0
- package/dist/unified-provider/matching/eloquent-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/eloquent-matcher.js +162 -0
- package/dist/unified-provider/matching/eloquent-matcher.js.map +1 -0
- package/dist/unified-provider/matching/index.d.ts +19 -0
- package/dist/unified-provider/matching/index.d.ts.map +1 -0
- package/dist/unified-provider/matching/index.js +24 -0
- package/dist/unified-provider/matching/index.js.map +1 -0
- package/dist/unified-provider/matching/knex-matcher.d.ts +26 -0
- package/dist/unified-provider/matching/knex-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/knex-matcher.js +109 -0
- package/dist/unified-provider/matching/knex-matcher.js.map +1 -0
- package/dist/unified-provider/matching/matcher-registry.d.ts +55 -0
- package/dist/unified-provider/matching/matcher-registry.d.ts.map +1 -0
- package/dist/unified-provider/matching/matcher-registry.js +130 -0
- package/dist/unified-provider/matching/matcher-registry.js.map +1 -0
- package/dist/unified-provider/matching/mongoose-matcher.d.ts +30 -0
- package/dist/unified-provider/matching/mongoose-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/mongoose-matcher.js +132 -0
- package/dist/unified-provider/matching/mongoose-matcher.js.map +1 -0
- package/dist/unified-provider/matching/prisma-matcher.d.ts +31 -0
- package/dist/unified-provider/matching/prisma-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/prisma-matcher.js +123 -0
- package/dist/unified-provider/matching/prisma-matcher.js.map +1 -0
- package/dist/unified-provider/matching/raw-sql-matcher.d.ts +31 -0
- package/dist/unified-provider/matching/raw-sql-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/raw-sql-matcher.js +173 -0
- package/dist/unified-provider/matching/raw-sql-matcher.js.map +1 -0
- package/dist/unified-provider/matching/sequelize-matcher.d.ts +28 -0
- package/dist/unified-provider/matching/sequelize-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/sequelize-matcher.js +132 -0
- package/dist/unified-provider/matching/sequelize-matcher.js.map +1 -0
- package/dist/unified-provider/matching/spring-data-matcher.d.ts +32 -0
- package/dist/unified-provider/matching/spring-data-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/spring-data-matcher.js +112 -0
- package/dist/unified-provider/matching/spring-data-matcher.js.map +1 -0
- package/dist/unified-provider/matching/sqlalchemy-matcher.d.ts +32 -0
- package/dist/unified-provider/matching/sqlalchemy-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/sqlalchemy-matcher.js +201 -0
- package/dist/unified-provider/matching/sqlalchemy-matcher.js.map +1 -0
- package/dist/unified-provider/matching/supabase-matcher.d.ts +27 -0
- package/dist/unified-provider/matching/supabase-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/supabase-matcher.js +122 -0
- package/dist/unified-provider/matching/supabase-matcher.js.map +1 -0
- package/dist/unified-provider/matching/typeorm-matcher.d.ts +32 -0
- package/dist/unified-provider/matching/typeorm-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/typeorm-matcher.js +169 -0
- package/dist/unified-provider/matching/typeorm-matcher.js.map +1 -0
- package/dist/unified-provider/migration/deprecated-extractors.d.ts +104 -0
- package/dist/unified-provider/migration/deprecated-extractors.d.ts.map +1 -0
- package/dist/unified-provider/migration/deprecated-extractors.js +129 -0
- package/dist/unified-provider/migration/deprecated-extractors.js.map +1 -0
- package/dist/unified-provider/migration/deprecated-scanner.d.ts +40 -0
- package/dist/unified-provider/migration/deprecated-scanner.d.ts.map +1 -0
- package/dist/unified-provider/migration/deprecated-scanner.js +49 -0
- package/dist/unified-provider/migration/deprecated-scanner.js.map +1 -0
- package/dist/unified-provider/migration/index.d.ts +41 -0
- package/dist/unified-provider/migration/index.d.ts.map +1 -0
- package/dist/unified-provider/migration/index.js +43 -0
- package/dist/unified-provider/migration/index.js.map +1 -0
- package/dist/unified-provider/normalization/base-normalizer.d.ts +188 -0
- package/dist/unified-provider/normalization/base-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/base-normalizer.js +339 -0
- package/dist/unified-provider/normalization/base-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/csharp-normalizer.d.ts +58 -0
- package/dist/unified-provider/normalization/csharp-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/csharp-normalizer.js +467 -0
- package/dist/unified-provider/normalization/csharp-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/index.d.ts +23 -0
- package/dist/unified-provider/normalization/index.d.ts.map +1 -0
- package/dist/unified-provider/normalization/index.js +62 -0
- package/dist/unified-provider/normalization/index.js.map +1 -0
- package/dist/unified-provider/normalization/java-normalizer.d.ts +54 -0
- package/dist/unified-provider/normalization/java-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/java-normalizer.js +453 -0
- package/dist/unified-provider/normalization/java-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/php-normalizer.d.ts +54 -0
- package/dist/unified-provider/normalization/php-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/php-normalizer.js +489 -0
- package/dist/unified-provider/normalization/php-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/python-normalizer.d.ts +61 -0
- package/dist/unified-provider/normalization/python-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/python-normalizer.js +548 -0
- package/dist/unified-provider/normalization/python-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/typescript-normalizer.d.ts +60 -0
- package/dist/unified-provider/normalization/typescript-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/typescript-normalizer.js +608 -0
- package/dist/unified-provider/normalization/typescript-normalizer.js.map +1 -0
- package/dist/unified-provider/parsing/index.d.ts +5 -0
- package/dist/unified-provider/parsing/index.d.ts.map +1 -0
- package/dist/unified-provider/parsing/index.js +5 -0
- package/dist/unified-provider/parsing/index.js.map +1 -0
- package/dist/unified-provider/parsing/parser-registry.d.ts +70 -0
- package/dist/unified-provider/parsing/parser-registry.d.ts.map +1 -0
- package/dist/unified-provider/parsing/parser-registry.js +260 -0
- package/dist/unified-provider/parsing/parser-registry.js.map +1 -0
- package/dist/unified-provider/provider/index.d.ts +5 -0
- package/dist/unified-provider/provider/index.d.ts.map +1 -0
- package/dist/unified-provider/provider/index.js +5 -0
- package/dist/unified-provider/provider/index.js.map +1 -0
- package/dist/unified-provider/provider/unified-language-provider.d.ts +56 -0
- package/dist/unified-provider/provider/unified-language-provider.d.ts.map +1 -0
- package/dist/unified-provider/provider/unified-language-provider.js +212 -0
- package/dist/unified-provider/provider/unified-language-provider.js.map +1 -0
- package/dist/unified-provider/types.d.ts +389 -0
- package/dist/unified-provider/types.d.ts.map +1 -0
- package/dist/unified-provider/types.js +9 -0
- package/dist/unified-provider/types.js.map +1 -0
- package/dist/wrappers/clustering/clusterer.d.ts +43 -0
- package/dist/wrappers/clustering/clusterer.d.ts.map +1 -0
- package/dist/wrappers/clustering/clusterer.js +374 -0
- package/dist/wrappers/clustering/clusterer.js.map +1 -0
- package/dist/wrappers/clustering/exclusions.d.ts +47 -0
- package/dist/wrappers/clustering/exclusions.d.ts.map +1 -0
- package/dist/wrappers/clustering/exclusions.js +318 -0
- package/dist/wrappers/clustering/exclusions.js.map +1 -0
- package/dist/wrappers/clustering/index.d.ts +6 -0
- package/dist/wrappers/clustering/index.d.ts.map +1 -0
- package/dist/wrappers/clustering/index.js +6 -0
- package/dist/wrappers/clustering/index.js.map +1 -0
- package/dist/wrappers/detection/detector.d.ts +69 -0
- package/dist/wrappers/detection/detector.d.ts.map +1 -0
- package/dist/wrappers/detection/detector.js +279 -0
- package/dist/wrappers/detection/detector.js.map +1 -0
- package/dist/wrappers/detection/index.d.ts +5 -0
- package/dist/wrappers/detection/index.d.ts.map +1 -0
- package/dist/wrappers/detection/index.js +5 -0
- package/dist/wrappers/detection/index.js.map +1 -0
- package/dist/wrappers/export/index.d.ts +5 -0
- package/dist/wrappers/export/index.d.ts.map +1 -0
- package/dist/wrappers/export/index.js +5 -0
- package/dist/wrappers/export/index.js.map +1 -0
- package/dist/wrappers/export/json.d.ts +127 -0
- package/dist/wrappers/export/json.d.ts.map +1 -0
- package/dist/wrappers/export/json.js +160 -0
- package/dist/wrappers/export/json.js.map +1 -0
- package/dist/wrappers/index.d.ts +56 -0
- package/dist/wrappers/index.d.ts.map +1 -0
- package/dist/wrappers/index.js +159 -0
- package/dist/wrappers/index.js.map +1 -0
- package/dist/wrappers/integration/adapter.d.ts +52 -0
- package/dist/wrappers/integration/adapter.d.ts.map +1 -0
- package/dist/wrappers/integration/adapter.js +209 -0
- package/dist/wrappers/integration/adapter.js.map +1 -0
- package/dist/wrappers/integration/index.d.ts +9 -0
- package/dist/wrappers/integration/index.d.ts.map +1 -0
- package/dist/wrappers/integration/index.js +12 -0
- package/dist/wrappers/integration/index.js.map +1 -0
- package/dist/wrappers/integration/pattern-adapter.d.ts +52 -0
- package/dist/wrappers/integration/pattern-adapter.d.ts.map +1 -0
- package/dist/wrappers/integration/pattern-adapter.js +192 -0
- package/dist/wrappers/integration/pattern-adapter.js.map +1 -0
- package/dist/wrappers/integration/scanner.d.ts +85 -0
- package/dist/wrappers/integration/scanner.d.ts.map +1 -0
- package/dist/wrappers/integration/scanner.js +367 -0
- package/dist/wrappers/integration/scanner.js.map +1 -0
- package/dist/wrappers/primitives/discovery.d.ts +57 -0
- package/dist/wrappers/primitives/discovery.d.ts.map +1 -0
- package/dist/wrappers/primitives/discovery.js +389 -0
- package/dist/wrappers/primitives/discovery.js.map +1 -0
- package/dist/wrappers/primitives/index.d.ts +6 -0
- package/dist/wrappers/primitives/index.d.ts.map +1 -0
- package/dist/wrappers/primitives/index.js +6 -0
- package/dist/wrappers/primitives/index.js.map +1 -0
- package/dist/wrappers/primitives/registry.d.ts +63 -0
- package/dist/wrappers/primitives/registry.d.ts.map +1 -0
- package/dist/wrappers/primitives/registry.js +447 -0
- package/dist/wrappers/primitives/registry.js.map +1 -0
- package/dist/wrappers/types.d.ts +137 -0
- package/dist/wrappers/types.d.ts.map +1 -0
- package/dist/wrappers/types.js +7 -0
- package/dist/wrappers/types.js.map +1 -0
- package/package.json +23 -18
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hybrid Extractor Base
|
|
3
|
+
*
|
|
4
|
+
* Base class for extractors that combine tree-sitter (primary) with
|
|
5
|
+
* regex fallback for enterprise-grade extraction coverage.
|
|
6
|
+
*
|
|
7
|
+
* Pattern: Try tree-sitter first, fall back to regex on failure,
|
|
8
|
+
* merge results with confidence tracking.
|
|
9
|
+
*/
|
|
10
|
+
import type { CallGraphLanguage, FileExtractionResult } from '../types.js';
|
|
11
|
+
import type { BaseRegexExtractor } from './regex/base-regex-extractor.js';
|
|
12
|
+
import { type ExtractionQuality, type HybridExtractorConfig } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Extended file extraction result with quality metrics
|
|
15
|
+
*/
|
|
16
|
+
export interface HybridExtractionResult extends FileExtractionResult {
|
|
17
|
+
/** Extraction quality metrics */
|
|
18
|
+
quality: ExtractionQuality;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Abstract base class for hybrid extractors
|
|
22
|
+
*/
|
|
23
|
+
export declare abstract class HybridExtractorBase {
|
|
24
|
+
/** Language this extractor handles */
|
|
25
|
+
abstract readonly language: CallGraphLanguage;
|
|
26
|
+
/** File extensions this extractor handles */
|
|
27
|
+
abstract readonly extensions: string[];
|
|
28
|
+
/** Configuration */
|
|
29
|
+
protected config: Required<HybridExtractorConfig>;
|
|
30
|
+
/** Regex fallback extractor */
|
|
31
|
+
protected abstract regexExtractor: BaseRegexExtractor;
|
|
32
|
+
constructor(config?: HybridExtractorConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Check if this extractor can handle a file
|
|
35
|
+
*/
|
|
36
|
+
canHandle(filePath: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Extract with hybrid approach: tree-sitter first, regex fallback
|
|
39
|
+
*/
|
|
40
|
+
extract(source: string, filePath: string): HybridExtractionResult;
|
|
41
|
+
/**
|
|
42
|
+
* Extract using tree-sitter (implemented by subclass)
|
|
43
|
+
*/
|
|
44
|
+
protected abstract extractWithTreeSitter(source: string, filePath: string): FileExtractionResult | null;
|
|
45
|
+
/**
|
|
46
|
+
* Check if tree-sitter is available for this language
|
|
47
|
+
*/
|
|
48
|
+
protected abstract isTreeSitterAvailable(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Extract with regex fallback, merging with tree-sitter results
|
|
51
|
+
*/
|
|
52
|
+
private extractWithFallback;
|
|
53
|
+
/**
|
|
54
|
+
* Extract using regex only
|
|
55
|
+
*/
|
|
56
|
+
private extractWithRegexOnly;
|
|
57
|
+
/**
|
|
58
|
+
* Merge tree-sitter and regex results
|
|
59
|
+
*/
|
|
60
|
+
private mergeResults;
|
|
61
|
+
/**
|
|
62
|
+
* Merge functions, avoiding duplicates
|
|
63
|
+
*/
|
|
64
|
+
private mergeUniqueFunctions;
|
|
65
|
+
/**
|
|
66
|
+
* Merge calls, avoiding duplicates
|
|
67
|
+
*/
|
|
68
|
+
private mergeUniqueCalls;
|
|
69
|
+
/**
|
|
70
|
+
* Merge imports, avoiding duplicates
|
|
71
|
+
*/
|
|
72
|
+
private mergeUniqueImports;
|
|
73
|
+
/**
|
|
74
|
+
* Merge exports, avoiding duplicates
|
|
75
|
+
*/
|
|
76
|
+
private mergeUniqueExports;
|
|
77
|
+
/**
|
|
78
|
+
* Merge classes, avoiding duplicates
|
|
79
|
+
*/
|
|
80
|
+
private mergeUniqueClasses;
|
|
81
|
+
/**
|
|
82
|
+
* Check if extraction result has good coverage
|
|
83
|
+
*/
|
|
84
|
+
private hasGoodCoverage;
|
|
85
|
+
/**
|
|
86
|
+
* Create quality metrics for tree-sitter extraction
|
|
87
|
+
*/
|
|
88
|
+
private createTreeSitterQuality;
|
|
89
|
+
/**
|
|
90
|
+
* Create error result
|
|
91
|
+
*/
|
|
92
|
+
private createErrorResult;
|
|
93
|
+
/**
|
|
94
|
+
* Create empty result
|
|
95
|
+
*/
|
|
96
|
+
private createEmptyResult;
|
|
97
|
+
/**
|
|
98
|
+
* Get file extension
|
|
99
|
+
*/
|
|
100
|
+
protected getExtension(filePath: string): string;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=hybrid-extractor-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid-extractor-base.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/hybrid-extractor-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EAMrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAK3B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,iCAAiC;IACjC,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;GAEG;AACH,8BAAsB,mBAAmB;IACvC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAE9C,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAEvC,oBAAoB;IACpB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAElD,+BAA+B;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;gBAE1C,MAAM,CAAC,EAAE,qBAAqB;IAI1C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKpC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,sBAAsB;IAgDjE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,oBAAoB,GAAG,IAAI;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,OAAO;IAEnD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAIjD"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hybrid Extractor Base
|
|
3
|
+
*
|
|
4
|
+
* Base class for extractors that combine tree-sitter (primary) with
|
|
5
|
+
* regex fallback for enterprise-grade extraction coverage.
|
|
6
|
+
*
|
|
7
|
+
* Pattern: Try tree-sitter first, fall back to regex on failure,
|
|
8
|
+
* merge results with confidence tracking.
|
|
9
|
+
*/
|
|
10
|
+
import { DEFAULT_HYBRID_CONFIG, EXTRACTION_CONFIDENCE, createDefaultQuality, mergeQualities, } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Abstract base class for hybrid extractors
|
|
13
|
+
*/
|
|
14
|
+
export class HybridExtractorBase {
|
|
15
|
+
/** Configuration */
|
|
16
|
+
config;
|
|
17
|
+
constructor(config) {
|
|
18
|
+
this.config = { ...DEFAULT_HYBRID_CONFIG, ...config };
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if this extractor can handle a file
|
|
22
|
+
*/
|
|
23
|
+
canHandle(filePath) {
|
|
24
|
+
const ext = this.getExtension(filePath);
|
|
25
|
+
return this.extensions.includes(ext);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Extract with hybrid approach: tree-sitter first, regex fallback
|
|
29
|
+
*/
|
|
30
|
+
extract(source, filePath) {
|
|
31
|
+
const startTime = performance.now();
|
|
32
|
+
// Try tree-sitter first if enabled
|
|
33
|
+
if (this.config.enableTreeSitter) {
|
|
34
|
+
try {
|
|
35
|
+
const treeSitterResult = this.extractWithTreeSitter(source, filePath);
|
|
36
|
+
// If tree-sitter succeeded with good results, return them
|
|
37
|
+
if (treeSitterResult && treeSitterResult.errors.length === 0) {
|
|
38
|
+
const quality = this.createTreeSitterQuality(treeSitterResult, startTime);
|
|
39
|
+
// Check if we got meaningful results
|
|
40
|
+
if (this.hasGoodCoverage(treeSitterResult)) {
|
|
41
|
+
return { ...treeSitterResult, quality };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Tree-sitter had errors or poor coverage - try regex fallback
|
|
45
|
+
if (this.config.enableRegexFallback) {
|
|
46
|
+
return this.extractWithFallback(source, filePath, treeSitterResult, startTime);
|
|
47
|
+
}
|
|
48
|
+
// No fallback enabled, return tree-sitter result as-is
|
|
49
|
+
if (treeSitterResult) {
|
|
50
|
+
const quality = this.createTreeSitterQuality(treeSitterResult, startTime);
|
|
51
|
+
return { ...treeSitterResult, quality };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// Tree-sitter failed completely - use regex fallback
|
|
56
|
+
if (this.config.enableRegexFallback) {
|
|
57
|
+
return this.extractWithRegexOnly(source, filePath, startTime, error);
|
|
58
|
+
}
|
|
59
|
+
// No fallback, return error result
|
|
60
|
+
return this.createErrorResult(filePath, error, startTime);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Tree-sitter disabled - use regex only
|
|
64
|
+
if (this.config.enableRegexFallback) {
|
|
65
|
+
return this.extractWithRegexOnly(source, filePath, startTime);
|
|
66
|
+
}
|
|
67
|
+
// Nothing enabled - return empty result
|
|
68
|
+
return this.createEmptyResult(filePath, startTime);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Extract with regex fallback, merging with tree-sitter results
|
|
72
|
+
*/
|
|
73
|
+
extractWithFallback(source, filePath, treeSitterResult, startTime) {
|
|
74
|
+
// Get regex results
|
|
75
|
+
const regexResult = this.regexExtractor.extract(source, filePath);
|
|
76
|
+
if (!treeSitterResult) {
|
|
77
|
+
// No tree-sitter result - use regex only
|
|
78
|
+
return regexResult;
|
|
79
|
+
}
|
|
80
|
+
// Merge results
|
|
81
|
+
const merged = this.mergeResults(treeSitterResult, regexResult);
|
|
82
|
+
// Create merged quality
|
|
83
|
+
const treeSitterQuality = this.createTreeSitterQuality(treeSitterResult, startTime);
|
|
84
|
+
const mergedQuality = mergeQualities(treeSitterQuality, regexResult.quality);
|
|
85
|
+
mergedQuality.extractionTimeMs = performance.now() - startTime;
|
|
86
|
+
return { ...merged, quality: mergedQuality };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Extract using regex only
|
|
90
|
+
*/
|
|
91
|
+
extractWithRegexOnly(source, filePath, startTime, treeSitterError) {
|
|
92
|
+
const result = this.regexExtractor.extract(source, filePath);
|
|
93
|
+
// Add tree-sitter error to warnings if present
|
|
94
|
+
if (treeSitterError) {
|
|
95
|
+
const errorMsg = treeSitterError instanceof Error
|
|
96
|
+
? treeSitterError.message
|
|
97
|
+
: 'Tree-sitter unavailable';
|
|
98
|
+
result.quality.warnings.push(`Tree-sitter fallback: ${errorMsg}`);
|
|
99
|
+
}
|
|
100
|
+
result.quality.usedFallback = true;
|
|
101
|
+
result.quality.extractionTimeMs = performance.now() - startTime;
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Merge tree-sitter and regex results
|
|
106
|
+
*/
|
|
107
|
+
mergeResults(primary, fallback) {
|
|
108
|
+
// Start with primary results
|
|
109
|
+
const merged = {
|
|
110
|
+
file: primary.file,
|
|
111
|
+
language: primary.language,
|
|
112
|
+
functions: [...primary.functions],
|
|
113
|
+
calls: [...primary.calls],
|
|
114
|
+
imports: [...primary.imports],
|
|
115
|
+
exports: [...primary.exports],
|
|
116
|
+
classes: [...primary.classes],
|
|
117
|
+
errors: [...primary.errors],
|
|
118
|
+
};
|
|
119
|
+
// Add unique items from fallback
|
|
120
|
+
merged.functions = this.mergeUniqueFunctions(merged.functions, fallback.functions);
|
|
121
|
+
merged.calls = this.mergeUniqueCalls(merged.calls, fallback.calls);
|
|
122
|
+
merged.imports = this.mergeUniqueImports(merged.imports, fallback.imports);
|
|
123
|
+
merged.exports = this.mergeUniqueExports(merged.exports, fallback.exports);
|
|
124
|
+
merged.classes = this.mergeUniqueClasses(merged.classes, fallback.classes);
|
|
125
|
+
return merged;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Merge functions, avoiding duplicates
|
|
129
|
+
*/
|
|
130
|
+
mergeUniqueFunctions(primary, fallback) {
|
|
131
|
+
const seen = new Set(primary.map(f => `${f.name}:${f.startLine}`));
|
|
132
|
+
const result = [...primary];
|
|
133
|
+
for (const func of fallback) {
|
|
134
|
+
const key = `${func.name}:${func.startLine}`;
|
|
135
|
+
if (!seen.has(key)) {
|
|
136
|
+
seen.add(key);
|
|
137
|
+
result.push(func);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Merge calls, avoiding duplicates
|
|
144
|
+
*/
|
|
145
|
+
mergeUniqueCalls(primary, fallback) {
|
|
146
|
+
const seen = new Set(primary.map(c => `${c.calleeName}:${c.line}`));
|
|
147
|
+
const result = [...primary];
|
|
148
|
+
for (const call of fallback) {
|
|
149
|
+
const key = `${call.calleeName}:${call.line}`;
|
|
150
|
+
if (!seen.has(key)) {
|
|
151
|
+
seen.add(key);
|
|
152
|
+
result.push(call);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Merge imports, avoiding duplicates
|
|
159
|
+
*/
|
|
160
|
+
mergeUniqueImports(primary, fallback) {
|
|
161
|
+
const seen = new Set(primary.map(i => `${i.source}:${i.line}`));
|
|
162
|
+
const result = [...primary];
|
|
163
|
+
for (const imp of fallback) {
|
|
164
|
+
const key = `${imp.source}:${imp.line}`;
|
|
165
|
+
if (!seen.has(key)) {
|
|
166
|
+
seen.add(key);
|
|
167
|
+
result.push(imp);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return result;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Merge exports, avoiding duplicates
|
|
174
|
+
*/
|
|
175
|
+
mergeUniqueExports(primary, fallback) {
|
|
176
|
+
const seen = new Set(primary.map(e => `${e.name}:${e.line}`));
|
|
177
|
+
const result = [...primary];
|
|
178
|
+
for (const exp of fallback) {
|
|
179
|
+
const key = `${exp.name}:${exp.line}`;
|
|
180
|
+
if (!seen.has(key)) {
|
|
181
|
+
seen.add(key);
|
|
182
|
+
result.push(exp);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return result;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Merge classes, avoiding duplicates
|
|
189
|
+
*/
|
|
190
|
+
mergeUniqueClasses(primary, fallback) {
|
|
191
|
+
const seen = new Set(primary.map(c => `${c.name}:${c.startLine}`));
|
|
192
|
+
const result = [...primary];
|
|
193
|
+
for (const cls of fallback) {
|
|
194
|
+
const key = `${cls.name}:${cls.startLine}`;
|
|
195
|
+
if (!seen.has(key)) {
|
|
196
|
+
seen.add(key);
|
|
197
|
+
result.push(cls);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Check if extraction result has good coverage
|
|
204
|
+
*/
|
|
205
|
+
hasGoodCoverage(result) {
|
|
206
|
+
// Consider it good if we found at least some functions or classes
|
|
207
|
+
return result.functions.length > 0 || result.classes.length > 0;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Create quality metrics for tree-sitter extraction
|
|
211
|
+
*/
|
|
212
|
+
createTreeSitterQuality(result, startTime) {
|
|
213
|
+
const quality = createDefaultQuality();
|
|
214
|
+
quality.method = 'tree-sitter';
|
|
215
|
+
quality.confidence = result.errors.length === 0
|
|
216
|
+
? EXTRACTION_CONFIDENCE.TREE_SITTER
|
|
217
|
+
: EXTRACTION_CONFIDENCE.REGEX;
|
|
218
|
+
quality.itemsExtracted =
|
|
219
|
+
result.functions.length +
|
|
220
|
+
result.classes.length +
|
|
221
|
+
result.imports.length +
|
|
222
|
+
result.exports.length +
|
|
223
|
+
result.calls.length;
|
|
224
|
+
quality.parseErrors = result.errors.length;
|
|
225
|
+
quality.coveragePercent = result.errors.length === 0 ? 95 : 70;
|
|
226
|
+
quality.extractionTimeMs = performance.now() - startTime;
|
|
227
|
+
quality.usedFallback = false;
|
|
228
|
+
return quality;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Create error result
|
|
232
|
+
*/
|
|
233
|
+
createErrorResult(filePath, error, startTime) {
|
|
234
|
+
const errorMsg = error instanceof Error ? error.message : 'Unknown extraction error';
|
|
235
|
+
return {
|
|
236
|
+
file: filePath,
|
|
237
|
+
language: this.language,
|
|
238
|
+
functions: [],
|
|
239
|
+
calls: [],
|
|
240
|
+
imports: [],
|
|
241
|
+
exports: [],
|
|
242
|
+
classes: [],
|
|
243
|
+
errors: [errorMsg],
|
|
244
|
+
quality: {
|
|
245
|
+
confidence: EXTRACTION_CONFIDENCE.UNKNOWN,
|
|
246
|
+
method: 'tree-sitter',
|
|
247
|
+
coveragePercent: 0,
|
|
248
|
+
itemsExtracted: 0,
|
|
249
|
+
parseErrors: 1,
|
|
250
|
+
warnings: [],
|
|
251
|
+
usedFallback: false,
|
|
252
|
+
extractionTimeMs: performance.now() - startTime,
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Create empty result
|
|
258
|
+
*/
|
|
259
|
+
createEmptyResult(filePath, startTime) {
|
|
260
|
+
return {
|
|
261
|
+
file: filePath,
|
|
262
|
+
language: this.language,
|
|
263
|
+
functions: [],
|
|
264
|
+
calls: [],
|
|
265
|
+
imports: [],
|
|
266
|
+
exports: [],
|
|
267
|
+
classes: [],
|
|
268
|
+
errors: ['No extraction method available'],
|
|
269
|
+
quality: {
|
|
270
|
+
confidence: 0,
|
|
271
|
+
method: 'tree-sitter',
|
|
272
|
+
coveragePercent: 0,
|
|
273
|
+
itemsExtracted: 0,
|
|
274
|
+
parseErrors: 0,
|
|
275
|
+
warnings: ['No extraction method enabled'],
|
|
276
|
+
usedFallback: false,
|
|
277
|
+
extractionTimeMs: performance.now() - startTime,
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get file extension
|
|
283
|
+
*/
|
|
284
|
+
getExtension(filePath) {
|
|
285
|
+
const lastDot = filePath.lastIndexOf('.');
|
|
286
|
+
return lastDot >= 0 ? filePath.slice(lastDot) : '';
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=hybrid-extractor-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid-extractor-base.js","sourceRoot":"","sources":["../../../src/call-graph/extractors/hybrid-extractor-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,EAGL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,MAAM,OAAgB,mBAAmB;IAOvC,oBAAoB;IACV,MAAM,CAAkC;IAKlD,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,QAAgB;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAEtE,0DAA0D;gBAC1D,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;oBAE1E,qCAAqC;oBACrC,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAC3C,OAAO,EAAE,GAAG,gBAAgB,EAAE,OAAO,EAAE,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBACjF,CAAC;gBAED,uDAAuD;gBACvD,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;oBAC1E,OAAO,EAAE,GAAG,gBAAgB,EAAE,OAAO,EAAE,CAAC;gBAC1C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qDAAqD;gBACrD,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;gBAED,mCAAmC;gBACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC;QAED,wCAAwC;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAeD;;OAEG;IACK,mBAAmB,CACzB,MAAc,EACd,QAAgB,EAChB,gBAA6C,EAC7C,SAAiB;QAEjB,oBAAoB;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,yCAAyC;YACzC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAEhE,wBAAwB;QACxB,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACpF,MAAM,aAAa,GAAG,cAAc,CAAC,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7E,aAAa,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE/D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,MAAc,EACd,QAAgB,EAChB,SAAiB,EACjB,eAAyB;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE7D,+CAA+C;QAC/C,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,eAAe,YAAY,KAAK;gBAC/C,CAAC,CAAC,eAAe,CAAC,OAAO;gBACzB,CAAC,CAAC,yBAAyB,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEhE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,YAAY,CAClB,OAA6B,EAC7B,QAA+D;QAE/D,6BAA6B;QAC7B,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YACjC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SAC5B,CAAC;QAEF,iCAAiC;QACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,OAA6B,EAC7B,QAA8B;QAE9B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,OAAyB,EACzB,QAA0B;QAE1B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAA2B,EAC3B,QAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAA2B,EAC3B,QAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,OAA0B,EAC1B,QAA2B;QAE3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAA4B;QAClD,kEAAkE;QAClE,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,MAA4B,EAC5B,SAAiB;QAEjB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;QAC/B,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAC7C,CAAC,CAAC,qBAAqB,CAAC,WAAW;YACnC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAChC,OAAO,CAAC,cAAc;YACpB,MAAM,CAAC,SAAS,CAAC,MAAM;gBACvB,MAAM,CAAC,OAAO,CAAC,MAAM;gBACrB,MAAM,CAAC,OAAO,CAAC,MAAM;gBACrB,MAAM,CAAC,OAAO,CAAC,MAAM;gBACrB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3C,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzD,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;QAE7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,QAAgB,EAChB,KAAc,EACd,SAAiB;QAEjB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAErF,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC,QAAQ,CAAC;YAClB,OAAO,EAAE;gBACP,UAAU,EAAE,qBAAqB,CAAC,OAAO;gBACzC,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,CAAC;gBAClB,cAAc,EAAE,CAAC;gBACjB,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,KAAK;gBACnB,gBAAgB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;aAChD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAgB,EAAE,SAAiB;QAC3D,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC,gCAAgC,CAAC;YAC1C,OAAO,EAAE;gBACP,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,aAAa;gBACrB,eAAe,EAAE,CAAC;gBAClB,cAAc,EAAE,CAAC;gBACjB,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,CAAC,8BAA8B,CAAC;gBAC1C,YAAY,EAAE,KAAK;gBACnB,gBAAgB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;aAChD;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,QAAgB;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
* Call Graph Extractors
|
|
3
3
|
*
|
|
4
4
|
* Language-specific extractors for building call graphs.
|
|
5
|
+
*
|
|
6
|
+
* NOTE: Data access extraction now uses the unified provider system.
|
|
7
|
+
* The legacy *DataAccessExtractor classes are re-exported from the compat layer
|
|
8
|
+
* for backward compatibility, but internally delegate to UnifiedLanguageProvider.
|
|
9
|
+
*
|
|
10
|
+
* ENTERPRISE FALLBACK: All extractors now support regex fallback when tree-sitter
|
|
11
|
+
* is unavailable. Use the hybrid extractors for maximum extraction coverage.
|
|
5
12
|
*/
|
|
6
13
|
export { BaseCallGraphExtractor } from './base-extractor.js';
|
|
7
14
|
export { TypeScriptCallGraphExtractor } from './typescript-extractor.js';
|
|
@@ -9,18 +16,15 @@ export { PythonCallGraphExtractor } from './python-extractor.js';
|
|
|
9
16
|
export { CSharpCallGraphExtractor } from './csharp-extractor.js';
|
|
10
17
|
export { JavaCallGraphExtractor } from './java-extractor.js';
|
|
11
18
|
export { PhpCallGraphExtractor } from './php-extractor.js';
|
|
19
|
+
export { HybridExtractorBase, type HybridExtractionResult } from './hybrid-extractor-base.js';
|
|
20
|
+
export { PythonHybridExtractor, createPythonHybridExtractor } from './python-hybrid-extractor.js';
|
|
21
|
+
export { TypeScriptHybridExtractor, createTypeScriptHybridExtractor } from './typescript-hybrid-extractor.js';
|
|
22
|
+
export { PhpHybridExtractor, createPhpHybridExtractor } from './php-hybrid-extractor.js';
|
|
23
|
+
export { JavaHybridExtractor, createJavaHybridExtractor } from './java-hybrid-extractor.js';
|
|
24
|
+
export { CSharpHybridExtractor, createCSharpHybridExtractor } from './csharp-hybrid-extractor.js';
|
|
25
|
+
export { BaseRegexExtractor, TypeScriptRegexExtractor, PythonRegexExtractor, PhpRegexExtractor, JavaRegexExtractor, CSharpRegexExtractor, getRegexExtractor, getRegexExtractorForFile, } from './regex/index.js';
|
|
26
|
+
export { type ExtractionQuality, type ExtractionMethod, type RegexPattern, type LanguagePatterns, type HybridExtractorConfig, EXTRACTION_CONFIDENCE, DEFAULT_HYBRID_CONFIG, createDefaultQuality, mergeQualities, } from './types.js';
|
|
12
27
|
export { BaseDataAccessExtractor, type DataAccessExtractionResult, } from './data-access-extractor.js';
|
|
13
|
-
export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, } from '
|
|
14
|
-
export {
|
|
15
|
-
export { CSharpDataAccessExtractor, createCSharpDataAccessExtractor, } from './csharp-data-access-extractor.js';
|
|
16
|
-
export { JavaDataAccessExtractor, createJavaDataAccessExtractor, } from './java-data-access-extractor.js';
|
|
17
|
-
export { PhpDataAccessExtractor, createPhpDataAccessExtractor, } from './php-data-access-extractor.js';
|
|
18
|
-
export { SemanticDataAccessScanner, createSemanticDataAccessScanner, detectProjectStack, type SemanticScannerConfig, type SemanticScanResult, type DetectedStack, } from './semantic-data-access-scanner.js';
|
|
19
|
-
export declare function createDataAccessExtractors(): {
|
|
20
|
-
typescript: import("./typescript-data-access-extractor.js").TypeScriptDataAccessExtractor;
|
|
21
|
-
python: import("./python-data-access-extractor.js").PythonDataAccessExtractor;
|
|
22
|
-
csharp: import("./csharp-data-access-extractor.js").CSharpDataAccessExtractor;
|
|
23
|
-
java: import("./java-data-access-extractor.js").JavaDataAccessExtractor;
|
|
24
|
-
php: import("./php-data-access-extractor.js").PhpDataAccessExtractor;
|
|
25
|
-
};
|
|
28
|
+
export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, PythonDataAccessExtractor, createPythonDataAccessExtractor, CSharpDataAccessExtractor, createCSharpDataAccessExtractor, JavaDataAccessExtractor, createJavaDataAccessExtractor, PhpDataAccessExtractor, createPhpDataAccessExtractor, createDataAccessExtractors, SemanticDataAccessScanner, createSemanticDataAccessScanner, type SemanticScannerConfig, type SemanticScanResult, type DetectedStack, } from '../../unified-provider/compat/index.js';
|
|
29
|
+
export { detectProjectStack } from '../../unified-provider/integration/unified-scanner.js';
|
|
26
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAGlG,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,uBAAuB,EACvB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC"}
|
|
@@ -2,35 +2,36 @@
|
|
|
2
2
|
* Call Graph Extractors
|
|
3
3
|
*
|
|
4
4
|
* Language-specific extractors for building call graphs.
|
|
5
|
+
*
|
|
6
|
+
* NOTE: Data access extraction now uses the unified provider system.
|
|
7
|
+
* The legacy *DataAccessExtractor classes are re-exported from the compat layer
|
|
8
|
+
* for backward compatibility, but internally delegate to UnifiedLanguageProvider.
|
|
9
|
+
*
|
|
10
|
+
* ENTERPRISE FALLBACK: All extractors now support regex fallback when tree-sitter
|
|
11
|
+
* is unavailable. Use the hybrid extractors for maximum extraction coverage.
|
|
5
12
|
*/
|
|
13
|
+
// Call Graph Extractors (still language-specific - needed for function/call extraction)
|
|
6
14
|
export { BaseCallGraphExtractor } from './base-extractor.js';
|
|
7
15
|
export { TypeScriptCallGraphExtractor } from './typescript-extractor.js';
|
|
8
16
|
export { PythonCallGraphExtractor } from './python-extractor.js';
|
|
9
17
|
export { CSharpCallGraphExtractor } from './csharp-extractor.js';
|
|
10
18
|
export { JavaCallGraphExtractor } from './java-extractor.js';
|
|
11
19
|
export { PhpCallGraphExtractor } from './php-extractor.js';
|
|
12
|
-
//
|
|
20
|
+
// Hybrid Extractors (tree-sitter + regex fallback)
|
|
21
|
+
export { HybridExtractorBase } from './hybrid-extractor-base.js';
|
|
22
|
+
export { PythonHybridExtractor, createPythonHybridExtractor } from './python-hybrid-extractor.js';
|
|
23
|
+
export { TypeScriptHybridExtractor, createTypeScriptHybridExtractor } from './typescript-hybrid-extractor.js';
|
|
24
|
+
export { PhpHybridExtractor, createPhpHybridExtractor } from './php-hybrid-extractor.js';
|
|
25
|
+
export { JavaHybridExtractor, createJavaHybridExtractor } from './java-hybrid-extractor.js';
|
|
26
|
+
export { CSharpHybridExtractor, createCSharpHybridExtractor } from './csharp-hybrid-extractor.js';
|
|
27
|
+
// Regex Fallback Extractors
|
|
28
|
+
export { BaseRegexExtractor, TypeScriptRegexExtractor, PythonRegexExtractor, PhpRegexExtractor, JavaRegexExtractor, CSharpRegexExtractor, getRegexExtractor, getRegexExtractorForFile, } from './regex/index.js';
|
|
29
|
+
// Extraction Types
|
|
30
|
+
export { EXTRACTION_CONFIDENCE, DEFAULT_HYBRID_CONFIG, createDefaultQuality, mergeQualities, } from './types.js';
|
|
31
|
+
// Data Access Extractors - now use unified provider via compat layer
|
|
13
32
|
export { BaseDataAccessExtractor, } from './data-access-extractor.js';
|
|
14
|
-
export
|
|
15
|
-
export { PythonDataAccessExtractor, createPythonDataAccessExtractor, } from '
|
|
16
|
-
|
|
17
|
-
export {
|
|
18
|
-
export { PhpDataAccessExtractor, createPhpDataAccessExtractor, } from './php-data-access-extractor.js';
|
|
19
|
-
// Semantic Data Access Scanner (unified scanner using tree-sitter extractors)
|
|
20
|
-
export { SemanticDataAccessScanner, createSemanticDataAccessScanner, detectProjectStack, } from './semantic-data-access-scanner.js';
|
|
21
|
-
// Convenience factory for all data access extractors
|
|
22
|
-
import { createTypeScriptDataAccessExtractor } from './typescript-data-access-extractor.js';
|
|
23
|
-
import { createPythonDataAccessExtractor } from './python-data-access-extractor.js';
|
|
24
|
-
import { createCSharpDataAccessExtractor } from './csharp-data-access-extractor.js';
|
|
25
|
-
import { createJavaDataAccessExtractor } from './java-data-access-extractor.js';
|
|
26
|
-
import { createPhpDataAccessExtractor } from './php-data-access-extractor.js';
|
|
27
|
-
export function createDataAccessExtractors() {
|
|
28
|
-
return {
|
|
29
|
-
typescript: createTypeScriptDataAccessExtractor(),
|
|
30
|
-
python: createPythonDataAccessExtractor(),
|
|
31
|
-
csharp: createCSharpDataAccessExtractor(),
|
|
32
|
-
java: createJavaDataAccessExtractor(),
|
|
33
|
-
php: createPhpDataAccessExtractor(),
|
|
34
|
-
};
|
|
35
|
-
}
|
|
33
|
+
// Re-export from compat layer (delegates to UnifiedLanguageProvider)
|
|
34
|
+
export { TypeScriptDataAccessExtractor, createTypeScriptDataAccessExtractor, PythonDataAccessExtractor, createPythonDataAccessExtractor, CSharpDataAccessExtractor, createCSharpDataAccessExtractor, JavaDataAccessExtractor, createJavaDataAccessExtractor, PhpDataAccessExtractor, createPhpDataAccessExtractor, createDataAccessExtractors, SemanticDataAccessScanner, createSemanticDataAccessScanner, } from '../../unified-provider/compat/index.js';
|
|
35
|
+
// Also export detectProjectStack from unified provider
|
|
36
|
+
export { detectProjectStack } from '../../unified-provider/integration/unified-scanner.js';
|
|
36
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/call-graph/extractors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,wFAAwF;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,mDAAmD;AACnD,OAAO,EAAE,mBAAmB,EAA+B,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAElG,4BAA4B;AAC5B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EAML,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,qEAAqE;AACrE,OAAO,EACL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AAEpC,qEAAqE;AACrE,OAAO,EACL,6BAA6B,EAC7B,mCAAmC,EACnC,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,EAC/B,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,GAIhC,MAAM,wCAAwC,CAAC;AAEhD,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Java Semantic Data Access Extractor
|
|
3
3
|
*
|
|
4
|
+
* @deprecated This file is deprecated. Use the unified provider system instead:
|
|
5
|
+
* - Import from 'driftdetect-core' or '../unified-provider/compat/index.js'
|
|
6
|
+
* - The compat layer provides the same API but delegates to UnifiedLanguageProvider
|
|
7
|
+
*
|
|
8
|
+
* This file is kept for reference but is no longer exported from the main index.
|
|
9
|
+
* All data access extraction should go through the unified provider.
|
|
10
|
+
*
|
|
4
11
|
* Extracts data access points from Java using tree-sitter.
|
|
5
12
|
* Provides accurate, semantic-aware detection of database operations.
|
|
6
13
|
*
|
|
@@ -15,6 +22,7 @@ import { BaseDataAccessExtractor, type DataAccessExtractionResult } from './data
|
|
|
15
22
|
import type { CallGraphLanguage } from '../types.js';
|
|
16
23
|
/**
|
|
17
24
|
* Java data access extractor using tree-sitter
|
|
25
|
+
* @deprecated Use UnifiedDataAccessAdapter from unified-provider instead
|
|
18
26
|
*/
|
|
19
27
|
export declare class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
20
28
|
readonly language: CallGraphLanguage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java-data-access-extractor.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/java-data-access-extractor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"java-data-access-extractor.d.ts","sourceRoot":"","sources":["../../../src/call-graph/extractors/java-data-access-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,uBAAuB,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQrD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,uBAAuB;IAClE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAU;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAa;IAE1C,OAAO,CAAC,MAAM,CAAiC;IAE/C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,0BAA0B;IAuBrE;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmDtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmF5B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAiCrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA+DlC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IA8DlC;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6DtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiEtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAsB1B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Java Semantic Data Access Extractor
|
|
3
3
|
*
|
|
4
|
+
* @deprecated This file is deprecated. Use the unified provider system instead:
|
|
5
|
+
* - Import from 'driftdetect-core' or '../unified-provider/compat/index.js'
|
|
6
|
+
* - The compat layer provides the same API but delegates to UnifiedLanguageProvider
|
|
7
|
+
*
|
|
8
|
+
* This file is kept for reference but is no longer exported from the main index.
|
|
9
|
+
* All data access extraction should go through the unified provider.
|
|
10
|
+
*
|
|
4
11
|
* Extracts data access points from Java using tree-sitter.
|
|
5
12
|
* Provides accurate, semantic-aware detection of database operations.
|
|
6
13
|
*
|
|
@@ -15,6 +22,7 @@ import { BaseDataAccessExtractor } from './data-access-extractor.js';
|
|
|
15
22
|
import { isJavaTreeSitterAvailable, createJavaParser, } from '../../parsers/tree-sitter/java-loader.js';
|
|
16
23
|
/**
|
|
17
24
|
* Java data access extractor using tree-sitter
|
|
25
|
+
* @deprecated Use UnifiedDataAccessAdapter from unified-provider instead
|
|
18
26
|
*/
|
|
19
27
|
export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
20
28
|
language = 'java';
|
|
@@ -207,7 +215,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
|
207
215
|
line: node.startPosition.row + 1,
|
|
208
216
|
column: node.startPosition.column,
|
|
209
217
|
context: node.text.slice(0, 200),
|
|
210
|
-
|
|
218
|
+
framework: 'spring-data',
|
|
219
|
+
tableFromLiteral: false, // Table name inferred from repository name
|
|
211
220
|
});
|
|
212
221
|
}
|
|
213
222
|
/**
|
|
@@ -294,7 +303,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
|
294
303
|
line: node.startPosition.row + 1,
|
|
295
304
|
column: node.startPosition.column,
|
|
296
305
|
context: node.text.slice(0, 200),
|
|
297
|
-
|
|
306
|
+
framework: 'hibernate',
|
|
307
|
+
tableFromLiteral: false, // Table name inferred from entity class
|
|
298
308
|
});
|
|
299
309
|
}
|
|
300
310
|
/**
|
|
@@ -350,7 +360,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
|
350
360
|
line: node.startPosition.row + 1,
|
|
351
361
|
column: node.startPosition.column,
|
|
352
362
|
context: node.text.slice(0, 200),
|
|
353
|
-
|
|
363
|
+
framework: 'hibernate',
|
|
364
|
+
tableFromLiteral: false, // Table name inferred from entity class
|
|
354
365
|
});
|
|
355
366
|
}
|
|
356
367
|
/**
|
|
@@ -405,7 +416,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
|
405
416
|
column: node.startPosition.column,
|
|
406
417
|
context: node.text.slice(0, 200),
|
|
407
418
|
isRawSql: true,
|
|
408
|
-
|
|
419
|
+
framework: 'raw-sql',
|
|
420
|
+
tableFromLiteral: true, // Table name extracted from SQL string
|
|
409
421
|
});
|
|
410
422
|
}
|
|
411
423
|
/**
|
|
@@ -467,7 +479,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
|
467
479
|
line: node.startPosition.row + 1,
|
|
468
480
|
column: node.startPosition.column,
|
|
469
481
|
context: node.text.slice(0, 200),
|
|
470
|
-
|
|
482
|
+
framework: 'jooq',
|
|
483
|
+
tableFromLiteral: false, // Table name from jOOQ constant
|
|
471
484
|
});
|
|
472
485
|
}
|
|
473
486
|
/**
|
|
@@ -533,7 +546,8 @@ export class JavaDataAccessExtractor extends BaseDataAccessExtractor {
|
|
|
533
546
|
column: node.startPosition.column,
|
|
534
547
|
context: `@${annotationName}("${sqlText.slice(0, 100)}...")`,
|
|
535
548
|
isRawSql: true,
|
|
536
|
-
|
|
549
|
+
framework: 'raw-sql',
|
|
550
|
+
tableFromLiteral: true, // Table name extracted from SQL annotation
|
|
537
551
|
});
|
|
538
552
|
const exists = result.accessPoints.some(ap => ap.id === accessPoint.id);
|
|
539
553
|
if (!exists) {
|