import { createHash } from 'node:crypto'; import { readFile, stat } from 'node:fs/promises'; export async function sha256(path: string): Promise { const buf = await readFile(path); return createHash('sha256').update(buf).digest('hex'); } export async function sha256OrNull(path: string): Promise { try { await stat(path); } catch { return null; } return sha256(path); } export function sha256Buffer(buf: Buffer): string { return createHash('sha256').update(buf).digest('hex'); }