@kridaydave/code-mapper 1.0.0 → 1.0.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +1 -0
  3. package/bin/code-mapper.mjs +86 -0
  4. package/dist/graph/GraphAnalyzer.js +32 -65
  5. package/dist/graph/GraphAnalyzer.js.map +1 -1
  6. package/dist/graph/GraphBuilder.js +18 -45
  7. package/dist/graph/GraphBuilder.js.map +1 -1
  8. package/dist/index.js +100 -23
  9. package/dist/index.js.map +1 -1
  10. package/dist/mcp/cache.js +8 -17
  11. package/dist/mcp/cache.js.map +1 -1
  12. package/dist/mcp/resources.js +5 -1
  13. package/dist/mcp/resources.js.map +1 -1
  14. package/dist/mcp/tools.js +190 -35
  15. package/dist/mcp/tools.js.map +1 -1
  16. package/dist/parser/ComplexityAnalyzer.js +19 -2
  17. package/dist/parser/ComplexityAnalyzer.js.map +1 -1
  18. package/dist/parser/FileAnalyzer.js +8 -30
  19. package/dist/parser/FileAnalyzer.js.map +1 -1
  20. package/dist/parser/ProjectParser.js +8 -5
  21. package/dist/parser/ProjectParser.js.map +1 -1
  22. package/dist/parser/ProjectParser.test.js +1 -17
  23. package/dist/parser/ProjectParser.test.js.map +1 -1
  24. package/dist/tui/index.js +239 -0
  25. package/dist/tui/index.js.map +1 -0
  26. package/package.json +82 -35
  27. package/AGENTS.md +0 -174
  28. package/docs/PHASE2_PLAN.md +0 -435
  29. package/fixtures/test-project/calculator.ts +0 -28
  30. package/fixtures/test-project/index.ts +0 -2
  31. package/fixtures/test-project/math.ts +0 -11
  32. package/src/graph/Graph.test.ts +0 -222
  33. package/src/graph/GraphAnalyzer.ts +0 -502
  34. package/src/graph/GraphBuilder.ts +0 -258
  35. package/src/graph/types.ts +0 -42
  36. package/src/index.ts +0 -38
  37. package/src/mcp/cache.ts +0 -89
  38. package/src/mcp/resources.ts +0 -137
  39. package/src/mcp/tools.test.ts +0 -104
  40. package/src/mcp/tools.ts +0 -529
  41. package/src/parser/ComplexityAnalyzer.ts +0 -275
  42. package/src/parser/FileAnalyzer.ts +0 -215
  43. package/src/parser/ProjectParser.test.ts +0 -96
  44. package/src/parser/ProjectParser.ts +0 -172
  45. package/src/parser/types.ts +0 -77
  46. package/src/types/graphology-pagerank.d.ts +0 -20
  47. package/tsconfig.json +0 -17
  48. package/vitest.config.ts +0 -15
package/CHANGELOG.md ADDED
@@ -0,0 +1,31 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [1.0.0] - 2026-04-06
6
+
7
+ ### Added
8
+ - **Regex search support** - Optional `useRegex` parameter in `find_function` tool for regex-based searching
9
+ - **Enhanced error handling** - Contextual error messages with error codes (`ERR_DIRECTORY_NOT_FOUND`, `ERR_TOO_MANY_FILES`, `ERR_NOT_A_DIRECTORY`, `ERR_NO_FILES_FOUND`, `ERR_INVALID_REGEX`)
10
+ - **PageRank support** - Installed `graphology-pagerank` dependency
11
+ - **Progress indicators** - Progress callback support in `ProjectParser.parse()`
12
+
13
+ ### Fixed
14
+ - **Critical: Duplicate Project instances** - Removed duplicate ts-morph Project creation in `analyze_complexity` tool
15
+ - **Critical: Cache inconsistency** - Fixed cache sync between ProjectParser and MCP layer
16
+ - **Critical: Missing metric property** - Added `metric` to ranked output in `rank_impact` tool
17
+ - **Medium: Invalid regex error handling** - Added error code for invalid regex patterns
18
+ - **Medium: Dead code removal** - Removed unused `fileNodeIds` Map in GraphBuilder
19
+ - **Medium: Silent failures** - Added error logging for failed complexity analysis
20
+
21
+ ### Changed
22
+ - **AI slop cleanup** - Removed verbose JSDoc, over-engineering, and dead code across all files
23
+ - **Simplified GraphBuilder** - Removed duplicate edge pushing, simplified extension handling
24
+ - **Improved cache.ts** - Fixed dead branch, simplified LRU eviction
25
+
26
+ ### Removed
27
+ - **Deprecated PHASE2_PLAN.md** - Moved to `docs/impro/IMPROVEMENTS_PLAN.md`
28
+
29
+ ### Infrastructure
30
+ - Added vitest test framework
31
+ - All 45 tests passing
package/README.md CHANGED
@@ -19,6 +19,7 @@ An MCP server that uses AST parsing to map TypeScript/JavaScript codebase struct
19
19
  | `analyze_dependencies` | Returns the full dependency graph or a subgraph for a specific file (JSON or Mermaid) |
