/* eslint-env serviceworker */ /* global workbox */ importScripts( "https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js", ); self.addEventListener("install", (event) => { importScripts( "safari-notifications.js", "nacl.js", "noble-curves.js", "noble-hashes.js", ); }); self.addEventListener("push", function (event) { event.waitUntil( (async () => { try { let payload; if (event.data) { payload = JSON.parse(event.data.text()); } const message = await self.getNotificationCount(); const title = payload ? payload.title : "Custom Title"; const options = { body: message, icon: payload ? payload.icon : "icon.png", badge: payload ? payload.badge : "badge.png", }; await self.registration.showNotification(title, options); } catch (error) { console.error("Error in processing the push event:", error); } })(), ); }); self.addEventListener("message", (event) => { if (event.data && event.data.type === "SEND_LOCAL_DATA") { self.secret = event.data.data; event.ports[0].postMessage({ success: true }); } }); self.addEventListener("activate", (event) => { event.waitUntil(clients.claim()); console.log("Service worker activated", event); }); self.addEventListener("fetch", (event) => { console.log(event.request); }); self.addEventListener("error", (event) => { console.error("Error in Service Worker:", event.message); console.error("File:", event.filename); console.error("Line:", event.lineno); console.error("Column:", event.colno); console.error("Error Object:", event.error); }); workbox.precaching.precacheAndRoute(self.__WB_MANIFEST);