// Minimal service worker: exists only to satisfy PWA installability criteria // and give a usable offline fallback. Deliberately not a full offline-first // cache — this app shows live financial data, so navigations always go to // the network first; only the built Vite assets and the offline page are // cached, never HTML page content. const CACHE = 'suivicpt-shell-v1'; const OFFLINE_URL = '/offline.html'; self.addEventListener('install', (event) => { event.waitUntil( caches.open(CACHE).then((cache) => cache.add(OFFLINE_URL)) ); self.skipWaiting(); }); self.addEventListener('activate', (event) => { event.waitUntil( caches.keys().then((keys) => Promise.all(keys.filter((key) => key !== CACHE).map((key) => caches.delete(key))) ) ); self.clients.claim(); }); self.addEventListener('fetch', (event) => { if (event.request.mode !== 'navigate') { return; } event.respondWith( fetch(event.request).catch(() => caches.match(OFFLINE_URL)) ); });