scanpack
Version:
Dependency scanner to detect unknown or malicious packages in Node.js and Bun projects
53 lines • 1.38 kB
TypeScript
import type { Dependency, PackageJson } from './entities.js';
/**
* Port for logging
*/
export interface LoggerPort {
info(message: string, ...args: unknown[]): void;
error(message: string, ...args: unknown[]): void;
warn(message: string, ...args: unknown[]): void;
debug(message: string, ...args: unknown[]): void;
}
/**
* Port for rate limiting
*/
export interface RateLimiterPort {
wait(): Promise<void>;
reset(): void;
}
/**
* Port for reading files from filesystem
*/
export interface FileSystemPort {
readFile(path: string): Promise<string>;
readFileSync(path: string): string;
}
/**
* Port for checking packages on npm registry
*/
export interface NpmRegistryPort {
checkPackage(packageName: string): Promise<{
exists: boolean;
url?: string;
isSecurityHolding?: boolean;
}>;
}
/**
* Port for checking malicious packages
*/
export interface MaliciousPackageRepositoryPort {
isKnownMalicious(packageName: string): {
isMalicious: boolean;
reason?: string;
severity?: string;
};
}
/**
* Port for reading package.json
*/
export interface PackageReaderPort {
readPackageJson(projectPath: string): Promise<PackageJson>;
extractDependencies(packageJson: PackageJson): Dependency[];
}
export { extractDependencies } from './utils.js';
//# sourceMappingURL=ports.d.ts.map