UNPKG

scanpack

Version:

Dependency scanner to detect unknown or malicious packages in Node.js and Bun projects

27 lines 1.69 kB
import { ReadDependenciesUseCase } from '../application/use-cases/read-dependencies.use-case.js'; import { ValidateDependenciesUseCase } from '../application/use-cases/validate-dependencies.use-case.js'; import { FileSystemAdapter } from './adapters/file-system.adapter.js'; import { LoggerAdapter } from './adapters/logger.adapter.js'; import { MaliciousPackageRepositoryAdapter } from './adapters/malicious-package.repository.adapter.js'; import { NpmRegistryAdapter } from './adapters/npm-registry.adapter.js'; import { PackageReaderAdapter } from './adapters/package-reader.adapter.js'; import { RateLimiterAdapter } from './adapters/rate-limiter.adapter.js'; const logger = new LoggerAdapter(); const fileSystem = new FileSystemAdapter(); const maliciousPackageRepository = new MaliciousPackageRepositoryAdapter(); const packageReader = new PackageReaderAdapter(fileSystem); // Rate limiter and npm registry are created per-use to allow configuration export const createNpmRegistry = (rateLimit) => { const rateLimiter = rateLimit ? new RateLimiterAdapter(rateLimit) : undefined; return new NpmRegistryAdapter(rateLimiter); }; export const createValidateDependenciesUseCase = (rateLimit) => { const npmRegistry = createNpmRegistry(rateLimit); return new ValidateDependenciesUseCase(npmRegistry, maliciousPackageRepository); }; // Default instances (no rate limiting) const npmRegistry = new NpmRegistryAdapter(); export const readDependenciesUseCase = new ReadDependenciesUseCase(packageReader); export const validateDependenciesUseCase = new ValidateDependenciesUseCase(npmRegistry, maliciousPackageRepository); export { logger }; //# sourceMappingURL=container.js.map