fix(javascript): keep CommonJS require file URLs unresolved (#2077)
* fix(javascript): keep CommonJS require file URLs unresolved
require("file:///dep.cjs") was reported as a resolved dependency of
the inventoried dep.cjs although Node rejects the string with
MODULE_NOT_FOUND. The shared module-specifier resolver decoded file URLs
before the declared CommonJS loader semantics.
File-URL decoding now applies only to non-require module specifiers, so a
CommonJS file URL reports external with its declared string and source
evidence preserved. ESM file URLs and ordinary relative require paths
keep their established lookup.
* test(javascript): consolidate CommonJS file URL public workflow coverage
---------
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
This commit is contained in:
parent
91830f1e0e
commit
352c46aa75
|
|
@ -141,6 +141,13 @@ cliTest.for(["CLI", "stdio MCP"] as const)(
|
|||
).toBe("node_modules/fi%xture/actual.cjs");
|
||||
|
||||
const { graph } = await analyzeJavaScriptDirectory(surface, cli, root);
|
||||
expect(graph.coverage.status).toBe("complete");
|
||||
const requireFileUrl = graph.edges.find(
|
||||
({ properties }) =>
|
||||
properties.module_link_kind === "require" &&
|
||||
properties.specifier === "file:///src/uri-dep.cjs",
|
||||
);
|
||||
expect(requireFileUrl?.evidence.limitations.length).toBeGreaterThan(0);
|
||||
const imports = graph.edges.filter(
|
||||
({ properties }) => properties.module_link_kind === "require",
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue