/* schattenpost Service Worker — reines Offline-Caching der App-Shell. Sendet NICHTS an einen Server. Cache-first, kein Netzwerk-Fallback nötig, sobald die Shell einmal geladen ist. */ const CACHE = 'schattenpost-v5'; const SHELL = [ './', './index.html', './manifest.webmanifest', './favicon.svg', './icon-192.png', './icon-512.png', ]; self.addEventListener('install', (e) => { e.waitUntil(caches.open(CACHE).then((c) => c.addAll(SHELL)).then(() => self.skipWaiting())); }); self.addEventListener('activate', (e) => { e.waitUntil( caches.keys() .then((keys) => Promise.all(keys.filter((k) => k !== CACHE).map((k) => caches.delete(k)))) .then(() => self.clients.claim()) ); }); self.addEventListener('fetch', (e) => { if (e.request.method !== 'GET') return; e.respondWith(caches.match(e.request).then((hit) => hit || fetch(e.request))); });