@wundr.io/analysis-engine-simple 1.0.0 → 1.0.1

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.
Files changed (40) hide show
  1. package/package.json +2 -2
  2. package/.turbo/turbo-build.log +0 -4
  3. package/.turbo/turbo-typecheck.log +0 -4
  4. package/dist/analyzers/BaseAnalysisServiceOptimizations.d.ts +0 -93
  5. package/dist/analyzers/BaseAnalysisServiceOptimizations.d.ts.map +0 -1
  6. package/dist/analyzers/BaseAnalysisServiceOptimizations.js +0 -419
  7. package/dist/analyzers/BaseAnalysisServiceOptimizations.js.map +0 -1
  8. package/dist/analyzers/index.d.ts +0 -58
  9. package/dist/analyzers/index.d.ts.map +0 -1
  10. package/dist/analyzers/index.js +0 -105
  11. package/dist/analyzers/index.js.map +0 -1
  12. package/dist/engines/DuplicateDetectionEngineSimple.d.ts +0 -46
  13. package/dist/engines/DuplicateDetectionEngineSimple.d.ts.map +0 -1
  14. package/dist/engines/DuplicateDetectionEngineSimple.js +0 -135
  15. package/dist/engines/DuplicateDetectionEngineSimple.js.map +0 -1
  16. package/dist/index.d.ts +0 -13
  17. package/dist/index.d.ts.map +0 -1
  18. package/dist/index.js +0 -27
  19. package/dist/index.js.map +0 -1
  20. package/dist/metrics/index.d.ts +0 -39
  21. package/dist/metrics/index.d.ts.map +0 -1
  22. package/dist/metrics/index.js +0 -42
  23. package/dist/metrics/index.js.map +0 -1
  24. package/dist/monitoring/MemoryMonitorSimple.d.ts +0 -79
  25. package/dist/monitoring/MemoryMonitorSimple.d.ts.map +0 -1
  26. package/dist/monitoring/MemoryMonitorSimple.js +0 -184
  27. package/dist/monitoring/MemoryMonitorSimple.js.map +0 -1
  28. package/dist/optimization/PerformanceBenchmarkSuiteSimple.d.ts +0 -37
  29. package/dist/optimization/PerformanceBenchmarkSuiteSimple.d.ts.map +0 -1
  30. package/dist/optimization/PerformanceBenchmarkSuiteSimple.js +0 -62
  31. package/dist/optimization/PerformanceBenchmarkSuiteSimple.js.map +0 -1
  32. package/dist/reporters/index.d.ts +0 -65
  33. package/dist/reporters/index.d.ts.map +0 -1
  34. package/dist/reporters/index.js +0 -211
  35. package/dist/reporters/index.js.map +0 -1
  36. package/dist/streaming/StreamingFileProcessorSimple.d.ts +0 -58
  37. package/dist/streaming/StreamingFileProcessorSimple.d.ts.map +0 -1
  38. package/dist/streaming/StreamingFileProcessorSimple.js +0 -170
  39. package/dist/streaming/StreamingFileProcessorSimple.js.map +0 -1
  40. package/tsconfig.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wundr.io/analysis-engine-simple",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Code analysis and quality metrics engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "minimatch": "^9.0.3",
22
22
  "@typescript-eslint/parser": "^6.21.0",
23
23
  "@typescript-eslint/typescript-estree": "^6.21.0",
