projscan 1.1.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -14
- package/dist/cli/commands/coverage.js +4 -0
- package/dist/cli/commands/coverage.js.map +1 -1
- package/dist/cli/commands/prDiff.js +4 -0
- package/dist/cli/commands/prDiff.js.map +1 -1
- package/dist/core/ast.d.ts +14 -0
- package/dist/core/ast.js +30 -8
- package/dist/core/ast.js.map +1 -1
- package/dist/core/codeGraph.js +68 -3
- package/dist/core/codeGraph.js.map +1 -1
- package/dist/core/languages/LanguageAdapter.d.ts +1 -1
- package/dist/core/languages/csharpAdapter.d.ts +2 -0
- package/dist/core/languages/csharpAdapter.js +148 -0
- package/dist/core/languages/csharpAdapter.js.map +1 -0
- package/dist/core/languages/csharpCallSites.d.ts +22 -0
- package/dist/core/languages/csharpCallSites.js +73 -0
- package/dist/core/languages/csharpCallSites.js.map +1 -0
- package/dist/core/languages/csharpCyclomatic.d.ts +23 -0
- package/dist/core/languages/csharpCyclomatic.js +61 -0
- package/dist/core/languages/csharpCyclomatic.js.map +1 -0
- package/dist/core/languages/csharpExports.d.ts +13 -0
- package/dist/core/languages/csharpExports.js +69 -0
- package/dist/core/languages/csharpExports.js.map +1 -0
- package/dist/core/languages/csharpFunctions.d.ts +24 -0
- package/dist/core/languages/csharpFunctions.js +170 -0
- package/dist/core/languages/csharpFunctions.js.map +1 -0
- package/dist/core/languages/csharpImports.d.ts +30 -0
- package/dist/core/languages/csharpImports.js +90 -0
- package/dist/core/languages/csharpImports.js.map +1 -0
- package/dist/core/languages/goFunctions.js +31 -7
- package/dist/core/languages/goFunctions.js.map +1 -1
- package/dist/core/languages/javaFunctions.js +12 -5
- package/dist/core/languages/javaFunctions.js.map +1 -1
- package/dist/core/languages/phpAdapter.d.ts +2 -0
- package/dist/core/languages/phpAdapter.js +149 -0
- package/dist/core/languages/phpAdapter.js.map +1 -0
- package/dist/core/languages/phpCallSites.d.ts +21 -0
- package/dist/core/languages/phpCallSites.js +56 -0
- package/dist/core/languages/phpCallSites.js.map +1 -0
- package/dist/core/languages/phpCyclomatic.d.ts +27 -0
- package/dist/core/languages/phpCyclomatic.js +69 -0
- package/dist/core/languages/phpCyclomatic.js.map +1 -0
- package/dist/core/languages/phpExports.d.ts +13 -0
- package/dist/core/languages/phpExports.js +58 -0
- package/dist/core/languages/phpExports.js.map +1 -0
- package/dist/core/languages/phpFunctions.d.ts +25 -0
- package/dist/core/languages/phpFunctions.js +144 -0
- package/dist/core/languages/phpFunctions.js.map +1 -0
- package/dist/core/languages/phpImports.d.ts +31 -0
- package/dist/core/languages/phpImports.js +142 -0
- package/dist/core/languages/phpImports.js.map +1 -0
- package/dist/core/languages/phpManifests.d.ts +31 -0
- package/dist/core/languages/phpManifests.js +89 -0
- package/dist/core/languages/phpManifests.js.map +1 -0
- package/dist/core/languages/pythonFunctions.js +34 -8
- package/dist/core/languages/pythonFunctions.js.map +1 -1
- package/dist/core/languages/registry.js +3 -1
- package/dist/core/languages/registry.js.map +1 -1
- package/dist/core/languages/rubyFunctions.js +37 -5
- package/dist/core/languages/rubyFunctions.js.map +1 -1
- package/dist/core/languages/rustFunctions.js +44 -8
- package/dist/core/languages/rustFunctions.js.map +1 -1
- package/dist/core/languages/treeSitterLoader.js +3 -1
- package/dist/core/languages/treeSitterLoader.js.map +1 -1
- package/dist/grammars/tree-sitter-c_sharp.wasm +0 -0
- package/dist/grammars/tree-sitter-php.wasm +0 -0
- package/dist/reporters/htmlReporter.d.ts +3 -1
- package/dist/reporters/htmlReporter.js +86 -0
- package/dist/reporters/htmlReporter.js.map +1 -1
- package/dist/tool-manifest.json +2 -2
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/languages/registry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/languages/registry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,QAAQ,GAAsB,CAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AACpJ,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEvD,SAAS,YAAY;IACnB,WAAW,CAAC,KAAK,EAAE,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC;AACD,YAAY,EAAE,CAAC;AAEf,MAAM,UAAU,eAAe,CAAC,OAAwB;IACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,YAAY,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -40,18 +40,19 @@ function walk(node, className, out) {
|
|
|
40
40
|
const fnName = className ? `${className}.${baseName}` : baseName;
|
|
41
41
|
const line = node.startPosition.row + 1;
|
|
42
42
|
const endLine = node.endPosition.row + 1;
|
|
43
|
-
const cc =
|
|
44
|
-
out.push({ name: fnName, line, endLine, cyclomaticComplexity: cc });
|
|
43
|
+
const { cc, callSites } = analyzeBody(node);
|
|
44
|
+
out.push({ name: fnName, line, endLine, cyclomaticComplexity: cc, callSites });
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
for (const child of node.namedChildren)
|
|
48
48
|
walk(child, className, out);
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function analyzeBody(fnNode) {
|
|
51
51
|
let count = 0;
|
|
52
|
+
const calls = new Set();
|
|
52
53
|
const body = fnNode.childForFieldName ? fnNode.childForFieldName('body') : null;
|
|
53
54
|
if (!body)
|
|
54
|
-
return 1;
|
|
55
|
+
return { cc: 1, callSites: [] };
|
|
55
56
|
walkSkipNested(body, (n) => {
|
|
56
57
|
if (RUBY_DECISION_NODES.has(n.type)) {
|
|
57
58
|
count++;
|
|
@@ -60,9 +61,40 @@ function countDecisions(fnNode) {
|
|
|
60
61
|
if (n.type === 'binary') {
|
|
61
62
|
if (/(\s|^)(\|\||&&)(\s|$)/.test(n.text) || /\b(and|or)\b/.test(n.text))
|
|
62
63
|
count++;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (n.type === 'call' || n.type === 'method_call') {
|
|
67
|
+
const name = rubyCalleeName(n);
|
|
68
|
+
if (name)
|
|
69
|
+
calls.add(name);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (n.type === 'identifier') {
|
|
73
|
+
// Ruby allows calling methods without parens or receiver: `foo` is a
|
|
74
|
+
// call. Distinguishing identifier-as-call vs identifier-as-local is
|
|
75
|
+
// beyond what we can do without scope tracking; skip the bare-id case
|
|
76
|
+
// and rely on `call` / `method_call` shapes (which cover `foo()`,
|
|
77
|
+
// `obj.foo`, and `foo arg` per the grammar).
|
|
78
|
+
return;
|
|
63
79
|
}
|
|
64
80
|
});
|
|
65
|
-
return count + 1;
|
|
81
|
+
return { cc: count + 1, callSites: [...calls] };
|
|
82
|
+
}
|
|
83
|
+
function rubyCalleeName(node) {
|
|
84
|
+
// tree-sitter-ruby's `call` has a `method` field for the called name.
|
|
85
|
+
const m = node.childForFieldName ? node.childForFieldName('method') : null;
|
|
86
|
+
if (m) {
|
|
87
|
+
if (m.type === 'identifier' || m.type === 'constant')
|
|
88
|
+
return m.text;
|
|
89
|
+
return m.text;
|
|
90
|
+
}
|
|
91
|
+
// Fallback: last identifier-bearing child.
|
|
92
|
+
for (let i = node.namedChildren.length - 1; i >= 0; i--) {
|
|
93
|
+
const c = node.namedChildren[i];
|
|
94
|
+
if (c.type === 'identifier' || c.type === 'constant')
|
|
95
|
+
return c.text;
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
66
98
|
}
|
|
67
99
|
function walkSkipNested(node, visit) {
|
|
68
100
|
visit(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rubyFunctions.js","sourceRoot":"","sources":["../../../src/core/languages/rubyFunctions.ts"],"names":[],"mappings":"AAWA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,aAAa;CACd,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,SAAwB,EAAE,GAAmB;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvG,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzG,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,IAAI,aAAa,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"rubyFunctions.js","sourceRoot":"","sources":["../../../src/core/languages/rubyFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,27 +60,25 @@ function walk(node, ownerName, out) {
|
|
|
60
60
|
const fnName = ownerName ? `${ownerName}.${baseName}` : baseName;
|
|
61
61
|
const line = node.startPosition.row + 1;
|
|
62
62
|
const endLine = node.endPosition.row + 1;
|
|
63
|
-
const cc =
|
|
64
|
-
out.push({ name: fnName, line, endLine, cyclomaticComplexity: cc });
|
|
63
|
+
const { cc, callSites } = analyzeBody(node);
|
|
64
|
+
out.push({ name: fnName, line, endLine, cyclomaticComplexity: cc, callSites });
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
for (const child of node.namedChildren)
|
|
68
68
|
walk(child, ownerName, out);
|
|
69
69
|
}
|
|
70
|
-
function
|
|
70
|
+
function analyzeBody(fnNode) {
|
|
71
71
|
let count = 0;
|
|
72
|
+
const calls = new Set();
|
|
72
73
|
const body = fnNode.childForFieldName ? fnNode.childForFieldName('body') : null;
|
|
73
74
|
if (!body)
|
|
74
|
-
return 1;
|
|
75
|
+
return { cc: 1, callSites: [] };
|
|
75
76
|
walkSkipNested(body, (n) => {
|
|
76
77
|
if (RUST_DECISION_NODES.has(n.type)) {
|
|
77
78
|
count++;
|
|
78
79
|
return;
|
|
79
80
|
}
|
|
80
81
|
if (n.type === 'match_arm') {
|
|
81
|
-
// Mirror the file-level rust cyclomatic check: skip the `_ =>` arm
|
|
82
|
-
// (wrapped in `match_pattern` with `_` as anonymous content), count
|
|
83
|
-
// any other arm.
|
|
84
82
|
const arm = n.namedChildren[0];
|
|
85
83
|
if (!arm) {
|
|
86
84
|
count++;
|
|
@@ -104,9 +102,47 @@ function countDecisions(fnNode) {
|
|
|
104
102
|
}
|
|
105
103
|
if (n.type === 'binary_expression' && /(\s|^)(\|\||&&)(\s|$)/.test(n.text)) {
|
|
106
104
|
count++;
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (n.type === 'call_expression') {
|
|
108
|
+
const fn = n.childForFieldName ? n.childForFieldName('function') : (n.namedChildren[0] ?? null);
|
|
109
|
+
const name = rustCalleeName(fn);
|
|
110
|
+
if (name)
|
|
111
|
+
calls.add(name);
|
|
107
112
|
}
|
|
108
113
|
});
|
|
109
|
-
return count + 1;
|
|
114
|
+
return { cc: count + 1, callSites: [...calls] };
|
|
115
|
+
}
|
|
116
|
+
function rustCalleeName(node) {
|
|
117
|
+
if (!node)
|
|
118
|
+
return null;
|
|
119
|
+
switch (node.type) {
|
|
120
|
+
case 'identifier':
|
|
121
|
+
case 'field_identifier':
|
|
122
|
+
return node.text;
|
|
123
|
+
case 'scoped_identifier': {
|
|
124
|
+
let last = null;
|
|
125
|
+
for (const c of node.namedChildren) {
|
|
126
|
+
if (c.type === 'identifier')
|
|
127
|
+
last = c.text;
|
|
128
|
+
}
|
|
129
|
+
return last;
|
|
130
|
+
}
|
|
131
|
+
case 'field_expression': {
|
|
132
|
+
const field = node.childForFieldName ? node.childForFieldName('field') : null;
|
|
133
|
+
if (field)
|
|
134
|
+
return rustCalleeName(field);
|
|
135
|
+
const named = node.namedChildren;
|
|
136
|
+
return named.length > 0 ? rustCalleeName(named[named.length - 1]) : null;
|
|
137
|
+
}
|
|
138
|
+
case 'generic_function': {
|
|
139
|
+
// foo::<T>(args) — the function child holds the name.
|
|
140
|
+
const fn = node.childForFieldName ? node.childForFieldName('function') : null;
|
|
141
|
+
return rustCalleeName(fn);
|
|
142
|
+
}
|
|
143
|
+
default:
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
110
146
|
}
|
|
111
147
|
function walkSkipNested(node, visit) {
|
|
112
148
|
visit(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rustFunctions.js","sourceRoot":"","sources":["../../../src/core/languages/rustFunctions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rustFunctions.js","sourceRoot":"","sources":["../../../src/core/languages/rustFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,9 @@ function grammarDirs() {
|
|
|
26
26
|
const nodeModulesJava = path.join(repoRoot, 'node_modules', 'tree-sitter-java');
|
|
27
27
|
const nodeModulesRuby = path.join(repoRoot, 'node_modules', 'tree-sitter-ruby');
|
|
28
28
|
const nodeModulesRust = path.join(repoRoot, 'node_modules', 'tree-sitter-rust');
|
|
29
|
-
|
|
29
|
+
const nodeModulesPhp = path.join(repoRoot, 'node_modules', 'tree-sitter-php');
|
|
30
|
+
const nodeModulesCSharp = path.join(repoRoot, 'node_modules', 'tree-sitter-c-sharp');
|
|
31
|
+
return [distDir, nodeModulesWebTs, nodeModulesPy, nodeModulesGo, nodeModulesJava, nodeModulesRuby, nodeModulesRust, nodeModulesPhp, nodeModulesCSharp];
|
|
30
32
|
}
|
|
31
33
|
function findWasm(filename) {
|
|
32
34
|
for (const dir of grammarDirs()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeSitterLoader.js","sourceRoot":"","sources":["../../../src/core/languages/treeSitterLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,IAAI,iBAAiB,GAAyB,IAAI,CAAC;AACnD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;AAE3D;;;;;GAKG;AACH,SAAS,WAAW;IAClB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAChF,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"treeSitterLoader.js","sourceRoot":"","sources":["../../../src/core/languages/treeSitterLoader.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { CouplingReport, HotspotReport, ImpactReport, Issue, ReviewReport } from '../types.js';
|
|
1
|
+
import type { CouplingReport, CoverageJoinedReport, HotspotReport, ImpactReport, Issue, PrDiffReport, ReviewReport } from '../types.js';
|
|
2
2
|
/** Wrap inner HTML in a complete document. Title is required for accessibility. */
|
|
3
3
|
export declare function htmlShell(title: string, bodyHtml: string): string;
|
|
4
4
|
export declare function reportHealthHtml(issues: Issue[]): void;
|
|
5
5
|
export declare function reportHotspotsHtml(report: HotspotReport): void;
|
|
6
6
|
export declare function reportCouplingHtml(report: CouplingReport): void;
|
|
7
7
|
export declare function reportReviewHtml(report: ReviewReport): void;
|
|
8
|
+
export declare function reportPrDiffHtml(report: PrDiffReport): void;
|
|
9
|
+
export declare function reportCoverageHtml(report: CoverageJoinedReport): void;
|
|
8
10
|
export declare function reportImpactHtml(report: ImpactReport): void;
|
|
@@ -236,6 +236,92 @@ ${depsHtml}
|
|
|
236
236
|
`;
|
|
237
237
|
console.log(htmlShell(`PR Review (${verdictLabel.replace(/[^A-Za-z]/g, '').trim()})`, body));
|
|
238
238
|
}
|
|
239
|
+
export function reportPrDiffHtml(report) {
|
|
240
|
+
if (!report.available) {
|
|
241
|
+
console.log(htmlShell('PR Diff — unavailable', `<h1>PR Structural Diff</h1><p class="muted">${escapeHtml(report.reason ?? 'PR diff unavailable.')}</p>`));
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
const addedHtml = report.filesAdded.length === 0
|
|
245
|
+
? ''
|
|
246
|
+
: `<h2>Added (${report.filesAdded.length})</h2>
|
|
247
|
+
<ul>${report.filesAdded.map((f) => `<li><code>${escapeHtml(f)}</code></li>`).join('\n')}</ul>`;
|
|
248
|
+
const removedHtml = report.filesRemoved.length === 0
|
|
249
|
+
? ''
|
|
250
|
+
: `<h2>Removed (${report.filesRemoved.length})</h2>
|
|
251
|
+
<ul>${report.filesRemoved.map((f) => `<li><code>${escapeHtml(f)}</code></li>`).join('\n')}</ul>`;
|
|
252
|
+
const modifiedHtml = report.filesModified.length === 0
|
|
253
|
+
? ''
|
|
254
|
+
: `<h2>Modified (${report.filesModified.length})</h2>
|
|
255
|
+
${report.filesModified
|
|
256
|
+
.slice(0, 100)
|
|
257
|
+
.map((m) => {
|
|
258
|
+
const dCC = m.cyclomaticDelta === null ? '' : ` · ΔCC ${signed(m.cyclomaticDelta)}`;
|
|
259
|
+
const dFI = m.fanInDelta === null || m.fanInDelta === 0 ? '' : ` · Δfan-in ${signed(m.fanInDelta)}`;
|
|
260
|
+
const lines = [];
|
|
261
|
+
if (m.exportsAdded.length > 0)
|
|
262
|
+
lines.push(`<li><strong class="severity-info">+exports:</strong> ${m.exportsAdded.map((s) => `<code>${escapeHtml(s)}</code>`).join(', ')}</li>`);
|
|
263
|
+
if (m.exportsRemoved.length > 0)
|
|
264
|
+
lines.push(`<li><strong class="severity-error">−exports:</strong> ${m.exportsRemoved.map((s) => `<code>${escapeHtml(s)}</code>`).join(', ')}</li>`);
|
|
265
|
+
if (m.exportsRenamed.length > 0) {
|
|
266
|
+
const pairs = m.exportsRenamed.map((r) => `<code>${escapeHtml(r.from)}</code> → <code>${escapeHtml(r.to)}</code>`).join(', ');
|
|
267
|
+
lines.push(`<li><strong class="severity-warning">~exports:</strong> ${pairs}</li>`);
|
|
268
|
+
}
|
|
269
|
+
if (m.importsAdded.length > 0)
|
|
270
|
+
lines.push(`<li><strong class="severity-info">+imports:</strong> ${m.importsAdded.map((s) => `<code>${escapeHtml(s)}</code>`).join(', ')}</li>`);
|
|
271
|
+
if (m.importsRemoved.length > 0)
|
|
272
|
+
lines.push(`<li><strong class="severity-error">−imports:</strong> ${m.importsRemoved.map((s) => `<code>${escapeHtml(s)}</code>`).join(', ')}</li>`);
|
|
273
|
+
const inner = lines.length === 0 ? '<p class="muted">No structural change beyond CC / fan-in.</p>' : `<ul>${lines.join('\n')}</ul>`;
|
|
274
|
+
return `<h3><code>${escapeHtml(m.relativePath)}</code><span class="muted">${dCC}${dFI}</span></h3>\n${inner}`;
|
|
275
|
+
})
|
|
276
|
+
.join('\n')}
|
|
277
|
+
${report.filesModified.length > 100 ? `<p class="muted">… and ${report.filesModified.length - 100} more</p>` : ''}`;
|
|
278
|
+
const body = `
|
|
279
|
+
<h1>PR Structural Diff</h1>
|
|
280
|
+
<p class="muted">base <code>${escapeHtml(report.base.ref)}</code> (${report.base.resolvedSha?.slice(0, 7) ?? '?'}) → head <code>${escapeHtml(report.head.ref)}</code> (${report.head.resolvedSha?.slice(0, 7) ?? '?'})</p>
|
|
281
|
+
<p><strong>${report.totalFilesChanged}</strong> file(s) changed: <span class="severity-info">+${report.filesAdded.length}</span> added, <span class="severity-error">−${report.filesRemoved.length}</span> removed, <span class="severity-warning">~${report.filesModified.length}</span> modified.</p>
|
|
282
|
+
${addedHtml}
|
|
283
|
+
${removedHtml}
|
|
284
|
+
${modifiedHtml}
|
|
285
|
+
`;
|
|
286
|
+
console.log(htmlShell('PR Structural Diff', body));
|
|
287
|
+
}
|
|
288
|
+
export function reportCoverageHtml(report) {
|
|
289
|
+
if (!report.available) {
|
|
290
|
+
console.log(htmlShell('Coverage — unavailable', `<h1>Coverage × Risk</h1><p class="muted">${escapeHtml(report.reason ?? 'Coverage unavailable.')}</p>`));
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
const rows = report.entries
|
|
294
|
+
.slice(0, 100)
|
|
295
|
+
.map((h, i) => {
|
|
296
|
+
const cov = h.coverage;
|
|
297
|
+
const covPct = cov === null ? '-' : `${Math.round(cov * 100)}%`;
|
|
298
|
+
const danger = cov !== null && cov < 0.5 && h.riskScore > 50;
|
|
299
|
+
const cls = danger ? ' class="severity-error"' : '';
|
|
300
|
+
return `<tr${cls}>
|
|
301
|
+
<td class="right">${i + 1}</td>
|
|
302
|
+
<td><code>${escapeHtml(h.relativePath)}</code></td>
|
|
303
|
+
<td class="right">${h.riskScore.toFixed(1)}</td>
|
|
304
|
+
<td class="right">${covPct}</td>
|
|
305
|
+
<td class="right">${h.priority.toFixed(1)}</td>
|
|
306
|
+
<td class="right">${h.lineCount}</td>
|
|
307
|
+
<td class="muted">${escapeHtml(h.reasons.join(', '))}</td>
|
|
308
|
+
</tr>`;
|
|
309
|
+
})
|
|
310
|
+
.join('\n');
|
|
311
|
+
const sourceLabel = report.coverageSource ?? 'no coverage source';
|
|
312
|
+
const sourceFile = report.coverageSourceFile ? ` (<code>${escapeHtml(report.coverageSourceFile)}</code>)` : '';
|
|
313
|
+
const body = `
|
|
314
|
+
<h1>Coverage × Risk</h1>
|
|
315
|
+
<p class="muted">Source: ${escapeHtml(sourceLabel)}${sourceFile} · ${report.entries.length} file(s) ranked.</p>
|
|
316
|
+
<p>Rows highlighted in red have <strong>coverage < 50%</strong> AND <strong>risk score > 50</strong> — the "scariest untested files" combination. The Priority column blends risk and uncovered fraction; rows are sorted by it.</p>
|
|
317
|
+
<table>
|
|
318
|
+
<thead><tr><th>#</th><th>File</th><th class="right">Risk</th><th class="right">Coverage</th><th class="right">Priority</th><th class="right">Lines</th><th>Reasons</th></tr></thead>
|
|
319
|
+
<tbody>${rows}</tbody>
|
|
320
|
+
</table>
|
|
321
|
+
${report.entries.length > 100 ? `<p class="muted">… and ${report.entries.length - 100} more</p>` : ''}
|
|
322
|
+
`;
|
|
323
|
+
console.log(htmlShell('Coverage × Risk', body));
|
|
324
|
+
}
|
|
239
325
|
export function reportImpactHtml(report) {
|
|
240
326
|
if (!report.available) {
|
|
241
327
|
console.log(htmlShell('Impact — unavailable', `<h1>Impact</h1><p class="muted">${escapeHtml(report.reason ?? 'Impact unavailable.')}</p>`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlReporter.js","sourceRoot":"","sources":["../../src/reporters/htmlReporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"htmlReporter.js","sourceRoot":"","sources":["../../src/reporters/htmlReporter.ts"],"names":[],"mappings":"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"}
|
package/dist/tool-manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projscan",
|
|
3
3
|
"mcpName": "io.github.abhiyoheswaran1/projscan",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, and
|
|
4
|
+
"version": "1.2.1",
|
|
5
|
+
"description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, and C#; code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, one-call PR review (projscan_review), rule-driven fix suggestions (projscan_fix_suggest, projscan_explain_issue) closing the diagnose-fix loop, transitive blast-radius analysis (projscan_impact for files and symbols), per-function semantic search chunks (sub-file embeddings), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
@@ -62,8 +62,10 @@
|
|
|
62
62
|
"commander": "^12.1.0",
|
|
63
63
|
"fast-glob": "^3.3.2",
|
|
64
64
|
"ora": "^8.1.0",
|
|
65
|
+
"tree-sitter-c-sharp": "^0.23.5",
|
|
65
66
|
"tree-sitter-go": "^0.25.0",
|
|
66
67
|
"tree-sitter-java": "^0.23.5",
|
|
68
|
+
"tree-sitter-php": "^0.23.12",
|
|
67
69
|
"tree-sitter-python": "^0.25.0",
|
|
68
70
|
"tree-sitter-ruby": "^0.23.1",
|
|
69
71
|
"tree-sitter-rust": "^0.23.3",
|