// public/service-worker.js self.addEventListener('install', () => self.skipWaiting()); self.addEventListener('activate', async () => { // Unregister old CRA SW const regs = await self.registration.scope ? [self.registration] : await self.clients.getRegistrations(); for (const reg of regs) { if (reg && reg.scriptURL.endsWith('service-worker.js')) { await reg.unregister(); } } // Clear all caches if ('caches' in self) { const keys = await caches.keys(); for (const key of keys) { await caches.delete(key); } } // Reload all clients const clients = await self.clients.matchAll({ type: 'window' }); clients.forEach(client => client.navigate(client.url)); });