1/* pulse-push-sw.js - Pulse Follow notification service worker (its OWN file and scope /pulse-follow/, so the site's existing sw.js is untouched) (owner 2026-10-03: "if they hit follow they'll get notifications when things 2 * come out that are similar ... they click on the notification, it takes them right to the URL"). Push only - it caches 3 * nothing and intercepts no requests, so it cannot change how any page loads. */ 4self.addEventListener('install', function () { self.skipWaiting(); }); 5self.addEventListener('activate', function (e) { e.waitUntil(self.clients.claim()); }); 6self.addEventListener('push', function (e) { 7 var d = {}; try { d = e.data ? e.data.json() : {}; } catch (x) { d = { title: 'Pulse', body: e.data ? e.data.text() : '' }; } 8 e.waitUntil(self.registration.showNotification(d.title || 'New on Pulse', { 9 body: d.body || '', icon: d.icon || '/assets/images/logo-master.png', badge: '/assets/images/logo-master.png', 10 data: { url: d.url || 'https://pulserevops.com/' }, tag: d.tag || 'pulse-follow' 11 })); 12}); 13self.addEventListener('notificationclick', function (e) { 14 e.notification.close(); 15 var url = (e.notification.data && e.notification.data.url) || 'https://pulserevops.com/'; 16 e.waitUntil(self.clients.matchAll({ type: 'window', includeUncontrolled: true }).then(function (list) { 17 for (var i = 0; i < list.length; i++) { if (list[i].url === url && 'focus' in list[i]) return list[i].focus(); } 18 return self.clients.openWindow(url); 19 })); 20});
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.