const CACHE_NAME = 'securewatch-v2'; const FILES_TO_CACHE = [ './index.html', './manifest.json', './icon-192.png', './icon-512.png' ]; self.addEventListener('install', (event) => { event.waitUntil( caches.open(CACHE_NAME).then((cache) => cache.addAll(FILES_TO_CACHE)) ); self.skipWaiting(); }); self.addEventListener('activate', (event) => { event.waitUntil( caches.keys().then((keys) => Promise.all(keys.filter((key) => key !== CACHE_NAME).map((key) => caches.delete(key))) ) ); self.clients.claim(); }); self.addEventListener('fetch', (event) => { event.respondWith( (async () => { const cached = await caches.match(event.request); if(cached) return cached; try{ return await fetch(event.request); } catch(err){ return new Response('', { status: 503, statusText: 'Offline e sem versão em cache' }); } })() ); });