if (!localStorage.getItem(CACHE_CLEAR_KEY)) { console.log('Performing emergency cache clear...'); // Clear all service workers if ('serviceWorker' in navigator) { navigator.serviceWorker.getRegistrations().then(registrations => { return Promise.all(registrations.map(registration => registration.unregister())); }).then(() => { console.log('Service workers cleared'); // Clear all caches if ('caches' in window) { return caches.keys().then(cacheNames => { return Promise.all(cacheNames.map(cacheName => caches.delete(cacheName))); }); } }).then(() => { console.log('All caches cleared'); localStorage.setItem(CACHE_CLEAR_KEY, 'true'); console.log('Reloading page...'); window.location.reload(); }).catch(err => { console.error('Cache clear failed:', err); localStorage.setItem(CACHE_CLEAR_KEY, 'true'); }); } else { localStorage.setItem(CACHE_CLEAR_KEY, 'true'); } } })(); if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js').then(registration => { console.log('ServiceWorker registration successful.'); }).catch(err => { console.log('ServiceWorker registration failed: ', err); }); }); // Reload the page after the new service worker has taken control (Instant Update) let refreshing = false; navigator.serviceWorker.addEventListener('controllerchange', () => { if (refreshing) return; window.location.reload(); refreshing = true; }); }