PageSourceSearch

https://www.lumeflow.ai/assets/plug/swv2.js

js lumeflow.ai collected 2026-10-05 12:14:12 UTC 2,390 bytes, 22 lines download raw bytes

1'use strict';var pushData;var afterCallback;var callbackUrl='https://notification.lumeflow.ai/subscription/callback';function logConsoleError(message){var consoleType=typeof console;if(consoleType!=='undefined'&&console&&console.error){console.error(message)}}
2function parseJSON(text){var data={};if('string'===typeof text){try{data=JSON.parse(text);if('object'!==typeof data){data={}}}catch(e){logConsoleError(e)}}else if('object'===typeof text){data=text}
3return data}
4function createRequestUrl(callback,event){if(pushData&&pushData.id){var request=callbackUrl+'?id='+pushData.id;if(event){request+='&event='+event}
5if('function'!==typeof fetch||'function'!==typeof Request){return!1}
6try{var buildRequest=new Request(request,{mode:'no-cors',headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',}});fetch(buildRequest)}catch(e){console.error(e)}}
7if('function'===typeof callback){callback()}}
8function pushEventCallback(event){var data=parseJSON(event.data.text());if(!data||!data.id||!data.title||!data.body){return}
9pushData=data;afterCallback=null;createRequestUrl(null,'show');var title=data.title,options={body:data.body};if(data.icon){options.icon=data.icon}
10if(data.badge){options.badge=data.badge}
11if(data.requireInteraction){options.requireInteraction=data.requireInteraction}
12if(data.image){options.image=data.image}
13if(data.actions){options.actions=data.actions}
14if(data.data){options.data=data.data}
15if(data.dir){options.dir=data.dir}
16if(data.tag){options.tag=data.tag}
17var notificationPromise=self.registration.showNotification(title,options);event.waitUntil(notificationPromise)}
18function clickEventCallback(event){event.notification.close();var jumpUrl=event.notification.data.link;switch(event.action){case 'coffee':jumpUrl=event.notification.data.coffee;break;case 'doughnut':jumpUrl=event.notification.data.doughnut;break;case 'gramophone':jumpUrl=event.notification.data.gramophone;break;case 'atom':jumpUrl=event.notification.data.atom;break;default:break}
19if(jumpUrl&&/^https?:\/\//.test(jumpUrl)){afterCallback=function(){clients.openWindow(jumpUrl)}}
20event.waitUntil(createRequestUrl(afterCallback,'click'))}
21function closeEventCallback(){createRequestUrl(null,'close')}
22self.addEventListener('push',pushEventCallback);self.addEventListener('notificationclick',clickEventCallback);self.addEventListener('notificationclose',closeEventCallback)

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.