driftdetect-core 0.4.4 → 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 +21 -17
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Intelligence Layer - Core Types
|
|
3
|
+
*
|
|
4
|
+
* Unified semantic model for cross-language code analysis.
|
|
5
|
+
* This layer sits ON TOP of existing extractors, adding semantic
|
|
6
|
+
* normalization without modifying any existing code.
|
|
7
|
+
*/
|
|
8
|
+
import type { CallGraphLanguage, FunctionExtraction, FileExtractionResult } from '../call-graph/types.js';
|
|
9
|
+
import type { DataAccessPoint } from '../boundaries/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* High-level semantic categories for decorators/annotations
|
|
12
|
+
*/
|
|
13
|
+
export type SemanticCategory = 'routing' | 'di' | 'orm' | 'auth' | 'validation' | 'test' | 'logging' | 'caching' | 'scheduling' | 'messaging' | 'middleware' | 'unknown';
|
|
14
|
+
/**
|
|
15
|
+
* HTTP methods for routing decorators
|
|
16
|
+
* Note: Aligned with contracts.ts HttpMethod for compatibility
|
|
17
|
+
*/
|
|
18
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
19
|
+
/**
|
|
20
|
+
* Data access mode
|
|
21
|
+
*/
|
|
22
|
+
export type DataAccessMode = 'read' | 'write' | 'both';
|
|
23
|
+
/**
|
|
24
|
+
* Semantic meaning extracted from a decorator/annotation
|
|
25
|
+
*/
|
|
26
|
+
export interface DecoratorSemantics {
|
|
27
|
+
/** High-level category */
|
|
28
|
+
category: SemanticCategory;
|
|
29
|
+
/** Human-readable description of what this decorator does */
|
|
30
|
+
intent: string;
|
|
31
|
+
/** Whether this marks a function as an entry point (API endpoint, event handler, etc.) */
|
|
32
|
+
isEntryPoint: boolean;
|
|
33
|
+
/** Whether this marks a class/function as injectable (DI service) */
|
|
34
|
+
isInjectable: boolean;
|
|
35
|
+
/** Whether this marks a function as requiring authentication */
|
|
36
|
+
requiresAuth: boolean;
|
|
37
|
+
/** Data access mode if this is an ORM decorator */
|
|
38
|
+
dataAccess?: DataAccessMode;
|
|
39
|
+
/** Confidence score (0-1) for this semantic interpretation */
|
|
40
|
+
confidence: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Normalized decorator that works across all languages
|
|
44
|
+
*
|
|
45
|
+
* Takes raw decorator strings like "@Controller", "[ApiController]", "@app.route"
|
|
46
|
+
* and normalizes them to a common semantic model.
|
|
47
|
+
*/
|
|
48
|
+
export interface NormalizedDecorator {
|
|
49
|
+
/** Original raw decorator string as extracted by tree-sitter */
|
|
50
|
+
raw: string;
|
|
51
|
+
/** Normalized name (without @ or [] or language-specific syntax) */
|
|
52
|
+
name: string;
|
|
53
|
+
/** Source language */
|
|
54
|
+
language: CallGraphLanguage;
|
|
55
|
+
/** Framework that defines this decorator (if known) */
|
|
56
|
+
framework?: string;
|
|
57
|
+
/** Semantic meaning */
|
|
58
|
+
semantic: DecoratorSemantics;
|
|
59
|
+
/** Extracted arguments from the decorator */
|
|
60
|
+
arguments: DecoratorArguments;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Common decorator arguments extracted across languages
|
|
64
|
+
*/
|
|
65
|
+
export interface DecoratorArguments {
|
|
66
|
+
/** Route path for routing decorators: "/api/users" */
|
|
67
|
+
path?: string;
|
|
68
|
+
/** HTTP methods: ["GET", "POST"] */
|
|
69
|
+
methods?: HttpMethod[];
|
|
70
|
+
/** Named route/endpoint */
|
|
71
|
+
name?: string;
|
|
72
|
+
/** Middleware/guards to apply */
|
|
73
|
+
middleware?: string[];
|
|
74
|
+
/** Roles/permissions required */
|
|
75
|
+
roles?: string[];
|
|
76
|
+
/** Scope for DI (singleton, transient, scoped) */
|
|
77
|
+
scope?: 'singleton' | 'transient' | 'scoped';
|
|
78
|
+
/** Generic key-value arguments */
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Semantic information derived from a function and its decorators
|
|
83
|
+
*/
|
|
84
|
+
export interface FunctionSemantics {
|
|
85
|
+
/** Is this an entry point (API endpoint, event handler, CLI command, etc.) */
|
|
86
|
+
isEntryPoint: boolean;
|
|
87
|
+
/** Is this a data accessor (reads/writes to database) */
|
|
88
|
+
isDataAccessor: boolean;
|
|
89
|
+
/** Is this an auth handler (login, logout, token validation) */
|
|
90
|
+
isAuthHandler: boolean;
|
|
91
|
+
/** Is this a test case */
|
|
92
|
+
isTestCase: boolean;
|
|
93
|
+
/** Is this an injectable service */
|
|
94
|
+
isInjectable: boolean;
|
|
95
|
+
/** Entry point details (if isEntryPoint) */
|
|
96
|
+
entryPoint?: {
|
|
97
|
+
type: 'http' | 'graphql' | 'grpc' | 'websocket' | 'event' | 'scheduled' | 'cli';
|
|
98
|
+
path?: string | undefined;
|
|
99
|
+
methods?: HttpMethod[] | undefined;
|
|
100
|
+
} | undefined;
|
|
101
|
+
/** Injected dependencies (service names) */
|
|
102
|
+
dependencies: string[];
|
|
103
|
+
/** Data access points within this function */
|
|
104
|
+
dataAccess: DataAccessPoint[];
|
|
105
|
+
/** Required authentication/authorization */
|
|
106
|
+
auth?: {
|
|
107
|
+
required: boolean;
|
|
108
|
+
roles?: string[] | undefined;
|
|
109
|
+
permissions?: string[] | undefined;
|
|
110
|
+
} | undefined;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Normalized function with semantic enrichment
|
|
114
|
+
*
|
|
115
|
+
* Extends the raw FunctionExtraction with semantic information
|
|
116
|
+
* derived from decorators and framework knowledge.
|
|
117
|
+
*/
|
|
118
|
+
export interface NormalizedFunction extends FunctionExtraction {
|
|
119
|
+
/** Normalized decorators with semantic meaning */
|
|
120
|
+
normalizedDecorators: NormalizedDecorator[];
|
|
121
|
+
/** Derived semantic information */
|
|
122
|
+
semantics: FunctionSemantics;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Result of normalizing a file extraction
|
|
126
|
+
*/
|
|
127
|
+
export interface NormalizedExtractionResult extends Omit<FileExtractionResult, 'functions'> {
|
|
128
|
+
/** Normalized functions with semantic enrichment */
|
|
129
|
+
functions: NormalizedFunction[];
|
|
130
|
+
/** Detected frameworks in this file */
|
|
131
|
+
detectedFrameworks: string[];
|
|
132
|
+
/** Overall file semantics */
|
|
133
|
+
fileSemantics: {
|
|
134
|
+
/** Is this a controller/router file */
|
|
135
|
+
isController: boolean;
|
|
136
|
+
/** Is this a service/provider file */
|
|
137
|
+
isService: boolean;
|
|
138
|
+
/** Is this a model/entity file */
|
|
139
|
+
isModel: boolean;
|
|
140
|
+
/** Is this a test file */
|
|
141
|
+
isTestFile: boolean;
|
|
142
|
+
/** Primary framework detected */
|
|
143
|
+
primaryFramework?: string | undefined;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* A single decorator pattern mapping
|
|
148
|
+
*/
|
|
149
|
+
export interface DecoratorMapping {
|
|
150
|
+
/** Pattern to match decorator strings (applied to already-extracted decorator) */
|
|
151
|
+
pattern: RegExp;
|
|
152
|
+
/** Semantic meaning when matched */
|
|
153
|
+
semantic: Omit<DecoratorSemantics, 'confidence'>;
|
|
154
|
+
/** Function to extract arguments from the raw decorator string */
|
|
155
|
+
extractArgs: (raw: string) => DecoratorArguments;
|
|
156
|
+
/** Confidence score for this mapping (default: 1.0) */
|
|
157
|
+
confidence?: number;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Framework pattern definition
|
|
161
|
+
*
|
|
162
|
+
* Declarative definition of how a framework uses decorators/annotations.
|
|
163
|
+
* This is the "knowledge base" that powers semantic normalization.
|
|
164
|
+
*/
|
|
165
|
+
export interface FrameworkPattern {
|
|
166
|
+
/** Framework identifier: "spring", "laravel", "fastapi", "nestjs", "aspnet" */
|
|
167
|
+
framework: string;
|
|
168
|
+
/** Display name: "Spring Boot", "Laravel", "FastAPI" */
|
|
169
|
+
displayName: string;
|
|
170
|
+
/** Languages this framework applies to */
|
|
171
|
+
languages: CallGraphLanguage[];
|
|
172
|
+
/** Version constraints (optional) */
|
|
173
|
+
version?: string;
|
|
174
|
+
/** Decorator/annotation mappings */
|
|
175
|
+
decoratorMappings: DecoratorMapping[];
|
|
176
|
+
/** Patterns that indicate this framework is in use (for detection) */
|
|
177
|
+
detectionPatterns: {
|
|
178
|
+
/** Import patterns that indicate framework usage */
|
|
179
|
+
imports?: RegExp[];
|
|
180
|
+
/** Decorator patterns that indicate framework usage */
|
|
181
|
+
decorators?: RegExp[];
|
|
182
|
+
/** File patterns (e.g., "*.controller.ts" for NestJS) */
|
|
183
|
+
filePatterns?: RegExp[];
|
|
184
|
+
};
|
|
185
|
+
/** Patterns that mark entry points */
|
|
186
|
+
entryPointPatterns: RegExp[];
|
|
187
|
+
/** Patterns that mark injectable services */
|
|
188
|
+
diPatterns: RegExp[];
|
|
189
|
+
/** Patterns that indicate ORM/data access */
|
|
190
|
+
ormPatterns: RegExp[];
|
|
191
|
+
/** Patterns that indicate auth requirements */
|
|
192
|
+
authPatterns: RegExp[];
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Interface for language-specific normalizers
|
|
196
|
+
*
|
|
197
|
+
* Each normalizer wraps an existing extractor and adds semantic normalization.
|
|
198
|
+
*/
|
|
199
|
+
export interface LanguageNormalizer {
|
|
200
|
+
/** Language this normalizer handles */
|
|
201
|
+
readonly language: CallGraphLanguage;
|
|
202
|
+
/** File extensions this normalizer handles */
|
|
203
|
+
readonly extensions: string[];
|
|
204
|
+
/**
|
|
205
|
+
* Normalize an extraction result
|
|
206
|
+
*
|
|
207
|
+
* Takes raw extraction from existing extractor and adds semantic information.
|
|
208
|
+
*/
|
|
209
|
+
normalize(source: string, filePath: string): NormalizedExtractionResult;
|
|
210
|
+
/**
|
|
211
|
+
* Normalize a single decorator string
|
|
212
|
+
*/
|
|
213
|
+
normalizeDecorator(raw: string, frameworks: FrameworkPattern[]): NormalizedDecorator;
|
|
214
|
+
/**
|
|
215
|
+
* Detect which frameworks are in use in the source
|
|
216
|
+
*/
|
|
217
|
+
detectFrameworks(source: string): FrameworkPattern[];
|
|
218
|
+
/**
|
|
219
|
+
* Check if this normalizer can handle a file
|
|
220
|
+
*/
|
|
221
|
+
canHandle(filePath: string): boolean;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Options for querying normalized functions
|
|
225
|
+
*/
|
|
226
|
+
export interface QueryOptions {
|
|
227
|
+
/** Filter by semantic category */
|
|
228
|
+
category?: SemanticCategory;
|
|
229
|
+
/** Filter by framework */
|
|
230
|
+
framework?: string;
|
|
231
|
+
/** Filter by language */
|
|
232
|
+
language?: CallGraphLanguage;
|
|
233
|
+
/** Only entry points */
|
|
234
|
+
entryPointsOnly?: boolean;
|
|
235
|
+
/** Only data accessors */
|
|
236
|
+
dataAccessorsOnly?: boolean;
|
|
237
|
+
/** Only functions requiring auth */
|
|
238
|
+
authRequiredOnly?: boolean;
|
|
239
|
+
/** Filter by table name (for data accessors) */
|
|
240
|
+
table?: string;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Result of a cross-language query
|
|
244
|
+
*/
|
|
245
|
+
export interface QueryResult {
|
|
246
|
+
/** Matching functions */
|
|
247
|
+
functions: NormalizedFunction[];
|
|
248
|
+
/** Files containing matches */
|
|
249
|
+
files: string[];
|
|
250
|
+
/** Frameworks involved */
|
|
251
|
+
frameworks: string[];
|
|
252
|
+
/** Languages involved */
|
|
253
|
+
languages: CallGraphLanguage[];
|
|
254
|
+
/** Total count */
|
|
255
|
+
count: number;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Configuration for the Language Intelligence system
|
|
259
|
+
*/
|
|
260
|
+
export interface LanguageIntelligenceConfig {
|
|
261
|
+
/** Root directory of the project */
|
|
262
|
+
rootDir: string;
|
|
263
|
+
/** Additional framework patterns to register */
|
|
264
|
+
customFrameworks?: FrameworkPattern[];
|
|
265
|
+
/** Whether to auto-detect frameworks */
|
|
266
|
+
autoDetect?: boolean;
|
|
267
|
+
/** Verbose logging */
|
|
268
|
+
verbose?: boolean;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/language-intelligence/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Intelligence Layer - Core Types
|
|
3
|
+
*
|
|
4
|
+
* Unified semantic model for cross-language code analysis.
|
|
5
|
+
* This layer sits ON TOP of existing extractors, adding semantic
|
|
6
|
+
* normalization without modifying any existing code.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/language-intelligence/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Processor Worker - Worker thread for CPU-bound file processing
|
|
3
|
+
*
|
|
4
|
+
* This worker runs in a separate thread and handles:
|
|
5
|
+
* - Tree-sitter AST parsing
|
|
6
|
+
* - Regex pattern matching
|
|
7
|
+
* - File content analysis
|
|
8
|
+
*
|
|
9
|
+
* @requirements 2.6 - Parallel file processing with worker threads
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Task input for file processing
|
|
13
|
+
*/
|
|
14
|
+
export interface FileProcessorTask {
|
|
15
|
+
/** Absolute path to the file */
|
|
16
|
+
filePath: string;
|
|
17
|
+
/** File content (optional - will be read if not provided) */
|
|
18
|
+
content?: string;
|
|
19
|
+
/** Root directory for relative path calculation */
|
|
20
|
+
rootDir: string;
|
|
21
|
+
/** Patterns to match (regex strings) */
|
|
22
|
+
patterns?: Array<{
|
|
23
|
+
id: string;
|
|
24
|
+
regex: string;
|
|
25
|
+
flags?: string;
|
|
26
|
+
}>;
|
|
27
|
+
/** Whether to parse AST */
|
|
28
|
+
parseAst?: boolean;
|
|
29
|
+
/** Language hint (optional - will be detected from extension) */
|
|
30
|
+
language?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result of file processing
|
|
34
|
+
*/
|
|
35
|
+
export interface FileProcessorResult {
|
|
36
|
+
/** Relative path to the file */
|
|
37
|
+
relativePath: string;
|
|
38
|
+
/** Absolute path to the file */
|
|
39
|
+
absolutePath: string;
|
|
40
|
+
/** Detected language */
|
|
41
|
+
language: string | null;
|
|
42
|
+
/** Pattern matches found */
|
|
43
|
+
matches: Array<{
|
|
44
|
+
patternId: string;
|
|
45
|
+
line: number;
|
|
46
|
+
column: number;
|
|
47
|
+
match: string;
|
|
48
|
+
}>;
|
|
49
|
+
/** AST info (if parsed) */
|
|
50
|
+
ast?: {
|
|
51
|
+
nodeCount: number;
|
|
52
|
+
rootType: string;
|
|
53
|
+
hasErrors: boolean;
|
|
54
|
+
} | undefined;
|
|
55
|
+
/** Processing duration in milliseconds */
|
|
56
|
+
duration: number;
|
|
57
|
+
/** Error message if processing failed */
|
|
58
|
+
error?: string | undefined;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Process a single file
|
|
62
|
+
*
|
|
63
|
+
* This is the main export that Piscina will call for each task.
|
|
64
|
+
*/
|
|
65
|
+
export default function processFile(task: FileProcessorTask): Promise<FileProcessorResult>;
|
|
66
|
+
//# sourceMappingURL=file-processor-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-processor-worker.d.ts","sourceRoot":"","sources":["../../src/scanner/file-processor-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IAEjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAEH,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,4BAA4B;IAC5B,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,2BAA2B;IAC3B,GAAG,CAAC,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,SAAS,CAAC;IAEd,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AA2CD;;;;GAIG;AACH,wBAA8B,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuF/F"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Processor Worker - Worker thread for CPU-bound file processing
|
|
3
|
+
*
|
|
4
|
+
* This worker runs in a separate thread and handles:
|
|
5
|
+
* - Tree-sitter AST parsing
|
|
6
|
+
* - Regex pattern matching
|
|
7
|
+
* - File content analysis
|
|
8
|
+
*
|
|
9
|
+
* @requirements 2.6 - Parallel file processing with worker threads
|
|
10
|
+
*/
|
|
11
|
+
import * as fs from 'node:fs/promises';
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
/**
|
|
14
|
+
* Extension to language mapping
|
|
15
|
+
*/
|
|
16
|
+
const EXTENSION_LANGUAGE_MAP = {
|
|
17
|
+
'.ts': 'typescript',
|
|
18
|
+
'.tsx': 'typescript',
|
|
19
|
+
'.mts': 'typescript',
|
|
20
|
+
'.cts': 'typescript',
|
|
21
|
+
'.js': 'javascript',
|
|
22
|
+
'.jsx': 'javascript',
|
|
23
|
+
'.mjs': 'javascript',
|
|
24
|
+
'.cjs': 'javascript',
|
|
25
|
+
'.py': 'python',
|
|
26
|
+
'.pyw': 'python',
|
|
27
|
+
'.cs': 'csharp',
|
|
28
|
+
'.java': 'java',
|
|
29
|
+
'.php': 'php',
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Detect language from file extension
|
|
33
|
+
*/
|
|
34
|
+
function detectLanguage(filePath) {
|
|
35
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
36
|
+
return EXTENSION_LANGUAGE_MAP[ext] || null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Count nodes in a tree-sitter tree
|
|
40
|
+
*/
|
|
41
|
+
function countNodes(node) {
|
|
42
|
+
let count = 1;
|
|
43
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
44
|
+
const child = node.children[i];
|
|
45
|
+
if (child) {
|
|
46
|
+
count += countNodes(child);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return count;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Process a single file
|
|
53
|
+
*
|
|
54
|
+
* This is the main export that Piscina will call for each task.
|
|
55
|
+
*/
|
|
56
|
+
export default async function processFile(task) {
|
|
57
|
+
const startTime = Date.now();
|
|
58
|
+
const relativePath = path.relative(task.rootDir, task.filePath);
|
|
59
|
+
const language = task.language || detectLanguage(task.filePath);
|
|
60
|
+
try {
|
|
61
|
+
// Read content if not provided
|
|
62
|
+
const content = task.content ?? await fs.readFile(task.filePath, 'utf-8');
|
|
63
|
+
const matches = [];
|
|
64
|
+
// Run regex pattern matching
|
|
65
|
+
if (task.patterns && task.patterns.length > 0) {
|
|
66
|
+
for (const pattern of task.patterns) {
|
|
67
|
+
try {
|
|
68
|
+
const regex = new RegExp(pattern.regex, pattern.flags || 'gm');
|
|
69
|
+
let match;
|
|
70
|
+
// Reset regex state
|
|
71
|
+
regex.lastIndex = 0;
|
|
72
|
+
while ((match = regex.exec(content)) !== null) {
|
|
73
|
+
// Calculate line and column from match index
|
|
74
|
+
let line = 1;
|
|
75
|
+
let lastNewline = 0;
|
|
76
|
+
for (let i = 0; i < match.index; i++) {
|
|
77
|
+
if (content[i] === '\n') {
|
|
78
|
+
line++;
|
|
79
|
+
lastNewline = i + 1;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const column = match.index - lastNewline + 1;
|
|
83
|
+
matches.push({
|
|
84
|
+
patternId: pattern.id,
|
|
85
|
+
line,
|
|
86
|
+
column,
|
|
87
|
+
match: match[0].substring(0, 100), // Limit match length
|
|
88
|
+
});
|
|
89
|
+
// Prevent infinite loops on zero-length matches
|
|
90
|
+
if (match[0].length === 0) {
|
|
91
|
+
regex.lastIndex++;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (regexError) {
|
|
96
|
+
// Invalid regex - skip this pattern
|
|
97
|
+
console.error(`Invalid regex pattern ${pattern.id}: ${regexError}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Parse AST if requested
|
|
102
|
+
let ast;
|
|
103
|
+
if (task.parseAst && language) {
|
|
104
|
+
try {
|
|
105
|
+
ast = await parseAst(content, language);
|
|
106
|
+
}
|
|
107
|
+
catch (astError) {
|
|
108
|
+
// AST parsing failed - continue without it
|
|
109
|
+
ast = {
|
|
110
|
+
nodeCount: 0,
|
|
111
|
+
rootType: 'error',
|
|
112
|
+
hasErrors: true,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
relativePath,
|
|
118
|
+
absolutePath: task.filePath,
|
|
119
|
+
language,
|
|
120
|
+
matches,
|
|
121
|
+
ast,
|
|
122
|
+
duration: Date.now() - startTime,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
return {
|
|
127
|
+
relativePath,
|
|
128
|
+
absolutePath: task.filePath,
|
|
129
|
+
language,
|
|
130
|
+
matches: [],
|
|
131
|
+
duration: Date.now() - startTime,
|
|
132
|
+
error: error instanceof Error ? error.message : String(error),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Parse AST using tree-sitter
|
|
138
|
+
*/
|
|
139
|
+
async function parseAst(content, language) {
|
|
140
|
+
// Dynamic import tree-sitter based on language
|
|
141
|
+
// Each worker thread loads its own instance of tree-sitter
|
|
142
|
+
let Parser;
|
|
143
|
+
let languageModule;
|
|
144
|
+
try {
|
|
145
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
146
|
+
Parser = require('tree-sitter');
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
throw new Error('tree-sitter not available');
|
|
150
|
+
}
|
|
151
|
+
// Load language-specific grammar
|
|
152
|
+
switch (language) {
|
|
153
|
+
case 'python':
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
155
|
+
languageModule = require('tree-sitter-python');
|
|
156
|
+
break;
|
|
157
|
+
case 'typescript':
|
|
158
|
+
case 'javascript':
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
160
|
+
const tsModule = require('tree-sitter-typescript');
|
|
161
|
+
languageModule = language === 'typescript' ? tsModule.typescript : tsModule.tsx;
|
|
162
|
+
break;
|
|
163
|
+
case 'csharp':
|
|
164
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
165
|
+
languageModule = require('tree-sitter-c-sharp');
|
|
166
|
+
break;
|
|
167
|
+
case 'java':
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
169
|
+
languageModule = require('tree-sitter-java');
|
|
170
|
+
break;
|
|
171
|
+
case 'php':
|
|
172
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
173
|
+
const phpModule = require('tree-sitter-php');
|
|
174
|
+
languageModule = phpModule.php;
|
|
175
|
+
break;
|
|
176
|
+
default:
|
|
177
|
+
throw new Error(`Unsupported language: ${language}`);
|
|
178
|
+
}
|
|
179
|
+
const parser = new Parser();
|
|
180
|
+
parser.setLanguage(languageModule);
|
|
181
|
+
const tree = parser.parse(content);
|
|
182
|
+
const rootNode = tree.rootNode;
|
|
183
|
+
return {
|
|
184
|
+
nodeCount: countNodes(rootNode),
|
|
185
|
+
rootType: rootNode.type,
|
|
186
|
+
hasErrors: rootNode.hasError,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=file-processor-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-processor-worker.js","sourceRoot":"","sources":["../../src/scanner/file-processor-worker.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner/index.d.ts
CHANGED
|
@@ -9,4 +9,6 @@ export { FileWalker } from './file-walker.js';
|
|
|
9
9
|
export { ChangeDetector, type ChangeType, type FileSnapshot, type ChangeSet, type FileChange, type ChangeDetectionOptions, type SnapshotFile, } from './change-detector.js';
|
|
10
10
|
export { DependencyGraph, type ImportType, type ExportType, type ImportInfo, type ImportSpecifier, type ExportInfo, type ModuleNode, type DependencyEdge, type CircularDependencyResult, type DependencyGraphOptions, } from './dependency-graph.js';
|
|
11
11
|
export { WorkerPool, createFileProcessorPool, type WorkerPoolOptions, type TaskStatus, type Task, type TaskResult, type WorkerPoolStats, type WorkerPoolEvents, type TaskProcessor, } from './worker-pool.js';
|
|
12
|
+
export { ThreadedWorkerPool, createThreadedPool, getModuleDir, type ThreadedWorkerPoolOptions, type ThreadedWorkerPoolStats, type BatchResult, type ThreadedWorkerPoolEvents, } from './threaded-worker-pool.js';
|
|
13
|
+
export type { FileProcessorTask, FileProcessorResult, } from './file-processor-worker.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,YAAY,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC"}
|
package/dist/scanner/index.js
CHANGED
|
@@ -9,4 +9,6 @@ export { FileWalker } from './file-walker.js';
|
|
|
9
9
|
export { ChangeDetector, } from './change-detector.js';
|
|
10
10
|
export { DependencyGraph, } from './dependency-graph.js';
|
|
11
11
|
export { WorkerPool, createFileProcessorPool, } from './worker-pool.js';
|
|
12
|
+
// Threaded Worker Pool (true multi-threading with Piscina)
|
|
13
|
+
export { ThreadedWorkerPool, createThreadedPool, getModuleDir, } from './threaded-worker-pool.js';
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,cAAc,GAOf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAUhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,uBAAuB,GAQxB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,cAAc,GAOf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAUhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,uBAAuB,GAQxB,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GAKb,MAAM,2BAA2B,CAAC"}
|