self.addEventListener('install', () => self.skipWaiting()); self.addEventListener('activate', e => { e.waitUntil((async () => { await self.clients.claim(); const keys = await caches.keys(); await Promise.all(keys.map(k => caches.delete(k))); const all = await self.clients.matchAll({ type: 'window', includeUncontrolled: true }); for (const c of all) c.navigate(c.url); await self.registration.unregister(); })()); });