PageSourceSearch

https://pingi.co/_next/static/chunks/3566.5497f827cb38ae8a.js

js pingi.co collected 2026-10-01 14:59:58 UTC 25,402 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3566],{83566:function(e,t,n){n.r(t),n.d(t,{default:function(){return eO}});var r=n(52676),i=n(75271),o=n(15230),a=n(96609),c=n(13529);let u={UNSUPPORTED:"unsupported",DEFAULT:"default",GRANTED:"granted",DENIED:"denied"},l=()=>"undefined"!=typeof Notification,s=()=>l()?Notification.permission:u.UNSUPPORTED,f=async e=>{var t;if("undefined"==typeof navigator||!(null===(t=navigator.permissions)||void 0===t?void 0:t.query))return()=>{};try{let t=await navigator.permissions.query({name:"notifications"}),n=()=>e(t.state);return t.addEventListener("change",n),()=>t.removeEventListener("change",n)}catch(e){return()=>{}}},d=["open the icon at the left of the address bar (padlock or sliders)",'open "Site settings"','set Notifications to "Allow", or press "Reset permission" to be asked again',"reload the page"],p=()=>{console.log("[push] notifications are blocked for this origin. To re-enable them: "+d.map((e,t)=>"".concat(t+1,") ").concat(e)).join(", "))};var g=n(49973),h=n(58928),v=n(89007),E=n(18065),N=n.n(E);let I=e=>{try{return new URL(e).pathname}catch(e){return null}},y=e=>
1"object"==typeof e?JSON.stringify(e):e,A=(e,t,n)=>{let{method:r,url:i,data:o}=t,a="".concat(r.toUpperCase(),"\n").concat(I(i),"\n\n").concat(n,"\n").concat(y(o),"\n").concat(e);return N().createHash("md5").update(a,"utf8").digest("hex")},m=()=>!1,T=e=>{let t=Math.floor(Date.now()/1e3);return"SHA ".concat("",":").concat(A("",e,t),":").concat(t)};var w=n(14224);let k="pingi_push_device_id",P="pingi_push_registered_token",S="pingi_push_registration_key",b=w.env.NEXT_PUBLIC_APP_VERSION||"2.0.0",R={SENT:"sent",PERMANENT:"permanent",TRANSIENT:"transient"},D=null,_=null,C=e=>{try{return localStorage.getItem(e)}catch(e){return null}},O=(e,t)=>{try{localStorage.setItem(e,t)}catch(e){}},U=e=>{try{localStorage.removeItem(e)}catch(e){}},G=()=>{try{if("undefined"!=typeof crypto&&crypto.randomUUID)return"web-".concat(crypto.randomUUID())}catch(e){}return"web-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))},L=()=>{let e=C(k);return e||O(k,e=G()),e},F=()=>{let e=(0,h.getCookie)("access_token");return e&&e.length>0?e:null},j=(e,t,n)=>"".concat(e,"|").concat(t||"no-token","|").concat(n?"auth":"anon"),K=async(e,t)=>{let{data:n}=await (0,g.Z)({url:c.Z.PUSH_DEVICE_REGISTER,method:"POST",timeout:3e4,headers:{"Content-Type":"application/json","Accept-Language":"fa",Authorization:"JWT ".concat(t)},data:e});return n},B=async e=>{if(!m())return console.log("[push] anonymous registration skipped, the public API credentials are not configured."),null;let t={url:c.Z.PUSH_DEVICE_REGISTER,method:"POST",timeout:3e4,headers:{"Content-Type":"application/json","Accept-Language":"fa"},data:e};t.headers.Authorization=T(t);let{data:n}=await (0,g.Z)(t);return n},M=async e=>{let{deviceId:t,fcmToken:n,accessToken:r,registrationKey:i}=e,o={token:n,deviceId:t,appVersion:b,platform:"web"};try{let e=r?await K(o,r):await B(o);if(null==e?void 0:e.success)return D=i,O(P,n),O(S,i),(0,v.kr)().catch(()=>{}),!0;console.log("Push device registration was rejected: ",null==e?void 0:e.error)}catch(e){console.log("An error occurred while registering the push device.",e)}return!1},H=async e=>{let t=L();if(!t||!e||e.length<50)return!1;let n=F(),r=j(t,e,n);if(null===D&&(D=C(S)),D===r)return!0;if((null==_?void 0:_.key)===r)return _.promise;let i=M({deviceId:t,fcmToken:e,accessToken:n,registrationKey:r}).finally(()=>{(null==_?void 0:_.key)===r&&(_=null)});return _={key:r,promise:i},i},W=async()=>{let e=C(k),t=F();if(U(P),U(S),D=null,_=null,!e||!t)return!1;try{return await (0,g.Z)({url:"".concat(c.Z.PUSH_DEVICE_UNREGISTER).concat(e,"/"),method:"DELETE",timeout:3e4,headers:{"Accept-Language":"fa",Authorization:"JWT ".concat(t)}}),!0}catch(e){return console.log("An error occurred while unregistering the push device.",e),!1}},q=async(e,t)=>{try{let{data:n}=await (0,g.Z)({url:e,method:"POST",headers:{"Content-Type":"application/json","Accept-Language":"fa"},timeout:3e4,data:t});return(null==n?void 0:n.success)?R.SENT:R.PERMANENT}catch(r){var n;let t=null==r?void 0:null===(n=r.response)||void 0===n?void 0:n.status;if(!t||t>=500)return R.TRANSIENT;return console.log("The push gateway rejected ".concat(e," with ").concat(t,".")),R.PERMANENT}},x=async function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"shown by pwa";return e?q(c.Z.PUSH_RECEIPT,{messageId:e,delivered:t,detail:n}):R.PERMANENT},Z=async e=>{let{messageId:t,trackingToken:n}=e;return t?q(c.Z.PUSH_CLICK,{messageId:t,trackingToken:n||""}):R.PERMANENT},V={apiKey:"AIzaSyDh9ORS6FmcELeHvNbjt4KB7PcSAozWCkI",authDomain:"pingi-main.firebaseapp.com",projectId:"pingi-main",storageBucket:"pingi-main.firebasestorage.app",messagingSenderId:"198551702091",appId:"1:198551
1702091:web:9e56f8b6a11f501b9adbce"},z="BMR25UpagHJ_Q6wZgyAb0366ZT2yVt16iGtb8Cq3ovs17doxhxzP2MbKkJLOKiC4IHbS9W8NhLQAZD0lUPEzORw",J="/firebase-messaging-sw.js",X="/firebase-cloud-messaging-push-scope",Q=c.Z.WEB_APP_URL,Y=()=>!!(V.apiKey&&V.projectId&&V.messagingSenderId&&V.appId&&z),$=()=>"".concat(J,"?").concat(new URLSearchParams({...V,linkOrigin:Q}).toString()),ee=async()=>{if("undefined"!=typeof navigator&&navigator.serviceWorker)try{let e=await navigator.serviceWorker.register($(),{scope:X,updateViaCache:"none"});return await e.update().catch(()=>{}),e}catch(e){console.log("[push] could not register the push service worker.",e);return}},et=()=>{let e=(0,o.C6)().length?(0,o.Mq)():(0,o.ZF)(V);return(0,a.KL)(e)},en=async()=>{if(!Y())return!1;try{return await (0,a.Gb)()}catch(e){return!1}},er=async()=>{if(!await en())return null;if(s()!==u.GRANTED)return console.log("[push] token retrieval skipped, permission is:",s()),null;try{let e=et(),t=await ee(),n=await (0,a.LP)(e,{vapidKey:z,...t?{serviceWorkerRegistration:t}:{}});if(!n)return console.log("Failed to generate the app registration token."),null;return await H(n),n}catch(e){return console.log("An error occurred when requesting to receive the token.",e),null}},ei=async e=>await en()?(0,a.ps)(et(),t=>e(t)):()=>{},eo=async()=>{if(!await en())return!1;try{return await (0,a.pQ)(et())}catch(e){return console.log("An error occurred while deleting the app registration token.",e),!1}};var ea=n(12310),ec=n(70212),eu=n.n(ec);let el=J.replace(/^\//,""),es=["sw.js","sw.enot.js","service-worker.js"],{CLIENT_MESSAGES:ef,RECEIPT_DETAILS:ed}=eu(),ep=null,eg=null,eh=async()=>{if("undefined"==typeof navigator||!navigator.serviceWorker)return null;try{let e=await navigator.serviceWorker.getRegistration(X);if(e)return e;return(await navigator.serviceWorker.getRegistrations()).find(e=>{var t,n;return null===(n=e.active||e.waiting||e.installing)||void 0===n?void 0:null===(t=n.scriptURL)||void 0===t?void 0:t.includes(el)})||null}catch(e){return null}},ev=async()=>{let e=await eh(),t=null==e?void 0:e.active;if(!t)return!1;try{return t.postMessage({type:ef.CONFIG,config:{clickUrl:c.Z.PUSH_CLICK,apiKey:"",dashboardUrl:"".concat(Q,"/")}}),!0}catch(e){return console.log("An error occurred while sending the push configuration.",e),!1}},eE=async e=>{var t,n;let r=await (null===(n=e.pushManager)||void 0===n?void 0:null===(t=n.getSubscription)||void 0===t?void 0:t.call(n));r&&await r.unsubscribe(),await e.unregister()},eN=e=>{let t=e.active||e.waiting||e.installing,n=(null==t?void 0:t.scriptURL)||"";return n?n.split("?")[0].split("/").pop():""},eI=async()=>{if("undefined"==typeof navigator||!navigator.serviceWorker)return 0;try{let e=await navigator.serviceWorker.getRegistrations(),t=[],n=0;for(let r of e){let e=eN(r);if(e){if(e===el){t.push(r);continue}es.includes(e)&&(await eE(r),n+=1)}}if(t.length>1){let e=t.find(e=>{var t;return null===(t=e.scope)||void 0===t?void 0:t.endsWith(X)})||t[0];for(let r of t)r!==e&&(console.log("[push] retiring a duplicate push worker at",r.scope),await eE(r),n+=1)}return n}catch(e){return console.log("An error occurred while removing stale push workers.",e),0}},ey=async e=>{let t=eu().buildNotification(e,{origin:Q,source:"foreground"});if(!await eu().claimNotification(null==t?void 0:t.notificationId))return{notificationId:null==t?void 0:t.notificationId,url:null==t?void 0:t.url,shown:!1,duplicate:!0};try{let e=await eh();if(e)await e.showNotification(null==t?void 0:t.title,null==t?void 0:t.options);else{let{actions:e,...n}=(null==t?void 0:t.options)||{};new Notification(null==t?void 0:t.title,n).onclick=e=>{e.preventDefault(),Z({messageId:null==t?void 0:t.notificationId,trackingToken:null==t?void 0:t.trackingToken}).then(),(0,ea.u)(null==t?void 0:t.url)}}return eu().pruneSeen().catch(()=>{}),{notificationId:null==t?void 0:t.notificationId,url:null==t?void 0:t.url,shown:!0,duplicate:!1}}catch(e){return console.log("An error occurred while displaying a push notification.",e),await eu().releaseNotification(null==t?void 0:t.notificationId),{notificationId:null==t?void 0:t.notificationId,url:null==t?void 0:t.url,shown:!1,duplicate:!1}}},eA=async()=>{let e=await eu().readReceipts();if(!e.length)return 0;let t=0;for(let n of e){let e=await x(n.id,!0,n.detail);e!==R.TRANSIENT&&(await eu().deleteReceipt(n.id),e===R.SENT&&(t+=1))}return await eu().pruneReceipts(),t},em=async()=>{let e=await eu().readClicks();if(!e.length)return 0;let t=0;for(let n of e){let e=await Z(n);e!==R.TRANSIENT&&(await eu().deleteClick(n.id),e===R.SENT&&(t+=1))}return await eu().pruneClicks(),t},eT=()=>eg||(eg=em().catch(e=>(console.log("An error occurred while reporting the queued push clicks.",e),0)).finally(()=>{eg=null})),ew=()=>F()?ep||(ep=eA().catch(e=>(console.log("An error occurred while reporting the queued push receipts.",e),0)).finally(()=>{ep=null})):Promise.resolve(0);ea.u;var ek=n(26211);let eP=["pointerup","click","keydown","touchend"],eS=0,eb=!1,eR=null,eD=()=>(eR||(eS+=1,eR=Notification.requestPermission().finally(()=>{eR=null})),eR),e_=async()=>{try{await eo()}catch(e){console.log("[push] failed to delete the fcm token:",e)}await W()};function eC(){let[e]=(0,ek.b)(),t=(0,i.useRef)(0),n=(0,i.useRef)(null),r=(0,i.useCallback)(function(){let{force:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=s();if(r!==u.GRANTED)return console.log("[push] token sync skipped, permission is:",r),Promise.resolve(null);let i=Date.now();return!e&&i-t.current<36e5?Promise.resolve(null):(n.current?console.log("[push] token sync already in flight"):(t.current=i,n.current=er().then(e=>e).finally(()=>{n.current=null})),n.current)},[]);(0,i.useEffect)(()=>{eI().catch(()=>{})},[]),(0,i.useEffect)(()=>{"undefined"!=typeof navigator&&navigator.serviceWorker&&(ev().then(),eT().then(),navigator.serviceWorker.ready.then(()=>ev()).catch(()=>{}))},[]),(0,i.useEffect)(()=>{e&&(r({force:!0}).then(()=>ev()),ew().then())},[e,r]),(0,i.useEffect)(()=>
1{if(!e)return;let t=setInterval(()=>r({force:!0}),864e5),n=()=>{"visible"===document.visibilityState&&(r().then(),ew().then(),eT().then())};return document.addEventListener("visibilitychange",n),()=>{clearInterval(t),document.removeEventListener("visibilitychange",n)}},[e,r]),(0,i.useEffect)(()=>{if("undefined"==typeof Notification){console.log("[push] Notification API missing: unsupported browser");return}let e=Notification.permission;if(e===u.GRANTED)return;if(e===u.DENIED){p(),eb||(eb=!0,e_().then());return}if(eS>=2){console.log("[push] already asked in this page load, not asking again");return}let t=!1,n=()=>eP.forEach(e=>window.removeEventListener(e,a,!0)),i=()=>eP.forEach(e=>window.addEventListener(e,a,{capture:!0,once:!0,passive:!0})),o=e=>{if(t||!eR&&eS>=2||Notification.permission!==u.DEFAULT)return;let n=navigator.userActivation;console.log("[push] calling Notification.requestPermission()",{trigger:e,userActivationActive:n?n.isActive:"unavailable",userActivationHasBeenActive:n?n.hasBeenActive:"unavailable"});let o=!1,a=setTimeout(()=>{o||console.log('[push] requestPermission() still pending: Chrome is showing the quiet bell icon in the address bar instead of the dialog. Turn off "Use quieter messaging" in chrome://settings/content/notifications')},5e3);eD().then(e=>{if(o=!0,clearTimeout(a),console.log("[push] requestPermission() returned:",e),!t){if(e===u.GRANTED){r({force:!0}).then();return}e!==u.DENIED||(p(),eb||(eb=!0,e_().then()))}}).catch(e=>{o=!0,clearTimeout(a),console.log("[push] requestPermission() failed:",e),!t&&Notification.permission===u.DEFAULT&&eS<2&&(console.log("[push] retrying on the first user interaction"),i())})};function a(e){n(),o(e.type)}return o("page load"),()=>{t=!0,n()}},[r]),(0,i.useEffect)(()=>{let e=!1,t=null;return f(e=>{if(e===u.GRANTED){console.log("[push] permission changed to granted, registering again"),eb=!1,r({force:!0}).then();return}e!==u.DENIED||eb||(eb=!0,e_().then())}).then(n=>{e?n():t=n}),()=>{e=!0,t&&t()}},[r]);let o=(0,i.useCallback)(async e=>{var t;let{shown:n,duplicate:r}=await ey(e);!r&&(null===(t=e.data)||void 0===t?void 0:t.notificationId)&&x(e.data.notificationId,!0,n?ed.FOREGROUND_SHOWN:ed.FOREGROUND_RECEIVED).then()},[]);return(0,i.useEffect)(()=>{let e=null,t=!1;return ei(o).then(n=>{t?n():e=n}).catch(e=>console.log("failed: ",e)),()=>{t=!0,e&&e()}},[o]),(0,i.useEffect)(()=>{if("undefined"==typeof navigator||!navigator.serviceWorker)return;let e=e=>{let{type:t,url:n}=e.data||{};t===ef.NAVIGATE&&(0,ea.u)(n),t===ef.RECEIPT_PENDING&&ew().then(),t===ef.CLICK_PENDING&&eT().then(),t===ef.SUBSCRIPTION_CHANGED&&r({force:!0}).then()};return navigator.serviceWorker.addEventListener("message",e),()=>navigator.serviceWorker.removeEventListener("message",e)},[r]),null}var eO=function(){return Y()?(0,r.jsx)(eC,{}):null}},70212:function(e){var t,n;t="undefined"!=typeof self?self:void 0,n=function(){var e={ICON:"/images/manifest/icon-192x192.png",BADGE:"/images/manifest/icon-96x96.png",TITLE:"پینگی",LANG:"fa",DIR:"rtl",VIBRATE:[200,100,200],TAG_PREFIX:"pingi-",FALLBACK_TAG:"pingi-notification"},t={MARKETING_PREFIX:"pingi-action-"},n=/^action[_-]?(\d+)$/i,r={SENT:"sent",PERMANENT:"permanent",TRANSIENT:"transient"},i={ID:["notificationId","notification_id","messageId","message_id"],TITLE:["pingititle","title"],BODY:["pingibody","body","message"],IMAGE:["pingibanner","image","media"],ICON:["pingiicon","icon"],BADGE:["pingibadge","badge"],TAG:["pingitag","tag"],LINK:["pingilink","url","click_action","link"],TRACKING_TOKEN:["trackingToken","tracking_token","pingitrackingtoken","id"],ACTIONS:["pingiactions","pingibuttons","buttons","actions"],DASHBOARD:["pingidashboard","dashboard_link"],REQUIRE_INTERACTION:["pingirequireinteraction","requireInteraction"],SILENT:["pingisilent","silent"],TIMESTAMP:["pingitimestamp","timestamp"]},o="receipts",a="seen",c="clicks",u="config",l="push",s=/[\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u08A0-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,f=function(e){return"string"==typeof e?e.trim():""},d=function(e){var t="string"==typeof e?e:"";return t&&s.test(t)?"‏"===t.charAt(0)?t:"‏"+t:t},p=function(e){for(var t=0;t<e.length;t++){var n=f(e[t]);if(n&&"null"!==n&&"undefined"!==n)return n}return""},g=function(e,t){for(var n=[],r=0;r<t.length;r++)n.push(e[t[r]]);return p(n)},h=function(e,t){for(var n=0;n<t.length;n++){var r=e[t[n]];if(null!=r&&""!==r)return r}return null},v=function(e){if(e&&"object"==typeof e)return e;var t=f(e);
1if(!t)return null;try{var n=JSON.parse(t);return n&&"object"==typeof n?n:null}catch(e){return null}},E=function(e){var t,n=e&&e.data||{},r=v(n.customData);if(!r)return n;var i={};for(t in r)Object.prototype.hasOwnProperty.call(r,t)&&(i[t]=r[t]);for(t in n)Object.prototype.hasOwnProperty.call(n,t)&&(i[t]=n[t]);return i},N=function(e){var t=e&&f(e.origin);return t?t.replace(/\/+$/,""):"undefined"!=typeof self&&self.location?self.location.origin:""},I=function(e){var t=f(e);return t?/^https?:\/\//i.test(t)||0===t.indexOf("/")?t:"/"+t:""},y=function(e){return g(E(e),i.ID)||null},A=function(e,t){var n=E(e),r=e&&e.notification||{},o=e&&(e.fcmOptions||e.fcm_options)||{},a=p([g(n,i.LINK),o.link,r.click_action]);if(!a)return null;if(/^https?:\/\//i.test(a))return a;if(/^[a-z][a-z0-9+.\-]*:/i.test(a))return null;var c=N(t);return c?c+"/"+a.replace(/^\/+/,""):null},m=function(e){return g(E(e),i.TRACKING_TOKEN)||null},T=function(e,t){var n=g(E(e),i.DASHBOARD)||"/";if(/^https?:\/\//i.test(n))return n;var r=N(t);return r?r+"/"+n.replace(/^\/+/,""):null},w=function(){try{if("undefined"!=typeof Notification&&"number"==typeof Notification.maxActions)return Notification.maxActions}catch(e){}return 2},k=function(e,t){var n=f(e);if(!n)return null;if(/^https?:\/\//i.test(n))return n;if(/^[a-z][a-z0-9+.\-]*:/i.test(n))return null;var r=N(t);return r?r+"/"+n.replace(/^\/+/,""):null},P=function(e){if(Array.isArray(e))return e;var t=f(e);if(!t)return[];try{var n=JSON.parse(t);return"string"==typeof n&&(n=JSON.parse(n)),Array.isArray(n)?n:[]}catch(e){return[]}},S=function(e,n){for(var r=[],i=0;i<e.length;i++){var o=e[i]||{},a=f(o.title)||f(o.label)||f(o.t),c=o.url||o.link||o.l,u=f(o.action)||f(o.id)||t.MARKETING_PREFIX+i;a&&r.push({action:u,title:a,icon:I(o.icon)||void 0,url:k(c,n)})}return r},b=function(e){var t,r=[];for(t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var i=n.exec(t);if(i){var o=v(e[t]);o&&r.push({order:parseInt(i[1],10),action:t,title:o.title||o.t||o.label,url:o.url||o.l||o.link,icon:o.icon})}}return r.sort(function(e,t){return e.order-t.order}).map(function(e){return{action:e.action,title:e.title,url:e.url,icon:e.icon}})},R=function(e,t){var n=e&&e.notification||{},r=E(e);return S(b(r).concat(P(h(r,i.ACTIONS)||n.actions)),t).slice(0,w())},D=function(e,t){var n=e||{},r=f(t),i=n.pingiActionUrls||{};return r?f(i[r])||f(n.pingiUrl)||f(n.pingiDashboardUrl)||null:f(n.pingiUrl)||f(n.pingiDashboardUrl)||null},_=function(e){return y(e)||p([e&&e.fcmMessageId,e&&e.fcm_message_id])||null},C=function(t){var n=g(E(t),i.TAG)||_(t);return n?e.TAG_PREFIX+n:e.FALLBACK_TAG},O=function(t){var n=t&&t.notification||{};return p([g(E(t),i.TITLE),n.title])||e.TITLE},U=function(e){var t=e&&e.notification||{};return p([g(E(e),i.BODY),t.body])},G=function(){return new Promise(function(e){if("undefined"==typeof indexedDB)return e(null);try{var t=indexedDB.open("pingi-push",3);t.onupgradeneeded=function(){var e=t.result;e.objectStoreNames.contains(o)||e.createObjectStore(o,{keyPath:"id"}),e.objectStoreNames.contains(a)||e.createObjectStore(a,{keyPath:"id"}),e.objectStoreNames.contains(c)||e.createObjectStore(c,{keyPath:"id"}),e.objectStoreNames.contains(u)||e.createObjectStore(u,{keyPath:"id"})},t.onsuccess=function(){var n=t.result;n.onversionchange=function(){try{n.close()}catch(e){}},e(n)},t.onerror=function(){e(null)},t.onblocked=function(){e(null)}}catch(t){e(null)}})},L=function(e,t,n){return G().then(function(r){return r?new Promise(function(i){try{var o=r.transaction(e,t),a=n(o.objectStore(e));a.onsuccess=function(){i(a.result)},a.onerror=function(){i(null)},o.oncomplete=function(){r.close()}}catch(e){i(null)}}):null})},F=function(e,t){return L(o,e,t)},j={},K=function(e,t){var n=Object.keys(j);n.length>200&&n.forEach(function(e){t-j[e]>6e5&&delete j[e]}),j[e]=t},B=function(e){var t=f(e);return t?(delete j[t],L(a,"readwrite",function(e){return e.delete(t)}).then(function(){return!0})):Promise.resolve(!1)},M=function(e){return f(e)?F("readwrite",function(t){return t.delete(e)}).then(function(){return!0}):Promise.resolve(!1)},H=function(e){return{messageId:e.messageId,trackingToken:e.trackingToken||""}},W=function(e){return f(e)?L(c,"readwrite",function(t){return t.delete(e)}).then(function(){return!0}):Promise.resolve(!1)};return{BRAND:e,CLICK_RESULT:r,ACTION_IDS:t,DATA_KEYS:i,CLIENT_MESSAGES:{RECEIPT_PENDING:"PINGI_PUSH_RECEIPT_PENDING",CLICK_PENDING:"PINGI_PUSH_CLICK_PENDING",CONFIG:"PINGI_PUSH_CONFIG",NAVIGATE:"PINGI_PUSH_NAVIGATE",SUBSCRIPTION_CHANGED:"PINGI_PUSH_SUBSCRIPTION_CHANGED"},RECEIPT_DETAILS:{FOREGROUND_SHOWN:"shown by pwa foreground",FOREGROUND_RECEIVED:"received by pwa foreground",BACKGROUND_SHOWN:"shown by pwa background"},SEEN_TTL:6e5,buildNotification:function(t,n){var r=t&&t.notification||{},o=E(t),a=y(t),c=A(t,n),u=I(p([g(o,i.IMAGE),r.image])),l=m(t),s=T(t,n),f=R(t,n),h={};f.forEach(function(e){e.url&&(h[e.action]=e.url)});var v=parseInt(g(o,i.TIMESTAMP),10),N={body:d(U(t))||void 0,icon:I(p([g(o,i.ICON),r.icon]))||e.ICON,badge:I(g(o,i.BADGE)
1)||e.BADGE,image:u||void 0,tag:C(t),lang:e.LANG,dir:e.DIR,vibrate:e.VIBRATE,timestamp:isNaN(v)?void 0:v,requireInteraction:"true"===g(o,i.REQUIRE_INTERACTION)||void 0,silent:"true"===g(o,i.SILENT)||void 0,actions:f.length?f.map(function(e){var t={action:e.action,title:d(e.title)};return e.icon&&(t.icon=e.icon),t}):void 0,data:Object.assign({},o,{pingiNotificationId:a,pingiTrackingToken:l,pingiUrl:c,pingiDashboardUrl:s,pingiActionUrls:h,pingiSource:n&&n.source||"unknown"})};return Object.keys(N).forEach(function(e){void 0===N[e]&&delete N[e]}),{title:d(O(t)),options:N,notificationId:a,dedupeId:_(t),trackingToken:l,url:c,dashboardUrl:s,actions:f}},resolveNotificationId:y,resolveDedupeId:_,resolveTrackingToken:m,resolveDashboardUrl:T,resolveActions:R,resolveClickTarget:D,resolveDeepLink:A,resolveTag:C,resolveTitle:O,resolveBody:U,isSameMessage:function(e,t){var n=y(e),r=y(t);return n&&r?n===r:O(e)===O(t)&&U(e)===U(t)},claimNotification:function(e,t){var n=f(e);if(!n)return Promise.resolve(!0);var r="number"==typeof t?t:6e5,i=Date.now();return j[n]&&i-j[n]<r?Promise.resolve(!1):(K(n,i),G().then(function(e){return!e||new Promise(function(t){var i=!1,o=function(e){i||(i=!0,t(e))};try{var c=e.transaction(a,"readwrite"),u=c.objectStore(a),l=u.get(n);l.onsuccess=function(){var e=l.result,t=Date.now();if(e&&t-(e.at||0)<r)return o(!1);u.put({id:n,at:t}),o(!0)},l.onerror=function(){o(!0)},c.onabort=function(){o(!0)},c.oncomplete=function(){e.close(),o(!0)}}catch(e){o(!0)}})}))},releaseNotification:B,pruneSeen:function(){return L(a,"readonly",function(e){return e.getAll()}).then(function(e){if(!e||!e.length)return 0;var t=Date.now()-6e5,n=e.filter(function(e){return e&&e.id&&(e.at||0)>t}).sort(function(e,t){return t.at-e.at}).slice(0,200).map(function(e){return e.id}),r=e.filter(function(e){return e&&e.id&&-1===n.indexOf(e.id)});return Promise.all(r.map(function(e){return B(e.id)})).then(function(){return r.length})})},queueReceipt:function(e){var t=f(e&&e.id);return t?F("readwrite",function(n){return n.put({id:t,detail:f(e.detail)||"shown by pwa",createdAt:Date.now()})}).then(function(){return!0}):Promise.resolve(!1)},readReceipts:function(){return F("readonly",function(e){return e.getAll()}).then(function(e){if(!e||!e.length)return[];var t=Date.now()-6048e5;return e.filter(function(e){return e&&e.id&&(e.createdAt||0)>t}).sort(function(e,t){return t.createdAt-e.createdAt}).slice(0,50)})},deleteReceipt:M,pruneReceipts:function(){return F("readonly",function(e){return e.getAll()}).then(function(e){if(!e||!e.length)return 0;var t=Date.now()-6048e5,n=e.filter(function(e){return e&&e.id&&(e.createdAt||0)>t}).sort(function(e,t){return t.createdAt-e.createdAt}).slice(0,50).map(function(e){return e.id}),r=e.filter(function(e){return e&&e.id&&-1===n.indexOf(e.id)});return Promise.all(r.map(function(e){return M(e.id)})).then(function(){return r.length})})},buildClick:function(e,t){var n=e||{},r=f(n.pingiNotificationId)||g(n,i.ID);return r?{id:r+"|"+(f(t)||"default"),messageId:r,trackingToken:f(n.pingiTrackingToken)||g(n,i.TRACKING_TOKEN)||"",action:f(t)||null,url:D(n,t),createdAt:Date.now()}:null},buildClickBody:H,queueClick:function(e){return e&&f(e.id)?L(c,"readwrite",function(t){return t.put({id:e.id,messageId:e.messageId,trackingToken:e.trackingToken||"",action:e.action||null,url:e.url||null,createdAt:e.createdAt||Date.now()})}).then(function(){return!0}):Promise.resolve(!1)},readClicks:function(){return L(c,"readonly",function(e){return e.getAll()}).then(function(e){if(!e||!e.length)return[];var t=Date.now()-6048e5;return e.filter(function(e){return e&&e.id&&(e.createdAt||0)>t}).sort(function(e,t){return t.createdAt-e.createdAt}).slice(0,50)})},deleteClick:W,pruneClicks:function(){return L(c,"readonly",function(e){return e.getAll()}).then(function(e){if(!e||!e.length)return 0;var t=Date.now()-6048e5,n=e.filter(function(e){return e&&e.id&&(e.createdAt||0)>t}).sort(function(e,t){return t.createdAt-e.createdAt}).slice(0,50).map(function(e){return e.id}),r=e.filter(function(e){return e&&e.id&&-1===n.indexOf(e.id)});return Promise.all(r.map(function(e){return W(e.id)})).then(function(){return r.length})})},saveConfig:function(e){return e?L(u,"readwrite",function(t){return t.put({id:l,clickUrl:f(e.clickUrl),apiKey:f(e.apiKey),dashboardUrl:f(e.dashboardUrl),updatedAt:Date.now()})}).then(function(){return!0}):Promise.resolve(!1)},readConfig:function(){return L(u,"readonly",function(e){return e.get(l)})},sendClick:function(t,n){var i=f(t&&t.clickUrl);if(!n||!f(n.messageId))return Promise.resolve(r.PERMANENT);if(!i||"undefined"==typeof fetch)return Promise.resolve(r.TRANSIENT);var o={"Content-Type":"application/json","Accept-Language":e.LANG},a=f(t.apiKey);return a&&(o["X-API-Key"]=a),fetch(i,{method:"POST",mode:"cors",credentials:"omit",headers:o,body:JSON.stringify(H(n))}).then(function(e){return e&&e.ok?r.SENT:e&&e.status>=500?r.TRANSIENT:r.PERMANENT}).catch(function(){return r.TRANSIENT})}}},e.exports?e.exports=n():t.PingiPushNotification=n()}}]);

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.