24
- "@wundr.io/core-simple": "workspace:*"
24
+ "@wundr.io/core-simple": "^1.0.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/jest": "^29.5.8",
@@ -1,4 +0,0 @@
1
-
2
- > @wundr.io/analysis-engine-simple@1.0.0 build /Users/granfar/wundr/packages/analysis-engine
3
- > tsc
4
-
@@ -1,4 +0,0 @@
1
-
2
- > @wundr.io/analysis-engine-simple@1.0.0 typecheck /Users/granfar/wundr/packages/analysis-engine
3
- > tsc --noEmit
4
-
@@ -1,93 +0,0 @@
1
- /**
2
- * @fileoverview Optimized Base Analysis Service with streaming and worker pool support
3
- * Provides memory-efficient analysis with concurrent processing for large codebases
4
- */
5
- import { EventEmitter } from 'events';
6
- import type { AnalysisReport, AnalysisResult } from './index';
7
- export interface DuplicateGroup {
8
- type: string;
9
- files: string[];
10
- size: number;
11
- similarity: number;
12
- }
13
- export interface QualityMetrics {
14
- circularDependencies: number;
15
- codeSmells: number;
16
- technicalDebt: number;
17
- }
18
- export interface ReportData {
19
- analysis: AnalysisReport;
20
- duplicates: DuplicateGroup[];
21
- quality: QualityMetrics;
22
- timestamp: Date;
23
- config: OptimizedAnalysisConfig;
24
- }
25
- export interface OptimizedAnalysisConfig {
26
- targetDir: string;
27
- outputDir: string;
28
- includePatterns: string[];
29
- excludePatterns: string[];
30
- outputFormats: string[];
31
- verbose: boolean;
32
- performance: {
33
- maxConcurrency: number;
34
- chunkSize: number;
35
- enableCaching: boolean;
36
- maxMemoryUsage: number;
37
- enableStreaming: boolean;
38
- };
39
- }
40
- export interface AnalysisPhaseResult {
41
- phase: string;
42
- duration: number;
43
- filesProcessed: number;
44
- errors: string[];
45
- metrics: {
46
- memoryUsed: number;
47
- throughput: number;
48
- };
49
- }
50
- export interface OptimizedAnalysisResult {
51
- success: boolean;
52
- error?: Error | null;
53
- data?: {
54
- files: number;
55
- duplicates: DuplicateGroup[];
56
- violations: AnalysisResult[];
57
- summary: {
58
- totalFiles: number;
59
- duplicateGroups: number;
60
- violationCount: number;
61
- totalEntities: number;
62
- duplicateClusters: number;
63
- circularDependencies: number;
64
- codeSmells: number;
65
- technicalDebt: number;
66
- };
67
- phases: AnalysisPhaseResult[];
68
- };
69
- }
70
- /**
71
- * Optimized Analysis Service with streaming capabilities and worker pool management
72
- */
73
- export declare class OptimizedBaseAnalysisService extends EventEmitter {
74
- private config;
75
- private analyzer;
76
- private workers;
77
- private cache;
78
- private isInitialized;
79
- constructor(config: OptimizedAnalysisConfig);
80
- initialize(): Promise<void>;
81
- startAnalysis(options?: Record<string, unknown>): Promise<OptimizedAnalysisResult>;
82
- analyze(directory: string, _options?: Record<string, unknown>): Promise<OptimizedAnalysisResult>;
83
- private discoverFiles;
84
- private runContentAnalysis;
85
- private detectDuplicates;
86
- private analyzeCodeQuality;
87
- private generateReports;
88
- private generateHtmlReport;
89
- private generateMarkdownReport;
90
- private chunkArray;
91
- cleanup(): Promise<void>;
92
- }
93
- //# sourceMappingURL=BaseAnalysisServiceOptimizations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseAnalysisServiceOptimizations.d.ts","sourceRoot":"","sources":["../../src/analyzers/BaseAnalysisServiceOptimizations.ts"],"names":[],"mappings":"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"}
@@ -1,419 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Optimized Base Analysis Service with streaming and worker pool support
4
- * Provides memory-efficient analysis with concurrent processing for large codebases
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.OptimizedBaseAnalysisService = void 0;
8
- const tslib_1 = require("tslib");
9
- const events_1 = require("events");
10
- const path = tslib_1.__importStar(require("path"));
11
- const fs = tslib_1.__importStar(require("fs-extra"));
12
- const glob_1 = require("glob");
13
- const index_1 = require("./index");
14
- /**
15
- * Optimized Analysis Service with streaming capabilities and worker pool management
16
- */
17
- class OptimizedBaseAnalysisService extends events_1.EventEmitter {
18
- constructor(config) {
19
- super();
20
- this.workers = [];
21
- this.cache = new Map();
22
- this.isInitialized = false;
23
- this.config = config;
24
- this.analyzer = new index_1.CodeAnalyzer();
25
- }
26
- async initialize() {
27
- if (this.isInitialized) {
28
- return;
29
- }
30
- // Ensure output directory exists
31
- await fs.ensureDir(this.config.outputDir);
32
- // Initialize cache directory if caching is enabled
33
- if (this.config.performance.enableCaching) {
34
- await fs.ensureDir(path.join(this.config.outputDir, '.cache'));
35
- }
36
- this.isInitialized = true;
37
- this.emit('initialized');
38
- }
39
- async startAnalysis(options = {}) {
40
- return this.analyze(this.config.targetDir, options);
41
- }
42
- async analyze(directory, _options = {}) {
43
- const startTime = Date.now();
44
- const phases = [];
45
- try {
46
- await this.initialize();
47
- this.emit('progress', {
48
- type: 'phase',
49
- message: 'Starting optimized analysis...',
50
- });
51
- // Phase 1: File Discovery
52
- const discoveryStart = Date.now();
53
- this.emit('progress', {
54
- type: 'phase',
55
- message: 'Discovering files...',
56
- });
57
- const files = await this.discoverFiles(directory);
58
- phases.push({
59
- phase: 'discovery',
60
- duration: Date.now() - discoveryStart,
61
- filesProcessed: files.length,
62
- errors: [],
63
- metrics: {
64
- memoryUsed: process.memoryUsage().heapUsed,
65
- throughput: files.length / ((Date.now() - discoveryStart) / 1000),
66
- },
67
- });
68
- this.emit('progress', {
69
- type: 'progress',
70
- message: `Discovered ${files.length} files`,
71
- progress: files.length,
72
- total: files.length,
73
- });
74
- // Phase 2: Content Analysis
75
- const analysisStart = Date.now();
76
- this.emit('progress', {
77
- type: 'phase',
78
- message: 'Analyzing content...',
79
- });
80
- const analysisReport = await this.runContentAnalysis(files, directory);
81
- phases.push({
82
- phase: 'analysis',
83
- duration: Date.now() - analysisStart,
84
- filesProcessed: files.length,
85
- errors: [],
86
- metrics: {
87
- memoryUsed: process.memoryUsage().heapUsed,
88
- throughput: files.length / ((Date.now() - analysisStart) / 1000),
89
- },
90
- });
91
- // Phase 3: Duplicate Detection
92
- const duplicateStart = Date.now();
93
- this.emit('progress', {
94
- type: 'phase',
95
- message: 'Detecting duplicates...',
96
- });
97
- const duplicates = await this.detectDuplicates(files);
98
- phases.push({
99
- phase: 'duplicates',
100
- duration: Date.now() - duplicateStart,
101
- filesProcessed: files.length,
102
- errors: [],
103
- metrics: {
104
- memoryUsed: process.memoryUsage().heapUsed,
105
- throughput: files.length / ((Date.now() - duplicateStart) / 1000),
106
- },
107
- });
108
- // Phase 4: Quality Analysis
109
- const qualityStart = Date.now();
110
- this.emit('progress', {
111
- type: 'phase',
112
- message: 'Analyzing code quality...',
113
- });
114
- const qualityMetrics = await this.analyzeCodeQuality(files);
115
- phases.push({
116
- phase: 'quality',
117
- duration: Date.now() - qualityStart,
118
- filesProcessed: files.length,
119
- errors: [],
120
- metrics: {
121
- memoryUsed: process.memoryUsage().heapUsed,
122
- throughput: files.length / ((Date.now() - qualityStart) / 1000),
123
- },
124
- });
125
- // Phase 5: Report Generation
126
- const reportStart = Date.now();
127
- this.emit('progress', {
128
- type: 'phase',
129
- message: 'Generating reports...',
130
- });
131
- await this.generateReports(analysisReport, duplicates, qualityMetrics);
132
- phases.push({
133
- phase: 'reporting',
134
- duration: Date.now() - reportStart,
135
- filesProcessed: 0,
136
- errors: [],
137
- metrics: {
138
- memoryUsed: process.memoryUsage().heapUsed,
139
- throughput: 0,
140
- },
141
- });
142
- const totalDuration = Date.now() - startTime;
143
- this.emit('progress', {
144
- type: 'complete',
145
- message: `Analysis completed in ${totalDuration}ms`,
146
- });
147
- return {
148
- success: true,
149
- error: null,
150
- data: {
151
- files: files.length,
152
- duplicates: duplicates,
153
- violations: analysisReport.results,
154
- summary: {
155
- totalFiles: files.length,
156
- duplicateGroups: duplicates.length,
157
- violationCount: analysisReport.summary.totalIssues,
158
- totalEntities: analysisReport.summary.filesCovered,
159
- duplicateClusters: duplicates.length,
160
- circularDependencies: qualityMetrics.circularDependencies,
161
- codeSmells: qualityMetrics.codeSmells,
162
- technicalDebt: qualityMetrics.technicalDebt,
163
- },
164
- phases,
165
- },
166
- };
167
- }
168
- catch (error) {
169
- this.emit('progress', {
170
- type: 'error',
171
- message: error instanceof Error ? error.message : 'Unknown error',
172
- });
173
- return {
174
- success: false,
175
- error: error instanceof Error ? error : new Error(String(error)),
176
- };
177
- }
178
- }
179
- async discoverFiles(directory) {
180
- const allFiles = [];
181
- for (const pattern of this.config.includePatterns) {
182
- try {
183
- const fullPattern = path.join(directory, pattern);
184
- const files = await (0, glob_1.glob)(fullPattern, {
185
- ignore: this.config.excludePatterns.map(p => path.join(directory, p)),
186
- });
187
- allFiles.push(...files);
188
- }
189
- catch (error) {
190
- console.warn('Error globbing pattern:', pattern, error);
191
- }
192
- }
193
- return [...new Set(allFiles)];
194
- }
195
- async runContentAnalysis(files, projectPath) {
196
- // Use the existing analyzer but with chunked processing
197
- const chunkSize = Math.min(this.config.performance.chunkSize, files.length);
198
- const chunks = this.chunkArray(files, chunkSize);
199
- let totalReport = null;
200
- for (let i = 0; i < chunks.length; i++) {
201
- // Process chunk ${i + 1}/${chunks.length} - placeholder for future enhancement
202
- this.emit('progress', {
203
- type: 'progress',
204
- message: `Analyzing chunk ${i + 1}/${chunks.length}`,
205
- progress: i + 1,
206
- total: chunks.length,
207
- });
208
- // For this implementation, we'll use the existing analyzer
209
- // In a real implementation, this would process the specific chunk
210
- const chunkReport = await this.analyzer.analyze(projectPath);
211
- if (totalReport === null) {
212
- totalReport = chunkReport;
213
- }
214
- else {
215
- // Merge reports
216
- totalReport.results.push(...chunkReport.results);
217
- totalReport.analyzedFiles += chunkReport.analyzedFiles;
218
- totalReport.summary.totalIssues += chunkReport.summary.totalIssues;
219
- totalReport.summary.criticalIssues += chunkReport.summary.criticalIssues;
220
- totalReport.summary.errorIssues += chunkReport.summary.errorIssues;
221
- totalReport.summary.warningIssues += chunkReport.summary.warningIssues;
222
- totalReport.summary.infoIssues += chunkReport.summary.infoIssues;
223
- }
224
- // Memory check
225
- const memoryUsage = process.memoryUsage().heapUsed;
226
- if (memoryUsage > this.config.performance.maxMemoryUsage * 0.9) {
227
- this.emit('memory-leak-warning', {
228
- severity: 'high',
229
- growthRate: 0,
230
- current: memoryUsage,
231
- });
232
- // Force garbage collection if available
233
- if (typeof global.gc === 'function') {
234
- global.gc();
235
- }
236
- }
237
- }
238
- return totalReport ?? {
239
- timestamp: new Date(),
240
- projectPath,
241
- totalFiles: files.length,
242
- analyzedFiles: 0,
243
- results: [],
244
- summary: {
245
- totalIssues: 0,
246
- criticalIssues: 0,
247
- errorIssues: 0,
248
- warningIssues: 0,
249
- infoIssues: 0,
250
- ruleViolations: {},
251
- filesCovered: 0,
252
- analysisTime: 0,
253
- },
254
- metrics: {
255
- codeComplexity: 0,
256
- duplicateLines: 0,
257
- unusedImports: 0,
258
- circularDependencies: 0,
259
- codeSmells: 0,
260
- technicalDebt: {
261
- hours: 0,
262
- priority: 'low',
263
- },
264
- },
265
- };
266
- }
267
- async detectDuplicates(files) {
268
- // Simple duplicate detection based on file size and basic content hashing
269
- const duplicates = [];
270
- const sizeGroups = new Map();
271
- for (const file of files) {
272
- try {
273
- const stats = await fs.stat(file);
274
- const size = stats.size;
275
- if (!sizeGroups.has(size)) {
276
- sizeGroups.set(size, []);
277
- }
278
- sizeGroups.get(size).push(file);
279
- }
280
- catch (error) {
281
- // Skip files that can't be read
282
- }
283
- }
284
- // Find groups with more than one file (potential duplicates)
285
- for (const [size, fileList] of sizeGroups.entries()) {
286
- if (fileList.length > 1 && size > 0) {
287
- duplicates.push({
288
- type: 'potential-duplicate',
289
- files: fileList,
290
- size,
291
- similarity: 0.8, // Mock similarity score
292
- });
293
- }
294
- }
295
- return duplicates;
296
- }
297
- async analyzeCodeQuality(files) {
298
- await Promise.resolve(); // Add await expression to satisfy linter
299
- // Simple code quality analysis
300
- let circularDependencies = 0;
301
- let codeSmells = 0;
302
- let technicalDebt = 0;
303
- // Mock analysis based on file patterns
304
- for (const file of files) {
305
- if (file.includes('legacy') || file.includes('old')) {
306
- technicalDebt += 10;
307
- }
308
- if (file.includes('temp') || file.includes('hack')) {
309
- codeSmells += 5;
310
- }
311
- // Simple circular dependency detection would require AST parsing
312
- // For now, just mock some results
313
- if (Math.random() < 0.1) {
314
- circularDependencies += 1;
315
- }
316
- }
317
- return {
318
- circularDependencies,
319
- codeSmells,
320
- technicalDebt,
321
- };
322
- }
323
- async generateReports(analysisReport, duplicates, qualityMetrics) {
324
- for (const format of this.config.outputFormats) {
325
- const reportData = {
326
- analysis: analysisReport,
327
- duplicates,
328
- quality: qualityMetrics,
329
- timestamp: new Date(),
330
- config: this.config,
331
- };
332
- switch (format) {
333
- case 'json':
334
- await fs.writeJSON(path.join(this.config.outputDir, 'analysis-report.json'), reportData, { spaces: 2 });
335
- break;
336
- case 'html':
337
- await this.generateHtmlReport(reportData);
338
- break;
339
- case 'markdown':
340
- await this.generateMarkdownReport(reportData);
341
- break;
342
- }
343
- }
344
- }
345
- async generateHtmlReport(data) {
346
- const html = `
347
- <!DOCTYPE html>
348
- <html>
349
- <head>
350
- <title>Analysis Report</title>
351
- <style>
352
- body { font-family: Arial, sans-serif; margin: 20px; }
353
- .summary { background: #f5f5f5; padding: 15px; border-radius: 5px; }
354
- .metric { display: inline-block; margin: 10px; }
355
- </style>
356
- </head>
357
- <body>
358
- <h1>Code Analysis Report</h1>
359
- <div class="summary">
360
- <h2>Summary</h2>
361
- <div class="metric">Total Files: <strong>${data.analysis.totalFiles}</strong></div>
362
- <div class="metric">Issues Found: <strong>${data.analysis.summary.totalIssues}</strong></div>
363
- <div class="metric">Duplicates: <strong>${data.duplicates.length}</strong></div>
364
- <div class="metric">Code Smells: <strong>${data.quality.codeSmells}</strong></div>
365
- </div>
366
- <p>Generated on: ${data.timestamp.toString()}</p>
367
- </body>
368
- </html>`;
369
- await fs.writeFile(path.join(this.config.outputDir, 'analysis-report.html'), html);
370
- }
371
- async generateMarkdownReport(data) {
372
- const markdown = `# Code Analysis Report
373
-
374
- ## Summary
375
-
376
- - **Total Files**: ${data.analysis.totalFiles}
377
- - **Issues Found**: ${data.analysis.summary.totalIssues}
378
- - **Duplicates**: ${data.duplicates.length}
379
- - **Code Smells**: ${data.quality.codeSmells}
380
- - **Technical Debt**: ${data.quality.technicalDebt}
381
-
382
- ## Analysis Details
383
-
384
- ### Issues by Severity
385
- - Critical: ${data.analysis.summary.criticalIssues}
386
- - Error: ${data.analysis.summary.errorIssues}
387
- - Warning: ${data.analysis.summary.warningIssues}
388
- - Info: ${data.analysis.summary.infoIssues}
389
-
390
- ### Quality Metrics
391
- - Circular Dependencies: ${data.quality.circularDependencies}
392
- - Code Smells: ${data.quality.codeSmells}
393
- - Technical Debt Score: ${data.quality.technicalDebt}
394
-
395
- ---
396
- *Generated on: ${data.timestamp.toString()}*
397
- `;
398
- await fs.writeFile(path.join(this.config.outputDir, 'analysis-report.md'), markdown);
399
- }
400
- chunkArray(array, chunkSize) {
401
- const chunks = [];
402
- for (let i = 0; i < array.length; i += chunkSize) {
403
- chunks.push(array.slice(i, i + chunkSize));
404
- }
405
- return chunks;
406
- }
407
- async cleanup() {
408
- // Cleanup workers
409
- for (const worker of this.workers) {
410
- await worker.terminate();
411
- }
412
- this.workers = [];
413
- // Clear cache
414
- this.cache.clear();
415
- this.emit('cleanup-complete');
416
- }
417
- }
418
- exports.OptimizedBaseAnalysisService = OptimizedBaseAnalysisService;
419
- //# sourceMappingURL=BaseAnalysisServiceOptimizations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseAnalysisServiceOptimizations.js","sourceRoot":"","sources":["../../src/analyzers/BaseAnalysisServiceOptimizations.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- /**
2
- * @fileoverview Code analyzers for static analysis
3
- */
4
- import type { BaseEntity } from '@wundr.io/core-simple';
5
- export interface AnalysisResult extends BaseEntity {
6
- filePath: string;
7
- type: string;
8
- message: string;
9
- severity: 'info' | 'warning' | 'error' | 'critical';
10
- line?: number;
11
- column?: number;
12
- rule?: string;
13
- }
14
- export interface AnalysisReport {
15
- timestamp: Date;
16
- projectPath: string;
17
- totalFiles: number;
18
- analyzedFiles: number;
19
- results: AnalysisResult[];
20
- summary: {
21
- totalIssues: number;
22
- criticalIssues: number;
23
- errorIssues: number;
24
- warningIssues: number;
25
- infoIssues: number;
26
- ruleViolations: Record<string, number>;
27
- filesCovered: number;
28
- analysisTime: number;
29
- };
30
- metrics: {
31
- codeComplexity: number;
32
- duplicateLines: number;
33
- unusedImports: number;
34
- circularDependencies: number;
35
- codeSmells: number;
36
- technicalDebt: {
37
- hours: number;
38
- priority: string;
39
- };
40
- };
41
- }
42
- export interface AnalyzerConfig {
43
- enabled: boolean;
44
- excludePatterns: string[];
45
- includePatterns: string[];
46
- rules: Record<string, unknown>;
47
- severity: 'info' | 'warning' | 'error' | 'critical';
48
- }
49
- export declare class CodeAnalyzer {
50
- constructor(_config?: Record<string, AnalyzerConfig>);
51
- analyze(projectPath: string): Promise<AnalysisReport>;
52
- private getFileList;
53
- }
54
- export declare class AnalyzerFactory {
55
- static createStandardAnalyzer(): CodeAnalyzer;
56
- }
57
- export declare const DEFAULT_ANALYZER_CONFIG: Record<string, AnalyzerConfig>;
58
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE;YACb,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;CACrD;AAED,qBAAa,YAAY;gBACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAI9C,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAqD7C,WAAW;CA0B1B;AAED,qBAAa,eAAe;IAC1B,MAAM,CAAC,sBAAsB,IAAI,YAAY;CAG9C;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAQlE,CAAC"}