diff --git a/package.json b/package.json index 9ad38ac..a712e11 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "type": "module", "dependencies": { "@supabase/supabase-js": "^2.104.0", - "bcryptjs": "^3.0.3" + "bcryptjs": "^3.0.3", + "ws": "^8.18.0" } } diff --git a/scripts/create-admin.mjs b/scripts/create-admin.mjs index 22721eb..9409270 100644 --- a/scripts/create-admin.mjs +++ b/scripts/create-admin.mjs @@ -78,6 +78,18 @@ async function readPassword() { }); } +// Node < 22 hat kein globales WebSocket; supabase-js v2 verlangt im +// Konstruktor (Realtime-Init) eins. Wir nutzen kein Realtime — ein Polyfill +// aus "ws" genügt, damit createClient nicht wirft. +if (typeof globalThis.WebSocket === "undefined") { + try { + const { default: WS } = await import("ws"); + globalThis.WebSocket = WS; + } catch { + /* ws fehlt → createClient wirft mit klarer Meldung; npm install hilft */ + } +} + const supabase = createClient(supabaseUrl, serviceKey, { auth: { persistSession: false }, });