code-auditor-mcp 1.3.0 → 1.4.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/README.md +54 -0
- package/dist/codeIndexDb.d.ts +43 -0
- package/dist/codeIndexDb.d.ts.map +1 -1
- package/dist/codeIndexDb.js +234 -0
- package/dist/codeIndexDb.js.map +1 -1
- package/dist/codeIndexService.d.ts +26 -0
- package/dist/codeIndexService.d.ts.map +1 -1
- package/dist/codeIndexService.js +60 -0
- package/dist/codeIndexService.js.map +1 -1
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +51 -4
- package/dist/functionScanner.js.map +1 -1
- package/dist/mcp-standalone.js +3 -3
- package/dist/mcp-standalone.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +45 -0
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp.js +2 -2
- package/dist/mcp.js.map +1 -1
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +55 -1
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/types.d.ts +52 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/astUtils.d.ts +17 -1
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +121 -0
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/dependencyExtractor.d.ts +30 -0
- package/dist/utils/dependencyExtractor.d.ts.map +1 -0
- package/dist/utils/dependencyExtractor.js +237 -0
- package/dist/utils/dependencyExtractor.js.map +1 -0
- package/package.json +16 -15
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency extraction utilities for function-level dependency tracking
|
|
3
|
+
*/
|
|
4
|
+
import * as ts from 'typescript';
|
|
5
|
+
/**
|
|
6
|
+
* Extract all function calls within a given AST node
|
|
7
|
+
*/
|
|
8
|
+
export function extractFunctionCalls(node, sourceFile, importMap) {
|
|
9
|
+
const calls = [];
|
|
10
|
+
function visit(node) {
|
|
11
|
+
if (ts.isCallExpression(node)) {
|
|
12
|
+
const callInfo = resolveCallExpression(node, sourceFile, importMap);
|
|
13
|
+
if (callInfo) {
|
|
14
|
+
calls.push(callInfo);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
ts.forEachChild(node, visit);
|
|
18
|
+
}
|
|
19
|
+
visit(node);
|
|
20
|
+
return calls;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build a map of imports from import statements
|
|
24
|
+
*/
|
|
25
|
+
export function buildImportMap(sourceFile) {
|
|
26
|
+
const importMap = new Map();
|
|
27
|
+
function visit(node) {
|
|
28
|
+
if (ts.isImportDeclaration(node)) {
|
|
29
|
+
const moduleSpecifier = node.moduleSpecifier.text;
|
|
30
|
+
const importClause = node.importClause;
|
|
31
|
+
if (importClause) {
|
|
32
|
+
// Default import
|
|
33
|
+
if (importClause.name) {
|
|
34
|
+
const localName = importClause.name.text;
|
|
35
|
+
importMap.set(localName, {
|
|
36
|
+
localName,
|
|
37
|
+
importedName: 'default',
|
|
38
|
+
modulePath: moduleSpecifier,
|
|
39
|
+
importType: 'default',
|
|
40
|
+
isTypeOnly: importClause.isTypeOnly || false
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
// Named imports
|
|
44
|
+
if (importClause.namedBindings) {
|
|
45
|
+
if (ts.isNamedImports(importClause.namedBindings)) {
|
|
46
|
+
importClause.namedBindings.elements.forEach(element => {
|
|
47
|
+
const localName = element.name.text;
|
|
48
|
+
const importedName = element.propertyName?.text || localName;
|
|
49
|
+
importMap.set(localName, {
|
|
50
|
+
localName,
|
|
51
|
+
importedName,
|
|
52
|
+
modulePath: moduleSpecifier,
|
|
53
|
+
importType: 'named',
|
|
54
|
+
isTypeOnly: importClause.isTypeOnly || element.isTypeOnly || false
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else if (ts.isNamespaceImport(importClause.namedBindings)) {
|
|
59
|
+
// Namespace import (import * as name from 'module')
|
|
60
|
+
const localName = importClause.namedBindings.name.text;
|
|
61
|
+
importMap.set(localName, {
|
|
62
|
+
localName,
|
|
63
|
+
importedName: '*',
|
|
64
|
+
modulePath: moduleSpecifier,
|
|
65
|
+
importType: 'namespace',
|
|
66
|
+
isTypeOnly: importClause.isTypeOnly || false
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (ts.isVariableStatement(node)) {
|
|
73
|
+
// Handle require statements (CommonJS)
|
|
74
|
+
node.declarationList.declarations.forEach(decl => {
|
|
75
|
+
if (ts.isVariableDeclaration(decl) && decl.initializer && ts.isCallExpression(decl.initializer)) {
|
|
76
|
+
const callExpr = decl.initializer;
|
|
77
|
+
if (ts.isIdentifier(callExpr.expression) && callExpr.expression.text === 'require' &&
|
|
78
|
+
callExpr.arguments.length > 0 && ts.isStringLiteral(callExpr.arguments[0])) {
|
|
79
|
+
const modulePath = callExpr.arguments[0].text;
|
|
80
|
+
if (ts.isIdentifier(decl.name)) {
|
|
81
|
+
const localName = decl.name.text;
|
|
82
|
+
importMap.set(localName, {
|
|
83
|
+
localName,
|
|
84
|
+
importedName: 'default',
|
|
85
|
+
modulePath,
|
|
86
|
+
importType: 'default',
|
|
87
|
+
isTypeOnly: false
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
ts.forEachChild(node, visit);
|
|
95
|
+
}
|
|
96
|
+
visit(sourceFile);
|
|
97
|
+
return importMap;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Resolve a call expression to get call information
|
|
101
|
+
*/
|
|
102
|
+
export function resolveCallExpression(callExpr, sourceFile, importMap) {
|
|
103
|
+
const expr = callExpr.expression;
|
|
104
|
+
const { line, character } = sourceFile.getLineAndCharacterOfPosition(callExpr.getStart());
|
|
105
|
+
let callee;
|
|
106
|
+
let callType = 'direct';
|
|
107
|
+
if (ts.isIdentifier(expr)) {
|
|
108
|
+
// Direct function call: functionName()
|
|
109
|
+
callee = expr.text;
|
|
110
|
+
callType = 'direct';
|
|
111
|
+
}
|
|
112
|
+
else if (ts.isPropertyAccessExpression(expr)) {
|
|
113
|
+
// Method call: object.method()
|
|
114
|
+
callee = resolvePropertyAccess(expr, importMap);
|
|
115
|
+
callType = 'method';
|
|
116
|
+
}
|
|
117
|
+
else if (ts.isElementAccessExpression(expr)) {
|
|
118
|
+
// Dynamic call: object[property]()
|
|
119
|
+
callee = '[dynamic]';
|
|
120
|
+
callType = 'dynamic';
|
|
121
|
+
}
|
|
122
|
+
if (callee) {
|
|
123
|
+
return {
|
|
124
|
+
callee,
|
|
125
|
+
callType,
|
|
126
|
+
line: line + 1, // Convert to 1-based
|
|
127
|
+
column: character + 1,
|
|
128
|
+
arguments: callExpr.arguments.length
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Resolve property access expressions to a string representation
|
|
135
|
+
*/
|
|
136
|
+
function resolvePropertyAccess(expr, importMap) {
|
|
137
|
+
const parts = [expr.name.text];
|
|
138
|
+
let current = expr.expression;
|
|
139
|
+
while (ts.isPropertyAccessExpression(current)) {
|
|
140
|
+
parts.unshift(current.name.text);
|
|
141
|
+
current = current.expression;
|
|
142
|
+
}
|
|
143
|
+
if (ts.isIdentifier(current)) {
|
|
144
|
+
const baseName = current.text;
|
|
145
|
+
const importInfo = importMap.get(baseName);
|
|
146
|
+
if (importInfo) {
|
|
147
|
+
// Imported module method call
|
|
148
|
+
parts.unshift(`${importInfo.modulePath}#${baseName}`);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// Local object method call
|
|
152
|
+
parts.unshift(baseName);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return parts.join('.');
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Extract identifier usage within a function to determine which imports are actually used
|
|
159
|
+
*/
|
|
160
|
+
export function extractIdentifierUsage(node, sourceFile, importMap) {
|
|
161
|
+
const usageMap = new Map();
|
|
162
|
+
function visit(node) {
|
|
163
|
+
if (ts.isIdentifier(node) && !ts.isPropertyAccessExpression(node.parent) &&
|
|
164
|
+
!ts.isPropertyAssignment(node.parent)) {
|
|
165
|
+
const name = node.text;
|
|
166
|
+
if (importMap.has(name)) {
|
|
167
|
+
const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
168
|
+
const existing = usageMap.get(name) || {
|
|
169
|
+
usageType: 'direct',
|
|
170
|
+
usageCount: 0,
|
|
171
|
+
lineNumbers: []
|
|
172
|
+
};
|
|
173
|
+
existing.usageCount++;
|
|
174
|
+
existing.lineNumbers.push(line + 1);
|
|
175
|
+
// Determine usage type
|
|
176
|
+
if (ts.isTypeNode(node.parent) || ts.isTypeReferenceNode(node.parent)) {
|
|
177
|
+
existing.usageType = 'type';
|
|
178
|
+
}
|
|
179
|
+
else if (ts.isExportSpecifier(node.parent)) {
|
|
180
|
+
existing.usageType = 'reexport';
|
|
181
|
+
}
|
|
182
|
+
usageMap.set(name, existing);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
ts.forEachChild(node, visit);
|
|
186
|
+
}
|
|
187
|
+
visit(node);
|
|
188
|
+
return usageMap;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get all local function names defined in the file
|
|
192
|
+
*/
|
|
193
|
+
export function getLocalFunctionNames(sourceFile) {
|
|
194
|
+
const functionNames = new Set();
|
|
195
|
+
function visit(node) {
|
|
196
|
+
if (ts.isFunctionDeclaration(node) && node.name) {
|
|
197
|
+
functionNames.add(node.name.text);
|
|
198
|
+
}
|
|
199
|
+
else if (ts.isVariableStatement(node)) {
|
|
200
|
+
node.declarationList.declarations.forEach(decl => {
|
|
201
|
+
if (ts.isVariableDeclaration(decl) && ts.isIdentifier(decl.name) &&
|
|
202
|
+
decl.initializer && (ts.isFunctionExpression(decl.initializer) ||
|
|
203
|
+
ts.isArrowFunction(decl.initializer))) {
|
|
204
|
+
functionNames.add(decl.name.text);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
else if (ts.isClassDeclaration(node) && node.name) {
|
|
209
|
+
functionNames.add(node.name.text);
|
|
210
|
+
// Also add class methods
|
|
211
|
+
node.members.forEach(member => {
|
|
212
|
+
if (ts.isMethodDeclaration(member) && ts.isIdentifier(member.name)) {
|
|
213
|
+
functionNames.add(`${node.name.text}.${member.name.text}`);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
ts.forEachChild(node, visit);
|
|
218
|
+
}
|
|
219
|
+
visit(sourceFile);
|
|
220
|
+
return functionNames;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Normalize a function call target for consistent naming
|
|
224
|
+
*/
|
|
225
|
+
export function normalizeCallTarget(callee, filePath, localFunctions) {
|
|
226
|
+
// If it's a local function, prefix with file path for uniqueness
|
|
227
|
+
if (localFunctions.has(callee)) {
|
|
228
|
+
return `${filePath}#${callee}`;
|
|
229
|
+
}
|
|
230
|
+
// If it already has a module path, return as-is
|
|
231
|
+
if (callee.includes('#')) {
|
|
232
|
+
return callee;
|
|
233
|
+
}
|
|
234
|
+
// Otherwise, it's an unresolved external call
|
|
235
|
+
return callee;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=dependencyExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencyExtractor.js","sourceRoot":"","sources":["../../src/utils/dependencyExtractor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-auditor-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "TypeScript/JavaScript code quality auditor with MCP server - Analyze code for SOLID principles, DRY violations, security patterns, and more",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,6 +9,19 @@
|
|
|
9
9
|
"code-audit": "./dist/cli.js",
|
|
10
10
|
"code-auditor-mcp": "./dist/mcp-standalone.js"
|
|
11
11
|
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"watch": "tsc --watch",
|
|
15
|
+
"dev": "tsx src/cli.ts",
|
|
16
|
+
"dev:server": "tsx --watch src/cli.ts start --rest-api",
|
|
17
|
+
"audit": "node dist/cli.js",
|
|
18
|
+
"start": "node dist/mcp-standalone.js",
|
|
19
|
+
"start:rest": "node dist/cli.js start --rest-api",
|
|
20
|
+
"generate": "node dist/cli.js generate-config",
|
|
21
|
+
"prepublishOnly": "npm run build",
|
|
22
|
+
"test": "vitest",
|
|
23
|
+
"test:watch": "vitest watch"
|
|
24
|
+
},
|
|
12
25
|
"keywords": [
|
|
13
26
|
"audit",
|
|
14
27
|
"code-quality",
|
|
@@ -61,22 +74,10 @@
|
|
|
61
74
|
],
|
|
62
75
|
"repository": {
|
|
63
76
|
"type": "git",
|
|
64
|
-
"url": "https://github.com/code-auditor
|
|
77
|
+
"url": "https://github.com/BenAHammond/code-auditor-mcp.git"
|
|
65
78
|
},
|
|
66
79
|
"bugs": {
|
|
67
80
|
"url": "https://github.com/code-auditor/code-auditor/issues"
|
|
68
81
|
},
|
|
69
|
-
"homepage": "https://github.com/code-auditor/code-auditor#readme"
|
|
70
|
-
"scripts": {
|
|
71
|
-
"build": "tsc",
|
|
72
|
-
"watch": "tsc --watch",
|
|
73
|
-
"dev": "tsx src/cli.ts",
|
|
74
|
-
"dev:server": "tsx --watch src/cli.ts start --rest-api",
|
|
75
|
-
"audit": "node dist/cli.js",
|
|
76
|
-
"start": "node dist/mcp-standalone.js",
|
|
77
|
-
"start:rest": "node dist/cli.js start --rest-api",
|
|
78
|
-
"generate": "node dist/cli.js generate-config",
|
|
79
|
-
"test": "vitest",
|
|
80
|
-
"test:watch": "vitest watch"
|
|
81
|
-
}
|
|
82
|
+
"homepage": "https://github.com/code-auditor/code-auditor#readme"
|
|
82
83
|
}
|