import { inject, injectable } from "@codemation/core"; import type { HmacNonceStore } from "../../pairing/HmacNonceStore"; import { PrismaDatabaseClientToken, type PrismaDatabaseClient } from "./PrismaDatabaseClient"; @injectable() export class PrismaHmacNonceStore implements HmacNonceStore { constructor(@inject(PrismaDatabaseClientToken) private readonly prisma: PrismaDatabaseClient) {} async recordIfNew(nonce: string, expiresAt: Date): Promise { await this.prisma.hmacNonce.deleteMany({ where: { expiresAt: { lt: new Date() } } }); try { await this.prisma.hmacNonce.create({ data: { nonce, expiresAt } }); return true; } catch { return false; } } }