20
20
  | `rank_impact` | Ranks files by centrality (in-degree, out-degree, betweenness) to identify critical modules |
21
21
  | `trace_call_chain` | Traces the call chain / dependency path from one function or file to another |
22
+ | `analyze_complexity` | Analyzes code complexity metrics for each file (cyclomatic, cognitive complexity, nesting depth) |
22
23
 
23
24
  ## MCP Resources
24
25
 
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from "fs";
4
+ import path from "path";
5
+ import { fileURLToPath } from "url";
6
+
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+
9
+ const MIN_NODE_VERSION = 18;
10
+ const version = process.versions.node;
11
+ const major = parseInt(version.split(".")[0], 10);
12
+
13
+ const RED = "\x1b[31m";
14
+ const YELLOW = "\x1b[33m";
15
+
16
+ function log(...args) { console.error(...args); }
17
+
18
+ if (major < MIN_NODE_VERSION) {
19
+ log(`${RED}Node ${version} not supported. Need 18+.`);
20
+ process.exit(1);
21
+ }
22
+
23
+ const pkgRoot = path.resolve(__dirname, "..");
24
+ const distIndex = path.join(pkgRoot, "dist", "index.js");
25
+
26
+ if (!fs.existsSync(distIndex)) {
27
+ log(`${YELLOW}Building...`);
28
+ const srcIndex = path.join(pkgRoot, "src", "index.ts");
29
+ if (!fs.existsSync(srcIndex)) {
30
+ log(`${RED}Source not found. Reinstall.`);
31
+ process.exit(1);
32
+ }
33
+ if (fs.existsSync(path.join(pkgRoot, "node_modules", "typescript"))) {
34
+ try {
35
+ const { execSync } = await import("child_process");
36
+ execSync("npm run build", { cwd: pkgRoot, stdio: "inherit" });
37
+ } catch {
38
+ log(`${RED}Build failed`);
39
+ process.exit(1);
40
+ }
41
+ } else {
42
+ log(`${RED}Install incomplete.`);
43
+ process.exit(1);
44
+ }
45
+ }
46
+
47
+ const args = process.argv.slice(2);
48
+
49
+ if (args.includes("--help") || args.includes("-h")) {
50
+ log(`
51
+ code-mapper v1.0.1
52
+
53
+ npx code-mapper - start server
54
+ npx code-mapper --setup - setup wizard
55
+ npx code-mapper --version - show version
56
+ `);
57
+ process.exit(0);
58
+ }
59
+
60
+ if (args.includes("--version") || args.includes("-v")) {
61
+ log("1.0.1");
62
+ process.exit(0);
63
+ }
64
+
65
+ if (args.includes("--setup") || args.includes("-s")) {
66
+ const tuiDist = path.join(pkgRoot, "dist", "tui", "index.js");
67
+ const tuiSrc = path.join(pkgRoot, "src", "tui", "index.ts");
68
+
69
+ if (fs.existsSync(tuiDist)) {
70
+ const { startSetupWizard } = await import("../dist/tui/index.js");
71
+ await startSetupWizard();
72
+ } else if (fs.existsSync(tuiSrc)) {
73
+ const { execSync } = await import("child_process");
74
+ execSync("npm run build", { cwd: pkgRoot, stdio: "inherit" });
75
+ const { startSetupWizard } = await import("../dist/tui/index.js");
76
+ await startSetupWizard();
77
+ } else {
78
+ log(`${YELLOW}Setup not available.`);
79
+ }
80
+ process.exit(0);
81
+ }
82
+
83
+ import("../dist/index.js").catch((err) => {
84
+ log(`${RED}Failed: ${err.message}`);
85
+ process.exit(1);
86
+ });
@@ -2,9 +2,10 @@ import { createRequire } from "node:module";
2
2
  const require = createRequire(import.meta.url);
