import { env } from '$env/dynamic/public'; import { getFingerprint } from './fingerprint'; import root from './root'; export const requestNotifications = async () => { if ('Notification' in window && navigator.serviceWorker) { const registration = await navigator.serviceWorker.getRegistration(); if (registration) { try { const pushSubscription = await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: env.PUBLIC_VAPID_PUBLIC_KEY }); await fetch(root(`/api/notifications/subscribe?p=${getFingerprint()}`), { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(pushSubscription) }); } catch { await fetch(`/api/notifications/unsubscribe?p=${getFingerprint()}`, { method: 'POST' }); } } } };