import { logger } from '../../../../logger/index.ts'; import { readLocalFile } from '../../../../util/fs/index.ts'; import { PackageLock } from '../schema.ts'; import type { LockFile } from './types.ts'; export async function getNpmLock(filePath: string): Promise { const lockfileContent = await readLocalFile(filePath, 'utf8'); if (!lockfileContent) { logger.debug({ filePath }, 'Npm: unable to read lockfile'); return { lockedVersions: {} }; } const parsedLockfile = PackageLock.safeParse(lockfileContent); if (!parsedLockfile.success) { logger.debug( { filePath, err: parsedLockfile.error }, 'Npm: unable to parse lockfile', ); return { lockedVersions: {} }; } return parsedLockfile.data; }