3
3
  // eslint-disable-next-line @typescript-eslint/no-require-imports
4
4
  const Graph = require("graphology");
5
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
6
+ const pagerank = require("graphology-metrics/centrality/pagerank");
5
7
  import * as shortestPath from "graphology-shortest-path";
6
8
  import { centrality } from "graphology-metrics";
7
- import pagerank from "graphology-metrics/centrality/pagerank";
8
9
  export class GraphAnalyzer {
9
10
  graph;
10
11
  parseResult;
@@ -28,9 +29,6 @@ export class GraphAnalyzer {
28
29
  getParseResult() {
29
30
  return this.parseResult;
30
31
  }
31
- /**
32
- * Rank files by centrality metric
33
- */
34
32
  rankImpact(metric = "inDegree") {
35
33
  const fileNodes = this.nodes.filter((n) => n.kind === "file");
36
34
  const scores = new Map();
@@ -82,18 +80,23 @@ export class GraphAnalyzer {
82
80
  .sort((a, b) => b.score - a.score);
83
81
  return ranked;
84
82
  }
85
- /**
86
- * Find functions or classes by name
87
- */
88
- findFunction(name, type = "any") {
83
+ findFunction(name, type = "any", useRegex) {
89
84
  const matches = [];
85
+ let regex = null;
86
+ if (useRegex) {
87
+ regex = new RegExp(name, "i");
88
+ }
90
89
  const lowerName = name.toLowerCase();
91
90
  for (const node of this.nodes) {
92
91
  if (type !== "any" && node.kind !== type)
93
92
  continue;
94
93
  if (node.kind === "file")
95
94
  continue;
96
- if (!node.label.toLowerCase().includes(lowerName))
95
+ const nodeLabel = node.label;
96
+ const matchesPattern = regex
97
+ ? regex.test(nodeLabel)
98
+ : nodeLabel.toLowerCase().includes(lowerName);
99
+ if (!matchesPattern)
97
100
  continue;
98
101
  const fileInfo = this.parseResult.files.find((f) => f.filePath === node.filePath);
99
102
  if (!fileInfo)
@@ -131,9 +134,6 @@ export class GraphAnalyzer {
131
134
  }
132
135
  return matches;
133
136
  }
134
- /**
135
- * Get callers (files that import this file)
136
- */
137
137
  getCallers(nodeId) {
138
138
  const callers = [];
139
139
  for (const neighbor of this.graph.inNeighbors(nodeId)) {
@@ -144,9 +144,6 @@ export class GraphAnalyzer {
144
144
  }
145
145
  return callers;
146
146
  }
147
- /**
148
- * Get callees (files this file imports)
149
- */
150
147
  getCallees(nodeId) {
151
148
  const callees = [];
152
149
  for (const neighbor of this.graph.outNeighbors(nodeId)) {
@@ -157,9 +154,6 @@ export class GraphAnalyzer {
157
154
  }
158
155
  return callees;
159
156
  }
160
- /**
161
- * Find shortest paths between two nodes
162
- */
163
157
  traceCallChain(from, to) {
164
158
  const fromNodes = this.nodes.filter((n) => n.label.toLowerCase().includes(from.toLowerCase()));
165
159
  const toNodes = this.nodes.filter((n) => n.label.toLowerCase().includes(to.toLowerCase()));
@@ -190,20 +184,9 @@ export class GraphAnalyzer {
190
184
  paths,
191
185
  };
192
186
  }
193
- /**
194
- * Generate a Mermaid graph diagram string
195
- */
196
187
  toMermaid(targetFile) {
197
188
  const lines = ["graph TD"];
198
- const nodesToInclude = targetFile
199
- ? this.nodes.filter((n) => {
200
- const lowerTarget = targetFile.toLowerCase().replace(/\\/g, "/");
201
- const lowerPath = n.filePath.toLowerCase().replace(/\\/g, "/");
202
- const basename = lowerPath.split("/").pop() ?? "";
203
- return basename.includes(lowerTarget) ||
204
- lowerPath.split("/").some(seg => seg.includes(lowerTarget));
205
- })
206
- : this.nodes;
189
+ const nodesToInclude = this.filterNodesForTarget(targetFile);
207
190
  const nodeIds = new Set(nodesToInclude.map((n) => n.id));
208
191
  // Add nodes
209
192
  for (const node of nodesToInclude) {
@@ -222,9 +205,6 @@ export class GraphAnalyzer {
222
205
  }
223
206
  return lines.join("\n");
224
207
  }
225
- /**
226
- * Generate a DOT (Graphviz) graph diagram string
227
- */
228
208
  toDot(targetFile) {
229
209
  const lines = [
230
210
  "digraph codegraph {",
@@ -232,19 +212,11 @@ export class GraphAnalyzer {
232
212
  " node [fontname=\"Helvetica\"];",
233
213
  " edge [fontname=\"Helvetica\"];",
234
214
  ];
235
- const nodesToInclude = targetFile
236
- ? this.nodes.filter((n) => {
237
- const lowerTarget = targetFile.toLowerCase().replace(/\\/g, "/");
238
- const lowerPath = n.filePath.toLowerCase().replace(/\\/g, "/");
239
- const basename = lowerPath.split("/").pop() ?? "";
240
- return basename.includes(lowerTarget) ||
241
- lowerPath.split("/").some(seg => seg.includes(lowerTarget));
242
- })
243
- : this.nodes;
215
+ const nodesToInclude = this.filterNodesForTarget(targetFile);
244
216
  const nodeIds = new Set(nodesToInclude.map((n) => n.id));
245
217
  for (const node of nodesToInclude) {
246
218
  const safeId = this.sanitizeId(node.id);
247
- const safeLabel = this.sanitizeDotText(node.label);
219
+ const safeLabel = this.sanitizeLabel(node.label);
248
220
  let shape;
249
221
  let fillcolor;
250
222
  switch (node.kind) {
@@ -299,27 +271,16 @@ export class GraphAnalyzer {
299
271
  lines.push("}");
300
272
  return lines.join("\n");
301
273
  }
302
- /**
303
- * Generate a PlantUML graph diagram string
304
- */
305
274
  toPlantUML(targetFile) {
306
275
  const lines = [
307
276
  "@startuml",
308
277
  "skinparam linetype ortho",
309
278
  ];
310
- const nodesToInclude = targetFile
311
- ? this.nodes.filter((n) => {
312
- const lowerTarget = targetFile.toLowerCase().replace(/\\/g, "/");
313
- const lowerPath = n.filePath.toLowerCase().replace(/\\/g, "/");
314
- const basename = lowerPath.split("/").pop() ?? "";
315
- return basename.includes(lowerTarget) ||
316
- lowerPath.split("/").some(seg => seg.includes(lowerTarget));
317
- })
318
- : this.nodes;
279
+ const nodesToInclude = this.filterNodesForTarget(targetFile);
319
280
  const nodeIds = new Set(nodesToInclude.map((n) => n.id));
320
281
  for (const node of nodesToInclude) {
321
282
  const safeId = this.sanitizeId(node.id);
322
- const safeLabel = this.sanitizePlantUMLText(`${node.kind}: ${node.label}`);
283
+ const safeLabel = this.sanitizeLabel(`${node.kind}: ${node.label}`);
323
284
  switch (node.kind) {
324
285
  case "file":
325
286
  lines.push(`[${safeLabel}] as ${safeId}`);
@@ -361,15 +322,6 @@ export class GraphAnalyzer {
361
322
  lines.push("@enduml");
362
323
  return lines.join("\n");
363
324
  }
364
- sanitizeDotText(text) {
365
- return text.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
366
- }
367
- sanitizePlantUMLText(text) {
368
- return text.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
369
- }
370
- /**
371
- * Detect cycles in the graph
372
- */
373
325
  detectCycles(maxDepth = 10000) {
374
326
  const cycles = [];
375
327
  const visited = new Set();
@@ -425,11 +377,26 @@ export class GraphAnalyzer {
425
377
  }
426
378
  return cycles;
427
379
  }
380
+ sanitizeLabel(text) {
381
+ return text.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
382
+ }
428
383
  sanitizeId(id) {
429
384
  return id.replace(/[^a-zA-Z0-9_]/g, "_");
430
385
  }
431
386
  sanitizeMermaidText(text) {
432
387
  return text.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/%%/g, "\\%%");
433
388
  }
389
+ filterNodesForTarget(targetFile) {
390
+ if (!targetFile) {
391
+ return this.nodes;
392
+ }
393
+ const lowerTarget = targetFile.toLowerCase().replace(/\\/g, "/");
394
+ return this.nodes.filter((n) => {
395
+ const lowerPath = n.filePath.toLowerCase().replace(/\\/g, "/");
396
+ const basename = lowerPath.split("/").pop() ?? "";
397
+ return basename.includes(lowerTarget) ||
398
+ lowerPath.split("/").some(seg => seg.includes(lowerTarget));
399
+ });
400
+ }
434
401
  }
435
402
  //# sourceMappingURL=GraphAnalyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphAnalyzer.js","sourceRoot":"","sources":["../../src/graph/GraphAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphAnalyzer.js","sourceRoot":"","sources":["../../src/graph/GraphAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,8 @@ export class GraphBuilder {
13
13
  classLookup.set(fileInfo.filePath + "::" + cls.name, { filePath: fileInfo.filePath, name: cls.name, lineNumber: cls.lineNumber });
14
14
  }
15
15
  }
16
- const fileNodeIds = new Map();
17
- // Phase 1: Create file nodes
18
16
  for (const fileInfo of parseResult.files) {
19
17
  const fileId = `file:${fileInfo.filePath}`;
20
- fileNodeIds.set(fileInfo.relativePath, fileId);
21
- fileNodeIds.set(fileInfo.filePath, fileId);
22
18
  graph.addNode(fileId, {
23
19
  kind: "file",
24
20
  label: fileInfo.relativePath,
@@ -31,7 +27,6 @@ export class GraphBuilder {
31
27
  filePath: fileInfo.filePath,
32
28
  });
33
29
  }
34
- // Phase 2: Create function and class nodes, add containment edges
35
30
  for (const fileInfo of parseResult.files) {
36
31
  const fileId = `file:${fileInfo.filePath}`;
37
32
  for (const fn of fileInfo.functions) {
@@ -46,12 +41,6 @@ export class GraphBuilder {
46
41
  kind: "contains",
47
42
  label: `contains ${fn.name}`,
48
43
  });
49
- edges.push({
50
- source: fileId,
51
- target: fnId,
52
- kind: "contains",
53
- label: `contains ${fn.name}`,
54
- });
55
44
  nodes.push({
56
45
  id: fnId,
57
46
  kind: "function",
@@ -59,6 +48,12 @@ export class GraphBuilder {
59
48
  filePath: fileInfo.filePath,
60
49
  lineNumber: fn.lineNumber,
61
50
  });
51
+ edges.push({
52
+ source: fileId,
53
+ target: fnId,
54
+ kind: "contains",
55
+ label: `contains ${fn.name}`,
56
+ });
62
57
  }
63
58
  for (const cls of fileInfo.classes) {
64
59
  const clsId = `class:${fileInfo.filePath}:${cls.name}:${cls.lineNumber}`;
@@ -72,12 +67,6 @@ export class GraphBuilder {
72
67
  kind: "contains",
73
68
  label: `contains ${cls.name}`,
74
69
  });
75
- edges.push({
76
- source: fileId,
77
- target: clsId,
78
- kind: "contains",
79
- label: `contains ${cls.name}`,
80
- });
81
70
  nodes.push({
82
71
  id: clsId,
83
72
  kind: "class",
@@ -85,9 +74,14 @@ export class GraphBuilder {
85
74
  filePath: fileInfo.filePath,
86
75
  lineNumber: cls.lineNumber,
87
76
  });
77
+ edges.push({
78
+ source: fileId,
79
+ target: clsId,
80
+ kind: "contains",
81
+ label: `contains ${cls.name}`,
82
+ });
88
83
  }
89
84
  }
90
- // Phase 3: Build import edges between files
91
85
  for (const fileInfo of parseResult.files) {
92
86
  const sourceFileId = `file:${fileInfo.filePath}`;
93
87
  for (const imp of fileInfo.imports) {
@@ -116,21 +110,15 @@ export class GraphBuilder {
116
110
  }
117
111
  }
118
112
  }
119
- // Phase 4: Build extends/implements edges for classes
120
113
  for (const fileInfo of parseResult.files) {
121
114
  for (const cls of fileInfo.classes) {
122
115
  const clsId = `class:${fileInfo.filePath}:${cls.name}:${cls.lineNumber}`;
123
116
  if (cls.extends) {
124
- // Try to find the parent class in the codebase
125
- const parentName = cls.extends.split("<")[0].trim(); // Handle generics
117
+ const parentName = cls.extends.split("<")[0].trim();
126
118
  const parentClass = this.findClassByName(parentName, parseResult, classLookup);
127
119
  if (parentClass) {
128
120
  const parentId = `class:${parentClass.filePath}:${parentClass.name}:${parentClass.lineNumber}`;
129
121
  if (graph.hasNode(parentId)) {
130
- graph.addEdge(clsId, parentId, {
131
- kind: "extends",
132
- label: `extends ${parentClass.name}`,
133
- });
134
122
  edges.push({
135
123
  source: clsId,
136
124
  target: parentId,
@@ -146,10 +134,6 @@ export class GraphBuilder {
146
134
  if (implClass) {
147
135
  const implId = `class:${implClass.filePath}:${implClass.name}:${implClass.lineNumber}`;
148
136
  if (graph.hasNode(implId)) {
149
- graph.addEdge(clsId, implId, {
150
- kind: "implements",
151
- label: `implements ${implClass.name}`,
152
- });
153
137
  edges.push({
154
138
  source: clsId,
155
139
  target: implId,
@@ -164,19 +148,10 @@ export class GraphBuilder {
164
148
  return { graph, nodes, edges };
165
149
  }
166
150
  resolveImportPath(fromFile, moduleSpecifier, parseResult) {
167
- // Skip external packages (no leading . or /)
168
151
  if (!moduleSpecifier.startsWith(".") && !moduleSpecifier.startsWith("/")) {
169
152
  return null;
170
153
  }
171
- // Strip .js/.jsx/.ts/.tsx extension from the specifier
172
- let specifier = moduleSpecifier;
173
- for (const ext of [".js", ".jsx", ".ts", ".tsx"]) {
174
- if (specifier.endsWith(ext)) {
175
- specifier = specifier.slice(0, -ext.length);
176
- break;
177
- }
178
- }
179
- // Resolve relative path using forward-slash logic (ts-morph always uses /)
154
+ let specifier = moduleSpecifier.replace(/\.(ts|tsx|js|jsx|mts|cts|mjs|cjs)$/, "");
180
155
  const fromDir = fromFile.replace(/\\/g, "/").replace(/\/[^/]+$/, "");
181
156
  const parts = [...(fromDir === "" ? [] : fromDir.split("/")), ...specifier.split("/")];
182
157
  const resolved = [];
@@ -185,26 +160,24 @@ export class GraphBuilder {
185
160
  if (resolved.length > 0) {
186
161
  resolved.pop();
187
162
  }
188
- // else: excessive ".." — ignore, prevents escaping root
189
163
  }
190
164
  else if (part !== "." && part !== "") {
191
165
  resolved.push(part);
192
166
  }
193
167
  }
194
- // Reconstruct with the drive prefix if present
195
168
  let resolvedPath = resolved.join("/");
196
- // If original fromFile had a Windows drive letter, preserve it
197
169
  const fromFileNormalized = fromFile.replace(/\\/g, "/");
198
170
  const driveMatch = fromFileNormalized.match(/^([A-Za-z]:\/)/);
199
171
  if (driveMatch && !resolvedPath.startsWith(driveMatch[1])) {
200
172
  resolvedPath = driveMatch[1] + resolvedPath;
201
173
  }
202
- // Try exact match first
203
174
  if (parseResult.files.some(f => f.filePath === resolvedPath)) {
204
175
  return resolvedPath;
205
176
  }
206
- // Try adding extensions
207
- const extensions = [".ts", ".tsx", ".js", ".jsx", "/index.ts", "/index.tsx", "/index.js", "/index.jsx"];
177
+ const extensions = [
178
+ ".ts", ".tsx", ".js", ".jsx", ".mts", ".cts", ".mjs", ".cjs",
179
+ "/index.ts", "/index.tsx", "/index.js", "/index.jsx", "/index.mts", "/index.cts", "/index.mjs", "/index.cjs"
180
+ ];
208
181
  for (const ext of extensions) {
209
182
  const candidate = resolvedPath + ext;
210
183
  if (parseResult.files.some(f => f.filePath === candidate)) {
@@ -1 +1 @@
1
- {"version":3,"file":"GraphBuilder.js","sourceRoot":"","sources":["../../src/graph/GraphBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphBuilder.js","sourceRoot":"","sources":["../../src/graph/GraphBuilder.ts"],"names":[],"mappings":"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"}