@wundr.io/analysis-engine-simple 1.0.12 → 1.0.15

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 (38) hide show
  1. package/dist/analyzers/BaseAnalysisServiceOptimizations.d.ts +93 -0
  2. package/dist/analyzers/BaseAnalysisServiceOptimizations.d.ts.map +1 -0
  3. package/dist/analyzers/BaseAnalysisServiceOptimizations.js +419 -0
  4. package/dist/analyzers/BaseAnalysisServiceOptimizations.js.map +1 -0
  5. package/dist/analyzers/index.d.ts +59 -0
  6. package/dist/analyzers/index.d.ts.map +1 -0
  7. package/dist/analyzers/index.js +103 -0
  8. package/dist/analyzers/index.js.map +1 -0
  9. package/dist/engines/DuplicateDetectionEngineSimple.d.ts +46 -0
  10. package/dist/engines/DuplicateDetectionEngineSimple.d.ts.map +1 -0
  11. package/dist/engines/DuplicateDetectionEngineSimple.js +135 -0
  12. package/dist/engines/DuplicateDetectionEngineSimple.js.map +1 -0
  13. package/dist/index.d.ts +13 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +27 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/metrics/index.d.ts +39 -0
  18. package/dist/metrics/index.d.ts.map +1 -0
  19. package/dist/metrics/index.js +42 -0
  20. package/dist/metrics/index.js.map +1 -0
  21. package/dist/monitoring/MemoryMonitorSimple.d.ts +79 -0
  22. package/dist/monitoring/MemoryMonitorSimple.d.ts.map +1 -0
  23. package/dist/monitoring/MemoryMonitorSimple.js +184 -0
  24. package/dist/monitoring/MemoryMonitorSimple.js.map +1 -0
  25. package/dist/optimization/PerformanceBenchmarkSuiteSimple.d.ts +37 -0
  26. package/dist/optimization/PerformanceBenchmarkSuiteSimple.d.ts.map +1 -0
  27. package/dist/optimization/PerformanceBenchmarkSuiteSimple.js +62 -0
  28. package/dist/optimization/PerformanceBenchmarkSuiteSimple.js.map +1 -0
  29. package/dist/reporters/index.d.ts +65 -0
  30. package/dist/reporters/index.d.ts.map +1 -0
  31. package/dist/reporters/index.js +211 -0
  32. package/dist/reporters/index.js.map +1 -0
  33. package/dist/streaming/StreamingFileProcessorSimple.d.ts +58 -0
  34. package/dist/streaming/StreamingFileProcessorSimple.d.ts.map +1 -0
  35. package/dist/streaming/StreamingFileProcessorSimple.js +170 -0
  36. package/dist/streaming/StreamingFileProcessorSimple.js.map +1 -0
  37. package/package.json +1 -1
  38. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Simplified Streaming File Processor for immediate functionality
