// Service worker - Force no-cache for API requests const CACHE_VERSION = 'v1.0.1'; self.addEventListener('install', (event) => { // activate immediately self.skipWaiting(); }); self.addEventListener('activate', (event) => { event.waitUntil( caches.keys().then(keys => { // Clear all caches on activation return Promise.all(keys.map(key => caches.delete(key))); }).then(() => self.clients.claim()) ); }); self.addEventListener('fetch', (event) => { const url = new URL(event.request.url); // For API requests, always go to network with no-cache if (url.pathname.startsWith('/api/') || url.pathname.includes('/api/')) { event.respondWith( fetch(event.request, { cache: 'no-store', headers: { ...Object.fromEntries(event.request.headers), 'Cache-Control': 'no-cache, no-store, must-revalidate', 'Pragma': 'no-cache' } }).catch(err => { console.error('SW fetch error:', err); return new Response(JSON.stringify({ error: 'Network error' }), { status: 503, headers: { 'Content-Type': 'application/json' } }); }) ); return; } // For other requests, use default network behavior (no caching) });