From b304238c3fa572b985da97246c24955cdd4ac0ca Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Mon, 10 Nov 2025 03:32:55 +0000 Subject: [PATCH] Add deterministic UUID generation for achievements cgen-7e9fd578e56d4a5dbec8fce5ec8f4c92 --- api/achievements/activate.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api/achievements/activate.ts b/api/achievements/activate.ts index e52c6500..8b303ac1 100644 --- a/api/achievements/activate.ts +++ b/api/achievements/activate.ts @@ -1,7 +1,19 @@ import type { VercelRequest, VercelResponse } from "@vercel/node"; import { randomUUID } from "crypto"; +import { createHash } from "crypto"; import { getAdminClient } from "../../api/_supabase"; +const generateDeterministicUUID = (str: string): string => { + const hash = createHash("sha256").update(str).digest("hex"); + return [ + hash.slice(0, 8), + hash.slice(8, 12), + "5" + hash.slice(13, 16), + ((parseInt(hash.slice(16, 18), 16) & 0x3f) | 0x80).toString(16).padStart(2, "0") + hash.slice(18, 20), + hash.slice(20, 32), + ].join("-"); +}; + const CORE_ACHIEVEMENTS = [ { id: "welcome-to-aethex",