4
+ * Basic file processing with proper TypeScript types
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.StreamingFileProcessor = 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
+ /**
13
+ * Simplified streaming file processor
14
+ */
15
+ class StreamingFileProcessor extends events_1.EventEmitter {
16
+ constructor() {
17
+ super();
18
+ this.stats = {
19
+ filesProcessed: 0,
20
+ bytesProcessed: 0,
21
+ linesProcessed: 0,
22
+ processingRate: 0,
23
+ memoryUsage: 0,
24
+ averageFileSize: 0,
25
+ errorCount: 0,
26
+ };
27
+ }
28
+ async processFiles(filePaths) {
29
+ const startTime = Date.now();
30
+ const results = [];
31
+ this.resetStats();
32
+ this.emit('processing-started', {
33
+ totalFiles: filePaths.length,
34
+ });
35
+ try {
36
+ for (const filePath of filePaths) {
37
+ try {
38
+ const result = await this.processFile(filePath);
39
+ if (result !== null) {
40
+ results.push(result);
41
+ }
42
+ }
43
+ catch (error) {
44
+ this.emit('file-error', { file: filePath, error });
45
+ this.stats.errorCount++;
46
+ }
47
+ }
48
+ const processingTime = Date.now() - startTime;
49
+ this.stats.processingRate = this.stats.filesProcessed / (processingTime / 1000);
50
+ this.emit('processing-completed', {
51
+ totalProcessed: results.length,
52
+ totalErrors: this.stats.errorCount,
53
+ processingTime,
54
+ stats: this.stats,
55
+ });
56
+ return results;
57
+ }
58
+ catch (error) {
59
+ this.emit('processing-error', { error });
60
+ throw error;
61
+ }
62
+ }
63
+ async processFile(filePath) {
64
+ const stats = await fs.stat(filePath);
65
+ const content = await fs.readFile(filePath, 'utf8');
66
+ const lines = content.split('\n');
67
+ this.emit('file-started', {
68
+ file: path.basename(filePath),
69
+ size: stats.size,
70
+ });
71
+ const processedFile = {
72
+ path: filePath,
73
+ size: stats.size,
74
+ lines: lines.length,
75
+ encoding: 'utf8',
76
+ mimeType: this.detectMimeType(filePath),
77
+ lastModified: stats.mtime,
78
+ metadata: {
79
+ language: this.detectLanguage(filePath),
80
+ complexity: this.calculateComplexity(content),
81
+ imports: this.extractImports(content),
82
+ exports: this.extractExports(content),
83
+ },
84
+ };
85
+ this.stats.filesProcessed++;
86
+ this.stats.bytesProcessed += stats.size;
87
+ this.stats.linesProcessed += lines.length;
88
+ this.stats.memoryUsage = process.memoryUsage().heapUsed;
89
+ if (this.stats.filesProcessed > 0) {
90
+ this.stats.averageFileSize = this.stats.bytesProcessed / this.stats.filesProcessed;
91
+ }
92
+ this.emit('file-completed', {
93
+ file: path.basename(filePath),
94
+ lines: processedFile.lines,
95
+ size: processedFile.size,
96
+ });
97
+ return processedFile;
98
+ }
99
+ detectMimeType(filePath) {
100
+ const ext = path.extname(filePath).toLowerCase();
101
+ const mimeTypes = {
102
+ '.js': 'text/javascript',
103
+ '.ts': 'text/typescript',
104
+ '.jsx': 'text/jsx',
105
+ '.tsx': 'text/tsx',
106
+ '.json': 'application/json',
107
+ '.md': 'text/markdown',
108
+ };
109
+ return mimeTypes[ext] ?? 'text/plain';
110
+ }
111
+ detectLanguage(filePath) {
112
+ const ext = path.extname(filePath).toLowerCase();
113
+ const languages = {
114
+ '.js': 'javascript',
115
+ '.ts': 'typescript',
116
+ '.jsx': 'javascript',
117
+ '.tsx': 'typescript',
118
+ };
119
+ return languages[ext] ?? 'unknown';
120
+ }
121
+ calculateComplexity(content) {
122
+ const complexityKeywords = /\b(if|for|while|switch|try|catch)\b/g;
123
+ return (content.match(complexityKeywords) ?? []).length;
124
+ }
125
+ extractImports(content) {
126
+ const imports = [];
127
+ const importRegex = /import.*from\s+['"]([^'"]+)['"]|require\(['"]([^'"]+)['"]\)/g;
128
+ let match;
129
+ while ((match = importRegex.exec(content)) !== null) {
130
+ const importPath = match[1] ?? match[2];
131
+ if (importPath !== undefined && importPath.trim() !== '') {
132
+ imports.push(importPath);
133
+ }
134
+ }
135
+ return imports;
136
+ }
137
+ extractExports(content) {
138
+ const exports = [];
139
+ const exportRegex = /export\s+(?:default\s+)?(?:class|function|const|let|var)\s+(\w+)/g;
140
+ let match;
141
+ while ((match = exportRegex.exec(content)) !== null) {
142
+ const exportName = match[1];
143
+ if (exportName !== undefined && exportName.trim() !== '') {
144
+ exports.push(exportName);
145
+ }
146
+ }
147
+ return exports;
148
+ }
149
+ resetStats() {
150
+ this.stats = {
151
+ filesProcessed: 0,
152
+ bytesProcessed: 0,
153
+ linesProcessed: 0,
154
+ processingRate: 0,
155
+ memoryUsage: 0,
156
+ averageFileSize: 0,
157
+ errorCount: 0,
158
+ };
159
+ }
160
+ getStats() {
161
+ return { ...this.stats };
162
+ }
163
+ async cleanup() {
164
+ await Promise.resolve(); // Add await expression to satisfy linter
165
+ this.resetStats();
166
+ this.emit('cleanup-complete');
167
+ }
168
+ }
169
+ exports.StreamingFileProcessor = StreamingFileProcessor;
170
+ //# sourceMappingURL=StreamingFileProcessorSimple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingFileProcessorSimple.js","sourceRoot":"","sources":["../../src/streaming/StreamingFileProcessorSimple.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wundr.io/analysis-engine-simple",
3
- "version": "1.0.12",
3
+ "version": "1.0.15",
4
4
  "description": "Code analysis and quality metrics engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",