ba-cafe

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit d27c289074b2d1d734faccdbb3c6aa3d84616d9d
parent a39c09b364b9a65d36b21bd615ba33d283aa6beb
Author: Sunny <kajimalu10@gmail.com>
Date:   Mon, 20 Jul 2026 18:51:45 +0900

Remove OneSignal service worker and update initialization to use a dedicated worker file

Diffstat:
Mnext.config.ts | 24+++++++++++-------------
Apublic/OneSignalSDKWorker.js | 3+++
Dpublic/sw.js | 8--------
Msrc/components/OneSignalInit.tsx | 5++---
4 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/next.config.ts b/next.config.ts @@ -4,7 +4,6 @@ import withPWAInit from "@ducanh2912/next-pwa"; const cspHeader = ` default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.onesignal.com https://onesignal.com https://static.cloudflareinsights.com https://www.googletagmanager.com; - worker-src 'self' blob: https://*.onesignal.com https://onesignal.com; style-src 'self' 'unsafe-inline'; img-src 'self' blob: data: https://lh3.googleusercontent.com https://cdn.discordapp.com https://*.onesignal.com https://www.google-analytics.com https://www.googletagmanager.com; font-src 'self'; @@ -63,17 +62,16 @@ const nextConfig: NextConfig = { turbopack: {}, }; -// const withPWA = withPWAInit({ -// dest: "public", -// register: true, -// disable: process.env.NODE_ENV === "development", -// workboxOptions: { -// skipWaiting: true, -// clientsClaim: true, -// importScripts: ["https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js"], -// }, -// }); +const withPWA = withPWAInit({ + dest: "public", + register: true, + disable: process.env.NODE_ENV === "development", + publicExcludes: ["!OneSignalSDKWorker.js"], + workboxOptions: { + skipWaiting: true, + clientsClaim: true, + }, +}); -// export default withPWA(nextConfig); -export default nextConfig; +export default withPWA(nextConfig); import('@opennextjs/cloudflare').then(m => m.initOpenNextCloudflareForDev()); diff --git a/public/OneSignalSDKWorker.js b/public/OneSignalSDKWorker.js @@ -0,0 +1,2 @@ +!function(){var t="SafariPush",e="SafariLegacyPush",i="FirefoxPush",n="chrome",a="safari",o="firefox",s=[{t:"Opera",l:/(?:opera|opr|opios)/i,m:/(?:opera|opr|opios)[ /](\d+(?:\.\d+)?)/i},{t:"Facebook",l:/FBAN\//i,m:/FBAV\/(\d+(?:\.\d+)?)/i},{t:"Samsung Browser",l:/samsungbrowser/i,m:/samsungbrowser[ /](\d+(?:\.\d+)?)/i},{t:"Yandex Browser",l:/yabrowser/i,m:/yabrowser[ /](\d+(?:\.\d+)?)/i},{t:"Vivaldi",l:/vivaldi/i,m:/vivaldi[ /](\d+(?:\.\d+)?)/i},{t:"UC Browser",l:/ucbrowser/i,m:/ucbrowser[ /](\d+(?:\.\d+)?)/i},{t:"Microsoft Edge",l:/edg/i,m:/edg[ /](\d+(?:\.\d+)?)/i},{t:"Firefox",l:/firefox|iceweasel|fxios/i,m:/(?:firefox|iceweasel|fxios)[ /](\d+(?:\.\d+)?)/i},{t:"Chromium",l:/chromium/i,m:/chromium[ /](\d+(?:\.\d+)?)/i},{t:"Chrome",l:/chrome|crios|crmo/i,m:/(?:chrome|crios|crmo)[ /](\d+(?:\.\d+)?)/i},{t:"Safari",l:/safari|applewebkit/i,m:/version[ /](\d+(?:\.\d+)?)/i}],r={Chrome:n,Chromium:n,Firefox:o,"Microsoft Edge":"edge",Safari:a};function c(){return r[function(t){for(const e of s)if(e.l.test(t)){const i=t.match(e.m)?.[1]??"";return{name:e.t,version:i}}return{name:"Unknown",version:""}}(navigator.userAgent).name]||"other"}var u="160607",l=()=>{if("undefined"==typeof window||null==window.safari?.pushNotification)return!1;const t=OneSignal?.config?.safariWebId;if(!t)return!1;if("undefined"==typeof PushSubscriptionOptions||!PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey"))return!0;const{permission:e,deviceToken:i}=window.safari.pushNotification.permission(t);return"granted"===e&&null!=i},d="undefined"!=typeof PushSubscriptionOptions&&PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey"),f=()=>c()===o?i:c()===a&&d&&!l()?t:l()?e:"ChromePush";function p(){switch(f()){case i:return 8;case e:return 7;case t:return 17}return 5}var w=new Error("Missing app ID"),y=new Error("Retry limit reached"),m=new Error("Permission blocked"),b=new Error("AppID doesn't match existing apps");function h(t){return new Promise(e=>setTimeout(e,t))}function g(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(t)}var v=class t{static h(){return!!self.shouldLog}static v(t){}static S(t){return(...e)=>{(this.h()||"error"===t)&&console[t](...e)}}static _=t.S("debug");static P=t.S("info");static k=t.S("warn");static I=t.S("error")};function S(t){return encodeURIComponent(t).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)}function _(t,e,i){return k("POST",t,e,i)}function P(t,e,i){return k("PUT",t,e,i)}function k(t,e,i,n){if(o=i,!((a=e).startsWith("apps/")||a.startsWith("sync/")?g(a.split("/")[1]):o&&"string"==typeof o.app_id&&g(o.app_id)))return Promise.reject(w);var a,o;const s=new Headers;if(s.append("Origin",self.location.origin),s.append("SDK-Version",`onesignal/web/${u}`),s.append("Content-Type","application/json;charset=UTF-8"),s.append("Accept","application/vnd.onesignal.v1+json"),n)for(const u of Object.keys(n))s.append(u,n[u]);const r={method:t||"NO_METHOD_SPECIFIED",headers:s,cache:"no-cache"};i&&(r.body=JSON.stringify(i));const c=e.split("/").map(S).join("/");return I(`${(({action:t,legacy:e=!1}={})=>new URL(e?"https://onesignal.com/api/v1/":"https://api.onesignal.com/"))({action:e}).toString()}${c}`,r)}async function I(t,e,i=5){if(0===i)return Promise.reject(y);try{const i=await fetch(t,e),{status:n,headers:a}=i,o=await i.json(),s=a?.get("Retry-After");return{ok:i.ok,result:o,status:n,retryAfterSeconds:s?parseInt(s):void 0}}catch(n){if(n instanceof Error&&"TypeError"===n.name)return await h(i>3?1e4*(6-i):3e4),v.I(`Fetch timeout ${t}, retrying...`),I(t,e,i-1);throw new Error(`Failed to execute HTTP call: ${String(n)}`)}}var O="onesignal_id";async function D(t,e,i){const{appId:n,subscriptionId:a}=t;if(!g(n))throw b;const o=a?{"OneSignal-Subscription-Id":a}:void 0;let s={};return o&&(s={...s,...o}),t.jwtHeader&&(s={...s,...t.jwtHeader}),function(t,e,i){return k("PATCH",t,e,i)}(`apps/${n}/users/by/${e.label}/${e.id}`,i,s)}function x(t){if(!t)throw new Error("App id cannot be empty")}async function N(t){return x(t),(await(e=`sync/${t}/web`,k("GET",e,null,void 0)))?.result;var e}var T={scope:"/"},W="push",$="category",C={pageViews:1,timeDelay:0},U="We'd like to show you notifications for the latest news and updates.",E="Allow",A="Cancel",R="Update your push notification subscription preferences.",M="Save Preferences",B="Cancel",F={type:W,text:{actionMessage:U,acceptButton:E,cancelButton:A},autoPrompt:!1,delay:C},L="custom";function K(t){const e=t.config.staticPrompts,i=e.native?{enabled:e.native.enabled,autoPrompt:e.native.enabled&&!1!==e.native.autoPrompt,pageViews:e.native.pageViews??C.pageViews,timeDelay:e.native.timeDelay??C.timeDelay}:{enabled:!1,autoPrompt:!1,pageViews:C.pageViews,timeDelay:C.timeDelay},{prompts:n}=e.slidedown;return{autoPrompt:i.autoPrompt||V(n),native:i,slidedown:{prompts:n},fullscreen:{enabled:e.fullscreen.enabled,actionMessage:e.fullscreen.actionMessage,acceptButton:e.fullscreen.acceptButton,cancelButton:e.fullscreen.cancelButton,title:e.fullscreen.title,message:e.fullscreen.message,caption:e.fullscreen.caption,autoAcceptTitle:e.fullscreen.autoAcceptTitle},customlink:j(t)}}function V(t){if(!t)return!1;for(let e=0;e<t.length;e++)if(t[e].autoPrompt)return!0;return!1}function j(t){const e={enabled:!1,style:"button",size:"medium",unsubscribeEnabled:!1,text:{explanation:"",subscribe:"",unsubscribe:""},color:{button:"",text:""}};if(!(t&&t.config&&t.config.staticPrompts&&t.config.staticPrompts.customlink&&t.config.staticPrompts.customlink.enabled))return e;const i=t.config.staticPrompts.customlink;return{enabled:i.enabled,style:i.style,size:i.size,unsubscribeEnabled:i.unsubscribeEnabled,text:i.text?{subscribe:i.text.subscribe,unsubscribe:i.text.unsubscribe,explanation:i.text.explanation}:e.text,color:i.color?{button:i.color.button,text:i.color.text}:e.color}}function z(t){switch(t){case L:case"wordpress":return{configuration:1};default:return{configuration:0}}}function H(t,e,i){let n={enabled:!1};t&&t.customlink&&(n=t.customlink);const a=e.customlink,o={...t,customlink:{enabled:n.enabled??a.enabled,style:n.style??a.style,size:n.size??a.size,unsubscribeEnabled:n.unsubscribeEnabled??a.unsubscribeEnabled,text:{subscribe:n.text?.subscribe??a.text.subscribe,unsubscribe:n.text?.unsubscribe??a.text.unsubscribe,explanation:n.text?.explanation??a.text.explanation},color:{button:n.color?.button??a.color.button,text:n.color?.text??a.color.text}}};if(o.slidedown?o.slidedown.prompts=o.slidedown?.prompts?.map(t=>{if(t.type=t.type??W,t.type===$&&(t.text={...t.text,positiveUpdateButton:t.text?.positiveUpdateButton??M,negativeUpdateButton:t.text?.negativeUpdateButton??B,updateMessage:t.text?.updateMessage??R}),t.text={...t.text,actionMessage:t.text?.actionMessage??U,acceptButton:t.text?.acceptButton??E,cancelButton:t.text?.cancelButton??A,confirmMessage:t.text?.confirmMessage??"Thank You!"},t.autoPrompt=t.autoPrompt??!0,t.delay={pageViews:t.delay?.pageViews??C.pageViews,timeDelay:t.delay?.timeDelay??C.timeDelay},t.categories){const{categories:e}=t;t.categories=structuredClone(e).slice(0,10)}return t}):(o.slidedown={prompts:[]},o.slidedown.prompts=[F]),o.native){const t=Object.prototype.hasOwnProperty.call(o.native,"autoPrompt");o.native.autoPrompt=t?!!o.native.enabled&&!!o.native.autoPrompt:!!o.native.enabled,o.native.enabled=!!o.native.enabled,o.native.pageViews=o.native.pageViews??C.pageViews,o.native.timeDelay=o.native.timeDelay??C.timeDelay}else o.native={enabled:!1,autoPrompt:!1,pageViews:C.pageViews,timeDelay:C.timeDelay};return!0===i.autoRegister&&(o.native.enabled=!0,o.native.autoPrompt=!0),o.autoPrompt=o.native.autoPrompt||V(o.slidedown.prompts),o}async function q(t,e){try{if(!t||!t.appId||!g(t.appId))throw b;const i=await e(t.appId);!function(t){var e;(e=t.promptOptions)&&["acceptButtonText","cancelButtonText","actionMessage"].some(t=>Object.prototype.hasOwnProperty.call(e,t))&&(t.promptOptions=function(t){t.slidedown||(t.slidedown={});const{slidedown:e}=t;return e.acceptButtonText=e.acceptButtonText??t.acceptButtonText??t.acceptButton,e.cancelButtonText=e.cancelButtonText??t.cancelButtonText??t.cancelButton,e.actionMessage=e.actionMessage??t.actionMessage,t}(t.promptOptions)),function(t){return!!t&&["enabled","autoPrompt","pageViews","timeDelay","acceptButton","acceptButtonText","cancelButton","cancelButtonText","actionMessage","customizeTextEnabled","categories"].some(e=>Object.prototype.hasOwnProperty.call(t,e))}(t.promptOptions?.slidedown)&&t.promptOptions?.slidedown&&(t.promptOptions.slidedown=function(t){const e=(o=t,(o?.categories?.tags?.length||0)>0),i=e?$:W,{categories:n,prompts:a=[]}=t;var o;return{prompts:[...a,{type:i,autoPrompt:t.autoPrompt,text:{actionMessage:t.actionMessage,acceptButton:t.acceptButton??t.acceptButtonText,cancelButton:t.cancelButton??t.cancelButtonText,...e&&{positiveUpdateButton:n?.positiveUpdateButton,negativeUpdateButton:n?.negativeUpdateButton,updateMessage:n?.updateMessage}},delay:{pageViews:t.pageViews,timeDelay:t.timeDelay},categories:n?.tags}]}}(t.promptOptions?.slidedown))}(t);const n=function(t,e){const i=function(t){return t.config.integration?.kind??L}(e),n=function(t,e,i){switch(z(t).configuration){case 0:return i.config.siteInfo.proxyOriginEnabled;case 1:return!!e.subdomainName}}(i,t,e),a=function(t,e,i){switch(z(t).configuration){case 0:{const{path:t,serviceWorkerPath:n,serviceWorkerParam:a}=function(t,e){const{serviceWorker:i}=e.config,n=t.serviceWorkerOverrideForTypical;return{path:n?t.path??i.path:i.path,serviceWorkerParam:n?t.serviceWorkerParam??{scope:i.registrationScope}:{scope:i.registrationScope},serviceWorkerPath:n?t.serviceWorkerPath??i.workerName:i.workerName}}(e,i);return{appId:i.app_id,autoRegister:!1,autoResubscribe:i.config.autoResubscribe,path:t,serviceWorkerPath:n,serviceWorkerParam:a,subdomainName:i.config.siteInfo.proxyOrigin,promptOptions:K(i),welcomeNotification:{disable:!i.config.welcomeNotification.enable,title:i.config.welcomeNotification.title,message:i.config.welcomeNotification.message,url:i.config.welcomeNotification.url},notifyButton:{enable:i.config.staticPrompts.bell.enabled,displayPredicate:(i.config.staticPrompts.bell.hideWhenSubscribed,null),size:i.config.staticPrompts.bell.size,position:i.config.staticPrompts.bell.location,showCredit:!1,offset:{bottom:`${i.config.staticPrompts.bell.offset.bottom}px`,left:`${i.config.staticPrompts.bell.offset.left}px`,right:`${i.config.staticPrompts.bell.offset.right}px`},colors:{"circle.background":i.config.staticPrompts.bell.color.main,"circle.foreground":i.config.staticPrompts.bell.color.accent,"badge.background":"black","badge.foreground":"white","badge.bordercolor":"black","pulse.color":i.config.staticPrompts.bell.color.accent,"dialog.button.background.hovering":i.config.staticPrompts.bell.color.main,"dialog.button.background.active":i.config.staticPrompts.bell.color.main,"dialog.button.background":i.config.staticPrompts.bell.color.main,"dialog.button.foreground":"white"},text:{"tip.state.unsubscribed":i.config.staticPrompts.bell.tooltip.unsubscribed,"tip.state.subscribed":i.config.staticPrompts.bell.tooltip.subscribed,"tip.state.blocked":i.config.staticPrompts.bell.tooltip.blocked,"message.prenotify":i.config.staticPrompts.bell.tooltip.unsubscribed,"message.action.subscribing":i.config.staticPrompts.bell.message.subscribing,"message.action.subscribed":i.config.staticPrompts.bell.message.subscribing,"message.action.resubscribed":i.config.staticPrompts.bell.message.subscribing,"message.action.unsubscribed":i.config.staticPrompts.bell.message.unsubscribing,"dialog.main.title":i.config.staticPrompts.bell.dialog.main.title,"dialog.main.button.subscribe":i.config.staticPrompts.bell.dialog.main.subscribeButton,"dialog.main.button.unsubscribe":i.config.staticPrompts.bell.dialog.main.unsubscribeButton,"dialog.blocked.title":i.config.staticPrompts.bell.dialog.blocked.title,"dialog.blocked.message":i.config.staticPrompts.bell.dialog.blocked.message}},persistNotification:i.config.notificationBehavior?i.config.notificationBehavior.display.persist:void 0,webhooks:{cors:i.config.webhooks.corsEnable,"notification.willDisplay":i.config.webhooks.notificationDisplayedHook,"notification.clicked":i.config.webhooks.notificationClickedHook,"notification.dismissed":i.config.webhooks.notificationDismissedHook},notificationClickHandlerMatch:i.config.notificationBehavior?i.config.notificationBehavior.click.match:void 0,notificationClickHandlerAction:i.config.notificationBehavior?i.config.notificationBehavior.click.action:void 0,outcomes:{direct:i.config.outcomes.direct,indirect:{enabled:i.config.outcomes.indirect.enabled,influencedTimePeriodMin:i.config.outcomes.indirect.notification_attribution.minutes_since_displayed,influencedNotificationsLimit:i.config.outcomes.indirect.notification_attribution.limit},unattributed:i.config.outcomes.unattributed}}}case 1:{const t={...e,promptOptions:H(e.promptOptions,i.config.staticPrompts,e),serviceWorkerParam:e.serviceWorkerParam?e.serviceWorkerParam:T,serviceWorkerPath:e.serviceWorkerPath?e.serviceWorkerPath:"OneSignalSDKWorker.js",path:e.path?e.path:"/",outcomes:{direct:i.config.outcomes.direct,indirect:{enabled:i.config.outcomes.indirect.enabled,influencedTimePeriodMin:i.config.outcomes.indirect.notification_attribution.minutes_since_displayed,influencedNotificationsLimit:i.config.outcomes.indirect.notification_attribution.limit},unattributed:i.config.outcomes.unattributed}};return Object.prototype.hasOwnProperty.call(e,"autoResubscribe")?t.autoResubscribe=!!e.autoResubscribe:Object.prototype.hasOwnProperty.call(e,"autoRegister")?t.autoResubscribe=!!e.autoRegister:t.autoResubscribe=!!i.config.autoResubscribe,t}}}(i,t,e);return{appId:e.app_id,hasUnsupportedSubdomain:n,siteName:e.config.siteInfo.name,origin:e.config.origin,restrictedOriginEnabled:e.features.restrict_origin&&e.features.restrict_origin.enable,safariWebId:e.config.safari_web_id,vapidPublicKey:e.config.vapid_public_key,onesignalVapidPublicKey:e.config.onesignal_vapid_public_key,userConfig:a,enableOnSession:e.features.enable_on_session??false,sessionThreshold:e.features.session_threshold??30,enableSessionDuration:e.features.web_on_focus_enabled??true}}(t,i);return function(t){const e=!self.isSecureContext;if(t.hasUnsupportedSubdomain||e)throw e?new Error("OneSignalSDK: HTTP sites are no longer supported starting with version 16 (User Model), your public site must start with https://."):new Error('OneSignalSDK: The "My site is not fully HTTPS" option is no longer supported starting with version 16 (User Model) of the OneSignal SDK.')}(n),function(t){t.restrictedOriginEnabled}(n),n}catch(i){if(i instanceof Object&&"code"in i){if(1===i.code)throw b;if(2===i.code)throw new Error("App not configured for web push")}throw i}}var J="oneSignalSession",G="active",Y="inactive";function X(t){return new Promise((e,i)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>i(t.error)})}var Q=!1,Z=async(t=7)=>function(t){const e=(e,i)=>t.transaction(e,i).objectStore(e);return{get:async(t,i)=>X(e(t).get(i)),getAll:async t=>X(e(t).getAll()),put:async(t,i)=>X(e(t,"readwrite").put(i)),delete:async(t,i)=>X(e(t,"readwrite").delete(i)),clear:async t=>X(e(t,"readwrite").clear()),close:()=>t.close(),get objectStoreNames(){return t.objectStoreNames}}}(await function(t,e,i){return new Promise((t,n)=>{const a=indexedDB.open("ONE_SIGNAL_SDK_DB",e);a.onupgradeneeded=t=>i?.upgrade?.(a.result,t.oldVersion,t.newVersion,a.transaction),a.onsuccess=()=>{i?.terminated&&(a.result.onclose=i.terminated),t(a.result)},a.onerror=()=>n(a.error),a.onblocked=()=>i?.blocked?.()})}(0,t,{upgrade(e,i,n,a){const o=n||t;o>=1&&i<1&&(e.createObjectStore("Ids",{keyPath:"type"}),e.createObjectStore("NotificationOpened",{keyPath:"url"}),e.createObjectStore("Options",{keyPath:"key"})),o>=2&&i<2&&(e.createObjectStore("Sessions",{keyPath:"sessionKey"}),e.createObjectStore("NotificationReceived",{keyPath:"notificationId"}),e.createObjectStore("NotificationClicked",{keyPath:"notificationId"})),o>=3&&i<3&&e.createObjectStore("SentUniqueOutcome",{keyPath:"outcomeName"}),o>=4&&i<4&&(e.createObjectStore("identity",{keyPath:"modelId"}),e.createObjectStore("properties",{keyPath:"modelId"}),e.createObjectStore("pushSubscriptions",{keyPath:"modelId"}),e.createObjectStore("smsSubscriptions",{keyPath:"modelId"}),e.createObjectStore("emailSubscriptions",{keyPath:"modelId"})),o>=5&&i<5&&(async function(t,e){const i="NotificationClicked",n="Outcomes.NotificationClicked";t.createObjectStore(n,{keyPath:"notificationId"});const a=await X(e.objectStore(i).getAll()),o=e.objectStore(n);for(const s of a)o.put({notificationId:s.notificationId||s.notification.id,appId:s.appId,timestamp:s.timestamp});t.deleteObjectStore(i)}(e,a),async function(t,e){const i="NotificationReceived",n="Outcomes.NotificationReceived";t.createObjectStore(n,{keyPath:"notificationId"});const a=await X(e.objectStore(i).getAll()),o=e.objectStore(n);for(const s of a)o.put(s);t.deleteObjectStore(i)}(e,a)),o>=6&&i<6&&async function(t,e){const i="subscriptions";let n;t.createObjectStore(i,{keyPath:"modelId"});const a=await X(e.objectStore("identity").getAll());a.length>0&&(n=a[0].externalId);for(const o of["emailSubscriptions","pushSubscriptions","smsSubscriptions"]){const a=await X(e.objectStore(o).getAll()),s=e.objectStore(i);for(const t of a)s.put({...t,modelName:"subscriptions",externalId:n});t.deleteObjectStore(o)}}(e,a),o>=7&&i<7&&e.createObjectStore("operations",{keyPath:"modelId"}),Q=!1},blocked(){v._("IndexedDB: Blocked event")},terminated(){Q||(Q=!0,et())}})),tt=Z(),et=(t=7)=>tt=Z(t),it=!1;function nt(t,e,i){if(it)return Promise.resolve(i);let n;const a=new Promise(e=>{n=setTimeout(()=>{it=!0,v.k(`db.${t} timed out`),e(i)},1500)});return Promise.race([e(),a]).finally(()=>clearTimeout(n))}var at={async get(t,e){const i=await tt;return nt(`get(${t})`,()=>i.get(t,e),void 0)},async getAll(t){const e=await tt;return nt(`getAll(${t})`,()=>e.getAll(t),[])},async put(t,e){const i=await tt;return nt(`put(${t})`,()=>i.put(t,e),void 0)},async delete(t,e){const i=await tt;return nt(`delete(${t}/${e})`,()=>i.delete(t,e),void 0)}},ot=async t=>{const e=await tt;return nt(`clear(${t})`,()=>e.clear(t),void 0)},st=async t=>{const e=await at.get("Options",t);return e&&"value"in e?e.value:null},rt=async()=>await at.get("Sessions","oneSignalSession")??null,ct=async()=>{await at.delete("Sessions",J)},ut=async(t,e)=>{await at.put("Outcomes.NotificationReceived",function(t,e,i){return{appId:t,notificationId:e.notificationId,timestamp:i}}(t,e,Date.now()))},lt=async()=>(await at.getAll("Outcomes.NotificationClicked")).map(t=>{return{appId:(e=t).appId,notificationId:e.notificationId,timestamp:e.timestamp};var e}),dt=class t{deviceId;subscriptionToken;optedOut;createdAt;expirationTime;O(){return{deviceId:this.deviceId,subscriptionToken:this.subscriptionToken,optedOut:this.optedOut,createdAt:this.createdAt,expirationTime:this.expirationTime}}static D(e){const i=new t;return i.deviceId=e.deviceId,i.subscriptionToken=e.subscriptionToken,i.optedOut=e.optedOut,i.createdAt=e.createdAt,i.expirationTime=e.expirationTime,i}},ft=async()=>{const t=new dt;t.deviceId=(await at.get("Ids","userId"))?.id,t.subscriptionToken=(await at.get("Ids","registrationId"))?.id;const e=await st("optedOut"),i=await st("subscription"),n=await st("subscriptionCreatedAt"),a=await st("subscriptionExpirationTime");return t.optedOut=null!=e?e:null!=i&&!i,t.createdAt=n??null,t.expirationTime=a??null,t},pt=async t=>{t.deviceId&&await at.put("Ids",{type:"userId",id:t.deviceId}),void 0!==t.subscriptionToken&&await at.put("Ids",{type:"registrationId",id:t.subscriptionToken}),null!=t.optedOut&&await at.put("Options",{key:"optedOut",value:t.optedOut}),null!=t.createdAt&&await at.put("Options",{key:"subscriptionCreatedAt",value:t.createdAt}),null!=t.expirationTime?await at.put("Options",{key:"subscriptionExpirationTime",value:t.expirationTime}):await at.delete("Options","subscriptionExpirationTime")};function wt(t,e){const i=1e3*e;let n,a=()=>{};return{promise:new Promise((e,o)=>{let s=!1;n=self.setTimeout(async()=>{s=!0;try{await t(),e()}catch(i){v.I("Callback failed",i),o()}},i),a=()=>{v._("Cancel called"),self.clearTimeout(n),s||e()}}),cancel:a}}function yt(t){const e=(new Date).getTime(),i=t&&t.notificationId||null;return{accumulatedDuration:0,appId:t.appId,lastActivatedTimestamp:e,lastDeactivatedTimestamp:null,notificationId:i,sessionKey:J,startTimestamp:e,status:G}}async function mt(t,e,i,n,a){1!==n&&(at.put("Sessions",a),ht(),await async function(t,e,i){const n={label:O,id:e},a={refresh_device_metadata:!0,deltas:{session_count:1}};x(t),function(t){if(!t.label)throw new Error("Alias label cannot be empty");if(!t.id)throw new Error("Alias id cannot be empty")}(n);try{await D({appId:t,subscriptionId:i},n,a)}catch(o){v._("Session update error:",o)}}(t,e,i))}async function bt(t,e,i,n,a,o){if(v._("Finalize session",`duration: ${n.accumulatedDuration}s`),a){v._(`on_focus duration: ${n.accumulatedDuration}s`);const a=await async function(t){if(t.direct&&t.direct.enabled){const t=await lt();if(t.length>0)return{type:1,notificationIds:[t[0].notificationId]}}if(t.indirect&&t.indirect.enabled){const e=60*t.indirect.influencedTimePeriodMin*1e3,i=new Date((new Date).getTime()-e).getTime(),n=await(async()=>(await at.getAll("Outcomes.NotificationReceived")).map(t=>{return{appId:(e=t).appId,notificationId:e.notificationId,timestamp:e.timestamp};var e}))();if(v._(`${n.length} received notifs found`),n.length>0){const e=t.indirect.influencedNotificationsLimit,a=n.slice().sort((t,e)=>e.timestamp-t.timestamp),o=a.filter(t=>t.timestamp>=i).slice(0,e).map(t=>t.notificationId);v._(`${o.length} notifs in reporting window`);const s=a.filter(t=>-1===o.indexOf(t.notificationId)).map(t=>t.notificationId);if(s.forEach(t=>at.delete("Outcomes.NotificationReceived",t)),v._(`${s.length} notifs to delete`),o.length>0)return{type:2,notificationIds:o}}}return t.unattributed&&t.unattributed.enabled?{type:3,notificationIds:[]}:{type:4,notificationIds:[]}}(o);v._("on_focus attribution",a),await async function(t,e,i,n,a){const o={refresh_device_metadata:!0,deltas:{session_time:n}},s={label:O,id:e},r={id:"os__session_duration",app_id:t,session_time:n,notification_ids:a.notificationIds,subscription:{id:i,type:f()},onesignal_id:e};r.direct=1===a.type;try{await D({appId:t,subscriptionId:i},s,o),r.notification_ids&&r.notification_ids.length>0&&await async function(t){v.P("Outcome payload:",t);try{await _("outcomes/measure",t)}catch(e){v.I("sendOutcome",e)}}(r)}catch(c){v._("Session duration error:",c)}}(t,e,i,n.accumulatedDuration,a)}await Promise.all([ct(),ot("Outcomes.NotificationClicked")]),v._("Finalize session finished")}var ht=async()=>{const t=(await at.getAll("SentUniqueOutcome")).map(t=>(t.sentDuringSession=null,at.put("SentUniqueOutcome",t)));await Promise.all(t)};function gt(t,e){return t<=e?0:Math.floor((t-e)/1e3)}var vt="GetWorkerVersion",St="Subscribe",_t="SubscribeNew",Pt=class{N;constructor(){this.N={}}T(t,e,i){const n={callback:e,onceListenerOnly:i},a=this.N[t.toString()];a?a.push(n):this.N[t.toString()]=[n]}W(t){return this.N[t.toString()]||[]}$(t){this.N[t.toString()]=null}C(){this.N={}}U(t,e){const i=this.N[t.toString()];if(null!=i)for(let n=i.length-1;n>=0;n--)i[n]===e&&i.splice(n,1)}},kt=class{A;N;constructor(t,e=new Pt){this.A=t,this.N=e}R(t,e){this.N.T(t,e,!1)}M(t,e){this.N.T(t,e,!0)}B(t){t?this.N.$(t):this.N.C()}},It=class extends kt{F(){self.addEventListener("message",this.L.bind(this)),v._("[WM] SW listening")}L(t){const e=t.data;if(!e||!e.command)return;const i=this.N.W(e.command),n=[],a=[];v._("[WM] SW received:",t.data);for(const o of i)o.onceListenerOnly&&n.push(o),a.push(o);for(let o=n.length-1;o>=0;o--){const t=n[o];this.N.U(e.command,t)}for(const o of a)o.callback.apply(null,[e.payload])}async K(t,e){const i=await self.clients.matchAll({type:"window",includeUncontrolled:!0});for(const n of i)v._(`[WM] SW->Page broadcast '${t}' ${n.url}`),n.postMessage({command:t,payload:e})}V(t,e,i){if(!i)throw new Error('"windowClient" is empty');v._(`[WM] SW->Page unicast '${t}' ${i.url}`),i.postMessage({command:t,payload:e})}},Ot=class t{w3cEndpoint;w3cP256dh;w3cAuth;safariDeviceToken;static j(e){const i=new t;if(e&&(i.w3cEndpoint=new URL(e.endpoint),e.getKey)){let t=null;try{t=e.getKey("p256dh")}catch{}let n=null;try{n=e.getKey("auth")}catch{}t&&(i.w3cP256dh=btoa(String.fromCharCode(...new Uint8Array(t)))),n&&(i.w3cAuth=btoa(String.fromCharCode(...new Uint8Array(n))))}return i}H(t){t&&(this.safariDeviceToken=t)}O(){return{w3cEndpoint:this.w3cEndpoint?this.w3cEndpoint.toString():null,w3cP256dh:this.w3cP256dh,w3cAuth:this.w3cAuth,safariDeviceToken:this.safariDeviceToken}}static D(e){const i=new t;if(!e)return i;try{i.w3cEndpoint=new URL(e.w3cEndpoint)}catch{}return i.w3cP256dh=e.w3cP256dh,i.w3cAuth=e.w3cAuth,i.safariDeviceToken=e.safariDeviceToken,i}},Dt=class t{A;q;constructor(t,e){this.A=t,this.q=e}async J(t,e){t&&(t=Ot.D(t)),await this.G();const i=await ft();return i.deviceId="99999999-9999-9999-9999-999999999999",i.optedOut=!1,t?l()?i.subscriptionToken=t.safariDeviceToken:i.subscriptionToken=t.w3cEndpoint?t.w3cEndpoint.toString():null:i.subscriptionToken=null,await pt(i),"undefined"!=typeof OneSignal&&(OneSignal._sessionInitAlreadyRunning=!1),i}async G(){const{deviceId:t}=await ft();return!!t}async Y(e,i){const n=await e.getSubscription();switch(i){case 0:if(!n)break;n.options?v._("Existing push sub options present"):(v._("Existing push sub options null, unsubscribing first"),await t.X(n));break;case 1:n&&await t.X(n)}const[a,o]=await t.Z(e,this.tt());return await t.et(o,a.expirationTime),Ot.j(a)}tt(){let t;return t=c()===o?this.q.onesignalVapidPublicKey:this.q.vapidPublicKey,t?function(t){const e=(t+"=".repeat((4-t.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),i=atob(e),n=new Uint8Array(i.length);for(let a=0;a<i.length;++a)n[a]=i.charCodeAt(a);return n}(t).buffer:void 0}static async et(t,e){const i=await ft();t&&(i.createdAt=(new Date).getTime()),i.expirationTime=e,await pt(i)}static async Z(e,i){if(!i)throw new Error("Missing required 'applicationServerKey' to subscribe for push notifications!");const n={userVisibleOnly:!0,applicationServerKey:i};v._("Subscribing with options:",n);try{const t=await e.getSubscription();return[await e.subscribe(n),!t]}catch(a){if(a instanceof Error){v.k("Re-subscribing with new applicationServerKey",a);const i=await e.getSubscription();return i&&await t.X(i),[await e.subscribe(n),!0]}throw a}}static async X(t){v._("Unsubscribing existing push sub");const e=await t.unsubscribe();return v._(`Unsubscribe result: ${e}`),e}},xt=class extends Dt{async it(t){return await this.nt(t)}async nt(t){const e=self.registration;if(!e.active&&c()!==o)throw new Error("SW not activated");const i=await e.pushManager.permissionState({userVisibleOnly:!0});if("denied"===i)throw m;if("prompt"===i)throw new Error("Permission not granted");return await this.Y(e.pushManager,t)}},Nt=class{ot;st;rt;constructor(t){var e;this.ot=t,this.st=new xt(this,{safariWebId:(e=this.ot).safariWebId,appId:e.appId,vapidPublicKey:e.vapidPublicKey,onesignalVapidPublicKey:e.onesignalVapidPublicKey}),this.rt=new It(this)}};function Tt(t){return{notificationId:t.custom.i,title:t.title,body:t.alert,additionalData:t.custom.a,launchURL:t.custom.u,confirmDelivery:"y"===t.custom.rr,icon:t.icon,image:t.image,actionButtons:(e=t.o,e?.map(t=>({actionId:t.i,text:t.n,icon:t.p,launchURL:t.u}))),topic:t.tag,badgeIcon:t.badge};var e}async function Wt(t){const e=await st(`webhooks.${t.event}`);if(!e)return;const i=await st("webhooks.cors"),n={method:"post",mode:"no-cors",body:JSON.stringify(t)};i&&(n.mode="cors",n.headers={"X-OneSignal-Event":t.event,"Content-Type":"application/json"}),v._(`Webhook ${t.event} ${i?"+":"-"}CORS ${e}`),await fetch(e,n)}async function $t(t,e){return await Wt({event:"notification.willDisplay",notificationId:t.notificationId,heading:t.title,content:t.body,additionalData:t.additionalData,url:t.launchURL,subscriptionId:e})}var Ct=new It(void 0);async function Ut(){const t=(await self.registration.pushManager.getSubscription())?.endpoint;if(t)return async function(t){const e=await at.getAll("subscriptions");for(const i of e)if(i.token===t)return i.id}(t)}async function Et(){if(self.location.search){const t=self.location.search.match(/appId=([0-9a-z-]+)&?/i);if(t&&t.length>1)return t[1]}const{appId:t}=await(async()=>{const t={};return t.appId=await(async()=>{const t=await at.get("Ids","appId");return t&&"id"in t?t.id:null})(),t.vapidPublicKey=await st("vapidPublicKey"),t})();return t}async function At(t){const e=await self.clients.matchAll({type:"window",includeUncontrolled:!0});if(0===e.length)return v._("[SW] No window clients, showing notif"),!1;const i=e.filter(t=>"visible"===t.visibilityState);if(0===i.length)return v._("[SW] No visible clients, showing notif"),!1;v._(`[SW] ${i.length} visible clients, awaiting preventDefault`);const n=new Promise(e=>{self.notificationDisplayStatus={notificationId:t.notificationId,resolve:e}});return await Ct.K("notification.willDisplay",{notification:t}).catch(t=>v.I(t)),n}async function Rt(t){if(!t)return;if(c()===a)return null;if(!t.confirmDelivery)return;const e=await Et(),i=await Ut();if(!e||!t.notificationId)return;const n={player_id:i,app_id:e,device_type:p()};v._("sendConfirmedDelivery:",t),await h(Math.floor(25*Math.random()*1e3)),await P(`notifications/${t.notificationId}/report_received`,n)}async function Mt(){return await self.clients.matchAll({type:"window",includeUncontrolled:!0})}async function Bt(t,e,i){if(e)await async function(t,e,i,n,a,o,s){const r=await rt();if(!r){const n=yt({appId:t}),a=await(async t=>{let e=[];try{e=await lt()}catch(i){v.I("getLastClickedNotif error",i)}return e.find(e=>e.appId===t)||null})(t);return a&&(n.notificationId=a.notificationId),await at.put("Sessions",n),void(await mt(t,e,i,o,n))}if(r.status===G)return void v._("Session already active",r);if(!r.lastDeactivatedTimestamp)return void v._("Session is in invalid state",r);const c=(new Date).getTime();if(gt(c,r.lastDeactivatedTimestamp)<=n)return r.status=G,r.lastActivatedTimestamp=c,r.lastDeactivatedTimestamp=null,void(await at.put("Sessions",r));await bt(t,e,i,r,a,s);const u=yt({appId:t});await at.put("Sessions",u),await mt(t,e,i,o,u)}(i.appId,i.onesignalId,i.subscriptionId,i.sessionThreshold,i.enableSessionDuration,i.sessionOrigin,i.outcomesConfig);else{const e=await async function(t,e,i,n,a,o){const s=await rt();if(!s)return void v._("No active session to deactivate");const r=()=>bt(t,e,i,s,a,o);if(s.status===Y)return wt(r,n);if(s.status!==G)return void v.k(`Invalid session state: ${String(s.status)}`);const c=(new Date).getTime(),u=gt(c,s.lastActivatedTimestamp);s.lastDeactivatedTimestamp=c,s.accumulatedDuration+=u,s.status=Y;const l=wt(r,n);return await at.put("Sessions",s),l}(i.appId,i.onesignalId,i.subscriptionId,i.sessionThreshold,i.enableSessionDuration,i.outcomesConfig);e&&(self.cancel=e.cancel,t.waitUntil(e.promise))}}function Ft(t,e){v._("[SW] debounceRefresh",e),self.cancel&&(self.cancel(),self.cancel=void 0);const i=wt(async()=>{await async function(t,e){v._("[SW] refreshSession");const i=await Mt();if(e.isSafari)!function(t,e,i){const n=(new Date).getTime();self.clientsStatus={timestamp:n,sentRequestsCount:0,receivedResponsesCount:0,hasAnyActiveSessions:!1};const a={timestamp:n};e.forEach(t=>{self.clientsStatus.sentRequestsCount++,t.postMessage({command:"os.page_focused_request",payload:a})});const o=wt(async()=>{v._("updateSessionBasedOnHasActive",self.clientsStatus),await Bt(t,self.clientsStatus.hasAnyActiveSessions,i),self.clientsStatus=void 0},.5);self.cancel=o.cancel,t.waitUntil(o.promise)}(t,i,e);else{const n=i.some(t=>t.focused);v._("[SW] hasAnyActive",n),await Bt(t,n,e)}}(t,e)},1);self.cancel=i.cancel,t.waitUntil(i.promise)}function Lt(t){if(t)try{const e=new URL(t);return"localhost"===e.hostname||-1!==e.hostname.indexOf("192.168")||"127.0.0.1"===e.hostname||"https:"===e.protocol?t:"i0.wp.com"===e.hostname||"i1.wp.com"===e.hostname||"i2.wp.com"===e.hostname||"i3.wp.com"===e.hostname?`https://${e.hostname}${e.pathname}`:`https://i0.wp.com/${e.host+e.pathname}`}catch(e){v.I("ensureImageHttps:",e)}}async function Kt(t){v._("displayNotification:",t);const e=await new Promise(t=>{Promise.all([st("defaultTitle"),st("pageTitle")]).then(([e,i])=>{t(null!==e?e:null!=i?i:"")})}),i=await st("defaultIcon"),n=await st("persistNotification"),a=await Et();t.title=t.title?t.title:e,t.icon=t.icon?t.icon:i||void 0,function(t){if(t&&(t.icon&&(t.icon=Lt(t.icon)),t.image&&(t.image=Lt(t.image)),t.actionButtons&&t.actionButtons.length>0))for(const e of t.actionButtons)e.icon&&(e.icon=Lt(e.icon))}(t);const o={body:t.body,icon:t.icon,image:t.image,data:t,actions:(s=t.actionButtons,s?.map(t=>({action:t.actionId,title:t.text,icon:t.icon}))),tag:t.topic||a,requireInteraction:!1!==n,renotify:!0,badge:t.badgeIcon};var s;await self.registration.showNotification(t.title,o),function(){const t=navigator.userAgentData,e="macOS"===t?.platform,i=!!t?.brands?.some(t=>"Chromium"===t.brand);return e&&i}()&&await h(1e3)}async function Vt(t){v._("Opening URL:",t);try{return await self.clients.openWindow(t)}catch(e){return v.k(`Failed to open URL '${t}':`,e),null}}self.addEventListener("activate",function(t){v.P(`Service Worker activated (version ${u})`),t.waitUntil(self.clients.claim())}),self.addEventListener("push",function(t){v._("onPushReceived:",t),t.waitUntil(function(t){if(!t||!t.data)return Promise.reject("Missing event.data on push payload!");if(function(t){try{const e=t.json();return!!function(t){return"string"==typeof t?.custom?.i}(e)||(v._("Valid JSON missing UUID:",e),!1)}catch(e){return v._("JSON parse failed:",e),!1}}(t.data)){const e=t.data.json();return Promise.resolve([e])}return Promise.reject(`Unexpected push message payload received: ${JSON.stringify(t.data)}`)}(t).then(async t=>{const e=[],i=[],n=await Et();for(const a of t){v._("Raw Notification:",a);const t=Tt(a);i.push(ut(n,t)),e.push((async t=>{const e=await At(t);return $t(t,await Ut()),e?(v._(`[SW] Display prevented: ${t.notificationId}`),Rt(t)):Kt(t).then(()=>Rt(t)).catch(t=>v.I(t))}).bind(null,t))}return e.reduce((t,e)=>t.then(e),Promise.resolve())}).catch(t=>{v._("Failed to display notif:",t)}))}),self.addEventListener("notificationclose",t=>t.waitUntil(async function(t){v._("onNotificationClosed:",t);const e=t.notification.data;Ct.K("notification.dismissed",e).catch(t=>v.I(t)),async function(t,e){await Wt({event:"notification.dismissed",notificationId:t.notificationId,heading:t.title,content:t.body,additionalData:t.additionalData,url:t.launchURL,subscriptionId:e})}(e,await Ut())}(t))),self.addEventListener("notificationclick",t=>t.waitUntil(async function(t){v._("onNotificationClicked:",t),t.notification.close();const e=t.notification.data;let i="exact",n="navigate";const a=await st("notificationClickHandlerMatch");a&&(i=a);const o=await st("notificationClickHandlerAction");o&&(n=o);const s=await async function(t,e){if(e){const i=t?.actionButtons?.find(t=>t.actionId===e);if(i?.launchURL&&""!==i.launchURL)return i.launchURL}if(t.launchURL&&""!==t.launchURL)return t.launchURL;const{defaultNotificationUrl:i}=await(async()=>{const t=await st("defaultUrl"),e=await st("defaultTitle"),i=await st("isPushEnabled"),n=await st("lastOptedIn");return{defaultNotificationUrl:t,defaultNotificationTitle:e,lastKnownPushEnabled:i,lastKnownPushId:await st("lastPushId")??void 0,lastKnownPushToken:await st("lastPushToken")??void 0,lastKnownOptedIn:n}})();return i||location.origin}(e,t.action),r="javascript:void(0);"!==(d=s)&&"do_not_open"!==d&&!d.includes("_osp=do_not_open"),c=await Et(),u=p(),l={notification:e,result:{actionId:t.action,url:s},timestamp:(new Date).getTime()};var d;v.P("NotificationClicked",l);const f=(async t=>{try{const e=await rt();if(e&&e.status===G)return;await(async(t,e)=>{await at.put("Outcomes.NotificationClicked",function(t,e){return{appId:t,notificationId:e.notification.notificationId,timestamp:e.timestamp}}(t,e))})(c,t),e&&(e.notificationId=t.notification.notificationId,await at.put("Sessions",e))}catch(e){v.I("Failed to save click",e)}})(l),w=async function(t,e,i,n){const a=i.notification;if(!a.notificationId)return void console.error("No notification id, skipping networks calls to report open!");let o;t?o=P(`notifications/${a.notificationId}`,{app_id:t,player_id:e,opened:!0,device_type:n}):console.error("No app Id, skipping OneSignal API call for notification open!"),await async function(t,e){const i=t.notification;return await Wt({event:"notification.clicked",notificationId:i.notificationId,heading:i.title,content:i.body,additionalData:i.additionalData,actionId:t.result.actionId,url:t.result.url,subscriptionId:e})}(i,e),o&&await o}(c,await Ut(),l,u),y=await Mt();let m=!1;for(const p of y){const t=p.url;let e="";try{e=new URL(t).origin}catch(b){v.I("Failed to get origin:",b)}let a=null;try{a=new URL(s).origin}catch(b){v.I("Failed parse URL:",b)}if("exact"===i&&t===s||"origin"===i&&e===a){if(p.url===s||"focus"===n&&e===a){Ct.V("notification.clicked",l,p);try{p instanceof WindowClient&&await p.focus()}catch(b){v.I("Failed to focus:",p,b)}}else if(p instanceof WindowClient&&p.navigate){try{v._("Attempting focus()"),p instanceof WindowClient&&await p.focus()}catch(b){v.I("Failed to focus:",p,b)}try{r?(v._(`Redirecting to ${s}`),await p.navigate(s)):v._("Skipping nav, special link")}catch(b){v.I("Failed to navigate:",p,s,b)}}else await Vt(s);m=!0;break}}return r&&!m&&await Vt(s),f&&await f,await w}(t))),self.addEventListener("pushsubscriptionchange",t=>{t.waitUntil(async function(t){v._("onPushSubscriptionChange:",t);const e=await Et();if(!e)return;const i=await q({appId:e},N);if(!i)return;const n=new Nt(i);let a,o;{let i=(await ft()).deviceId;if(a=!!i,!a&&t.oldSubscription){i=await async function(t,e,i){return x(t),_("players",{app_id:t,device_type:e,identifier:i,notification_types:-20}).then(t=>t?.result?.id?t.result.id:null).catch(t=>(v._("Error getting user ID:",t),null))}(e,p(),t.oldSubscription.endpoint);const n=await ft();n.deviceId=i,await pt(n)}a=!!i}const s=t.newSubscription;if(s)o=Ot.j(s);else try{o=await n.st.it(1)}catch{}if(a||o){let t=null;"granted"!==Notification.permission?t=-21:o||(t=-22),await n.st.J(o,t)}else await at.delete("Ids","userId"),await at.delete("Ids","registrationId")}(t))}),self.addEventListener("message",t=>{const e=t.data,i=e?.payload;switch(e?.command){case"os.session.upsert":v._("[SW] SessionUpsert",i),Ft(t,i);break;case"os.session.deactivate":v._("[SW] SessionDeactivate",i),Ft(t,i);break;default:return}}),v._("Setting up message listeners"),setTimeout(()=>{Ct.F(),Ct.R(vt,()=>{v._("[SW] Worker version msg"),Ct.K(vt,u)}),Ct.R(St,async t=>{const e=t;v._("[SW] Subscribe msg");const i=new Nt(e),n=await i.st.it(0),a=await i.st.J(n);Ct.K(St,a.O())}),Ct.R(_t,async t=>{const e=t;v._("[SW] Subscribe new msg");const i=new Nt(e),n=await i.st.it(1),a=await i.st.J(n);Ct.K(_t,a.O())}),Ct.R("os.page_focused_response",t=>{v._("[SW] AreYouVisible response",t);const e=t.timestamp;self.clientsStatus?.timestamp===e&&(self.clientsStatus.receivedResponsesCount++,t.focused&&(self.clientsStatus.hasAnyActiveSessions=!0))}),Ct.R("os.set_sw_logging",t=>{t.shouldLog?self.shouldLog=!0:self.shouldLog=!1}),Ct.R("notification.willDisplay.response",t=>{v._("[SW] NotifWillDisplay response",t),self.notificationDisplayStatus?.notificationId===t.notificationId&&(self.notificationDisplayStatus.resolve(t.preventDefault),self.notificationDisplayStatus=void 0)}),Ct.R("notification.display",async t=>{v._("[SW] DisplayNotification",t),await Kt(t.notification)})},0)}(); +//# sourceMappingURL=OneSignalSDK.sw.js.map+ \ No newline at end of file diff --git a/public/sw.js b/public/sw.js @@ -1,8 +0,0 @@ -try { - // OneSignalのService Workerを読み込む - importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js"); -} catch (error) { - // 広告ブロッカーやトラッキング防止機能で通信が遮断された場合、 - // エラーをキャッチしてService Worker全体のクラッシュを防ぐ - console.error("OneSignal Service Workerの読み込みがブロックされました。ブラウザのセキュリティ設定を確認してください:", error); -} diff --git a/src/components/OneSignalInit.tsx b/src/components/OneSignalInit.tsx @@ -10,9 +10,8 @@ export default function OneSignalInit() { await OneSignal.init({ appId: process.env.NEXT_PUBLIC_ONESIGNAL_APP_ID!, allowLocalhostAsSecureOrigin: true, - // serviceWorkerPath: 'OneSignalSDKWorker.js', - serviceWorkerPath: "sw.js", - serviceWorkerParam: { scope: "/" }, + // サービスワーカーのパスをルートに固定して認識を安定させる + serviceWorkerPath: 'OneSignalSDKWorker.js', welcomeNotification: { title: "Cafe Timer", message: "先生、通知設定が完了しました!",