eff-u-code 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/bin/fuck-u-code.js +49 -1
  2. package/dist/analyzer/concurrent-analyzer.d.ts.map +1 -1
  3. package/dist/analyzer/concurrent-analyzer.js +16 -5
  4. package/dist/analyzer/concurrent-analyzer.js.map +1 -1
  5. package/dist/analyzer/index.d.ts +0 -3
  6. package/dist/analyzer/index.d.ts.map +1 -1
  7. package/dist/analyzer/index.js +9 -7
  8. package/dist/analyzer/index.js.map +1 -1
  9. package/dist/cli/commands/analyze.js +1 -0
  10. package/dist/cli/commands/analyze.js.map +1 -1
  11. package/dist/cli/output/json.d.ts.map +1 -1
  12. package/dist/cli/output/json.js +64 -0
  13. package/dist/cli/output/json.js.map +1 -1
  14. package/dist/config/schema.js +2 -2
  15. package/dist/i18n/locales/en.json +44 -1
  16. package/dist/i18n/locales/ru.json +44 -1
  17. package/dist/i18n/locales/zh.json +44 -1
  18. package/dist/mcp/server.js +2 -2
  19. package/dist/mcp/server.js.map +1 -1
  20. package/dist/metrics/complexity/cognitive.d.ts.map +1 -1
  21. package/dist/metrics/complexity/cognitive.js +29 -6
  22. package/dist/metrics/complexity/cognitive.js.map +1 -1
  23. package/dist/metrics/complexity/cyclomatic.d.ts.map +1 -1
  24. package/dist/metrics/complexity/cyclomatic.js +29 -7
  25. package/dist/metrics/complexity/cyclomatic.js.map +1 -1
  26. package/dist/metrics/size/function-length.d.ts.map +1 -1
  27. package/dist/metrics/size/function-length.js +27 -6
  28. package/dist/metrics/size/function-length.js.map +1 -1
  29. package/dist/parser/index.d.ts +1 -5
  30. package/dist/parser/index.d.ts.map +1 -1
  31. package/dist/parser/index.js +38 -22
  32. package/dist/parser/index.js.map +1 -1
  33. package/dist/parser/tree-sitter-parser.d.ts +3 -0
  34. package/dist/parser/tree-sitter-parser.d.ts.map +1 -1
  35. package/dist/parser/tree-sitter-parser.js +42 -26
  36. package/dist/parser/tree-sitter-parser.js.map +1 -1
  37. package/dist/scoring/index.d.ts +0 -3
  38. package/dist/scoring/index.d.ts.map +1 -1
  39. package/dist/scoring/index.js +0 -3
  40. package/dist/scoring/index.js.map +1 -1
  41. package/dist/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/package.json +1 -1
@@ -1,2 +1,50 @@
1
1
  #!/usr/bin/env node
