PageSourceSearch

https://pepe.deals/service-worker.published.fmh64tb9kr.js

js pepe.deals collected 2026-09-24 14:21:56 UTC 2,112 bytes, 47 lines download raw bytes

1self.importScripts('./service-worker-assets.js');
2self.addEventListener('install', event => event.waitUntil(onInstall(event)));
3self.addEventListener('activate', event => event.waitUntil(onActivate(event)));
4self.addEventListener('fetch', event => event.respondWith(onFetch(event)));
5
6const cacheNamePrefix = 'offline-cache-';
7const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`;
8const offlineAssetsInclude = [/\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/, /\.webmanifest$/];
9const offlineAssetsExclude = [/^service-worker\.js$/];
10
11const base = "/";
12const baseUrl = new URL(base, self.origin);
13const manifestUrlList = self.assetsManifest.assets.map(asset => new URL(asset.url, baseUrl).href);
14
15async function onInstall(event) {
16    console.info('Service worker: Install');
17
18    const assetsRequests = self.assetsManifest.assets
19        .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url)))
20        .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url)))
21        .map(asset => new Request(asset.url, { integrity: asset.hash, cache: 'no-cache' }));
22    await caches.open(cacheName).then(cache => cache.addAll(assetsRequests));
23}
24
25async function onActivate(event) {
26    console.info('Service worker: Activate');
27
28    const cacheKeys = await caches.keys();
29    await Promise.all(cacheKeys
30        .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName)
31        .map(key => caches.delete(key)));
32}
33
34async function onFetch(event) {
35    let cachedResponse = null;
36    if (event.request.method === 'GET') {
37
38        const shouldServeIndexHtml = event.request.mode === 'navigate'
39            && !manifestUrlList.some(url => url === event.request.url);
40
41        const request = shouldServeIndexHtml ? 'index.html' : event.request;
42        const cache = await caches.open(cacheName);
43        cachedResponse = await cache.match(request);
44    }
45
46    return cachedResponse || fetch(event.request);
47}

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.