PageSourceSearch

https://hub.skullgirlsmobile.com/assets/BW3inPOA.js

js skullgirlsmobile.com collected 2026-10-01 11:33:30 UTC 8,604 bytes, 1 lines download raw bytes

1(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`95fcb66c-f8c9-4ddb-9ce2-1256228fa91f`,e._sentryDebugIdIdentifier=`sentry-dbid-95fcb66c-f8c9-4ddb-9ce2-1256228fa91f`)}catch{}})();import{o as __toESM,t as require_react}from"./BRNmigRh.js";import{A as registerBeforeLogout,S as isPwaInstalled,g as EventType,l as useAuth,r as useLogEvent}from"./DtHyrVsd.js";import{t as require_compiler_runtime}from"./5SJ4bAz6.js";import{En as pushUnsubscribe,Tn as pushSubscribe,_t as WebpushEventType,kn as recordEvent}from"./DLXHsuQR.js";import{t as useCurrentContext}from"./B2HbiW5S.js";import{n as useRouter}from"./CMy2DRJ0.js";import{t as require_lib}from"./DdJQ1njn.js";import{i as uuid4}from"./DZWBNfPD.js";import{s as captureError}from"./BMqAvsyg.js";var import_lib=require_lib(),isIosDevice=()=>import_lib.isIOS||import_lib.isMacOs&&typeof navigator<`u`&&navigator.maxTouchPoints>1,import_react=__toESM(require_react(),1),import_compiler_runtime=require_compiler_runtime(),STORAGE_KEY$1=`webpush-session-id`,sessionId=null,getWebPushSessionId=()=>{if(typeof window>`u`)return uuid4();if(sessionId)return sessionId;let e;try{e=localStorage.getItem(STORAGE_KEY$1)||uuid4(),localStorage.setItem(STORAGE_KEY$1,e)}catch{e=uuid4()}return sessionId=e,e},removeWebPushSubscription=async e=>{await pushUnsubscribe({throwOnError:!0,path:{website_slug_or_domain:e,session_id:getWebPushSessionId()},fetchOptions:{keepalive:!0}})},reportWebPushClick=async(e,t)=>{let{id:n,token:r,user_id:i,campaign_id:a,user_campaign_id:o}=t;if(!n||!r||!i)throw Error(`Web push notification is missing id, token or user_id`);await recordEvent({throwOnError:!0,path:{website_slug_or_domain:e},body:{notification_id:n,event:WebpushEventType.Clicked,token:r,user_id:i,campaign_id:a||void 0,user_campaign_id:o||void 0,standalone:isPwaInstalled()}})},saveWebPushSubscription=async(e,t)=>{let{endpoint:n,keys:r}=t.toJSON();if(!n||!r?.p256dh||!r.auth)throw Error(`Push subscription is missing endpoint or keys`);await pushSubscribe({throwOnError:!0,path:{website_slug_or_domain:e},body:{session_id:getWebPushSessionId(),data:{endpoint:n,keys:{p256dh:r.p256dh,auth:r.auth}}}})},WebPushClickHandler=()=>{let e=(0,import_compiler_runtime.c)(5),t=useRouter(),{domain:n}=useCurrentContext(),{logEvent:r}=useLogEvent(),i,a;return e[0]!==n||e[1]!==r||e[2]!==t?(i=()=>{if(!(`serviceWorker`in navigator))return;let e=e=>{if(e.data?.type!==`webpush:click`)return;let i=e.data.path||`/`,a=e.data.custom??{},{id:o,token:s,user_id:c,...l}=a;i!==t.state.location.href&&t.navigate({href:i}),reportWebPushClick(n,a).catch(e=>{captureError(e,`webpush-click`,{notification_id:o})}),r({action:EventType.webpush_notification_click,userID:c||void 0,data:JSON.stringify({notification_id:o,path:i,...l})})};return navigator.serviceWorker.addEventListener(`message`,e),navigator.serviceWorker.startMessages(),()=>{navigator.serviceWorker.removeEventListener(`message`,e)}},a=[n,t,r],e[0]=n,e[1]=r,e[2]=t,e[3]=i,e[4]=a):(i=e[3],a=e[4]),(0,import_react.useEffect)(i,a),null},isWebPushSupported=()=>typeof window>`u`||!(`serviceWorker`in navigator)||!(`PushManager`in window)||!(`Notification`in window)?!1:!isIosDevice()||isPwaInstalled(),useWebPushConfig=()=>{let e=(0,import_compiler_runtime.c)(6),{website:t,isEmbedded:n}=useCurrentContext(),r=t.game_settings?.webpush_application_server_key||null,i;e[0]!==n||e[1]!==r?(i=!!r&&!n&&isWebPushSupported(),e[0]=n,e[1]=r,e[2]=i):i=e[2];let a;return e[3]!==i||e[4]!==r?(a={vapidPublicKey:r,isActive:i},e[3]=i,e[4]=r,e[5]=a):a=e[5],a},SW_PATH=`/service-worker.js`,READY_TIMEOUT_MS=1e4,registerWebPushWorker=()=>navigator.serviceWorker.register(SW_PATH,{updateViaCache:`none`}),getWebPushSubscription=async()=>(await registerWebPushWorker()).pushManager.getSubscription(),withTimeout=(e,t,n)=>new Promise((r,i)=>{let a=setTimeout(()=>i(Error(n)),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e)})}),getActiveRegistration=async()=>(await registerWebPushWorker(),withTimeout(navigator.serviceWorker.ready,READY_TIMEOUT_MS,`Web push service worker did not activate in time`)),decodeApplicationServerKey=e=>{let t=Array.from(atob(e.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(Math.ceil(e.length/4)*4,`=`)),e=>e.charCodeAt(0)),n=new Uint8Array(new ArrayBuffer(t.length));return n.set(t),n},isSameKey=(e,t)=>!e||e.byteLength!==t.length?!1:new Uint8Array(e).every((e,n)=>e===t[n]),subscribeToWebPush=async e=>{if(Notification.permission===`denied`)return null;let t=await getActiveRegistration(),n=decodeApplicationServerKey(e),r=await t.pushManager.getSubscription();r&&!isSameKey(r.options.applicationServerKey,n)&&await r.unsubscribe();try{return await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:n})}catch(e){if(e instanceof DOMException&&e.name===`NotAllowedError`)return null;throw e}},STORAGE_KEY=`webpush-subscription`,readWebPushOwner=()=>{try{let e=localStorage.getItem(STORAGE_KEY);return e?JSON.parse(e):null}catch{return null}},writeWebPushOwner=e=>{try{localStorage.setItem(STORAGE_KEY,JSON.stringify(e))}catch{}},clearWebPushOwner=()=>{try{localStorage.removeItem(STORAGE_KEY)}catch{}},markWebPushUnsynced=()=>{let e=readWebPushOwner();e&&writeWebPushOwner({...e,synced:!1})},attachWebPushSubscription=async(e,t,n)=>{await saveWebPushSubscription(e,n),writeWebPushOwner({endpoint:n.endpoint,userId:t,synced:!0})},restoreWebPushSubscription=async({domain:e,userId:t,vapidPublicKey:n})=>{if(Notification.permission!==`granted`){await removeWebPushSubscription(e),clearWebPushOwner();return}let r=await subscribeToWebPush(n);if(!r)throw Error(`Web push resubscribe was not allowed`);await attachWebPushSubscription(e,t,r)},syncWebPushSubscription=async e=>{let{domain:t,userId:n}=e,r=readWebPushOwner(),i=await getWebPushSubscription();if(r&&r.userId!==n){await i?.unsubscribe(),clearWebPushOwner();return}if(!i){r&&await restoreWebPushSubscription(e);return}r?.synced&&r.endpoint===i.endpoint||await attachWebPushSubscription(t,n,i)},dropWebPushSubscription=async()=>{await(await getWebPushSubscription())?.unsubscribe(),clearWebPushOwner()},releaseWebPushSubscription=async e=>{if(readWebPushOwner()){markWebPushUnsynced();try{await removeWebPushSubscription(e)}catch(e){captureError(e,`webpush-sync`),await dropWebPushSubscription()}}},useWebPushSubscription=()=>{let{domain:e}=useCurrentContext(),{user:t}=useAuth(),{logEvent:n}=useLogEvent(),{vapidPublicKey:r}=useWebPushConfig(),[i,a]=(0,import_react.useState)(!1);return{isPending:i,subscribe:(0,import_react.useCallback)(async()=>
1{if(!r||!t||i)return!1;a(!0);let o=null;try{return o=await subscribeToWebPush(r),o?(n({action:EventType.webpush_permission_granted}),await saveWebPushSubscription(e,o),writeWebPushOwner({endpoint:o.endpoint,userId:t.id,synced:!0}),n({action:EventType.webpush_subscribed}),!0):(n({action:EventType.webpush_permission_denied}),!1)}catch(e){return captureError(e,`webpush-subscribe`),await o?.unsubscribe().catch(()=>void 0),console.error(e),!1}finally{a(!1)}},[e,r,t,i,n])}},WebPushEventsBootstrap=()=>{let e=(0,import_compiler_runtime.c)(15),{domain:t}=useCurrentContext(),{user:n}=useAuth(),{isActive:r,vapidPublicKey:i}=useWebPushConfig(),a=n?.id,o,s;e[0]!==r||e[1]!==a?(o=()=>{r&&!a&&readWebPushOwner()?.synced&&dropWebPushSubscription().catch(_temp)},s=[r,a],e[0]=r,e[1]=a,e[2]=o,e[3]=s):(o=e[2],s=e[3]),(0,import_react.useEffect)(o,s);let c,l;e[4]!==t||e[5]!==r||e[6]!==a||e[7]!==i?(c=()=>{if(!r||!a||!i)return;let e=()=>{syncWebPushSubscription({domain:t,userId:a,vapidPublicKey:i}).catch(_temp2)};e();let n=t=>{t.data?.type===`webpush:subscriptionchange`&&(markWebPushUnsynced(),e())};return navigator.serviceWorker.addEventListener(`message`,n),()=>{navigator.serviceWorker.removeEventListener(`message`,n)}},l=[r,t,a,i],e[4]=t,e[5]=r,e[6]=a,e[7]=i,e[8]=c,e[9]=l):(c=e[8],l=e[9]),(0,import_react.useEffect)(c,l);let u,d;return e[10]!==t||e[11]!==r||e[12]!==a?(u=()=>{if(r&&a)return registerBeforeLogout(()=>releaseWebPushSubscription(t))},d=[r,t,a],e[10]=t,e[11]=r,e[12]=a,e[13]=u,e[14]=d):(u=e[13],d=e[14]),(0,import_react.useEffect)(u,d),null};function _temp(e){captureError(e,`webpush-sync`)}function _temp2(e){captureError(e,`webpush-sync`)}var getAppMetadata=e=>({title:e.config.pwa_settings?.app_title||e.title,icon:e.config.pwa_settings?.app_icon_url||e.config.favicon_url||e.game.logo_url});export{WebPushClickHandler as a,useWebPushConfig as i,WebPushEventsBootstrap as n,useWebPushSubscription as r,getAppMetadata as t};

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.