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.
- package/bin/fuck-u-code.js +49 -1
- package/dist/analyzer/concurrent-analyzer.d.ts.map +1 -1
- package/dist/analyzer/concurrent-analyzer.js +16 -5
- package/dist/analyzer/concurrent-analyzer.js.map +1 -1
- package/dist/analyzer/index.d.ts +0 -3
- package/dist/analyzer/index.d.ts.map +1 -1
- package/dist/analyzer/index.js +9 -7
- package/dist/analyzer/index.js.map +1 -1
- package/dist/cli/commands/analyze.js +1 -0
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/output/json.d.ts.map +1 -1
- package/dist/cli/output/json.js +64 -0
- package/dist/cli/output/json.js.map +1 -1
- package/dist/config/schema.js +2 -2
- package/dist/i18n/locales/en.json +44 -1
- package/dist/i18n/locales/ru.json +44 -1
- package/dist/i18n/locales/zh.json +44 -1
- package/dist/mcp/server.js +2 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/metrics/complexity/cognitive.d.ts.map +1 -1
- package/dist/metrics/complexity/cognitive.js +29 -6
- package/dist/metrics/complexity/cognitive.js.map +1 -1
- package/dist/metrics/complexity/cyclomatic.d.ts.map +1 -1
- package/dist/metrics/complexity/cyclomatic.js +29 -7
- package/dist/metrics/complexity/cyclomatic.js.map +1 -1
- package/dist/metrics/size/function-length.d.ts.map +1 -1
- package/dist/metrics/size/function-length.js +27 -6
- package/dist/metrics/size/function-length.js.map +1 -1
- package/dist/parser/index.d.ts +1 -5
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +38 -22
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/tree-sitter-parser.d.ts +3 -0
- package/dist/parser/tree-sitter-parser.d.ts.map +1 -1
- package/dist/parser/tree-sitter-parser.js +42 -26
- package/dist/parser/tree-sitter-parser.js.map +1 -1
- package/dist/scoring/index.d.ts +0 -3
- package/dist/scoring/index.d.ts.map +1 -1
- package/dist/scoring/index.js +0 -3
- package/dist/scoring/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/bin/fuck-u-code.js
CHANGED
|
@@ -1,2 +1,50 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
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,
|
|
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 ||
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAuB,EACvB,MAAqB,EACrB,UAAqD;IAErD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAElC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAE3B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,KAAK,CAAC,KAAK,IAAwC,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/C,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACzF,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,IAAoB,EACpB,MAAqB;IAErB,kBAAkB;IAClB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAE/C,IAAI,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"concurrent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/analyzer/index.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/analyzer/index.js
CHANGED
|
@@ -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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/cli/output/json.js
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/output/json.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.js
CHANGED
|
@@ -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(
|
|
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:
|
|
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
|
}
|
package/dist/mcp/server.js
CHANGED
|
@@ -56,8 +56,8 @@ server.registerTool('analyze', {
|
|
|
56
56
|
format: z
|
|
57
57
|
.enum(['console', 'markdown', 'json'])
|
|
58
58
|
.optional()
|
|
59
|
-
.default('
|
|
60
|
-
.describe('Output format (
|
|
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
|
},
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
-
|
|
56
|
+
// weighted scoring considering both average and worst-case
|
|
57
|
+
let avgScore;
|
|
57
58
|
if (avgCognitive <= thresholds.excellent) {
|
|
58
|
-
|
|
59
|
+
avgScore = 100;
|
|
59
60
|
}
|
|
60
61
|
else if (avgCognitive <= thresholds.good) {
|
|
61
|
-
|
|
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
|
-
|
|
67
|
+
avgScore =
|
|
67
68
|
80 - ((avgCognitive - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 35;
|
|
68
69
|
}
|
|
69
70
|
else if (avgCognitive <= thresholds.poor) {
|
|
70
|
-
|
|
71
|
+
avgScore =
|
|
71
72
|
45 -
|
|
72
73
|
((avgCognitive - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 30;
|
|
73
74
|
}
|
|
74
75
|
else {
|
|
75
|
-
|
|
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":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,OAAO,yBAAyB;IAC3B,IAAI,GAAG,sBAAsB,CAAC;IAC9B,QAAQ,GAAmB,YAAY,CAAC;IACxC,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,qBAAqB,CAAC,CAAC;QAEvE,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,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,SAAS,GAAqB,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC1D,cAAc,IAAI,SAAS,CAAC;YAC5B,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;YACD,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC;oBACb,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,YAAY,EAAE,IAAI,CAAC,IAAI;oBACvB,OAAO,EAAE,GAAG,CAAC,CAAC,6BAA6B,CAAC,KAAK,SAAS,EAAE;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;QAEvD,IAAI,
|
|
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;
|
|
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
|
|
51
|
+
let avgScore;
|
|
52
52
|
if (avgComplexity <= thresholds.excellent) {
|
|
53
|
-
|
|
53
|
+
avgScore = 100;
|
|
54
54
|
}
|
|
55
55
|
else if (avgComplexity <= thresholds.good) {
|
|
56
|
-
|
|
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
|
-
|
|
61
|
+
avgScore =
|
|
62
62
|
80 - ((avgComplexity - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 30;
|
|
63
63
|
}
|
|
64
64
|
else if (avgComplexity <= thresholds.poor) {
|
|
65
|
-
|
|
65
|
+
avgScore =
|
|
66
66
|
50 -
|
|
67
|
-
((avgComplexity - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) *
|
|
67
|
+
((avgComplexity - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 50;
|
|
68
68
|
}
|
|
69
69
|
else {
|
|
70
|
-
|
|
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":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,OAAO,0BAA0B;IAC5B,IAAI,GAAG,uBAAuB,CAAC;IAC/B,QAAQ,GAAmB,YAAY,CAAC;IACxC,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,sBAAsB,CAAC,CAAC;QAExE,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,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,SAAS,GAAqB,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,IAAI,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC;gBACpC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC;oBACb,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,YAAY,EAAE,IAAI,CAAC,IAAI;oBACvB,OAAO,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;iBAClD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;QAEzD,IAAI,
|
|
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;
|
|
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
|
-
|
|
49
|
+
// Industry standard (SonarQube): weighted scoring considering both average and worst-case
|
|
50
|
+
let avgScore;
|
|
50
51
|
if (avgLength <= thresholds.excellent) {
|
|
51
|
-
|
|
52
|
+
avgScore = 100;
|
|
52
53
|
}
|
|
53
54
|
else if (avgLength <= thresholds.good) {
|
|
54
|
-
|
|
55
|
+
avgScore =
|
|
55
56
|
100 - ((avgLength - thresholds.excellent) / (thresholds.good - thresholds.excellent)) * 15;
|
|
56
57
|
}
|
|
57
58
|
else if (avgLength <= thresholds.acceptable) {
|
|
58
|
-
|
|
59
|
+
avgScore =
|
|
59
60
|
85 - ((avgLength - thresholds.good) / (thresholds.acceptable - thresholds.good)) * 35;
|
|
60
61
|
}
|
|
61
62
|
else if (avgLength <= thresholds.poor) {
|
|
62
|
-
|
|
63
|
+
avgScore =
|
|
63
64
|
50 - ((avgLength - thresholds.acceptable) / (thresholds.poor - thresholds.acceptable)) * 35;
|
|
64
65
|
}
|
|
65
66
|
else {
|
|
66
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"function-length.js","sourceRoot":"","sources":["../../../src/metrics/size/function-length.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/parser/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
|
34
|
-
|
|
35
|
-
|
|
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
|
package/dist/parser/index.js.map
CHANGED
|
@@ -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
|
|
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;
|
|
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
|
|
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
|
|
522
|
+
async initialize() {
|
|
523
|
+
if (this.initialized)
|
|
524
|
+
return;
|
|
522
525
|
await ensureParserInit();
|
|
523
526
|
const tsLang = await loadLanguage(this.config.wasmFile);
|
|
524
|
-
|
|
525
|
-
parser.setLanguage(tsLang);
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
parser
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"tree-sitter-parser.js","sourceRoot":"","sources":["../../src/parser/tree-sitter-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/scoring/index.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/scoring/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED