driftdetect-core 0.4.5 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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.map +1 -1
- package/dist/call-graph/extractors/csharp-data-access-extractor.js +10 -5
- package/dist/call-graph/extractors/csharp-data-access-extractor.js.map +1 -1
- 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/java-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/java-data-access-extractor.js +12 -6
- package/dist/call-graph/extractors/java-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/php-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/php-data-access-extractor.js +12 -6
- package/dist/call-graph/extractors/php-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/python-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/python-data-access-extractor.js +12 -6
- package/dist/call-graph/extractors/python-data-access-extractor.js.map +1 -1
- package/dist/call-graph/extractors/semantic-data-access-scanner.d.ts +4 -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 +46 -2
- package/dist/call-graph/extractors/semantic-data-access-scanner.js.map +1 -1
- package/dist/call-graph/extractors/typescript-data-access-extractor.d.ts.map +1 -1
- package/dist/call-graph/extractors/typescript-data-access-extractor.js +23 -10
- package/dist/call-graph/extractors/typescript-data-access-extractor.js.map +1 -1
- 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/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.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/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/types.d.ts +6 -3
- package/dist/store/types.d.ts.map +1 -1
- package/dist/store/types.js.map +1 -1
- 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/package.json +19 -18
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supabase Pattern Matcher
|
|
3
|
+
*
|
|
4
|
+
* Matches Supabase client patterns:
|
|
5
|
+
* - supabase.from('table').select('*')
|
|
6
|
+
* - supabase.from('table').insert({...})
|
|
7
|
+
* - supabase.from('table').update({...}).eq('id', 1)
|
|
8
|
+
* - supabase.from('table').delete().eq('id', 1)
|
|
9
|
+
*/
|
|
10
|
+
import { BaseMatcher } from './base-matcher.js';
|
|
11
|
+
/**
|
|
12
|
+
* Supabase pattern matcher
|
|
13
|
+
*/
|
|
14
|
+
export class SupabaseMatcher extends BaseMatcher {
|
|
15
|
+
id = 'supabase';
|
|
16
|
+
name = 'Supabase';
|
|
17
|
+
languages = ['typescript', 'javascript', 'python'];
|
|
18
|
+
priority = 100;
|
|
19
|
+
match(chain) {
|
|
20
|
+
// Find .from() segment
|
|
21
|
+
const fromIndex = this.findSegment(chain, 'from');
|
|
22
|
+
if (fromIndex === -1) {
|
|
23
|
+
// Also check for from_ (Python SDK uses this)
|
|
24
|
+
const fromUnderscoreIndex = this.findSegment(chain, 'from_');
|
|
25
|
+
if (fromUnderscoreIndex === -1)
|
|
26
|
+
return null;
|
|
27
|
+
return this.matchFromIndex(chain, fromUnderscoreIndex);
|
|
28
|
+
}
|
|
29
|
+
return this.matchFromIndex(chain, fromIndex);
|
|
30
|
+
}
|
|
31
|
+
matchFromIndex(chain, fromIndex) {
|
|
32
|
+
// Get table name from .from('table')
|
|
33
|
+
const table = this.getFirstStringArg(chain, fromIndex);
|
|
34
|
+
if (!table)
|
|
35
|
+
return null;
|
|
36
|
+
// Determine operation and extract fields
|
|
37
|
+
let operation = 'read';
|
|
38
|
+
let fields = [];
|
|
39
|
+
const whereFields = [];
|
|
40
|
+
for (let i = fromIndex + 1; i < chain.segments.length; i++) {
|
|
41
|
+
const segment = chain.segments[i];
|
|
42
|
+
if (!segment)
|
|
43
|
+
continue;
|
|
44
|
+
const method = segment.name;
|
|
45
|
+
// Select operation
|
|
46
|
+
if (method === 'select') {
|
|
47
|
+
operation = 'read';
|
|
48
|
+
const selectArg = this.getFirstStringArg(chain, i);
|
|
49
|
+
if (selectArg) {
|
|
50
|
+
fields = this.extractFieldsFromString(selectArg);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Insert operation
|
|
54
|
+
else if (method === 'insert' || method === 'upsert') {
|
|
55
|
+
operation = 'write';
|
|
56
|
+
if (segment.args.length > 0 && segment.args[0]) {
|
|
57
|
+
const arg = segment.args[0];
|
|
58
|
+
if (arg.type === 'object') {
|
|
59
|
+
fields = this.extractFieldsFromObject(arg);
|
|
60
|
+
}
|
|
61
|
+
else if (arg.type === 'array' && arg.elements && arg.elements[0]) {
|
|
62
|
+
// Array of objects - get fields from first element
|
|
63
|
+
fields = this.extractFieldsFromObject(arg.elements[0]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Update operation
|
|
68
|
+
else if (method === 'update') {
|
|
69
|
+
operation = 'write';
|
|
70
|
+
if (segment.args.length > 0 && segment.args[0]) {
|
|
71
|
+
fields = this.extractFieldsFromObject(segment.args[0]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Delete operation
|
|
75
|
+
else if (method === 'delete') {
|
|
76
|
+
operation = 'delete';
|
|
77
|
+
}
|
|
78
|
+
// Where clause methods - extract field names
|
|
79
|
+
else if (this.isSupabaseWhereMethod(method)) {
|
|
80
|
+
const field = this.extractWhereField(chain, i);
|
|
81
|
+
if (field) {
|
|
82
|
+
whereFields.push(field);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Merge fields with where clause fields (deduplicated)
|
|
87
|
+
const allFields = [...new Set([...fields, ...whereFields])];
|
|
88
|
+
return this.createMatch({
|
|
89
|
+
table,
|
|
90
|
+
fields: allFields,
|
|
91
|
+
operation,
|
|
92
|
+
confidence: 0.95,
|
|
93
|
+
metadata: {
|
|
94
|
+
fromIndex,
|
|
95
|
+
hasWhereClause: whereFields.length > 0,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if method is a Supabase where clause method
|
|
101
|
+
*/
|
|
102
|
+
isSupabaseWhereMethod(method) {
|
|
103
|
+
const supabaseWhereMethods = [
|
|
104
|
+
// Comparison
|
|
105
|
+
'eq', 'neq', 'gt', 'gte', 'lt', 'lte',
|
|
106
|
+
// Pattern matching
|
|
107
|
+
'like', 'ilike',
|
|
108
|
+
// Null checks
|
|
109
|
+
'is',
|
|
110
|
+
// Array operations
|
|
111
|
+
'in', 'contains', 'containedBy', 'overlaps',
|
|
112
|
+
// Range operations
|
|
113
|
+
'rangeGt', 'rangeGte', 'rangeLt', 'rangeLte', 'rangeAdjacent',
|
|
114
|
+
// Text search
|
|
115
|
+
'textSearch', 'match',
|
|
116
|
+
// Logical
|
|
117
|
+
'not', 'or', 'filter',
|
|
118
|
+
];
|
|
119
|
+
return supabaseWhereMethods.includes(method);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=supabase-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase-matcher.js","sourceRoot":"","sources":["../../../src/unified-provider/matching/supabase-matcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeORM Pattern Matcher
|
|
3
|
+
*
|
|
4
|
+
* Matches TypeORM patterns:
|
|
5
|
+
* - repository.find()
|
|
6
|
+
* - repository.findOne({ where: { id: 1 } })
|
|
7
|
+
* - repository.save(entity)
|
|
8
|
+
* - repository.delete({ id: 1 })
|
|
9
|
+
* - Entity.find()
|
|
10
|
+
* - getRepository(Entity).find()
|
|
11
|
+
*/
|
|
12
|
+
import type { UnifiedCallChain, PatternMatchResult, UnifiedLanguage } from '../types.js';
|
|
13
|
+
import { BaseMatcher } from './base-matcher.js';
|
|
14
|
+
/**
|
|
15
|
+
* TypeORM pattern matcher
|
|
16
|
+
*/
|
|
17
|
+
export declare class TypeORMMatcher extends BaseMatcher {
|
|
18
|
+
readonly id = "typeorm";
|
|
19
|
+
readonly name = "TypeORM";
|
|
20
|
+
readonly languages: UnifiedLanguage[];
|
|
21
|
+
readonly priority = 90;
|
|
22
|
+
private readonly readMethods;
|
|
23
|
+
private readonly writeMethods;
|
|
24
|
+
private readonly deleteMethods;
|
|
25
|
+
match(chain: UnifiedCallChain): PatternMatchResult | null;
|
|
26
|
+
private matchRepositoryPattern;
|
|
27
|
+
private matchEntityPattern;
|
|
28
|
+
private matchGetRepositoryPattern;
|
|
29
|
+
private getOperation;
|
|
30
|
+
private extractFields;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=typeorm-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeorm-matcher.d.ts","sourceRoot":"","sources":["../../../src/unified-provider/matching/typeorm-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,SAAS,EAAE,eAAe,EAAE,CAAgC;IACrE,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IAEF,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI;IAgBzD,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,yBAAyB;IAsCjC,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,aAAa;CAgCtB"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeORM Pattern Matcher
|
|
3
|
+
*
|
|
4
|
+
* Matches TypeORM patterns:
|
|
5
|
+
* - repository.find()
|
|
6
|
+
* - repository.findOne({ where: { id: 1 } })
|
|
7
|
+
* - repository.save(entity)
|
|
8
|
+
* - repository.delete({ id: 1 })
|
|
9
|
+
* - Entity.find()
|
|
10
|
+
* - getRepository(Entity).find()
|
|
11
|
+
*/
|
|
12
|
+
import { BaseMatcher } from './base-matcher.js';
|
|
13
|
+
/**
|
|
14
|
+
* TypeORM pattern matcher
|
|
15
|
+
*/
|
|
16
|
+
export class TypeORMMatcher extends BaseMatcher {
|
|
17
|
+
id = 'typeorm';
|
|
18
|
+
name = 'TypeORM';
|
|
19
|
+
languages = ['typescript', 'javascript'];
|
|
20
|
+
priority = 90;
|
|
21
|
+
readMethods = [
|
|
22
|
+
'find', 'findOne', 'findOneBy', 'findBy', 'findAndCount',
|
|
23
|
+
'findOneOrFail', 'findOneByOrFail', 'count', 'countBy',
|
|
24
|
+
'exist', 'existsBy', 'query', 'createQueryBuilder',
|
|
25
|
+
];
|
|
26
|
+
writeMethods = [
|
|
27
|
+
'save', 'insert', 'update', 'upsert', 'increment', 'decrement',
|
|
28
|
+
];
|
|
29
|
+
deleteMethods = [
|
|
30
|
+
'delete', 'remove', 'softDelete', 'softRemove', 'restore',
|
|
31
|
+
];
|
|
32
|
+
match(chain) {
|
|
33
|
+
// Pattern 1: repository.method() where repository name contains 'repository' or 'repo'
|
|
34
|
+
const repoMatch = this.matchRepositoryPattern(chain);
|
|
35
|
+
if (repoMatch)
|
|
36
|
+
return repoMatch;
|
|
37
|
+
// Pattern 2: Entity.method() where Entity is PascalCase
|
|
38
|
+
const entityMatch = this.matchEntityPattern(chain);
|
|
39
|
+
if (entityMatch)
|
|
40
|
+
return entityMatch;
|
|
41
|
+
// Pattern 3: getRepository(Entity).method()
|
|
42
|
+
const getRepoMatch = this.matchGetRepositoryPattern(chain);
|
|
43
|
+
if (getRepoMatch)
|
|
44
|
+
return getRepoMatch;
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
matchRepositoryPattern(chain) {
|
|
48
|
+
const receiver = chain.receiver.toLowerCase();
|
|
49
|
+
if (!receiver.includes('repository') && !receiver.includes('repo')) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
if (chain.segments.length < 1)
|
|
53
|
+
return null;
|
|
54
|
+
const methodSegment = chain.segments[0];
|
|
55
|
+
if (!methodSegment?.isCall)
|
|
56
|
+
return null;
|
|
57
|
+
const operation = this.getOperation(methodSegment.name);
|
|
58
|
+
if (!operation)
|
|
59
|
+
return null;
|
|
60
|
+
const table = this.inferTableName(chain.receiver);
|
|
61
|
+
const fields = this.extractFields(methodSegment.args);
|
|
62
|
+
return this.createMatch({
|
|
63
|
+
table,
|
|
64
|
+
fields,
|
|
65
|
+
operation,
|
|
66
|
+
confidence: 0.85,
|
|
67
|
+
metadata: { pattern: 'repository' },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
matchEntityPattern(chain) {
|
|
71
|
+
// Entity must be PascalCase and not a common JS class
|
|
72
|
+
if (!/^[A-Z][a-zA-Z0-9]*$/.test(chain.receiver))
|
|
73
|
+
return null;
|
|
74
|
+
const commonClasses = [
|
|
75
|
+
'Array', 'Object', 'String', 'Number', 'Boolean', 'Promise',
|
|
76
|
+
'Map', 'Set', 'Date', 'Error', 'RegExp', 'JSON', 'Math',
|
|
77
|
+
'Console', 'Buffer', 'Process',
|
|
78
|
+
];
|
|
79
|
+
if (commonClasses.includes(chain.receiver))
|
|
80
|
+
return null;
|
|
81
|
+
if (chain.segments.length < 1)
|
|
82
|
+
return null;
|
|
83
|
+
const methodSegment = chain.segments[0];
|
|
84
|
+
if (!methodSegment?.isCall)
|
|
85
|
+
return null;
|
|
86
|
+
const operation = this.getOperation(methodSegment.name);
|
|
87
|
+
if (!operation)
|
|
88
|
+
return null;
|
|
89
|
+
const table = this.inferTableName(chain.receiver);
|
|
90
|
+
const fields = this.extractFields(methodSegment.args);
|
|
91
|
+
return this.createMatch({
|
|
92
|
+
table,
|
|
93
|
+
fields,
|
|
94
|
+
operation,
|
|
95
|
+
confidence: 0.75, // Lower confidence for entity pattern
|
|
96
|
+
metadata: { pattern: 'entity' },
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
matchGetRepositoryPattern(chain) {
|
|
100
|
+
// Look for getRepository in the chain
|
|
101
|
+
const getRepoIndex = chain.segments.findIndex(s => s.name === 'getRepository' && s.isCall);
|
|
102
|
+
if (getRepoIndex === -1)
|
|
103
|
+
return null;
|
|
104
|
+
const getRepoSegment = chain.segments[getRepoIndex];
|
|
105
|
+
if (!getRepoSegment || getRepoSegment.args.length === 0)
|
|
106
|
+
return null;
|
|
107
|
+
// Get entity name from argument
|
|
108
|
+
const entityArg = getRepoSegment.args[0];
|
|
109
|
+
if (!entityArg)
|
|
110
|
+
return null;
|
|
111
|
+
const entityName = entityArg.type === 'identifier'
|
|
112
|
+
? entityArg.value
|
|
113
|
+
: entityArg.stringValue ?? 'unknown';
|
|
114
|
+
// Find the method call after getRepository
|
|
115
|
+
const methodSegment = chain.segments[getRepoIndex + 1];
|
|
116
|
+
if (!methodSegment?.isCall)
|
|
117
|
+
return null;
|
|
118
|
+
const operation = this.getOperation(methodSegment.name);
|
|
119
|
+
if (!operation)
|
|
120
|
+
return null;
|
|
121
|
+
const table = this.inferTableName(entityName);
|
|
122
|
+
const fields = this.extractFields(methodSegment.args);
|
|
123
|
+
return this.createMatch({
|
|
124
|
+
table,
|
|
125
|
+
fields,
|
|
126
|
+
operation,
|
|
127
|
+
confidence: 0.9,
|
|
128
|
+
metadata: { pattern: 'getRepository', entityName },
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
getOperation(methodName) {
|
|
132
|
+
if (this.readMethods.includes(methodName))
|
|
133
|
+
return 'read';
|
|
134
|
+
if (this.writeMethods.includes(methodName))
|
|
135
|
+
return 'write';
|
|
136
|
+
if (this.deleteMethods.includes(methodName))
|
|
137
|
+
return 'delete';
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
extractFields(args) {
|
|
141
|
+
if (args.length === 0)
|
|
142
|
+
return [];
|
|
143
|
+
const firstArg = args[0];
|
|
144
|
+
if (!firstArg || firstArg.type !== 'object' || !firstArg.properties) {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
const fields = [];
|
|
148
|
+
// Extract from 'where' option
|
|
149
|
+
const whereArg = firstArg.properties['where'];
|
|
150
|
+
if (whereArg?.type === 'object' && whereArg.properties) {
|
|
151
|
+
fields.push(...Object.keys(whereArg.properties));
|
|
152
|
+
}
|
|
153
|
+
// Extract from 'select' option
|
|
154
|
+
const selectArg = firstArg.properties['select'];
|
|
155
|
+
if (selectArg?.type === 'object' && selectArg.properties) {
|
|
156
|
+
fields.push(...Object.keys(selectArg.properties));
|
|
157
|
+
}
|
|
158
|
+
// Extract from 'relations' option
|
|
159
|
+
const relationsArg = firstArg.properties['relations'];
|
|
160
|
+
if (relationsArg?.type === 'array' && relationsArg.elements) {
|
|
161
|
+
for (const elem of relationsArg.elements) {
|
|
162
|
+
if (elem.stringValue)
|
|
163
|
+
fields.push(elem.stringValue);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return [...new Set(fields)];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=typeorm-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeorm-matcher.js","sourceRoot":"","sources":["../../../src/unified-provider/matching/typeorm-matcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated Extractor Wrappers
|
|
3
|
+
*
|
|
4
|
+
* Provides backward compatibility for code using the old language-specific extractors.
|
|
5
|
+
* These wrappers delegate to the new UnifiedDataAccessAdapter while maintaining
|
|
6
|
+
* the same interface as the original extractors.
|
|
7
|
+
*
|
|
8
|
+
* @deprecated Use UnifiedDataAccessAdapter from './integration/unified-data-access-adapter.js' instead.
|
|
9
|
+
* These wrappers will be removed in a future major version.
|
|
10
|
+
*/
|
|
11
|
+
import type { DataAccessPoint } from '../../boundaries/types.js';
|
|
12
|
+
import type { CallGraphLanguage } from '../../call-graph/types.js';
|
|
13
|
+
import { UnifiedDataAccessAdapter } from '../integration/unified-data-access-adapter.js';
|
|
14
|
+
/**
|
|
15
|
+
* Result type for data access extraction (compatible with old interface)
|
|
16
|
+
*/
|
|
17
|
+
export interface DataAccessExtractionResult {
|
|
18
|
+
accessPoints: DataAccessPoint[];
|
|
19
|
+
language: string;
|
|
20
|
+
errors: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Base class for deprecated extractors
|
|
24
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
25
|
+
*/
|
|
26
|
+
declare abstract class DeprecatedExtractor {
|
|
27
|
+
abstract readonly language: CallGraphLanguage;
|
|
28
|
+
abstract readonly extensions: string[];
|
|
29
|
+
private adapter;
|
|
30
|
+
protected getAdapter(): UnifiedDataAccessAdapter;
|
|
31
|
+
canHandle(filePath: string): boolean;
|
|
32
|
+
extract(_source: string, _filePath: string): DataAccessExtractionResult;
|
|
33
|
+
/**
|
|
34
|
+
* Async extraction method (recommended migration path)
|
|
35
|
+
*/
|
|
36
|
+
extractAsync(source: string, filePath: string): Promise<DataAccessExtractionResult>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
40
|
+
*/
|
|
41
|
+
export declare class TypeScriptDataAccessExtractor extends DeprecatedExtractor {
|
|
42
|
+
readonly language: CallGraphLanguage;
|
|
43
|
+
readonly extensions: string[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
47
|
+
*/
|
|
48
|
+
export declare class PythonDataAccessExtractor extends DeprecatedExtractor {
|
|
49
|
+
readonly language: CallGraphLanguage;
|
|
50
|
+
readonly extensions: string[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
54
|
+
*/
|
|
55
|
+
export declare class CSharpDataAccessExtractor extends DeprecatedExtractor {
|
|
56
|
+
readonly language: CallGraphLanguage;
|
|
57
|
+
readonly extensions: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
61
|
+
*/
|
|
62
|
+
export declare class JavaDataAccessExtractor extends DeprecatedExtractor {
|
|
63
|
+
readonly language: CallGraphLanguage;
|
|
64
|
+
readonly extensions: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
68
|
+
*/
|
|
69
|
+
export declare class PhpDataAccessExtractor extends DeprecatedExtractor {
|
|
70
|
+
readonly language: CallGraphLanguage;
|
|
71
|
+
readonly extensions: string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
75
|
+
*/
|
|
76
|
+
export declare function createTypeScriptDataAccessExtractor(): TypeScriptDataAccessExtractor;
|
|
77
|
+
/**
|
|
78
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
79
|
+
*/
|
|
80
|
+
export declare function createPythonDataAccessExtractor(): PythonDataAccessExtractor;
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
83
|
+
*/
|
|
84
|
+
export declare function createCSharpDataAccessExtractor(): CSharpDataAccessExtractor;
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
87
|
+
*/
|
|
88
|
+
export declare function createJavaDataAccessExtractor(): JavaDataAccessExtractor;
|
|
89
|
+
/**
|
|
90
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
91
|
+
*/
|
|
92
|
+
export declare function createPhpDataAccessExtractor(): PhpDataAccessExtractor;
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
95
|
+
*/
|
|
96
|
+
export declare function createDataAccessExtractors(): {
|
|
97
|
+
typescript: TypeScriptDataAccessExtractor;
|
|
98
|
+
python: PythonDataAccessExtractor;
|
|
99
|
+
csharp: CSharpDataAccessExtractor;
|
|
100
|
+
java: JavaDataAccessExtractor;
|
|
101
|
+
php: PhpDataAccessExtractor;
|
|
102
|
+
};
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=deprecated-extractors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-extractors.d.ts","sourceRoot":"","sources":["../../../src/unified-provider/migration/deprecated-extractors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,wBAAwB,EAEzB,MAAM,+CAA+C,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,uBAAe,mBAAmB;IAChC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAEvC,OAAO,CAAC,OAAO,CAAyC;IAExD,SAAS,CAAC,UAAU,IAAI,wBAAwB;IAOhD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKpC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B;IAkBvE;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAQ1F;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,mBAAmB;IACpE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAgB;IACpD,QAAQ,CAAC,UAAU,WAAkD;CACtE;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAChD,QAAQ,CAAC,UAAU,WAAmB;CACvC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAChD,QAAQ,CAAC,UAAU,WAAW;CAC/B;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAU;IAC9C,QAAQ,CAAC,UAAU,WAAa;CACjC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAS;IAC7C,QAAQ,CAAC,UAAU,WAAsB;CAC1C;AAED;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,6BAA6B,CAEnF;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,yBAAyB,CAE3E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,yBAAyB,CAE3E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE;AAED;;GAEG;AACH,wBAAgB,0BAA0B;;;;;;EAQzC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated Extractor Wrappers
|
|
3
|
+
*
|
|
4
|
+
* Provides backward compatibility for code using the old language-specific extractors.
|
|
5
|
+
* These wrappers delegate to the new UnifiedDataAccessAdapter while maintaining
|
|
6
|
+
* the same interface as the original extractors.
|
|
7
|
+
*
|
|
8
|
+
* @deprecated Use UnifiedDataAccessAdapter from './integration/unified-data-access-adapter.js' instead.
|
|
9
|
+
* These wrappers will be removed in a future major version.
|
|
10
|
+
*/
|
|
11
|
+
import { UnifiedDataAccessAdapter, createUnifiedDataAccessAdapter, } from '../integration/unified-data-access-adapter.js';
|
|
12
|
+
/**
|
|
13
|
+
* Base class for deprecated extractors
|
|
14
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
15
|
+
*/
|
|
16
|
+
class DeprecatedExtractor {
|
|
17
|
+
adapter = null;
|
|
18
|
+
getAdapter() {
|
|
19
|
+
if (!this.adapter) {
|
|
20
|
+
this.adapter = createUnifiedDataAccessAdapter();
|
|
21
|
+
}
|
|
22
|
+
return this.adapter;
|
|
23
|
+
}
|
|
24
|
+
canHandle(filePath) {
|
|
25
|
+
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
26
|
+
return ext ? this.extensions.some(e => e.slice(1) === ext) : false;
|
|
27
|
+
}
|
|
28
|
+
extract(_source, _filePath) {
|
|
29
|
+
// Log deprecation warning in development
|
|
30
|
+
if (process.env['NODE_ENV'] !== 'production') {
|
|
31
|
+
console.warn(`[DEPRECATED] ${this.constructor.name} is deprecated. ` +
|
|
32
|
+
'Use UnifiedDataAccessAdapter from "@driftdetect/core/unified-provider" instead.');
|
|
33
|
+
}
|
|
34
|
+
// Note: The old extractors were synchronous, but the new adapter is async.
|
|
35
|
+
// For backward compatibility, we need to handle this carefully.
|
|
36
|
+
// In practice, most consumers should migrate to the async API.
|
|
37
|
+
throw new Error(`${this.constructor.name}.extract() is deprecated and no longer synchronous. ` +
|
|
38
|
+
'Use UnifiedDataAccessAdapter.extract() which returns a Promise.');
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Async extraction method (recommended migration path)
|
|
42
|
+
*/
|
|
43
|
+
async extractAsync(source, filePath) {
|
|
44
|
+
const result = await this.getAdapter().extract(source, filePath);
|
|
45
|
+
return {
|
|
46
|
+
accessPoints: result.accessPoints,
|
|
47
|
+
language: result.language,
|
|
48
|
+
errors: result.errors,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
54
|
+
*/
|
|
55
|
+
export class TypeScriptDataAccessExtractor extends DeprecatedExtractor {
|
|
56
|
+
language = 'typescript';
|
|
57
|
+
extensions = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
61
|
+
*/
|
|
62
|
+
export class PythonDataAccessExtractor extends DeprecatedExtractor {
|
|
63
|
+
language = 'python';
|
|
64
|
+
extensions = ['.py', '.pyw'];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
68
|
+
*/
|
|
69
|
+
export class CSharpDataAccessExtractor extends DeprecatedExtractor {
|
|
70
|
+
language = 'csharp';
|
|
71
|
+
extensions = ['.cs'];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
75
|
+
*/
|
|
76
|
+
export class JavaDataAccessExtractor extends DeprecatedExtractor {
|
|
77
|
+
language = 'java';
|
|
78
|
+
extensions = ['.java'];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated Use UnifiedDataAccessAdapter instead
|
|
82
|
+
*/
|
|
83
|
+
export class PhpDataAccessExtractor extends DeprecatedExtractor {
|
|
84
|
+
language = 'php';
|
|
85
|
+
extensions = ['.php', '.phtml'];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
89
|
+
*/
|
|
90
|
+
export function createTypeScriptDataAccessExtractor() {
|
|
91
|
+
return new TypeScriptDataAccessExtractor();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
95
|
+
*/
|
|
96
|
+
export function createPythonDataAccessExtractor() {
|
|
97
|
+
return new PythonDataAccessExtractor();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
101
|
+
*/
|
|
102
|
+
export function createCSharpDataAccessExtractor() {
|
|
103
|
+
return new CSharpDataAccessExtractor();
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
107
|
+
*/
|
|
108
|
+
export function createJavaDataAccessExtractor() {
|
|
109
|
+
return new JavaDataAccessExtractor();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
113
|
+
*/
|
|
114
|
+
export function createPhpDataAccessExtractor() {
|
|
115
|
+
return new PhpDataAccessExtractor();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @deprecated Use createUnifiedDataAccessAdapter instead
|
|
119
|
+
*/
|
|
120
|
+
export function createDataAccessExtractors() {
|
|
121
|
+
return {
|
|
122
|
+
typescript: createTypeScriptDataAccessExtractor(),
|
|
123
|
+
python: createPythonDataAccessExtractor(),
|
|
124
|
+
csharp: createCSharpDataAccessExtractor(),
|
|
125
|
+
java: createJavaDataAccessExtractor(),
|
|
126
|
+
php: createPhpDataAccessExtractor(),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=deprecated-extractors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-extractors.js","sourceRoot":"","sources":["../../../src/unified-provider/migration/deprecated-extractors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated Scanner Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Provides backward compatibility for code using the old SemanticDataAccessScanner.
|
|
5
|
+
* This wrapper delegates to the new UnifiedScanner while maintaining the same interface.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use UnifiedScanner from './integration/unified-scanner.js' instead.
|
|
8
|
+
* This wrapper will be removed in a future major version.
|
|
9
|
+
*/
|
|
10
|
+
import { detectProjectStack, type UnifiedScannerConfig, type UnifiedScanResult, type DetectedStack } from '../integration/unified-scanner.js';
|
|
11
|
+
export type SemanticScannerConfig = UnifiedScannerConfig;
|
|
12
|
+
export type SemanticScanResult = UnifiedScanResult;
|
|
13
|
+
export { type DetectedStack };
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use UnifiedScanner instead.
|
|
16
|
+
* This class is a compatibility wrapper that delegates to UnifiedScanner.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SemanticDataAccessScanner {
|
|
19
|
+
private readonly scanner;
|
|
20
|
+
constructor(config: SemanticScannerConfig);
|
|
21
|
+
/**
|
|
22
|
+
* Scan files for data access patterns
|
|
23
|
+
* @deprecated Use UnifiedScanner.scanFiles() instead
|
|
24
|
+
*/
|
|
25
|
+
scanFiles(files: string[]): Promise<SemanticScanResult>;
|
|
26
|
+
/**
|
|
27
|
+
* Scan directory with glob patterns
|
|
28
|
+
* @deprecated Use UnifiedScanner.scanDirectory() instead
|
|
29
|
+
*/
|
|
30
|
+
scanDirectory(options?: {
|
|
31
|
+
patterns?: string[];
|
|
32
|
+
ignorePatterns?: string[];
|
|
33
|
+
}): Promise<SemanticScanResult>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use createUnifiedScanner instead.
|
|
37
|
+
*/
|
|
38
|
+
export declare function createSemanticDataAccessScanner(config: SemanticScannerConfig): SemanticDataAccessScanner;
|
|
39
|
+
export { detectProjectStack };
|
|
40
|
+
//# sourceMappingURL=deprecated-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-scanner.d.ts","sourceRoot":"","sources":["../../../src/unified-provider/migration/deprecated-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,mCAAmC,CAAC;AAG3C,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,aAAa,EAAE,CAAC;AAE9B;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,MAAM,EAAE,qBAAqB;IAWzC;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI7D;;;OAGG;IACG,aAAa,CAAC,OAAO,GAAE;QAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGrC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qBAAqB,GAAG,yBAAyB,CAExG;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|