import { createHmac, timingSafeEqual } from 'node:crypto';
const TOLERANCE_SECONDS = 300;
export function isValidWake({ timestamp, signature, body, token }) {
const ageSeconds = Math.abs(Date.now() / 1000 - Number(timestamp));
if (!(ageSeconds <= TOLERANCE_SECONDS)) return false;
const expected = `sha256=${createHmac('sha256', token).update(`${timestamp}.${body}`).digest('hex')}`;
const received = Buffer.from(signature);
const wanted = Buffer.from(expected);
return received.length === wanted.length && timingSafeEqual(received, wanted);
}