import path from "node:path"; function isPathInsideRoot(candidate: string, root: string): boolean { const relative = path.relative(path.resolve(root), path.resolve(candidate)); return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative)); } export function isOwningNpmCommand(value: unknown, owningPrefix: string): boolean { if (typeof value !== "string" || !path.isAbsolute(value)) { return false; } const normalized = path.normalize(value); return ( normalized !== path.normalize("npm") && isPathInsideRoot(normalized, owningPrefix) && /npm(?:\.cmd)?$/i.test(normalized) ); }