2
- import('../dist/index.js');
2
+
3
+ import { spawn } from 'child_process';
4
+ import { fileURLToPath } from 'url';
5
+ import { dirname, join } from 'path';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+
10
+ const hasMemoryFlag = process.execArgv.some(arg => arg.startsWith('--max-old-space-size'));
11
+
12
+ if (!hasMemoryFlag) {
13
+ const args = [
14
+ '--max-old-space-size=8192',
15
+ join(__dirname, '..', 'dist', 'index.js'),
16
+ ...process.argv.slice(2)
17
+ ];
18
+
19
+ const child = spawn(process.execPath, args, {
20
+ stdio: ['inherit', 'inherit', 'pipe'],
21
+ env: process.env
22
+ });
23
+
24
+ let inFatalError = false;
25
+
26
+ child.stderr.on('data', (data) => {
27
+ const text = data.toString();
28
+
29
+ if (text.includes('Fatal process out of memory') || text.includes('Native stack trace')) {
30
+ inFatalError = true;
31
+ return;
32
+ }
33
+
34
+ if (inFatalError) {
35
+ return;
36
+ }
37
+
38
+ process.stderr.write(data);
39
+ });
40
+
41
+ child.on('exit', (code) => {
42
+ if (code === 133 && inFatalError) {
43
+ process.exit(0);
44
+ } else {
45
+ process.exit(code || 0);
46
+ }
47
+ });
48
+ } else {
49
+ import('../dist/index.js');
50
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"concurrent-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
1
+ {"version":3,"file":"concurrent-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA4B/B"}
@@ -13,7 +13,7 @@ const MAX_FILE_SIZE_KB = 500;
13
13
  * Analyze files concurrently with configurable parallelism
14
14
  */
15
15
  export async function analyzeFilesConcurrently(files, config, onProgress) {
16
- const concurrency = config.concurrency || 8;
16
+ const concurrency = config.concurrency || 2;
17
17
  const limit = pLimit(concurrency);
18
18
  let completed = 0;
19
19
  const total = files.length;
@@ -26,6 +26,9 @@ export async function analyzeFilesConcurrently(files, config, onProgress) {
26
26
  }
27
27
  catch (error) {
28
28
  logger.warn(t('warn_analyze_failed', { file: file.relativePath, error: String(error) }));
29
+ if (config.verbose && error instanceof Error) {
30
+ console.error(error.stack);
31
+ }
29
32
  completed++;
30
33
  onProgress?.(completed, total);
31
34
  return null;
@@ -45,11 +48,19 @@ async function analyzeFile(file, config) {
45
48
  logger.warn(t('warn_file_too_large', { size: fileSizeKB, file: file.relativePath }));
46
49
  return null;
47
50
  }
48
- // Read file content
49
51
  const content = await readFileContent(file.absolutePath);
50
- // Parse file
51
- const parser = createParser(file.language);
52
- const parseResult = await parser.parse(file.absolutePath, content);
52
+ const parser = await createParser(file.language);
53
+ let parseResult;
54
+ try {
55
+ parseResult = await parser.parse(file.absolutePath, content);
56
+ }
57
+ catch (error) {
58
+ // If tree-sitter parsing fails, try with regex parser as fallback
59
+ logger.warn(`Tree-sitter parsing failed for ${file.relativePath}, falling back to regex parser: ${error instanceof Error ? error.message : String(error)}`);
60
+ const { RegexParser } = await import('../parser/regex-parser.js');
61
+ const fallbackParser = new RegexParser(file.language);
62
+ parseResult = fallbackParser.parse(file.absolutePath, content);
63
+ }
53
64
  // Add content to parse result for metrics that need it
54
65
  parseResult.content = content;
55
66
  // Create language-specific metrics
@@ -1 +1 @@
1
- {"version":3,"file":"concurrent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concurrent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,6 @@ export interface AnalyzerCallbacks {
8
8
  onDiscoveryComplete?: (fileCount: number) => void;
9
9
  onAnalysisProgress?: (current: number, total: number) => void;
10
10
  }
11
- /**
12
- * Analyzer class for code quality analysis
13
- */
14
11
  export declare class Analyzer {
15
12
  private config;
16
13
  private callbacks?;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAoB;gBAE1B,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,iBAAiB;IAKhE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAgDhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAE7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAoB;gBAE1B,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,iBAAiB;IAKhE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAuDhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAE7F"}
@@ -4,9 +4,6 @@
4
4
  import { discoverFiles } from './file-discovery.js';
5
5
  import { analyzeFilesConcurrently } from './concurrent-analyzer.js';
6
6
  import { aggregateMetrics } from '../scoring/index.js';
7
- /**
8
- * Analyzer class for code quality analysis
9
- */
10
7
  export class Analyzer {
11
8
  config;
12
9
  callbacks;
@@ -39,10 +36,15 @@ export class Analyzer {
39
36
  const fileResults = await analyzeFilesConcurrently(discovery.files, this.config, this.callbacks?.onAnalysisProgress);
40
37
  // Aggregate metrics
41
38
  const aggregatedMetrics = aggregateMetrics(fileResults, this.config);
42
- // Calculate overall score
43
- const overallScore = fileResults.length > 0
44
- ? fileResults.reduce((sum, r) => sum + r.score, 0) / fileResults.length
45
- : 100;
39
+ // Calculate overall score weighted by code size
40
+ let totalWeight = 0;
41
+ let weightedSum = 0;
42
+ for (const file of fileResults) {
43
+ const weight = Math.max(1, file.parseResult.codeLines);
44
+ totalWeight += weight;
45
+ weightedSum += file.score * weight;
46
+ }
47
+ const overallScore = fileResults.length > 0 && totalWeight > 0 ? weightedSum / totalWeight : 100;
46
48
  return {
47
49
  projectPath: this.config.projectPath,
48
50
  totalFiles: discovery.totalScanned,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAgB;IACtB,SAAS,CAAqB;IAEtC,YAAY,MAAqB,EAAE,SAA6B;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,iBAAiB;QACjB,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9D,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,UAAU,EAAE,SAAS,CAAC,YAAY;gBAClC,aAAa,EAAE,CAAC;gBAChB,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,WAAW,EAAE,EAAE;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,GAAG;gBACjB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACrC,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAChD,SAAS,CAAC,KAAK,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EAAE,kBAAkB,CACnC,CAAC;QAEF,oBAAoB;QACpB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErE,0BAA0B;QAC1B,MAAM,YAAY,GAChB,WAAW,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM;YACvE,CAAC,CAAC,GAAG,CAAC;QAEV,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,UAAU,EAAE,SAAS,CAAC,YAAY;YAClC,aAAa,EAAE,WAAW,CAAC,MAAM;YACjC,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,WAAW;YACX,iBAAiB;YACjB,YAAY;YACZ,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACrC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,SAA6B;IACjF,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,MAAM,OAAO,QAAQ;IACX,MAAM,CAAgB;IACtB,SAAS,CAAqB;IAEtC,YAAY,MAAqB,EAAE,SAA6B;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,iBAAiB;QACjB,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9D,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,UAAU,EAAE,SAAS,CAAC,YAAY;gBAClC,aAAa,EAAE,CAAC;gBAChB,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,WAAW,EAAE,EAAE;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,GAAG;gBACjB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACrC,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAChD,SAAS,CAAC,KAAK,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EAAE,kBAAkB,CACnC,CAAC;QAEF,oBAAoB;QACpB,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErE,gDAAgD;QAChD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACvD,WAAW,IAAI,MAAM,CAAC;YACtB,WAAW,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAChB,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;QAE9E,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,UAAU,EAAE,SAAS,CAAC,YAAY;YAClC,aAAa,EAAE,WAAW,CAAC,MAAM;YACjC,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,WAAW;YACX,iBAAiB;YACjB,YAAY;YACZ,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACrC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,SAA6B;IACjF,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
@@ -134,6 +134,7 @@ async function runAnalyze(projectPath, options) {
134
134
  consoleOutput.render(result);
135
135
  }
136
136
  }
137
+ process.exit(0);
137
138
  }
138
139
  catch (error) {
139
140
  discoverySpinner.fail(t('analysisFailed'));
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/cli/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/cli/output/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,qBAAa,UAAU;IACrB,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM;CA4C9C"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/cli/output/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAIpE,qBAAa,UAAU;IACrB,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM;CA0G9C"}
@@ -1,9 +1,73 @@
1
1
  /**
2
2
  * JSON output formatter
3
3
  */
4
+ import { t } from '../../i18n/index.js';
5
+ import { VERSION } from '../../version.js';
4
6
  export class JsonOutput {
5
7
  render(result) {
6
8
  return JSON.stringify({
9
+ $schema: {
10
+ version: VERSION,
11
+ description: t('json_schema_description'),
12
+ fields: {
13
+ projectPath: t('json_field_projectPath'),
14
+ overallScore: t('json_field_overallScore'),
15
+ summary: {
16
+ description: t('json_field_summary'),
17
+ totalFiles: t('json_field_summary_totalFiles'),
18
+ analyzedFiles: t('json_field_summary_analyzedFiles'),
19
+ skippedFiles: t('json_field_summary_skippedFiles'),
20
+ analysisTime: t('json_field_summary_analysisTime'),
21
+ },
22
+ aggregatedMetrics: {
23
+ description: t('json_field_aggregatedMetrics'),
24
+ name: t('json_field_aggregatedMetrics_name'),
25
+ category: t('json_field_aggregatedMetrics_category'),
26
+ average: t('json_field_aggregatedMetrics_average'),
27
+ min: t('json_field_aggregatedMetrics_min'),
28
+ max: t('json_field_aggregatedMetrics_max'),
29
+ median: t('json_field_aggregatedMetrics_median'),
30
+ },
31
+ files: {
32
+ description: t('json_field_files'),
33
+ path: t('json_field_files_path'),
34
+ score: t('json_field_files_score'),
35
+ metrics: {
36
+ description: t('json_field_files_metrics'),
37
+ name: t('json_field_files_metrics_name'),
38
+ category: t('json_field_files_metrics_category'),
39
+ value: t('json_field_files_metrics_value'),
40
+ normalizedScore: t('json_field_files_metrics_normalizedScore'),
41
+ severity: t('json_field_files_metrics_severity'),
42
+ details: t('json_field_files_metrics_details'),
43
+ },
44
+ parseResult: {
45
+ description: t('json_field_files_parseResult'),
46
+ language: t('json_field_files_parseResult_language'),
47
+ totalLines: t('json_field_files_parseResult_totalLines'),
48
+ codeLines: t('json_field_files_parseResult_codeLines'),
49
+ commentLines: t('json_field_files_parseResult_commentLines'),
50
+ functionCount: t('json_field_files_parseResult_functionCount'),
51
+ classCount: t('json_field_files_parseResult_classCount'),
52
+ },
53
+ },
54
+ },
55
+ metricCategories: {
56
+ complexity: t('json_category_complexity'),
57
+ size: t('json_category_size'),
58
+ duplication: t('json_category_duplication'),
59
+ structure: t('json_category_structure'),
60
+ error: t('json_category_error'),
61
+ documentation: t('json_category_documentation'),
62
+ naming: t('json_category_naming'),
63
+ },
64
+ severityLevels: {
65
+ info: t('json_severity_info'),
66
+ warning: t('json_severity_warning'),
67
+ error: t('json_severity_error'),
68
+ critical: t('json_severity_critical'),
69
+ },
70
+ },
7
71
  projectPath: result.projectPath,
8
72
  overallScore: result.overallScore,
9
73
  summary: {
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/output/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,UAAU;IACrB,MAAM,CAAC,MAA6B;QAClC,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE;gBACP,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;YACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtD,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;YACH,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,eAAe,EAAE,CAAC,CAAC,eAAe;oBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;gBACH,WAAW,EAAE;oBACX,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;oBAChC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU;oBACpC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS;oBAClC,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY;oBACxC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM;oBAC7C,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;iBACzC;aACF,CAAC,CAAC;SACJ,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/output/json.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { z } from 'zod';
6
6
  export const configSchema = z.object({
7
7
  exclude: z.array(z.string()).optional().default([]),
8
8
  include: z.array(z.string()).optional().default(['**/*']),
9
- concurrency: z.number().min(1).max(32).optional().default(8),
9
+ concurrency: z.number().min(1).max(32).optional().default(2),
10
10
  verbose: z.boolean().optional().default(false),
11
11
  output: z
12
12
  .object({
@@ -56,7 +56,7 @@ export const configSchema = z.object({
56
56
  export const DEFAULT_CONFIG = {
57
57
  exclude: [],
58
58
  include: ['**/*'],
59
- concurrency: 8,
59
+ concurrency: 2,
60
60
  verbose: false,
61
61
  output: {
62
62
  format: 'console',
@@ -345,5 +345,48 @@
345
345
  "update_updating": "Updating eff-u-code...",
346
346
  "update_success": "Update successful!",
347
347
  "update_updated_to": "Updated to version",
348
- "update_failed": "Update failed"
348
+ "update_failed": "Update failed",
349
+ "json_schema_description": "Code quality analysis report in JSON format",
350
+ "json_field_projectPath": "Absolute path to the analyzed project",
351
+ "json_field_overallScore": "Overall quality score (0-100, higher is better)",
352
+ "json_field_summary": "Summary statistics of the analysis",
353
+ "json_field_summary_totalFiles": "Total number of files discovered in the project",
354
+ "json_field_summary_analyzedFiles": "Number of files successfully analyzed",
355
+ "json_field_summary_skippedFiles": "Number of files skipped (too large, unsupported, etc.)",
356
+ "json_field_summary_analysisTime": "Total analysis time in milliseconds",
357
+ "json_field_aggregatedMetrics": "Aggregated metrics across all analyzed files",
358
+ "json_field_aggregatedMetrics_name": "Metric name (e.g., cyclomatic_complexity, cognitive_complexity)",
359
+ "json_field_aggregatedMetrics_category": "Metric category (complexity, size, duplication, structure, error, documentation, naming)",
360
+ "json_field_aggregatedMetrics_average": "Average score across all files (0-100)",
361
+ "json_field_aggregatedMetrics_min": "Minimum score among all files (0-100)",
362
+ "json_field_aggregatedMetrics_max": "Maximum score among all files (0-100)",
363
+ "json_field_aggregatedMetrics_median": "Median score across all files (0-100)",
364
+ "json_field_files": "Detailed analysis results for each file",
365
+ "json_field_files_path": "Relative path to the file from project root",
366
+ "json_field_files_score": "Overall quality score for this file (0-100)",
367
+ "json_field_files_metrics": "Detailed metrics for this file",
368
+ "json_field_files_metrics_name": "Metric name",
369
+ "json_field_files_metrics_category": "Metric category",
370
+ "json_field_files_metrics_value": "Raw metric value (e.g., complexity count, line count)",
371
+ "json_field_files_metrics_normalizedScore": "Normalized score (0-100, higher is better)",
372
+ "json_field_files_metrics_severity": "Issue severity (info, warning, error, critical)",
373
+ "json_field_files_metrics_details": "Human-readable details about the metric",
374
+ "json_field_files_parseResult": "Parse result for this file",
375
+ "json_field_files_parseResult_language": "Programming language detected",
376
+ "json_field_files_parseResult_totalLines": "Total lines including blank and comment lines",
377
+ "json_field_files_parseResult_codeLines": "Lines of actual code",
378
+ "json_field_files_parseResult_commentLines": "Lines of comments",
379
+ "json_field_files_parseResult_functionCount": "Number of functions/methods found",
380
+ "json_field_files_parseResult_classCount": "Number of classes/structs found",
381
+ "json_category_complexity": "Code complexity metrics (cyclomatic, cognitive, nesting)",
382
+ "json_category_size": "Size metrics (function length, file length, parameter count)",
383
+ "json_category_duplication": "Code duplication detection",
384
+ "json_category_structure": "Code structure analysis (nesting levels, organization)",
385
+ "json_category_error": "Error handling quality",
386
+ "json_category_documentation": "Comment and documentation coverage",
387
+ "json_category_naming": "Naming convention compliance",
388
+ "json_severity_info": "No issues detected, code quality is good",
389
+ "json_severity_warning": "Minor issues that should be addressed",
390
+ "json_severity_error": "Significant issues that need attention",
391
+ "json_severity_critical": "Critical issues that must be fixed"
349
392
  }
@@ -345,5 +345,48 @@
345
345
  "update_updating": "Обновление eff-u-code...",
346
346
  "update_success": "Обновление успешно!",
347
347
  "update_updated_to": "Обновлено до версии",
348
- "update_failed": "Обновление не удалось"
348
+ "update_failed": "Обновление не удалось",
349
+ "json_schema_description": "Отчет об анализе качества кода в формате JSON",
350
+ "json_field_projectPath": "Абсолютный путь к анализируемому проекту",
351
+ "json_field_overallScore": "Общая оценка качества (0-100, чем выше, тем лучше)",
352
+ "json_field_summary": "Сводная статистика анализа",
353
+ "json_field_summary_totalFiles": "Общее количество файлов, обнаруженных в проекте",
354
+ "json_field_summary_analyzedFiles": "Количество успешно проанализированных файлов",
355
+ "json_field_summary_skippedFiles": "Количество пропущенных файлов (слишком большие, неподдерживаемые и т.д.)",
356
+ "json_field_summary_analysisTime": "Общее время анализа в миллисекундах",
357
+ "json_field_aggregatedMetrics": "Агрегированные метрики по всем проанализированным файлам",
358
+ "json_field_aggregatedMetrics_name": "Название метрики (например, cyclomatic_complexity, cognitive_complexity)",
359
+ "json_field_aggregatedMetrics_category": "Категория метрики (complexity, size, duplication, structure, error, documentation, naming)",
360
+ "json_field_aggregatedMetrics_average": "Средняя оценка по всем файлам (0-100)",
361
+ "json_field_aggregatedMetrics_min": "Минимальная оценка среди всех файлов (0-100)",
362
+ "json_field_aggregatedMetrics_max": "Максимальная оценка среди всех файлов (0-100)",
363
+ "json_field_aggregatedMetrics_median": "Медианная оценка по всем файлам (0-100)",
364
+ "json_field_files": "Подробные результаты анализа для каждого файла",
365
+ "json_field_files_path": "Относительный путь к файлу от корня проекта",
366
+ "json_field_files_score": "Общая оценка качества для этого файла (0-100)",
367
+ "json_field_files_metrics": "Подробные метрики для этого файла",
368
+ "json_field_files_metrics_name": "Название метрики",
369
+ "json_field_files_metrics_category": "Категория метрики",
370
+ "json_field_files_metrics_value": "Исходное значение метрики (например, количество сложности, количество строк)",
371
+ "json_field_files_metrics_normalizedScore": "Нормализованная оценка (0-100, чем выше, тем лучше)",
372
+ "json_field_files_metrics_severity": "Серьезность проблемы (info, warning, error, critical)",
373
+ "json_field_files_metrics_details": "Читаемые детали о метрике",
374
+ "json_field_files_parseResult": "Результат парсинга для этого файла",
375
+ "json_field_files_parseResult_language": "Обнаруженный язык программирования",
376
+ "json_field_files_parseResult_totalLines": "Общее количество строк, включая пустые и комментарии",
377
+ "json_field_files_parseResult_codeLines": "Строки фактического кода",
378
+ "json_field_files_parseResult_commentLines": "Строки комментариев",
379
+ "json_field_files_parseResult_functionCount": "Количество найденных функций/методов",
380
+ "json_field_files_parseResult_classCount": "Количество найденных классов/структур",
381
+ "json_category_complexity": "Метрики сложности кода (цикломатическая, когнитивная, глубина вложенности)",
382
+ "json_category_size": "Метрики размера (длина функции, длина файла, количество параметров)",
383
+ "json_category_duplication": "Обнаружение дублирования кода",
384
+ "json_category_structure": "Анализ структуры кода (уровни вложенности, организация)",
385
+ "json_category_error": "Качество обработки ошибок",
386
+ "json_category_documentation": "Покрытие комментариями и документацией",
387
+ "json_category_naming": "Соответствие соглашениям об именовании",
388
+ "json_severity_info": "Проблем не обнаружено, качество кода хорошее",
389
+ "json_severity_warning": "Незначительные проблемы, которые следует устранить",
390
+ "json_severity_error": "Значительные проблемы, требующие внимания",
391
+ "json_severity_critical": "Критические проблемы, которые необходимо исправить"
349
392
  }
@@ -345,5 +345,48 @@
345
345
  "update_updating": "正在更新 eff-u-code...",
346
346
  "update_success": "更新成功!",
347
347
  "update_updated_to": "已更新到版本",
348
- "update_failed": "更新失败"
348
+ "update_failed": "更新失败",
349
+ "json_schema_description": "JSON 格式的代码质量分析报告",
350
+ "json_field_projectPath": "被分析项目的绝对路径",
351
+ "json_field_overallScore": "总体质量评分(0-100,越高越好)",
352
+ "json_field_summary": "分析统计摘要",
353
+ "json_field_summary_totalFiles": "项目中发现的文件总数",
354
+ "json_field_summary_analyzedFiles": "成功分析的文件数量",
355
+ "json_field_summary_skippedFiles": "跳过的文件数量(过大、不支持等)",
356
+ "json_field_summary_analysisTime": "总分析耗时(毫秒)",
357
+ "json_field_aggregatedMetrics": "所有已分析文件的聚合指标",
358
+ "json_field_aggregatedMetrics_name": "指标名称(如 cyclomatic_complexity、cognitive_complexity)",
359
+ "json_field_aggregatedMetrics_category": "指标分类(complexity、size、duplication、structure、error、documentation、naming)",
360
+ "json_field_aggregatedMetrics_average": "所有文件的平均评分(0-100)",
361
+ "json_field_aggregatedMetrics_min": "所有文件中的最低评分(0-100)",
362
+ "json_field_aggregatedMetrics_max": "所有文件中的最高评分(0-100)",
363
+ "json_field_aggregatedMetrics_median": "所有文件的中位数评分(0-100)",
364
+ "json_field_files": "每个文件的详细分析结果",
365
+ "json_field_files_path": "文件相对于项目根目录的路径",
366
+ "json_field_files_score": "该文件的总体质量评分(0-100)",
367
+ "json_field_files_metrics": "该文件的详细指标",
368
+ "json_field_files_metrics_name": "指标名称",
369
+ "json_field_files_metrics_category": "指标分类",
370
+ "json_field_files_metrics_value": "原始指标值(如复杂度计数、行数)",
371
+ "json_field_files_metrics_normalizedScore": "标准化评分(0-100,越高越好)",
372
+ "json_field_files_metrics_severity": "问题严重程度(info、warning、error、critical)",
373
+ "json_field_files_metrics_details": "关于该指标的可读详情",
374
+ "json_field_files_parseResult": "该文件的解析结果",
375
+ "json_field_files_parseResult_language": "检测到的编程语言",
376
+ "json_field_files_parseResult_totalLines": "总行数(包括空行和注释行)",
377
+ "json_field_files_parseResult_codeLines": "实际代码行数",
378
+ "json_field_files_parseResult_commentLines": "注释行数",
379
+ "json_field_files_parseResult_functionCount": "发现的函数/方法数量",
380
+ "json_field_files_parseResult_classCount": "发现的类/结构体数量",
381
+ "json_category_complexity": "代码复杂度指标(圈复杂度、认知复杂度、嵌套深度)",
382
+ "json_category_size": "大小指标(函数长度、文件长度、参数数量)",
383
+ "json_category_duplication": "代码重复检测",
384
+ "json_category_structure": "代码结构分析(嵌套层级、组织结构)",
385
+ "json_category_error": "错误处理质量",
386
+ "json_category_documentation": "注释和文档覆盖率",
387
+ "json_category_naming": "命名规范合规性",
388
+ "json_severity_info": "未检测到问题,代码质量良好",
389
+ "json_severity_warning": "应该处理的轻微问题",
390
+ "json_severity_error": "需要关注的重大问题",
391
+ "json_severity_critical": "必须修复的严重问题"
349
392
  }
@@ -56,8 +56,8 @@ server.registerTool('analyze', {
56
56
  format: z
57
57
  .enum(['console', 'markdown', 'json'])
58
58
  .optional()
59
- .default('markdown')
60
- .describe('Output format (MCP clients receive markdown by default)'),
59
+ .default('json')
60
+ .describe('Output format (json for full data, markdown for summary)'),
61
61
  top: z.number().optional().default(10).describe('Number of worst files to show'),
62
62
  locale: z.enum(['en', 'zh', 'ru']).optional().default('en').describe('Output language'),
63
63
  },
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,WAAmB,EACnB,OAA6D;IAE7D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,OAAO,CAAC,MAAgB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7C,mFAAmF;IACnF,MAAM,SAAS,GAAkD,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9F,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,SAAS,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAoD,CAAC;IAC5F,CAAC;IACD,OAAO,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,iBAAiB,GAA2B;IAChD,MAAM,EAAE,2BAA2B;IACnC,SAAS,EAAE,2BAA2B;IACtC,QAAQ,EAAE,6BAA6B;IACvC,MAAM,EAAE,2CAA2C;IACnD,MAAM,EAAE,wBAAwB;CACjC,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;IACE,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,sFAAsF;IACxF,WAAW,EAAE;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC/E,OAAO,EAAE,CAAC;aACP,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,sDAAsD,CAAC;QACnE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;aACrC,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,0DAA0D,CAAC;QACvE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAChF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KACxF;CACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAExC,IAAI,IAAY,CAAC;IACjB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf;YACE,IAAI,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM;IACV,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;IACE,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,oEAAoE;IACjF,WAAW,EAAE;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC/E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,QAAQ,CAAC,mEAAmE,CAAC;QAChF,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC7D,QAAQ,EAAE;aACV,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,aAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACtF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACjF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACvF,OAAO,EAAE,CAAC;aACP,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,sCAAsC,CAAC;KACpD;CACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACtF,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,SAAS,CAAC,MAAgB,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE;QAC9D,OAAO;QACP,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;KACvC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAEhD,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE9F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4CAA4C,EAAE,CAAC;SACzF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACxF,MAAM,QAAQ,GAAG,YAAY,CAC3B;QACE,OAAO,EAAE,IAAI;QACb,QAAQ;QACR,KAAK;QACL,OAAO,EAAE,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC;QAC/C,MAAM,EAAE,cAAc;KACvB,EACD,KAAK,CACN,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,oFAAoF;iBAC3F;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,WAAW,CAAC,IAAI,CACd,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,gBAAgB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,uBAAuB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;IACtE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC,CACF,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cognitive.d.ts","sourceRoot":"","sources":["../../../src/metrics/complexity/cognitive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInE,qBAAa,yBAA0B,YAAW,MAAM;IACtD,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAgB;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK9C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA4ElD"}
1
+ {"version":3,"file":"cognitive.d.ts","sourceRoot":"","sources":["../../../src/metrics/complexity/cognitive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInE,qBAAa,yBAA0B,YAAW,MAAM;IACtD,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAgB;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK9C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CAiGlD"}
@@ -53,27 +53,50 @@ export class CognitiveComplexityMetric {
53
53
  }
54
54
  }
55
55
  const avgCognitive = totalCognitive / functions.length;
56
- let normalizedScore;
56
+ // weighted scoring considering both average and worst-case
57
+ let avgScore;
57
58
  if (avgCognitive <= thresholds.excellent) {
58
- normalizedScore = 100;
59
+ avgScore = 100;
59
60
  }
60
61
  else if (avgCognitive <= thresholds.good) {
61
- normalizedScore =
62
+ avgScore =
62
63
  100 -
63
64
  ((avgCognitive - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 20;
64
65
  }
65
66
  else if (avgCognitive <= thresholds.acceptable) {
66
- normalizedScore =
67
+ avgScore =
67
68
  80 - ((avgCognitive - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 35;
68
69
  }
69
70
  else if (avgCognitive <= thresholds.poor) {
70
- normalizedScore =
71
+ avgScore =
71
72
  45 -
72
73
  ((avgCognitive - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 30;
73
74
  }
74
75
  else {
75
- normalizedScore = Math.max(0, 15 * Math.exp(-(avgCognitive - thresholds.poor) / 15));
76
+ avgScore = Math.max(0, 15 * Math.exp(-(avgCognitive - thresholds.poor) / 15));
76
77
  }
78
+ let maxScore;
79
+ if (maxCognitive <= thresholds.excellent) {
80
+ maxScore = 100;
81
+ }
82
+ else if (maxCognitive <= thresholds.good) {
83
+ maxScore =
84
+ 100 -
85
+ ((maxCognitive - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 20;
86
+ }
87
+ else if (maxCognitive <= thresholds.acceptable) {
88
+ maxScore =
89
+ 80 - ((maxCognitive - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 35;
90
+ }
91
+ else if (maxCognitive <= thresholds.poor) {
92
+ maxScore =
93
+ 45 -
94
+ ((maxCognitive - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 30;
95
+ }
96
+ else {
97
+ maxScore = Math.max(0, 15 * Math.exp(-(maxCognitive - thresholds.poor) / 15));
98
+ }
99
+ const normalizedScore = avgScore * 0.5 + maxScore * 0.5;
77
100
  let severity;
78
101
  if (maxCognitive <= thresholds.good) {
79
102
  severity = 'info';
@@ -1 +1 @@
1
- {"version":3,"file":"cognitive.js","sourceRoot":"","sources":["../../../src/metrics/complexity/cognitive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cognitive.js","sourceRoot":"","sources":["../../../src/metrics/complexity/cognitive.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cyclomatic.d.ts","sourceRoot":"","sources":["../../../src/metrics/complexity/cyclomatic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInE,qBAAa,0BAA2B,YAAW,MAAM;IACvD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAgB;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK9C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA2ElD"}
1
+ {"version":3,"file":"cyclomatic.d.ts","sourceRoot":"","sources":["../../../src/metrics/complexity/cyclomatic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInE,qBAAa,0BAA2B,YAAW,MAAM;IACvD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAgB;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK9C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA+FlD"}
@@ -48,27 +48,49 @@ export class CyclomaticComplexityMetric {
48
48
  }
49
49
  }
50
50
  const avgComplexity = totalComplexity / functions.length;
51
- let normalizedScore;
51
+ let avgScore;
52
52
  if (avgComplexity <= thresholds.excellent) {
53
- normalizedScore = 100;
53
+ avgScore = 100;
54
54
  }
55
55
  else if (avgComplexity <= thresholds.good) {
56
- normalizedScore =
56
+ avgScore =
57
57
  100 -
58
58
  ((avgComplexity - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 20;
59
59
  }
60
60
  else if (avgComplexity <= thresholds.acceptable) {
61
- normalizedScore =
61
+ avgScore =
62
62
  80 - ((avgComplexity - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 30;
63
63
  }
64
64
  else if (avgComplexity <= thresholds.poor) {
65
- normalizedScore =
65
+ avgScore =
66
66
  50 -
67
- ((avgComplexity - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 30;
67
+ ((avgComplexity - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 50;
68
68
  }
69
69
  else {
70
- normalizedScore = Math.max(0, 20 * Math.exp(-(avgComplexity - thresholds.poor) / 20));
70
+ avgScore = 0;
71
71
  }
72
+ let maxScore;
73
+ if (maxComplexity <= thresholds.excellent) {
74
+ maxScore = 100;
75
+ }
76
+ else if (maxComplexity <= thresholds.good) {
77
+ maxScore =
78
+ 100 -
79
+ ((maxComplexity - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 20;
80
+ }
81
+ else if (maxComplexity <= thresholds.acceptable) {
82
+ maxScore =
83
+ 80 - ((maxComplexity - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 30;
84
+ }
85
+ else if (maxComplexity <= thresholds.poor) {
86
+ maxScore =
87
+ 50 -
88
+ ((maxComplexity - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 50;
89
+ }
90
+ else {
91
+ maxScore = 0;
92
+ }
93
+ const normalizedScore = avgScore * 0.5 + maxScore * 0.5;
72
94
  let severity;
73
95
  if (maxComplexity <= thresholds.good) {
74
96
  severity = 'info';
@@ -1 +1 @@
1
- {"version":3,"file":"cyclomatic.js","sourceRoot":"","sources":["../../../src/metrics/complexity/cyclomatic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cyclomatic.js","sourceRoot":"","sources":["../../../src/metrics/complexity/cyclomatic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"function-length.d.ts","sourceRoot":"","sources":["../../../src/metrics/size/function-length.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInE,qBAAa,oBAAqB,YAAW,MAAM;IACjD,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAU;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK9C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA4ElD"}
1
+ {"version":3,"file":"function-length.d.ts","sourceRoot":"","sources":["../../../src/metrics/size/function-length.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAA4B,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAInE,qBAAa,oBAAqB,YAAW,MAAM;IACjD,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAU;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAK9C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA+FlD"}
@@ -46,25 +46,46 @@ export class FunctionLengthMetric {
46
46
  }
47
47
  }
48
48
  const avgLength = totalLength / functions.length;
49
- let normalizedScore;
49
+ // Industry standard (SonarQube): weighted scoring considering both average and worst-case
50
+ let avgScore;
50
51
  if (avgLength <= thresholds.excellent) {
51
- normalizedScore = 100;
52
+ avgScore = 100;
52
53
  }
53
54
  else if (avgLength <= thresholds.good) {
54
- normalizedScore =
55
+ avgScore =
55
56
  100 - ((avgLength - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 15;
56
57
  }
57
58
  else if (avgLength <= thresholds.acceptable) {
58
- normalizedScore =
59
+ avgScore =
59
60
  85 - ((avgLength - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 35;
60
61
  }
61
62
  else if (avgLength <= thresholds.poor) {
62
- normalizedScore =
63
+ avgScore =
63
64
  50 - ((avgLength - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 35;
64
65
  }
65
66
  else {
66
- normalizedScore = Math.max(0, 15 * Math.exp(-(avgLength - thresholds.poor) / 50));
67
+ avgScore = Math.max(0, 15 * Math.exp(-(avgLength - thresholds.poor) / 50));
67
68
  }
69
+ let maxScore;
70
+ if (maxLength <= thresholds.excellent) {
71
+ maxScore = 100;
72
+ }
73
+ else if (maxLength <= thresholds.good) {
74
+ maxScore =
75
+ 100 - ((maxLength - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 15;
76
+ }
77
+ else if (maxLength <= thresholds.acceptable) {
78
+ maxScore =
79
+ 85 - ((maxLength - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 35;
80
+ }
81
+ else if (maxLength <= thresholds.poor) {
82
+ maxScore =
83
+ 50 - ((maxLength - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 35;
84
+ }
85
+ else {
86
+ maxScore = Math.max(0, 15 * Math.exp(-(maxLength - thresholds.poor) / 50));
87
+ }
88
+ const normalizedScore = avgScore * 0.5 + maxScore * 0.5;
68
89
  let severity;
69
90
  if (maxLength <= thresholds.good) {
70
91
  severity = 'info';
@@ -1 +1 @@
1
- {"version":3,"file":"function-length.js","sourceRoot":"","sources":["../../../src/metrics/size/function-length.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,iBAAiB,CAAC;IACzB,QAAQ,GAAmB,MAAM,CAAC;IAClC,MAAM,CAAS;IACP,QAAQ,CAAW;IAEpC,YAAY,MAAc,EAAE,QAAkB;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,WAAwB;QAChC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAElE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,GAAG;gBACpB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,SAAS,GAAqB,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;YAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;gBAC/B,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC;oBACb,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,YAAY,EAAE,IAAI,CAAC,IAAI;oBACvB,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;iBAC1C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QAEjD,IAAI,eAAuB,CAAC;QAC5B,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,eAAe,GAAG,GAAG,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACxC,eAAe;gBACb,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/F,CAAC;aAAM,IAAI,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,eAAe;gBACb,EAAE,GAAG,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1F,CAAC;aAAM,IAAI,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACxC,eAAe;gBACb,EAAE,GAAG,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,QAAkB,CAAC;QACvB,IAAI,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACjC,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC;aAAM,IAAI,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACxC,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,UAAU,CAAC;QACxB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,SAAS;YAChB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,GAAG,EAAE;YACtD,QAAQ;YACR,OAAO,EAAE,CAAC,CAAC,4BAA4B,EAAE;gBACvC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzB,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;aACvB,CAAC;YACF,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"function-length.js","sourceRoot":"","sources":["../../../src/metrics/size/function-length.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,7 @@
2
2
  * Parser factory
3
3
  */
4
4
  import { type Parser, type Language } from './types.js';
5
- /**
6
- * Create a parser for the specified language.
7
- * Attempts tree-sitter AST parsing first, falls back to regex-based parsing on failure.
8
- */
9
- export declare function createParser(language: Language): Parser;
5
+ export declare function createParser(language: Language): Promise<Parser>;
10
6
  /**
11
7
  * Get all supported languages
12
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAA0B,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKhF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAsBvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAIlD;AAED,OAAO,EAAE,sBAAsB,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAA0B,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQhF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ChE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAIlD;AAED,OAAO,EAAE,sBAAsB,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -8,31 +8,47 @@ import { logger } from '../utils/logger.js';
8
8
  import { LANGUAGE_DISPLAY_NAMES } from './types.js';
9
9
  /** Cache for created parsers */
10
10
  const parserCache = new Map();
11
- /**
12
- * Create a parser for the specified language.
13
- * Attempts tree-sitter AST parsing first, falls back to regex-based parsing on failure.
14
- */
11
+ /** Initialization promise cache to prevent concurrent WASM loading */
12
+ const initPromises = new Map();
15
13
  export function createParser(language) {
16
14
  const cached = parserCache.get(language);
17
- if (cached)
18
- return cached;
19
- const config = getLanguageConfig(language);
20
- if (config) {
21
- try {
22
- const parser = new TreeSitterParser(language, config);
23
- parserCache.set(language, parser);
24
- return parser;
25
- }
26
- catch (err) {
27
- logger.warn(`Tree-sitter init failed for ${language}, falling back to regex parser: ${err}`);
28
- }
29
- const fallback = new RegexParser(language);
30
- parserCache.set(language, fallback);
31
- return fallback;
15
+ if (cached) {
16
+ return Promise.resolve(cached);
17
+ }
18
+ const existingInit = initPromises.get(language);
19
+ if (existingInit) {
20
+ return existingInit;
32
21
  }
33
- const genericParser = new GenericParser();
34
- parserCache.set(language, genericParser);
35
- return genericParser;
22
+ const initPromise = (async () => {
23
+ const config = getLanguageConfig(language);
24
+ if (config) {
25
+ try {
26
+ const parser = new TreeSitterParser(language, config);
27
+ await parser.initialize();
28
+ parserCache.set(language, parser);
29
+ return parser;
30
+ }
31
+ catch (err) {
32
+ logger.warn(`Tree-sitter init failed for ${language}, falling back to regex parser: ${err}`);
33
+ }
34
+ const fallback = new RegexParser(language);
35
+ parserCache.set(language, fallback);
36
+ return fallback;
37
+ }
38
+ const genericParser = new GenericParser();
39
+ parserCache.set(language, genericParser);
40
+ return genericParser;
41
+ })();
42
+ initPromises.set(language, initPromise);
43
+ return initPromise
44
+ .then((parser) => {
45
+ initPromises.delete(language);
46
+ return parser;
47
+ })
48
+ .catch((err) => {
49
+ initPromises.delete(language);
50
+ throw err;
51
+ });
36
52
  }
37
53
  /**
38
54
  * Get all supported languages
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAA8B,MAAM,YAAY,CAAC;AAEhF,gCAAgC;AAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtD,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,mCAAmC,GAAG,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAe,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,qBAAqB,EAAE;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAoC,CAAC,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAgD,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAA8B,MAAM,YAAY,CAAC;AAEhF,gCAAgC;AAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEhD,sEAAsE;AACtE,MAAM,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;AAE1D,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,KAAK,IAAqB,EAAE;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC1B,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CACT,+BAA+B,QAAQ,mCAAmC,GAAG,EAAE,CAChF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACpC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAC1C,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzC,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,EAAE,CAAC;IAEL,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAExC,OAAO,WAAW;SACf,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAe,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,qBAAqB,EAAE;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAoC,CAAC,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAgD,MAAM,YAAY,CAAC"}
@@ -32,7 +32,10 @@ export declare function getLanguageConfig(language: Language): LanguageQueryConf
32
32
  export declare class TreeSitterParser implements IParser {
33
33
  private language;
34
34
  private config;
35
+ private parser;
36
+ private initialized;
35
37
  constructor(language: Language, config: LanguageQueryConfig);
38
+ initialize(): Promise<void>;
36
39
  parse(filePath: string, content: string): Promise<ParseResult>;
37
40
  supportedLanguages(): Language[];
38
41
  private countLines;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-parser.d.ts","sourceRoot":"","sources":["../../src/parser/tree-sitter-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,WAAW,EAAE,QAAQ,EAA2B,MAAM,YAAY,CAAC;AAIpG,+CAA+C;AAC/C,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAmfD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,GAAG,IAAI,CAEhF;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAsB;gBAExB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB;IAKrD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgCpE,kBAAkB,IAAI,QAAQ,EAAE;IAIhC,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,eAAe;IA0DvB,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,mBAAmB;CAyB5B"}
1
+ {"version":3,"file":"tree-sitter-parser.d.ts","sourceRoot":"","sources":["../../src/parser/tree-sitter-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,WAAW,EAAE,QAAQ,EAA2B,MAAM,YAAY,CAAC;AAIpG,+CAA+C;AAC/C,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAkfD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,GAAG,IAAI,CAEhF;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAS;gBAEhB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB;IAKrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA0CpE,kBAAkB,IAAI,QAAQ,EAAE;IAIhC,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,eAAe;IA0DvB,OAAO,CAAC,YAAY;IAgCpB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,mBAAmB;CAyB5B"}
@@ -3,7 +3,7 @@
3
3
  * Uses web-tree-sitter WASM bindings for precise code analysis
4
4
  */
5
5
  import Parser from 'web-tree-sitter';
6
- import { resolve, dirname } from 'node:path';
6
+ import { resolve as pathResolve, dirname } from 'node:path';
7
7
  import { fileURLToPath } from 'node:url';
8
8
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
9
  const LANG_CONFIGS = {
@@ -479,9 +479,8 @@ const LANG_CONFIGS = {
479
479
  fieldNodeTypes: [],
480
480
  },
481
481
  };
482
- /** Resolve WASM file path */
483
482
  function resolveWasmPath(wasmFile) {
484
- return resolve(__dirname, '..', '..', 'node_modules', 'tree-sitter-wasms', 'out', wasmFile);
483
+ return pathResolve(__dirname, '..', '..', 'node_modules', 'tree-sitter-wasms', 'out', wasmFile);
485
484
  }
486
485
  let parserInitialized = false;
487
486
  const languageCache = new Map();
@@ -514,35 +513,52 @@ export function getLanguageConfig(language) {
514
513
  export class TreeSitterParser {
515
514
  language;
516
515
  config;
516
+ parser = null;
517
+ initialized = false;
517
518
  constructor(language, config) {
518
519
  this.language = language;
519
520
  this.config = config;
520
521
  }
521
- async parse(filePath, content) {
522
+ async initialize() {
523
+ if (this.initialized)
524
+ return;
522
525
  await ensureParserInit();
523
526
  const tsLang = await loadLanguage(this.config.wasmFile);
524
- const parser = new Parser();
525
- parser.setLanguage(tsLang);
526
- const tree = parser.parse(content);
527
- const rootNode = tree.rootNode;
528
- const functions = this.extractFunctions(rootNode);
529
- const classes = this.extractClasses(rootNode);
530
- const imports = this.extractImports(rootNode);
531
- const { commentLines, blankLines, codeLines, totalLines } = this.countLines(rootNode, content);
532
- parser.delete();
533
- tree.delete();
534
- return {
535
- filePath,
536
- language: this.language,
537
- totalLines,
538
- codeLines,
539
- commentLines,
540
- blankLines,
541
- functions,
542
- classes,
543
- imports,
544
- errors: [],
545
- };
527
+ this.parser = new Parser();
528
+ this.parser.setLanguage(tsLang);
529
+ this.initialized = true;
530
+ }
531
+ async parse(filePath, content) {
532
+ if (!this.initialized || !this.parser) {
533
+ await this.initialize();
534
+ }
535
+ if (!this.parser) {
536
+ throw new Error('Parser initialization failed');
537
+ }
538
+ try {
539
+ const tree = this.parser.parse(content);
540
+ const rootNode = tree.rootNode;
541
+ const functions = this.extractFunctions(rootNode);
542
+ const classes = this.extractClasses(rootNode);
543
+ const imports = this.extractImports(rootNode);
544
+ const { commentLines, blankLines, codeLines, totalLines } = this.countLines(rootNode, content);
545
+ tree.delete();
546
+ return {
547
+ filePath,
548
+ language: this.language,
549
+ totalLines,
550
+ codeLines,
551
+ commentLines,
552
+ blankLines,
553
+ functions,
554
+ classes,
555
+ imports,
556
+ errors: [],
557
+ };
558
+ }
559
+ catch (error) {
560
+ throw new Error(`Tree-sitter parse failed: ${error instanceof Error ? error.message : String(error)}`);
561
+ }
546
562
  }
547
563
  supportedLanguages() {
548
564
  return Object.keys(LANG_CONFIGS);
@@ -1 +1 @@
1
- {"version":3,"file":"tree-sitter-parser.js","sourceRoot":"","sources":["../../src/parser/tree-sitter-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAoB1D,MAAM,YAAY,GAAwC;IACxD,EAAE,EAAE;QACF,QAAQ,EAAE,qBAAqB;QAC/B,iBAAiB,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;QACjE,cAAc,EAAE,CAAC,kBAAkB,CAAC;QACpC,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,6BAA6B;YAC7B,uBAAuB;YACvB,kBAAkB;YAClB,iBAAiB;YACjB,WAAW;YACX,cAAc;SACf;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,6BAA6B;YAC7B,uBAAuB;YACvB,kBAAkB;YAClB,cAAc;SACf;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,6BAA6B;QACvC,iBAAiB,EAAE;YACjB,sBAAsB;YACtB,mBAAmB;YACnB,gBAAgB;YAChB,gCAAgC;SACjC;QACD,cAAc,EAAE,CAAC,mBAAmB,CAAC;QACrC,eAAe,EAAE,CAAC,kBAAkB,CAAC;QACrC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,aAAa;YACb,cAAc;YACd,oBAAoB;SACrB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,UAAU;SACX;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,mBAAmB,CAAC;QACtC,cAAc,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KAChE;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,6BAA6B;QACvC,iBAAiB,EAAE;YACjB,sBAAsB;YACtB,mBAAmB;YACnB,gBAAgB;YAChB,gCAAgC;SACjC;QACD,cAAc,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;QAC9D,eAAe,EAAE,CAAC,kBAAkB,CAAC;QACrC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,aAAa;YACb,cAAc;YACd,oBAAoB;SACrB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,UAAU;SACX;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;QAC1D,cAAc,EAAE,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;KAClE;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,yBAAyB;QACnC,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;QAC1C,cAAc,EAAE,CAAC,kBAAkB,CAAC;QACpC,eAAe,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;QAC9D,mBAAmB,EAAE;YACnB,cAAc;YACd,aAAa;YACb,eAAe;YACf,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,wBAAwB;YACxB,kBAAkB;SACnB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,iBAAiB;YACjB,gBAAgB;YAChB,eAAe;YACf,qBAAqB;YACrB,kBAAkB;SACnB;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,qBAAqB,CAAC;QACxC,cAAc,EAAE,CAAC,sBAAsB,CAAC;KACzC;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,uBAAuB;QACjC,iBAAiB,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;QACpE,cAAc,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;QAClF,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,wBAAwB;YACxB,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,cAAc;YACd,oBAAoB;SACrB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,wBAAwB;YACxB,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,mBAAmB;SACpB;QACD,gBAAgB,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QACnD,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;QAClE,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC;IACD,CAAC,EAAE;QACD,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;QAC1C,cAAc,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;QACzE,eAAe,EAAE,CAAC,iBAAiB,CAAC;QACpC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,gBAAgB;YAChB,wBAAwB;SACzB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,kBAAkB;SACnB;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,YAAY;QAC/B,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;QAC1C,cAAc,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;QACzE,eAAe,EAAE,CAAC,iBAAiB,CAAC;QACpC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,iBAAiB;YACjB,cAAc;YACd,gBAAgB;YAChB,cAAc;YACd,wBAAwB;SACzB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,mBAAmB;SACpB;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,YAAY;QAC/B,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,qBAAqB,CAAC;QACxC,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,uBAAuB;QACjC,iBAAiB,EAAE,CAAC,eAAe,CAAC;QACpC,cAAc,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC;QACvE,eAAe,EAAE,CAAC,iBAAiB,CAAC;QACpC,mBAAmB,EAAE;YACnB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,iBAAiB;YACjB,WAAW;YACX,oBAAoB;SACrB;QACD,gBAAgB,EAAE;YAChB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,oBAAoB;SACrB;QACD,gBAAgB,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QACnD,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,eAAe,CAAC;QAClC,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,0BAA0B;QACpC,iBAAiB,EAAE;YACjB,oBAAoB;YACpB,yBAAyB;YACzB,0BAA0B;SAC3B;QACD,cAAc,EAAE;YACd,mBAAmB;YACnB,uBAAuB;YACvB,oBAAoB;YACpB,kBAAkB;SACnB;QACD,eAAe,EAAE,CAAC,iBAAiB,CAAC;QACpC,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,cAAc;YACd,gBAAgB;YAChB,cAAc;YACd,wBAAwB;SACzB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,mBAAmB;SACpB;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;QAClE,cAAc,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;KAC9D;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,CAAC,+BAA+B,EAAE,qCAAqC,CAAC;QAC3F,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE;QACnB,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;SACnB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,+BAA+B;SAChC;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,EAAE;KACnB;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;QAChE,cAAc,EAAE,CAAC,mBAAmB,CAAC;QACrC,eAAe,EAAE,CAAC,2BAA2B,CAAC;QAC9C,mBAAmB,EAAE;YACnB,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,wBAAwB;SACzB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,qBAAqB;SACtB;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,cAAc,EAAE,CAAC,sBAAsB,CAAC;KACzC;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,uBAAuB;QACjC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;QAC7B,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,mBAAmB,EAAE;YACnB,IAAI;YACJ,QAAQ;YACR,MAAM;YACN,MAAM;YACN,KAAK;YACL,OAAO;YACP,OAAO;YACP,QAAQ;YACR,aAAa;SACd;QACD,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QACtF,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,UAAU;QAC1B,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,QAAQ,CAAC;QAC3B,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,wBAAwB;QAClC,iBAAiB,EAAE,CAAC,sBAAsB,CAAC;QAC3C,cAAc,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;QACnF,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,mBAAmB,EAAE;YACnB,cAAc;YACd,iBAAiB;YACjB,kBAAkB;YAClB,cAAc;YACd,eAAe;YACf,iBAAiB;YACjB,wBAAwB;YACxB,cAAc;YACd,oBAAoB;SACrB;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,iBAAiB;YACjB,kBAAkB;YAClB,eAAe;YACf,iBAAiB;YACjB,wBAAwB;YACxB,cAAc;YACd,sBAAsB;SACvB;QACD,gBAAgB,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC;QAClD,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,CAAC,sBAAsB,CAAC;QACzC,cAAc,EAAE,CAAC,sBAAsB,CAAC;KACzC;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,uBAAuB;QACjC,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;QAC1C,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE;QACnB,mBAAmB,EAAE;YACnB,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,eAAe;YACf,iBAAiB;YACjB,iBAAiB;YACjB,aAAa;SACd;QACD,gBAAgB,EAAE;YAChB,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,iBAAiB;YACjB,iBAAiB;YACjB,qBAAqB;YACrB,UAAU;SACX;QACD,gBAAgB,EAAE,CAAC,SAAS,CAAC;QAC7B,iBAAiB,EAAE,MAAM;QACzB,mBAAmB,EAAE,MAAM,EAAE,iDAAiD;QAC9E,iBAAiB,EAAE,MAAM;QACzB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,MAAM;QACtB,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,EAAE;KACnB;CACF,CAAC;AAEF,6BAA6B;AAC7B,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9F,CAAC;AAED,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEzD,KAAK,UAAU,gBAAgB;IAC7B,IAAI,iBAAiB;QAAE,OAAO;IAC9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAW;IACnB,MAAM,CAAsB;IAEpC,YAAY,QAAkB,EAAE,MAA2B;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,OAAe;QAC3C,MAAM,gBAAgB,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/F,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU;YACV,SAAS;YACT,YAAY;YACZ,UAAU;YACV,SAAS;YACT,OAAO;YACP,OAAO;YACP,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAe,CAAC;IACjD,CAAC;IAEO,UAAU,CAChB,QAA2B,EAC3B,OAAe;QAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAEhC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;YACxE,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;gBAC1E,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACnB,UAAU,EAAE,CAAC;YACf,CAAC;iBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;QACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC7D,CAAC;IAEO,cAAc,CAAC,QAA2B;QAChD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;YACvE,MAAM,UAAU,GACd,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;gBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC3D,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,QAA2B;QAClD,MAAM,SAAS,GAAmB,EAAE,CAAC;QAErC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;YACzE,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;YAE1C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAE7C,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI;gBACJ,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,UAAU;gBACV,cAAc;gBACd,YAAY;gBACZ,YAAY;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mBAAmB,CAAC,IAAuB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvE,IAAI,QAAQ,EAAE,CAAC;YACb,0EAA0E;YAC1E,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAqB,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACtF,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpF,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;wBAC1C,OAAO,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;oBAC7D,CAAC;oBACD,OAAO,KAAK,CAAC,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;QAC/B,CAAC;QAED,+DAA+D;QAC/D,kDAAkD;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,QAA2B;QAChD,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;YACtE,IAAI,IAAI,GAAkB,IAAI,CAAC;YAC/B,IAAI,QAAQ,GAA6B,IAAI,CAAC;YAE9C,uCAAuC;YACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;gBACxE,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;oBACxD,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBACxE,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;YAEzC,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,IAAI,QAAQ,EAAE,CAAC;gBACb,iEAAiE;gBACjE,+DAA+D;gBAC/D,MAAM,IAAI,GAAG,CAAC,CAAoB,EAAQ,EAAE;oBAC1C,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;wBACpC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrD,WAAW,EAAE,CAAC;wBAChB,CAAC;6BAAM,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC3D,UAAU,EAAE,CAAC;wBACf,CAAC;6BAAM,IACL,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAC5B,KAAK,CAAC,IAAI,KAAK,kBAAkB,EACjC,CAAC;4BACD,IAAI,CAAC,KAAK,CAAC,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,QAA2B;QACjD,IAAI,UAAU,GAA6B,IAAI,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,KAAK,YAAY,EAAE,CAAC;YACrD,+CAA+C;YAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU;oBACR,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC;wBAC1C,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBACjD,IAAI,CAAC;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC;QAE1B,uEAAuE;QACvE,qFAAqF;QACrF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC7C,IACE,KAAK,CAAC,IAAI,KAAK,uBAAuB;oBACtC,KAAK,CAAC,IAAI,KAAK,gCAAgC,EAC/C,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;wBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;4BAAE,KAAK,EAAE,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;YACzB,uBAAuB;YACvB,WAAW;YACX,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB;YACpB,gBAAgB;YAChB,iBAAiB;YACjB,yBAAyB;YACzB,mBAAmB;YACnB,YAAY;YACZ,gCAAgC;YAChC,oBAAoB;YACpB,kBAAkB;SACnB,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,QAA2B;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IACE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EACtB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,qCAAqC;YACrC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,SAAS,EAAE,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,mBAAmB,CAAC,IAAuB;QACjD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,CAAC,CAAoB,EAAQ,EAAE;YAC1C,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,6DAA6D;gBAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBACpE,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;oBACvD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;wBAC9D,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;gBACpC,iDAAiD;gBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxD,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,CAAC;QACX,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,mBAAmB,CAAC,IAAuB,EAAE,YAAoB;QACvE,IAAI,QAAQ,GAAG,YAAY,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEzD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEjE,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,mBAAmB,CACzB,QAA2B,EAC3B,SAAmB,EACnB,QAA2C;QAE3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,CAAC,IAAuB,EAAQ,EAAE;YAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,iEAAiE;gBACjE,IACE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/C,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa;wBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"tree-sitter-parser.js","sourceRoot":"","sources":["../../src/parser/tree-sitter-parser.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,6 @@
3
3
  */
4
4
  import type { MetricResult, FileAnalysisResult, AggregatedMetric } from '../metrics/types.js';
5
5
  import type { RuntimeConfig } from '../config/schema.js';
6
- /**
7
- * Calculate weighted score from metric results
8
- */
9
6
  export declare function calculateScore(metrics: MetricResult[], config: RuntimeConfig): number;
10
7
  /**
11
8
  * Aggregate metrics across all files
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAerF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,kBAAkB,EAAE,EACjC,MAAM,EAAE,aAAa,GACpB,gBAAgB,EAAE,CAuCpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAerF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,kBAAkB,EAAE,EACjC,MAAM,EAAE,aAAa,GACpB,gBAAgB,EAAE,CAuCpB"}
@@ -1,9 +1,6 @@
1
1
  /**
2
2
  * Scoring system
3
3
  */
4
- /**
5
- * Calculate weighted score from metric results
6
- */
7
4
  export function calculateScore(metrics, config) {
8
5
  if (metrics.length === 0)
9
6
  return 100;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -2,5 +2,5 @@
2
2
  * Application version - single source of truth
3
3
  * This value is automatically synced from package.json during build
4
4
  */
5
- export declare const VERSION = "2.1.0";
5
+ export declare const VERSION = "2.2.0";
6
6
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  * Application version - single source of truth
3
3
  * This value is automatically synced from package.json during build
4
4
  */
5
- export const VERSION = '2.1.0';
5
+ export const VERSION = '2.2.0';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eff-u-code",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Production-grade code quality analyzer with AST parsing and AI integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",