1'use strict'; 2const CACHE='snaptik-shell-premium-20260910-1'; 3self.addEventListener('install',event=>{event.waitUntil(caches.open(CACHE).then(cache=>cache.addAll(['/offline.html'])).then(()=>self.skipWaiting()))}); 4self.addEventListener('activate',event=>{event.waitUntil(caches.keys().then(keys=>Promise.all(keys.filter(key=>key.startsWith('snaptik-')&&key!==CACHE).map(key=>caches.delete(key)))).then(()=>self.clients.claim()))}); 5self.addEventListener('fetch',event=>{const request=event.request;if(request.method!=='GET'||new URL(request.url).origin!==self.location.origin)return;if(request.destination==='document'){event.respondWith(fetch(request).catch(()=>caches.match('/offline.html')));return}if(['style','script','image','font'].includes(request.destination)){event.respondWith(caches.match(request).then(hit=>hit||fetch(request).then(response=>{if(response.ok){const copy=response.clone();caches.open(CACHE).then(cache=>cache.put(request,copy))}return response})));}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.