@apps-in-toss/web-framework 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44342,7 +44342,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
44342
44342
  "../user-scripts/dist/index.mjs"() {
44343
44343
  "use strict";
44344
44344
  e62 = '"use strict";(()=>{var e=document.createElement("style");e.textContent=`\n*:not(input):not(textarea) {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n`;document.head.appendChild(e);})();\n';
44345
- t53 = '"use strict";(()=>{var de=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},h=new de,B=()=>Math.random().toString(36).substring(2,15),G=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function d(e){return(...t)=>{let r=B(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(h.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(h.on(`${e}/reject/${r}`,i=>{o(),a(G(i))})),h.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function x(e){return t=>{let r=B(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(G(o))})];return h.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{h.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function g(e){return()=>h.getConstant(e)}var ue=function(){return{emit:function(t,r){for(var n=this.events[t]||[],o=0,s=n.length;o<s;o++)n[o](r)},events:{},on:function(t,r){var n=this,o,s;return((o=this.events)[s=t]||(o[s]=[])).push(r),function(){var a;n.events[t]=(a=n.events[t])===null||a===void 0?void 0:a.filter(function(i){return r!==i})}}}};typeof window<"u"&&(window.__GRANITE_NATIVE_EMITTER=ue());var Xe=d("closeView"),Ye=d("generateHapticFeedback"),Ze=d("share"),Qe=d("setSecureScreen"),et=d("setScreenAwakeMode"),tt=d("getNetworkStatus"),rt=d("setIosSwipeGestureEnabled"),nt=d("openURL"),ot=d("openPermissionDialog"),st=d("getPermission"),at=d("requestPermission"),it=g("setClipboardText"),ct=g("getClipboardText"),dt=g("fetchContacts"),ut=g("fetchAlbumPhotos"),pt=g("getCurrentLocation"),mt=g("openCamera"),lt=d("appLogin"),gt=d("eventLog"),ft=d("getTossShareLink"),vt=d("setDeviceOrientation"),ht=d("checkoutPayment"),wt=d("saveBase64Data"),Et=d("appsInTossSignTossCert"),bt=d("getGameCenterGameProfile"),At=d("openGameCenterLeaderboard"),St=d("submitGameCenterLeaderBoardScore"),_t=d("getUserKeyForGame"),Ct=d("grantPromotionRewardForGame"),Tt=d("getIsTossLoginIntegratedService"),It=d("getServerTime"),yt=g("getLocale"),Lt=g("getSchemeUri"),xt=g("getPlatformOS"),Rt=g("getOperationalEnvironment"),Pt=g("getTossAppVersion"),Dt=g("getDeviceId"),Nt=g("getGroupId"),Mt=x("contactsViral"),Ft=x("startUpdateLocation"),kt=x("onVisibilityChangedByTransparentServiceWeb");var _=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},V=class extends _{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},H=class extends _{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},U=class extends _{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var k=class extends _{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},q=k,z=class extends _{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},$=class extends _{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var pe=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},w=new pe,te=()=>Math.random().toString(36).substring(2,15),re=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function c(e){return(...t)=>{let r=te(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(w.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(w.on(`${e}/reject/${r}`,i=>{o(),a(re(i))})),w.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function E(e){return t=>{let r=te(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(re(o))})];return w.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{w.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>w.getConstant(e)}var Wt={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},me=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,W=e=>["*","x","X"].includes(e),j=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},le=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ge=(e,t)=>{if(W(e)||W(t))return 0;let[r,n]=le(j(e),j(t));return r>n?1:r<n?-1:0},K=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(me);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},J=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??"0",s=t[n]??"0",a=ge(o,s);if(a!==0)return a}return 0},fe=(e,t)=>{let r=K(e),n=K(t),o=r.pop(),s=n.pop(),a=J(r,n);return a!==0?a:o&&s?J(o.split("."),s.split(".")):o?-1:s?1:0};function O(e){if(p("getOperationalEnvironment")()==="sandbox")return!0;let r=p("getTossAppVersion")(),o=p("getPlatformOS")()==="ios"?e.ios:e.android;return o===void 0?!1:o==="always"?!0:o==="never"?!1:fe(r,o)>=0}function X(e){return c("processProductGrant")(e)}var jt={createOneTimePurchaseOrder:e=>{let t=O({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=O({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?E("requestOneTimePurchase")({options:{sku:i},onEvent:async l=>{if(l.type==="purchased"){let m=await o.processProductGrant({orderId:l.data.orderId});await X({orderId:l.data.orderId,isProductGranted:m}).catch(a)}else s(l)},onError:l=>{a(l)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(m=>{Promise.resolve(o.processProductGrant({orderId:m.orderId})).then(()=>{s({type:"success",data:m})}).catch(f=>{a(f)})}).catch(m=>{a(m)}),r)},createSubscriptionPurchaseOrder:e=>{let t=O({android:"5.248.0",ios:"5.249.0"}),r=()=>{};if(!t)return r;let{options:n,onEvent:o,onError:s}=e,{sku:a,offerId:i,processProductGrant:u}=n;return E("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async m=>{if(m.type==="purchased"){let f=await u({orderId:m.data.orderId,subscriptionId:m.data.subscriptionId});await X({orderId:m.data.orderId,isProductGranted:f}).catch(s)}else o(m)},onError:m=>{s(m)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant")},Kt=p("getSafeAreaInsets");var Jt=p("getSafeAreaInsets");var Xt={loadAppsInTossAdMob:Object.assign(E("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(E("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var Yt={getDeploymentId:p("getDeploymentId")},Zt=p("deploymentId"),Qt=p("brandDisplayName"),er=p("brandIcon"),tr=p("brandPrimaryColor");var rr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},ve=c("requestPermission"),he=c("getPermission"),we=c("openPermissionDialog");function C({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ve(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>he(e),n.openPermissionDialog=()=>we(e),n}var or=C({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:V}),ar=C({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:H}),cr=C({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:k}),ur=C({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:U}),mr=C({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:$}),gr=C({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:z}),Ee=c("getPermission"),be=c("openPermissionDialog"),ne=e=>E("updateLocationEvent")({...e,onError:t=>{let r=new q;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ne.getPermission=()=>Ee({name:"geolocation",access:"access"});ne.openPermissionDialog=()=>be({name:"geolocation",access:"access"});var vr=Object.assign(E("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),hr=Object.assign(E("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),Ae=c("openURL");function Se(e){let t=_e(e);return Ae(t)}function _e(e){return["http://","https://"].some(r=>e.startsWith(r))?Ce(e):e}function Ce(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var Y="https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js",Z=15e3,R=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function Te(){if(typeof window>"u"||typeof document>"u")return Promise.reject(new Error("Ads SDK can only be loaded in a browser environment."));let e=S();if(e)return Promise.resolve(e);if(R)return R;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(u),R=null},a=()=>{let l=S();if(l){s(),r(l);return}s(),n(new Error("Ads SDK script loaded but window.TossAdsSpaceKit was not exposed."))},i=()=>{s(),n(new Error(`Failed to load Ads SDK script from ${Y}.`))},u=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${Z}ms.`))},Z);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=Y,document.head.appendChild(o)});return R=t,t}var A=Object.assign(E("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Ie=c("tossAdEventLog"),ye=new Set(["1","2"]);function Le(e){return new Promise((t,r)=>{if(!A.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}return A({options:e,onEvent:t,onError:r})})}function Q(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>ye.has(String(r.styleId))):[];return{requestId:e.requestId??"",status:e.status??"OK",ads:t,ext:e.ext}}function xe(e){return Re(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:Q(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Pe(e)?{resultType:"SUCCESS",success:Q(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function Re(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Pe(e){return!!(e&&typeof e=="object"&&"ads"in e)}function De(){return async(e,t)=>{try{let r=await Le({adGroupId:t.spaceUnitId,sdkId:"108",availableStyleIds:["1","2"]});return xe(r)}catch(r){return{resultType:"FAIL",error:{reason:r instanceof Error?r.message:"Unknown fetchTossAd error"}}}}}var L=null;function Ne(e){let{callbacks:t}=e,r=()=>t?.onInitialized?.(),n=a=>{let i=a instanceof Error?a:new Error(String(a));t?.onInitializationFailed?.(i)};if(S()?.isInitialized()){r();return}if(L!=null){L.then(r).catch(n);return}let s=Te().then(a=>{if(a.isInitialized())return;let u={environment:"live",customAdFetcher:De(),opener:Se};a.init(u)});L=s,s.then(r).catch(n).finally(()=>{L===s&&(L=null)})}function Me(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=S();if(!a)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!a.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let i=typeof t=="string"?document.querySelector(t):t;if(!i)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let u={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:oe(e,r.callbacks)};a.banner.createSlot(i,u)}catch(s){o(s)}}var Fe="16px 20px",ke="20px",Oe="auto",Be="blackAndWhite",Ge="expanded",v="toss-ads-attach",ee="toss-ads-attach-style";function Ve(e){let t=e.ownerDocument;if(!t||t.getElementById(ee))return;let r=t.createElement("style");r.id=ee,r.textContent=`\n .${v} { background: #ffffff; }\n .${v}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${v} { background: #17171c; }\n .${v}.toss-ads-tone-grey { background: #101013; }\n }\n .${v}.toss-ads-theme-light { background: #ffffff; }\n .${v}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${v}.toss-ads-theme-dark { background: #17171c; }\n .${v}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function He(e,t,r={}){let{callbacks:n,theme:o=Oe,tone:s=Be,variant:a=Ge}=r,i=document.createElement("div");i.style.width="100%",i.style.height="100%",i.style.boxSizing="border-box",i.style.display="flex",i.style.flexDirection="column",i.style.justifyContent="center",i.style.overflow="hidden",a==="card"&&(i.style.padding="0 10px");let u=document.createElement("div");u.classList.add(v),s==="grey"&&u.classList.add("toss-ads-tone-grey"),o==="light"?u.classList.add("toss-ads-theme-light"):o==="dark"&&u.classList.add("toss-ads-theme-dark"),a==="card"&&(u.style.borderRadius="16px",u.style.overflow="hidden"),i.appendChild(u);let l=!1,m=null,f=b=>{let y=b instanceof Error?b:new Error(String(b));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:y.message}})},ae=oe(e,n);try{let b=e,y=S();if(!y)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!y.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let F=typeof t=="string"?document.querySelector(t):t;if(!F)throw new Error(`[toss-ad] Failed to find target element: ${t}`);Ve(F),F.appendChild(i),l=!0;let ie={spaceId:b,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:ce=>ce==="1"?Fe:ke,callbacks:ae};m=y.banner.createSlot(u,ie)}catch(b){l&&i.parentNode&&i.parentNode.removeChild(i),f(b)}return{destroy(){m?.destroy(),l&&i.parentNode&&i.parentNode.removeChild(i)}}}function Ue(e){let t=S();t?.banner&&t.banner.destroy(e)}function qe(){let e=S();e?.banner&&e.banner.destroyAll()}function oe(e,t){if(!t)return;let r=n=>{let o={...n??{}};return o.adGroupId=o.adGroupId??o.spaceId??e,delete o.spaceId,o};return{onAdRendered:n=>t.onAdRendered?.(r(n)),onAdViewable:n=>t.onAdViewable?.(r(n)),onAdClicked:n=>t.onAdClicked?.(r(n)),onAdImpression:n=>{Ie({log_name:"display_ads_all::impression__1px_banner",log_type:"event",params:{event_type:"impression",schema_id:1812034,request_id:n?.adMetadata?.requestId??""}}),t.onAdImpression?.(r(n))},onAdFailedToRender:n=>t.onAdFailedToRender?.({...r(n),error:n?.error??{code:0,message:"UNKNOWN"}}),onNoFill:n=>t.onNoFill?.(r(n))}}var wr={initialize:Object.assign(Ne,{isSupported:A.isSupported}),attach:Object.assign(Me,{isSupported:A.isSupported}),attachBanner:Object.assign(He,{isSupported:A.isSupported}),destroy:Object.assign(Ue,{isSupported:A.isSupported}),destroyAll:Object.assign(qe,{isSupported:A.isSupported})},Er=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")});var P=class{_log=c("debugLog");log(t,r){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:"debug",params:{...r,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType==="game",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var D=class{callbacks={};on(t,r){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:p("getAppName")(),deploymentId:p("getDeploymentId")(),webViewType:p("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new D,debugLogger:new P};var T=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function N(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!=="game"||typeof caches>"u")return;let e="@apps-in-toss/caches/",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener("load",async()=>{let r=await caches.keys();for(let n of r)n.startsWith(e)&&n!==t&&await caches.delete(n)}),N(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!T.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let l=i.headers.get("ETag"),m=i.headers.get("Last-Modified");l&&s.headers.set("If-None-Match",l),m&&s.headers.set("If-Modified-Since",m);let f=await r.call(n,s);return f.status===304?(i.__revalidateResponse=f,i):(a.put(s,f.clone()),f)}let u=await r.call(n,s);return a.put(s,u.clone()),u})})();N(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:n});try{let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:n,response:s,requestAt:o}),s}catch(s){throw window.__appsInToss.eventEmitter.emit("fetchError",{request:n,requestAt:o,error:s}),s}});var se=window.__appsInToss.debugLogger;se.log("load_start",{});window.addEventListener("load",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.("navigation")[0]??null,r=typeof e<"u"&&t!==null,n=r?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};se.log("load_complete",{isNavigationDebugSupported:r,...n})});function I(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>"u"||typeof performance.memory.usedJSHeapSize>"u"||typeof performance.memory.totalJSHeapSize>"u"||typeof performance.memory.jsHeapSizeLimit>"u")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:I(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:I(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:I(performance.memory.jsHeapSizeLimit/1024,2)})}e("memory_usage_first_0s"),setTimeout(()=>e("memory_usage_first_1s"),1e3),setTimeout(()=>e("memory_usage_first_10s"),1e4),setTimeout(()=>e("memory_usage_first_30s"),3e4),setTimeout(()=>e("memory_usage_first_60s"),6e4),setInterval(()=>e("memory_usage_every_180s"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>"u"||typeof PerformanceObserver>"u")return;new PerformanceObserver(o=>{o.getEntries().forEach(a=>{a.name==="first-paint"?e.log("first_paint",{fpStartAtMs:t+a.startTime}):a.name==="first-contentful-paint"&&e.log("first_contentful_paint",{fcpStartAtMs:t+a.startTime})})}).observe({type:"paint"}),new PerformanceObserver(o=>{o.getEntries().forEach(a=>{e.log("largest_contentful_paint",{lcpStartAtMs:t+a.startTime,lcpRenderSize:a.size})})}).observe({type:"largest-contentful-paint"})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;function e(t){let r=t.getContext("webgl2")??t.getContext("webgl");if(r==null)return;let n=r.getExtension("WEBGL_debug_renderer_info"),o=r.getParameter(r.MAX_VIEWPORT_DIMS),s={webGLRenderer:r.getParameter(r.RENDERER),webGLVendor:r.getParameter(r.VENDOR),webGLVersion:r.getParameter(r.VERSION),webGLShadingLanguageVersion:r.getParameter(r.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:r.getParameter(r.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:o[0],webGLMaxViewportHeight:o[1],webGLMaxRenderbufferSize:r.getParameter(r.MAX_RENDERBUFFER_SIZE)},a=n?{webGLUnmaskedVendor:r.getParameter(n.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:r.getParameter(n.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log("unity_webgl_info",{...s,...a})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type==="childList"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute("id")==="unity-canvas"&&(e(a),o.disconnect()),a instanceof HTMLElement){let i=a.querySelector("#unity-canvas");i!=null&&(e(i),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:n})=>{T.test(n.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:n.url})});function r({request:n,requestAt:o,error:s}){e.log("game_resource_download_error",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:o,gameResourceError:s instanceof Error?s.message:"Unknown Error"})}t.on("fetchResponse",async({request:n,requestAt:o,response:s})=>{if(!T.test(n.url))return;let a=await s.clone().blob().then(u=>I(u.size/1024,2)).catch(u=>(r({request:n,requestAt:o,error:u}),null));if(a===null)return;let i=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:o,gameResourceResponseAtMs:i,gameResourceResponseSize:a,gameResourceResponseStatus:s.__revalidateResponse?.status??s.status,gameResourceDownloadDurationMs:i-o})}),t.on("fetchError",async({request:n,requestAt:o,error:s})=>{T.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var M=[];function ze(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){M.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function $e(){if(M.length===0)return;let e=M;M=[];let t=We(e).toSorted(),r={};for(let o=0;o<=100;o+=10){let s=t[Math.floor((t.length-1)*(o/100))];s&&(r[`fpsP${o}`]=s)}let n=t.reduce((o,s)=>o+s,0);r.fpsAverage=n/t.length,window.__appsInToss.debugLogger.log("fps_every_300s",r)}function We(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>ze(),1e3);setInterval(()=>$e(),3e5);})();\n';
44345
+ t53 = '"use strict";(()=>{var de=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},h=new de,O=()=>Math.random().toString(36).substring(2,15),B=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function d(e){return(...t)=>{let r=O(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(h.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(h.on(`${e}/reject/${r}`,i=>{o(),a(B(i))})),h.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function R(e){return t=>{let r=O(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(B(o))})];return h.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{h.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function g(e){return()=>h.getConstant(e)}var ue=function(){return{emit:function(t,r){for(var n=this.events[t]||[],o=0,s=n.length;o<s;o++)n[o](r)},events:{},on:function(t,r){var n=this,o,s;return((o=this.events)[s=t]||(o[s]=[])).push(r),function(){var a;n.events[t]=(a=n.events[t])===null||a===void 0?void 0:a.filter(function(i){return r!==i})}}}};typeof window<"u"&&(window.__GRANITE_NATIVE_EMITTER=ue());var Xe=d("closeView"),Ye=d("generateHapticFeedback"),Ze=d("share"),Qe=d("setSecureScreen"),et=d("setScreenAwakeMode"),tt=d("getNetworkStatus"),rt=d("setIosSwipeGestureEnabled"),nt=d("openURL"),ot=d("openPermissionDialog"),st=d("getPermission"),at=d("requestPermission"),it=g("setClipboardText"),ct=g("getClipboardText"),dt=g("fetchContacts"),ut=g("fetchAlbumPhotos"),pt=g("getCurrentLocation"),mt=g("openCamera"),lt=d("appLogin"),gt=d("eventLog"),ft=d("getTossShareLink"),vt=d("setDeviceOrientation"),ht=d("checkoutPayment"),wt=d("saveBase64Data"),Et=d("appsInTossSignTossCert"),bt=d("getGameCenterGameProfile"),At=d("openGameCenterLeaderboard"),_t=d("submitGameCenterLeaderBoardScore"),St=d("getUserKeyForGame"),Ct=d("grantPromotionRewardForGame"),It=d("getIsTossLoginIntegratedService"),Tt=d("getServerTime"),yt=g("getLocale"),Lt=g("getSchemeUri"),Rt=g("getPlatformOS"),Pt=g("getOperationalEnvironment"),xt=g("getTossAppVersion"),Dt=g("getDeviceId"),Nt=g("getGroupId"),Mt=R("contactsViral"),Ft=R("startUpdateLocation"),kt=R("onVisibilityChangedByTransparentServiceWeb");var S=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},V=class extends S{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},H=class extends S{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},U=class extends S{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var k=class extends S{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},W=k,z=class extends S{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},$=class extends S{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var pe=class{get _window(){return typeof window<"u"?window:{ReactNativeWebView:{postMessage:()=>{}},__GRANITE_NATIVE_EMITTER:{on:()=>()=>{}},__CONSTANT_HANDLER_MAP:{}}}postMessage(e){let t=this._window.ReactNativeWebView;if(!t)throw new Error("ReactNativeWebView is not available in browser environment");t.postMessage(JSON.stringify(e))}on(e,t){let r=this._window.__GRANITE_NATIVE_EMITTER;if(!r)throw new Error("__GRANITE_NATIVE_EMITTER is not available");return r.on(e,t)}getConstant(e){let t=this._window.__CONSTANT_HANDLER_MAP;if(t&&e in t)return t[e];throw new Error(`${e} is not a constant handler`)}},w=new pe,te=()=>Math.random().toString(36).substring(2,15),re=e=>{if(e&&e.__isError){let t=new Error(e.message);for(let[r,n]of Object.entries(e))t[r]=n;return t}return e};function c(e){return(...t)=>{let r=te(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(w.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(w.on(`${e}/reject/${r}`,i=>{o(),a(re(i))})),w.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function E(e){return t=>{let r=te(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(re(o))})];return w.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{w.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>w.getConstant(e)}var qt={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},me=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,q=e=>["*","x","X"].includes(e),j=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},le=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ge=(e,t)=>{if(q(e)||q(t))return 0;let[r,n]=le(j(e),j(t));return r>n?1:r<n?-1:0},K=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(me);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},J=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??"0",s=t[n]??"0",a=ge(o,s);if(a!==0)return a}return 0},fe=(e,t)=>{let r=K(e),n=K(t),o=r.pop(),s=n.pop(),a=J(r,n);return a!==0?a:o&&s?J(o.split("."),s.split(".")):o?-1:s?1:0};function G(e){if(p("getOperationalEnvironment")()==="sandbox")return!0;let r=p("getTossAppVersion")(),o=p("getPlatformOS")()==="ios"?e.ios:e.android;return o===void 0?!1:o==="always"?!0:o==="never"?!1:fe(r,o)>=0}function X(e){return c("processProductGrant")(e)}var jt={createOneTimePurchaseOrder:e=>{let t=G({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=G({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?E("requestOneTimePurchase")({options:{sku:i},onEvent:async l=>{if(l.type==="purchased"){let m=await o.processProductGrant({orderId:l.data.orderId});await X({orderId:l.data.orderId,isProductGranted:m}).catch(a)}else s(l)},onError:l=>{a(l)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(m=>{Promise.resolve(o.processProductGrant({orderId:m.orderId})).then(()=>{s({type:"success",data:m})}).catch(f=>{a(f)})}).catch(m=>{a(m)}),r)},createSubscriptionPurchaseOrder:e=>{let t=G({android:"5.248.0",ios:"5.249.0"}),r=()=>{};if(!t)return r;let{options:n,onEvent:o,onError:s}=e,{sku:a,offerId:i,processProductGrant:u}=n;return E("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async m=>{if(m.type==="purchased"){let f=await u({orderId:m.data.orderId,subscriptionId:m.data.subscriptionId});await X({orderId:m.data.orderId,isProductGranted:f}).catch(s)}else o(m)},onError:m=>{s(m)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant")},Kt=p("getSafeAreaInsets");var Jt=p("getSafeAreaInsets");var Xt={loadAppsInTossAdMob:Object.assign(E("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(E("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var Yt={getDeploymentId:p("getDeploymentId")},Zt=p("deploymentId"),Qt=p("brandDisplayName"),er=p("brandIcon"),tr=p("brandPrimaryColor");var rr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},ve=c("requestPermission"),he=c("getPermission"),we=c("openPermissionDialog");function C({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ve(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>he(e),n.openPermissionDialog=()=>we(e),n}var or=C({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:V}),ar=C({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:H}),cr=C({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:k}),ur=C({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:U}),mr=C({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:$}),gr=C({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:z}),Ee=c("getPermission"),be=c("openPermissionDialog"),ne=e=>E("updateLocationEvent")({...e,onError:t=>{let r=new W;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ne.getPermission=()=>Ee({name:"geolocation",access:"access"});ne.openPermissionDialog=()=>be({name:"geolocation",access:"access"});var vr=Object.assign(E("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),hr=Object.assign(E("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),Ae=c("openURL");function _e(e){let t=Se(e);return Ae(t)}function Se(e){return["http://","https://"].some(r=>e.startsWith(r))?Ce(e):e}function Ce(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var Y="https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js",Z=15e3,P=null;function _(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function Ie(){if(typeof window>"u"||typeof document>"u")return Promise.reject(new Error("Ads SDK can only be loaded in a browser environment."));let e=_();if(e)return Promise.resolve(e);if(P)return P;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(u),P=null},a=()=>{let l=_();if(l){s(),r(l);return}s(),n(new Error("Ads SDK script loaded but window.TossAdsSpaceKit was not exposed."))},i=()=>{s(),n(new Error(`Failed to load Ads SDK script from ${Y}.`))},u=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${Z}ms.`))},Z);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=Y,document.head.appendChild(o)});return P=t,t}var A=Object.assign(E("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Te=c("tossAdEventLog"),ye=new Set(["1","2"]);function Le(e){return new Promise((t,r)=>{if(!A.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}return A({options:e,onEvent:t,onError:r})})}function Q(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>ye.has(String(r.styleId))):[];return{requestId:e.requestId??"",status:e.status??"OK",ads:t,ext:e.ext}}function Re(e){return Pe(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:Q(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:xe(e)?{resultType:"SUCCESS",success:Q(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function Pe(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function xe(e){return!!(e&&typeof e=="object"&&"ads"in e)}function De(){return async(e,t)=>{try{let r=await Le({adGroupId:t.spaceUnitId,sdkId:"108",availableStyleIds:["1","2"]});return Re(r)}catch(r){return{resultType:"FAIL",error:{reason:r instanceof Error?r.message:"Unknown fetchTossAd error"}}}}}var L=null;function Ne(e){let{callbacks:t}=e,r=()=>t?.onInitialized?.(),n=a=>{let i=a instanceof Error?a:new Error(String(a));t?.onInitializationFailed?.(i)};if(_()?.isInitialized()){r();return}if(L!=null){L.then(r).catch(n);return}let s=Ie().then(a=>{if(a.isInitialized())return;let u={environment:"live",customAdFetcher:De(),opener:_e};a.init(u)});L=s,s.then(r).catch(n).finally(()=>{L===s&&(L=null)})}function Me(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=_();if(!a)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!a.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let i=typeof t=="string"?document.querySelector(t):t;if(!i)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let u={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:oe(e,r.callbacks)};a.banner.createSlot(i,u)}catch(s){o(s)}}var Fe="16px 20px",ke="20px",Ge="auto",Oe="blackAndWhite",Be="expanded",v="toss-ads-attach",ee="toss-ads-attach-style";function Ve(e){let t=e.ownerDocument;if(!t||t.getElementById(ee))return;let r=t.createElement("style");r.id=ee,r.textContent=`\n .${v} { background: #ffffff; }\n .${v}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${v} { background: #17171c; }\n .${v}.toss-ads-tone-grey { background: #101013; }\n }\n .${v}.toss-ads-theme-light { background: #ffffff; }\n .${v}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${v}.toss-ads-theme-dark { background: #17171c; }\n .${v}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function He(e,t,r={}){let{callbacks:n,theme:o=Ge,tone:s=Oe,variant:a=Be}=r,i=document.createElement("div");i.style.width="100%",i.style.height="100%",i.style.boxSizing="border-box",i.style.display="flex",i.style.flexDirection="column",i.style.justifyContent="center",i.style.overflow="hidden",a==="card"&&(i.style.padding="0 10px");let u=document.createElement("div");u.classList.add(v),s==="grey"&&u.classList.add("toss-ads-tone-grey"),o==="light"?u.classList.add("toss-ads-theme-light"):o==="dark"&&u.classList.add("toss-ads-theme-dark"),a==="card"&&(u.style.borderRadius="16px",u.style.overflow="hidden"),i.appendChild(u);let l=!1,m=null,f=b=>{let y=b instanceof Error?b:new Error(String(b));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:y.message}})},ae=oe(e,n);try{let b=e,y=_();if(!y)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!y.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let F=typeof t=="string"?document.querySelector(t):t;if(!F)throw new Error(`[toss-ad] Failed to find target element: ${t}`);Ve(F),F.appendChild(i),l=!0;let ie={spaceId:b,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:ce=>ce==="1"?Fe:ke,callbacks:ae};m=y.banner.createSlot(u,ie)}catch(b){l&&i.parentNode&&i.parentNode.removeChild(i),f(b)}return{destroy(){m?.destroy(),l&&i.parentNode&&i.parentNode.removeChild(i)}}}function Ue(e){let t=_();t?.banner&&t.banner.destroy(e)}function We(){let e=_();e?.banner&&e.banner.destroyAll()}function oe(e,t){if(!t)return;let r=n=>{let o={...n??{}};return o.adGroupId=o.adGroupId??o.spaceId??e,delete o.spaceId,o};return{onAdRendered:n=>t.onAdRendered?.(r(n)),onAdViewable:n=>t.onAdViewable?.(r(n)),onAdClicked:n=>t.onAdClicked?.(r(n)),onAdImpression:n=>{Te({log_name:"display_ads_all::impression__1px_banner",log_type:"event",params:{event_type:"impression",schema_id:1812034,request_id:n?.adMetadata?.requestId??""}}),t.onAdImpression?.(r(n))},onAdFailedToRender:n=>t.onAdFailedToRender?.({...r(n),error:n?.error??{code:0,message:"UNKNOWN"}}),onNoFill:n=>t.onNoFill?.(r(n))}}var wr={initialize:Object.assign(Ne,{isSupported:A.isSupported}),attach:Object.assign(Me,{isSupported:A.isSupported}),attachBanner:Object.assign(He,{isSupported:A.isSupported}),destroy:Object.assign(Ue,{isSupported:A.isSupported}),destroyAll:Object.assign(We,{isSupported:A.isSupported})},Er=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")});var x=class{_log=c("debugLog");log(t,r){try{this._log({log_name:`apps_in_toss_webview_${t}`,log_type:"debug",params:{...r,...this.getCommonParams()}})}catch{}}getCommonParams(){return{...this.getLocationInfo(),...this.getNavigatorInfo(),...this.getScreenInfo(),appName:window.__appsInToss.appName,deploymentId:window.__appsInToss.deploymentId,sessionId:window.__appsInToss.sessionId,isGame:window.__appsInToss.webViewType==="game",timestampMs:Date.now()}}getLocationInfo(){return{url:window.location.href,urlOrigin:window.location.origin,urlHost:window.location.hostname,urlPath:window.location.pathname,urlSearch:window.location.search}}getNavigatorInfo(){return{userAgent:navigator.userAgent,platform:navigator.platform,language:navigator.language,cookieEnabled:navigator.cookieEnabled,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory?navigator.deviceMemory*1024*1024:void 0,maxTouchPoints:navigator.maxTouchPoints}}getScreenInfo(){return{screenWidth:screen.width,screenHeight:screen.height,availableScreenWidth:screen.availWidth,availableScreenHeight:screen.availHeight,devicePixelRatio:window.devicePixelRatio,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}}};var D=class{callbacks={};on(t,r){return typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(r),()=>{this.callbacks[t]=this.callbacks[t]?.filter(n=>n!==r)??[]}}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:p("getAppName")(),deploymentId:p("getDeploymentId")(),webViewType:p("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new D,debugLogger:new x};var I=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function N(e){window.fetch=new Proxy(window.fetch,{apply:e})}(()=>{if(window.__appsInToss.webViewType!=="game"||typeof caches>"u")return;let e="@apps-in-toss/caches/",t=`${e}${window.__appsInToss.deploymentId}`;window.addEventListener("load",async()=>{let r=await caches.keys();for(let n of r)n.startsWith(e)&&n!==t&&await caches.delete(n)}),N(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!I.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let l=i.headers.get("ETag"),m=i.headers.get("Last-Modified");l&&s.headers.set("If-None-Match",l),m&&s.headers.set("If-Modified-Since",m);let f=await r.call(n,s);return f.status===304?(i.__revalidateResponse=f,i):(a.put(s,f.clone()),f)}let u=await r.call(n,s);return a.put(s,u.clone()),u})})();N(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:n});try{let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:n,response:s,requestAt:o}),s}catch(s){throw window.__appsInToss.eventEmitter.emit("fetchError",{request:n,requestAt:o,error:s}),s}});HTMLCanvasElement.prototype.getContext=new Proxy(HTMLCanvasElement.prototype.getContext,{apply:(e,t,r)=>{let n=e.apply(t,r);return(n instanceof WebGL2RenderingContext||n instanceof WebGLRenderingContext)&&window.__appsInToss.eventEmitter.emit("webglGetContext",{canvas:t,context:n}),n}});var se=window.__appsInToss.debugLogger;se.log("load_start",{});window.addEventListener("load",()=>{let e=performance.timeOrigin,t=performance.getEntriesByType?.("navigation")[0]??null,r=typeof e<"u"&&t!==null,n=r?{navigationStartAtMs:e+t.startTime,navigationRedirectStartAtMs:e+t.redirectStart,navigationRedirectEndAtMs:e+t.redirectEnd,navigationRedirectCount:t.redirectCount,navigationServiceWorkerStartAtMs:e+t.workerStart,navigationFetchStartAtMs:e+t.fetchStart,navigationDomainLookupStartAtMs:e+t.domainLookupStart,navigationDomainLookupEndAtMs:e+t.domainLookupEnd,navigationConnectStartAtMs:e+t.connectStart,navigationSecureConnectStartAtMs:e+t.secureConnectionStart,navigationConnectEndAtMs:e+t.connectEnd,navigationRequestStartAtMs:e+t.requestStart,navigationResponseStartAtMs:e+t.responseStart,navigationResponseEndAtMs:e+t.responseEnd,navigationDomInteractiveAtMs:e+t.domInteractive,navigationDomContentLoadedEventStartAtMs:e+t.domContentLoadedEventStart,navigationDomContentLoadedEventEndAtMs:e+t.domContentLoadedEventEnd,navigationDomCompleteAtMs:e+t.domComplete}:{};se.log("load_complete",{isNavigationDebugSupported:r,...n})});function T(e,t){return parseFloat(e.toFixed(t))}(()=>{if(typeof performance.memory>"u"||typeof performance.memory.usedJSHeapSize>"u"||typeof performance.memory.totalJSHeapSize>"u"||typeof performance.memory.jsHeapSizeLimit>"u")return;function e(t){window.__appsInToss.debugLogger.log(t,{usedJSHeapSize:T(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:T(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:T(performance.memory.jsHeapSizeLimit/1024,2)})}e("memory_usage_first_0s"),setTimeout(()=>e("memory_usage_first_1s"),1e3),setTimeout(()=>e("memory_usage_first_10s"),1e4),setTimeout(()=>e("memory_usage_first_30s"),3e4),setTimeout(()=>e("memory_usage_first_60s"),6e4),setInterval(()=>e("memory_usage_every_180s"),18e4)})();(()=>{let e=window.__appsInToss.debugLogger,t=performance.timeOrigin;if(typeof t>"u"||typeof PerformanceObserver>"u")return;new PerformanceObserver(o=>{o.getEntries().forEach(a=>{a.name==="first-paint"?e.log("first_paint",{fpStartAtMs:t+a.startTime}):a.name==="first-contentful-paint"&&e.log("first_contentful_paint",{fcpStartAtMs:t+a.startTime})})}).observe({type:"paint"}),new PerformanceObserver(o=>{o.getEntries().forEach(a=>{e.log("largest_contentful_paint",{lcpStartAtMs:t+a.startTime,lcpRenderSize:a.size})})}).observe({type:"largest-contentful-paint"})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.eventEmitter.on("webglGetContext",({canvas:t,context:r})=>{if(t.getAttribute("id")!=="unity-canvas")return;e();let n=r.getExtension("WEBGL_debug_renderer_info"),o=r.getParameter(r.MAX_VIEWPORT_DIMS),s={webGLRenderer:r.getParameter(r.RENDERER),webGLVendor:r.getParameter(r.VENDOR),webGLVersion:r.getParameter(r.VERSION),webGLShadingLanguageVersion:r.getParameter(r.SHADING_LANGUAGE_VERSION),webGLMaxTextureSize:r.getParameter(r.MAX_TEXTURE_SIZE),webGLMaxViewportWidth:o[0],webGLMaxViewportHeight:o[1],webGLMaxRenderbufferSize:r.getParameter(r.MAX_RENDERBUFFER_SIZE)},a=n?{webGLUnmaskedVendor:r.getParameter(n.UNMASKED_VENDOR_WEBGL),webGLUnmaskedRenderer:r.getParameter(n.UNMASKED_RENDERER_WEBGL)}:{};window.__appsInToss.debugLogger.log("unity_webgl_info",{...s,...a})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:n})=>{I.test(n.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:n.url})});function r({request:n,requestAt:o,error:s}){e.log("game_resource_download_error",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:o,gameResourceError:s instanceof Error?s.message:"Unknown Error"})}t.on("fetchResponse",async({request:n,requestAt:o,response:s})=>{if(!I.test(n.url))return;let a=await s.clone().blob().then(u=>T(u.size/1024,2)).catch(u=>(r({request:n,requestAt:o,error:u}),null));if(a===null)return;let i=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:n.url,gameResourceRequestAtMs:o,gameResourceResponseAtMs:i,gameResourceResponseSize:a,gameResourceResponseStatus:s.__revalidateResponse?.status??s.status,gameResourceDownloadDurationMs:i-o})}),t.on("fetchError",async({request:n,requestAt:o,error:s})=>{I.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var M=[];function ze(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){M.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function $e(){if(M.length===0)return;let e=M;M=[];let t=qe(e).toSorted(),r={};for(let o=0;o<=100;o+=10){let s=t[Math.floor((t.length-1)*(o/100))];s&&(r[`fpsP${o}`]=s)}let n=t.reduce((o,s)=>o+s,0);r.fpsAverage=n/t.length,window.__appsInToss.debugLogger.log("fps_every_300s",r)}function qe(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>ze(),1e3);setInterval(()=>$e(),3e5);})();\n';
44346
44346
  }
44347
44347
  });
44348
44348
 
@@ -44970,11 +44970,16 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
44970
44970
  title: "\uD648 \uD654\uBA74\uC5D0 \uCD94\uAC00",
44971
44971
  iconURL: "https://static.toss.im/icons/png/4x/icon-plus-circle-mono.png",
44972
44972
  onPress: function() {
44973
- import_react_native204.NativeModules.AppsInTossModule.addMiniAppShortcut({
44973
+ INTERNAL__appBridgeHandler.invokeAppBridgeMethod("addMiniAppShortcut", {
44974
44974
  title: globals.brandDisplayName,
44975
44975
  appName: global.__granite.app.name,
44976
44976
  iconUrl: globals.brandIcon,
44977
44977
  guideUrl: "https://service.toss.im/app-mini-home/shortcut"
44978
+ }, {
44979
+ onSuccess: function() {
44980
+ },
44981
+ onError: function() {
44982
+ }
44978
44983
  });
44979
44984
  }
44980
44985
  });
@@ -45194,10 +45199,10 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45194
45199
  type: "none"
45195
45200
  }
45196
45201
  }),
45197
- (0, import_jsx_runtime227.jsx)(import_react_native206.View, {
45202
+ (0, import_jsx_runtime227.jsx)(import_react_native205.View, {
45198
45203
  style: {
45199
45204
  width: "100%",
45200
- height: import_react_native206.Platform.OS === "ios" ? 44 : 54,
45205
+ height: import_react_native205.Platform.OS === "ios" ? 44 : 54,
45201
45206
  flexDirection: "row",
45202
45207
  alignItems: "center",
45203
45208
  justifyContent: "flex-end",
@@ -45332,11 +45337,11 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45332
45337
  var children = param.children;
45333
45338
  var isRNApp = getAppsInTossGlobals().webViewType == null;
45334
45339
  return (0, import_jsx_runtime229.jsx)(NavigationBarContextProvider, {
45335
- children: (0, import_jsx_runtime229.jsx)(Analytics.Screen, {
45336
- children: isRNApp ? (0, import_jsx_runtime229.jsx)(RNAppContainer, {
45340
+ children: isRNApp ? (0, import_jsx_runtime229.jsx)(Analytics.Screen, {
45341
+ children: (0, import_jsx_runtime229.jsx)(RNAppContainer, {
45337
45342
  children
45338
- }) : children
45339
- })
45343
+ })
45344
+ }) : children
45340
45345
  });
45341
45346
  }
45342
45347
  function getAppName() {
@@ -45399,10 +45404,10 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45399
45404
  type: "none"
45400
45405
  }
45401
45406
  }),
45402
- (0, import_jsx_runtime230.jsx)(import_react_native211.View, {
45407
+ (0, import_jsx_runtime230.jsx)(import_react_native210.View, {
45403
45408
  style: {
45404
45409
  width: "100%",
45405
- height: import_react_native211.Platform.OS === "ios" ? 44 : 54,
45410
+ height: import_react_native210.Platform.OS === "ios" ? 44 : 54,
45406
45411
  flexDirection: "row",
45407
45412
  alignItems: "center",
45408
45413
  justifyContent: "flex-end",
@@ -46352,7 +46357,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46352
46357
  var batteryModePreference = param.batteryModePreference, colorPreference = param.colorPreference, locale = param.locale, navbarPreference = param.navbarPreference, pureSafeArea = param.pureSafeArea, safeArea = param.safeArea, safeAreaBottomTransparency = param.safeAreaBottomTransparency;
46353
46358
  var platform = getPlatformOS();
46354
46359
  var appVersion = getTossAppVersion();
46355
- var fontScale = (0, import_react_native217.useWindowDimensions)().fontScale;
46360
+ var fontScale = (0, import_react_native216.useWindowDimensions)().fontScale;
46356
46361
  var platformString = platform === "ios" ? "iPhone" : "Android phone";
46357
46362
  var fontA11y = mapFontScaleToCategory(fontScale, platform);
46358
46363
  var normalizedFontScale = convertToAndroidStyleScale(fontScale, platform);
@@ -46620,12 +46625,9 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46620
46625
  memoryDebugLog: webViewMemoryDebugLog,
46621
46626
  debugLog: function(event) {
46622
46627
  return _async_to_generator(function() {
46623
- var _NativeModules2_AppsInTossModule, _NativeModules2_TossCoreModule;
46624
46628
  return __generator(this, function(_state) {
46625
- (_NativeModules2_AppsInTossModule = import_react_native208.NativeModules.AppsInTossModule) === null || _NativeModules2_AppsInTossModule === void 0 ? void 0 : _NativeModules2_AppsInTossModule.eventLog(event);
46626
- (_NativeModules2_TossCoreModule = import_react_native208.NativeModules.TossCoreModule) === null || _NativeModules2_TossCoreModule === void 0 ? void 0 : _NativeModules2_TossCoreModule.eventLog({
46627
- params: event
46628
- });
46629
+ eventLog(event);
46630
+ INTERNAL__module.tossCoreEventLog(event);
46629
46631
  return [
46630
46632
  2
46631
46633
  ];
@@ -46664,7 +46666,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46664
46666
  webBackHandler.handleWebBack();
46665
46667
  return true;
46666
46668
  };
46667
- var subscription = import_react_native208.BackHandler.addEventListener("hardwareBackPress", callback);
46669
+ var subscription = import_react_native207.BackHandler.addEventListener("hardwareBackPress", callback);
46668
46670
  return function() {
46669
46671
  return subscription.remove();
46670
46672
  };
@@ -46686,12 +46688,12 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46686
46688
  onNavigationStateChange: function(event) {
46687
46689
  var _props_onNavigationStateChange;
46688
46690
  if (event.url) {
46689
- trackScreen(event.url);
46691
+ trackScreen(event.url, event.title);
46690
46692
  }
46691
46693
  (_props_onNavigationStateChange = props.onNavigationStateChange) === null || _props_onNavigationStateChange === void 0 ? void 0 : _props_onNavigationStateChange.call(props, event);
46692
46694
  webBackHandler.onNavigationStateChange(event);
46693
46695
  },
46694
- userAgent: import_react_native208.Platform.OS === "ios" ? userAgent : void 0,
46696
+ userAgent: import_react_native207.Platform.OS === "ios" ? userAgent : void 0,
46695
46697
  sharedCookiesEnabled: true,
46696
46698
  webviewDebuggingEnabled: webViewDebuggingEnabled,
46697
46699
  thirdPartyCookiesEnabled: true,
@@ -46701,7 +46703,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46701
46703
  handler.injectedJavaScript,
46702
46704
  t53
46703
46705
  ].join("\n"),
46704
- decelerationRate: import_react_native208.Platform.OS === "ios" ? 1 : void 0,
46706
+ decelerationRate: import_react_native207.Platform.OS === "ios" ? 1 : void 0,
46705
46707
  allowsBackForwardNavigationGestures,
46706
46708
  onShouldStartLoadWithRequest: function(event) {
46707
46709
  try {
@@ -46713,7 +46715,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46713
46715
  return true;
46714
46716
  } else {
46715
46717
  var _convertIntentURL;
46716
- import_react_native208.Linking.openURL((_convertIntentURL = convertIntentURL(url2)) !== null && _convertIntentURL !== void 0 ? _convertIntentURL : url2.href);
46718
+ import_react_native207.Linking.openURL((_convertIntentURL = convertIntentURL(url2)) !== null && _convertIntentURL !== void 0 ? _convertIntentURL : url2.href);
46717
46719
  return false;
46718
46720
  }
46719
46721
  } catch (error) {
@@ -46734,7 +46736,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46734
46736
  onRenderProcessGone: handleWebViewProcessDidTerminate
46735
46737
  }));
46736
46738
  }
46737
- var import_react_native184, import_react179, import_react180, import_react181, import_react182, import_jsx_runtime216, import_react183, import_jsx_runtime217, import_react184, import_react_native190, import_react185, import_react_native192, import_react186, import_react_native194, import_react187, import_react188, import_react189, import_react190, import_jsx_runtime218, import_jsx_runtime219, import_react191, import_react_native197, import_react192, import_react193, import_react194, import_react_native202, import_jsx_runtime220, import_jsx_runtime221, import_react_native204, import_jsx_runtime222, import_jsx_runtime223, import_jsx_runtime224, import_react195, import_jsx_runtime225, import_jsx_runtime226, import_react_native206, import_jsx_runtime227, import_jsx_runtime228, import_jsx_runtime229, import_react196, import_react_native208, import_react197, import_react_native209, import_react198, import_react_native211, import_jsx_runtime230, import_jsx_runtime231, import_react199, import_react200, import_jsx_runtime232, import_jsx_runtime233, import_react201, import_react202, import_react203, import_react204, import_react_native217, import_react205, import_react206, import_jsx_runtime234, import_react207, import_react_native220, import_react208, import_react_native221, import_jsx_runtime235, import_react209, import_react_native222, import_jsx_runtime236, import_jsx_runtime237, __GlobalEventDeduplicator, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __copyProps2, __reExport2, env, EXIT_IMPRESSION_LOG_NAME, EXIT_IMPRESSION_SCHEMA_ID, ENTRY_APP_EVENT_SCHEMA_ID, AppEvent, UPDATE_SCHEME, NavigationBarContext, GAME_PROFILE_WEBVIEW_URL, GAME_MIN_VERSION, PLAYSTORE_LINK, APPSTORE_LINK, getMarketLink, UPDATE_DIALOG_SCHEMA_ID, UPDATE_DIALOG_LOG_NAME, UPDATE_DIALOG_CTA_CLICK_SCHEMA_ID, UPDATE_DIALOG_CTA_CLICK_LOG_NAME, DEFAULT_ERROR, useErrorAlert, INTERNAL__onVisibilityChangedByTransparentServiceWeb, openTransparentWebView, useTransparentWebview, useGameProfileToast, useGameCenterProfile, Z_INDEX, GameInitializer, overlayStyle, EventEmitter, eventEmitter, homeEvent, safeAreaInsetsChange, NAVI_BAR_IMPRESSION_SCHEMA_ID, NAVI_BAR_IMPRESSION_LOG_NAME, CLOSE_POPUP_SHOW_SCHEMA_ID, CLOSE_POPUP_SHOW_LOG_NAME, CLOSE_BUTTON_CLICK_SCHEMA_ID, CLOSE_BUTTON_CLICK_LOG_NAME, CLOSE_POPUP_CTA_CLICK_SCHEMA_ID, CLOSE_POPUP_CTA_CLICK_LOG_NAME, HOME_BUTTON_CLICK_SCHEMA_ID, HOME_BUTTON_CLICK_LOG_NAME, BOTTOM_SHEET_SCHEMA_ID, BOTTOM_SHEET_LOG_NAME, BOTTOM_SHEET_OPEN_SCHEMA_ID, BOTTOM_SHEET_OPEN_LOG_NAME, BOTTOM_SHEET_CLOSE_CLICK_SCHEMA_ID, BOTTOM_SHEET_CLOSE_CLICK_LOG_NAME, BOTTOM_SHEET_MENU_CLICK_SCHEMA_ID, BOTTOM_SHEET_MENU_CLICK_LOG_NAME, iconNameRegExp, iconURLRegExp, SHARE_SCHEME_REFERRER, APP_SHARE_MENU_INFO, APP_BRIDGE_METHOD_NAME, MIN_VERSION, RNNavigationBar, bridge_entry_exports, AppsInToss, GameWebView, PartnerWebView, sessionId, ANDROID_FETCH_TOSS_AD_SUPPORTED_VERSION, IOS_FETCH_TOSS_AD_SUPPORTED_VERSION, UNSUPPORTED_ERROR_MESSAGE3, ENVIRONMENT3, OPERATIONAL_ENVIRONMENT, OS, APP_VER, ALPHA_EVENT_TRACKER_HTTP_ENDPOINT, LIVE_EVENT_TRACKER_HTTP_ENDPOINT, INTEGRATED_AD_SDK_VERSION, ANDROID_INTEGRATED_AD_SUPPORTED_VERSION, IOS_INTEGRATED_AD_SUPPORTED_VERSION, UNSUPPORTED_ERROR_MESSAGE22, INTG_AD_ADM_FALLBACK_RID_MAP, loadFullScreenAd, loadFullScreenAdForWeb, globalEventListenerMap, INITIAL_STATE, FontA11yCategory, androidFontScaleMap, iosScaleToAndroidScale, extractDateFromUUIDv7, getGroupId2, getReferrer22, trackScreen, operationalEnvironment, TYPES, WEBVIEW_TYPES, ERROR_CODES, _obj6, ERROR_MESSAGES, API_RESULT_ERROR_MAP, AD_STATUS_ERROR_MAP, GlobalEventDeduplicator, globalEventDeduplicator, styles3, styles22, styles32, Analytics2;
46739
+ var import_react_native184, import_react179, import_react180, import_react181, import_react182, import_jsx_runtime216, import_react183, import_jsx_runtime217, import_react184, import_react_native190, import_react185, import_react_native192, import_react186, import_react_native194, import_react187, import_react188, import_react189, import_react190, import_jsx_runtime218, import_jsx_runtime219, import_react191, import_react_native197, import_react192, import_react193, import_react194, import_react_native202, import_jsx_runtime220, import_jsx_runtime221, import_jsx_runtime222, import_jsx_runtime223, import_jsx_runtime224, import_react195, import_jsx_runtime225, import_jsx_runtime226, import_react_native205, import_jsx_runtime227, import_jsx_runtime228, import_jsx_runtime229, import_react196, import_react_native207, import_react197, import_react_native208, import_react198, import_react_native210, import_jsx_runtime230, import_jsx_runtime231, import_react199, import_react200, import_jsx_runtime232, import_jsx_runtime233, import_react201, import_react202, import_react203, import_react204, import_react_native216, import_react205, import_react206, import_jsx_runtime234, import_react207, import_react_native219, import_react208, import_react_native220, import_jsx_runtime235, import_react209, import_react_native221, import_jsx_runtime236, import_jsx_runtime237, __GlobalEventDeduplicator, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __copyProps2, __reExport2, env, EXIT_IMPRESSION_LOG_NAME, EXIT_IMPRESSION_SCHEMA_ID, ENTRY_APP_EVENT_SCHEMA_ID, AppEvent, UPDATE_SCHEME, NavigationBarContext, GAME_PROFILE_WEBVIEW_URL, GAME_MIN_VERSION, PLAYSTORE_LINK, APPSTORE_LINK, getMarketLink, UPDATE_DIALOG_SCHEMA_ID, UPDATE_DIALOG_LOG_NAME, UPDATE_DIALOG_CTA_CLICK_SCHEMA_ID, UPDATE_DIALOG_CTA_CLICK_LOG_NAME, DEFAULT_ERROR, useErrorAlert, INTERNAL__onVisibilityChangedByTransparentServiceWeb, openTransparentWebView, useTransparentWebview, useGameProfileToast, useGameCenterProfile, Z_INDEX, GameInitializer, overlayStyle, EventEmitter, eventEmitter, homeEvent, safeAreaInsetsChange, NAVI_BAR_IMPRESSION_SCHEMA_ID, NAVI_BAR_IMPRESSION_LOG_NAME, CLOSE_POPUP_SHOW_SCHEMA_ID, CLOSE_POPUP_SHOW_LOG_NAME, CLOSE_BUTTON_CLICK_SCHEMA_ID, CLOSE_BUTTON_CLICK_LOG_NAME, CLOSE_POPUP_CTA_CLICK_SCHEMA_ID, CLOSE_POPUP_CTA_CLICK_LOG_NAME, HOME_BUTTON_CLICK_SCHEMA_ID, HOME_BUTTON_CLICK_LOG_NAME, BOTTOM_SHEET_SCHEMA_ID, BOTTOM_SHEET_LOG_NAME, BOTTOM_SHEET_OPEN_SCHEMA_ID, BOTTOM_SHEET_OPEN_LOG_NAME, BOTTOM_SHEET_CLOSE_CLICK_SCHEMA_ID, BOTTOM_SHEET_CLOSE_CLICK_LOG_NAME, BOTTOM_SHEET_MENU_CLICK_SCHEMA_ID, BOTTOM_SHEET_MENU_CLICK_LOG_NAME, iconNameRegExp, iconURLRegExp, SHARE_SCHEME_REFERRER, APP_SHARE_MENU_INFO, APP_BRIDGE_METHOD_NAME, MIN_VERSION, RNNavigationBar, bridge_entry_exports, AppsInToss, GameWebView, PartnerWebView, sessionId, ANDROID_FETCH_TOSS_AD_SUPPORTED_VERSION, IOS_FETCH_TOSS_AD_SUPPORTED_VERSION, UNSUPPORTED_ERROR_MESSAGE3, ENVIRONMENT3, OPERATIONAL_ENVIRONMENT, OS, APP_VER, ALPHA_EVENT_TRACKER_HTTP_ENDPOINT, LIVE_EVENT_TRACKER_HTTP_ENDPOINT, INTEGRATED_AD_SDK_VERSION, ANDROID_INTEGRATED_AD_SUPPORTED_VERSION, IOS_INTEGRATED_AD_SUPPORTED_VERSION, UNSUPPORTED_ERROR_MESSAGE22, INTG_AD_ADM_FALLBACK_RID_MAP, loadFullScreenAd, loadFullScreenAdForWeb, globalEventListenerMap, INITIAL_STATE, FontA11yCategory, androidFontScaleMap, iosScaleToAndroidScale, extractDateFromUUIDv7, getGroupId2, getReferrer22, trackScreen, operationalEnvironment, TYPES, WEBVIEW_TYPES, ERROR_CODES, _obj6, ERROR_MESSAGES, API_RESULT_ERROR_MAP, AD_STATUS_ERROR_MAP, GlobalEventDeduplicator, globalEventDeduplicator, styles3, styles22, styles32, Analytics2;
46738
46740
  var init_dist8 = __esm({
46739
46741
  "../../../.yarn/__virtual__/@apps-in-toss-framework-virtual-afbad361af/1/packages/apps-in-toss/framework/dist/index.js"() {
46740
46742
  "use strict";
@@ -46826,7 +46828,6 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46826
46828
  import_jsx_runtime220 = __toESM(require_jsx_runtime(), 1);
46827
46829
  import_jsx_runtime221 = __toESM(require_jsx_runtime(), 1);
46828
46830
  init_dist5();
46829
- import_react_native204 = __toESM(require_react_native(), 1);
46830
46831
  import_jsx_runtime222 = __toESM(require_jsx_runtime(), 1);
46831
46832
  init_dist5();
46832
46833
  init_src3();
@@ -46838,7 +46839,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46838
46839
  init_react_native_safe_area_context();
46839
46840
  init_esm7();
46840
46841
  init_private2();
46841
- import_react_native206 = __toESM(require_react_native(), 1);
46842
+ import_react_native205 = __toESM(require_react_native(), 1);
46842
46843
  import_jsx_runtime227 = __toESM(require_jsx_runtime(), 1);
46843
46844
  init_async_bridges();
46844
46845
  init_constant_bridges2();
@@ -46855,18 +46856,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46855
46856
  init_esm7();
46856
46857
  init_private2();
46857
46858
  import_react196 = __toESM(require_react(), 1);
46858
- import_react_native208 = __toESM(require_react_native(), 1);
46859
+ import_react_native207 = __toESM(require_react_native(), 1);
46859
46860
  init_dist5();
46860
46861
  init_react_native_webview();
46861
46862
  import_react197 = __toESM(require_react(), 1);
46862
- import_react_native209 = __toESM(require_react_native(), 1);
46863
+ import_react_native208 = __toESM(require_react_native(), 1);
46863
46864
  init_react_native_safe_area_context();
46864
46865
  init_src3();
46865
46866
  init_esm7();
46866
46867
  init_private2();
46867
46868
  init_dist6();
46868
46869
  import_react198 = __toESM(require_react(), 1);
46869
- import_react_native211 = __toESM(require_react_native(), 1);
46870
+ import_react_native210 = __toESM(require_react_native(), 1);
46870
46871
  import_jsx_runtime230 = __toESM(require_jsx_runtime(), 1);
46871
46872
  import_jsx_runtime231 = __toESM(require_jsx_runtime(), 1);
46872
46873
  init_react_native_webview();
@@ -46894,7 +46895,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46894
46895
  import_react203 = __toESM(require_react(), 1);
46895
46896
  import_react204 = __toESM(require_react(), 1);
46896
46897
  init_dist5();
46897
- import_react_native217 = __toESM(require_react_native(), 1);
46898
+ import_react_native216 = __toESM(require_react_native(), 1);
46898
46899
  init_dist5();
46899
46900
  import_react205 = __toESM(require_react(), 1);
46900
46901
  import_react206 = __toESM(require_react(), 1);
@@ -46909,12 +46910,12 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46909
46910
  init_dist3();
46910
46911
  init_dist3();
46911
46912
  import_react207 = __toESM(require_react(), 1);
46912
- import_react_native220 = __toESM(require_react_native(), 1);
46913
+ import_react_native219 = __toESM(require_react_native(), 1);
46913
46914
  import_react208 = __toESM(require_react(), 1);
46914
- import_react_native221 = __toESM(require_react_native(), 1);
46915
+ import_react_native220 = __toESM(require_react_native(), 1);
46915
46916
  import_jsx_runtime235 = __toESM(require_jsx_runtime(), 1);
46916
46917
  import_react209 = __toESM(require_react(), 1);
46917
- import_react_native222 = __toESM(require_react_native(), 1);
46918
+ import_react_native221 = __toESM(require_react_native(), 1);
46918
46919
  import_jsx_runtime236 = __toESM(require_jsx_runtime(), 1);
46919
46920
  import_jsx_runtime237 = __toESM(require_jsx_runtime(), 1);
46920
46921
  __defProp2 = Object.defineProperty;
@@ -47524,7 +47525,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47524
47525
  };
47525
47526
  GameWebView = /* @__PURE__ */ (0, import_react197.forwardRef)(function GameWebView2(props, ref) {
47526
47527
  (0, import_react197.useEffect)(function() {
47527
- if (import_react_native209.Platform.OS === "ios") {
47528
+ if (import_react_native208.Platform.OS === "ios") {
47528
47529
  setIosSwipeGestureEnabled({
47529
47530
  isEnabled: false
47530
47531
  });
@@ -47668,7 +47669,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47668
47669
  return "";
47669
47670
  }
47670
47671
  };
47671
- trackScreen = function(url) {
47672
+ trackScreen = function(url, title) {
47672
47673
  var _getGroupId = getGroupId2(url), groupId = _getGroupId.groupId, search = _getGroupId.search;
47673
47674
  var log = {
47674
47675
  log_type: "screen",
@@ -47676,6 +47677,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47676
47677
  params: {
47677
47678
  search,
47678
47679
  referrer: getReferrer22(),
47680
+ document_title: title,
47679
47681
  deployment_id: env.getDeploymentId(),
47680
47682
  deployment_timestamp: extractDateFromUUIDv7(env.getDeploymentId()).getTime()
47681
47683
  }
@@ -47811,7 +47813,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47811
47813
  return _GlobalEventDeduplicator;
47812
47814
  }(), __GlobalEventDeduplicator.MAX_EVENTS = 1e4, __GlobalEventDeduplicator);
47813
47815
  globalEventDeduplicator = new GlobalEventDeduplicator();
47814
- styles3 = import_react_native221.StyleSheet.create({
47816
+ styles3 = import_react_native220.StyleSheet.create({
47815
47817
  pressable: {
47816
47818
  width: "100%"
47817
47819
  },
@@ -47849,7 +47851,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47849
47851
  height: 36,
47850
47852
  borderRadius: 18
47851
47853
  },
47852
- logoOverlay: _object_spread_props(_object_spread({}, import_react_native221.StyleSheet.absoluteFillObject), {
47854
+ logoOverlay: _object_spread_props(_object_spread({}, import_react_native220.StyleSheet.absoluteFillObject), {
47853
47855
  borderWidth: 1,
47854
47856
  borderRadius: 18
47855
47857
  }),
@@ -47911,7 +47913,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47911
47913
  fontWeight: "600",
47912
47914
  lineHeight: 22.5
47913
47915
  },
47914
- cardOverlay: _object_spread_props(_object_spread({}, import_react_native221.StyleSheet.absoluteFillObject), {
47916
+ cardOverlay: _object_spread_props(_object_spread({}, import_react_native220.StyleSheet.absoluteFillObject), {
47915
47917
  borderWidth: 2,
47916
47918
  borderRadius: 12,
47917
47919
  pointerEvents: "none"
@@ -47922,7 +47924,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47922
47924
  fontWeight: "400"
47923
47925
  }
47924
47926
  });
47925
- styles22 = import_react_native222.StyleSheet.create({
47927
+ styles22 = import_react_native221.StyleSheet.create({
47926
47928
  pressable: {
47927
47929
  width: "100%"
47928
47930
  },
@@ -47967,7 +47969,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
47967
47969
  width: "100%"
47968
47970
  }
47969
47971
  });
47970
- styles32 = import_react_native220.StyleSheet.create({
47972
+ styles32 = import_react_native219.StyleSheet.create({
47971
47973
  impressionArea: {
47972
47974
  width: "100%"
47973
47975
  },
@@ -48002,7 +48004,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
48002
48004
  }
48003
48005
  });
48004
48006
  function Index() {
48005
- return /* @__PURE__ */ (0, import_jsx_runtime238.jsx)(import_react_native223.View, {
48007
+ return /* @__PURE__ */ (0, import_jsx_runtime238.jsx)(import_react_native222.View, {
48006
48008
  style: {
48007
48009
  flex: 1
48008
48010
  },
@@ -48024,13 +48026,13 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
48024
48026
  })
48025
48027
  });
48026
48028
  }
48027
- var import_jsx_runtime238, import_react_native223;
48029
+ var import_jsx_runtime238, import_react_native222;
48028
48030
  var init_pages = __esm({
48029
48031
  "react-native/pages/index.tsx"() {
48030
48032
  "use strict";
48031
48033
  import_jsx_runtime238 = __toESM(require_jsx_runtime(), 1);
48032
48034
  init_dist8();
48033
- import_react_native223 = __toESM(require_react_native(), 1);
48035
+ import_react_native222 = __toESM(require_react_native(), 1);
48034
48036
  }
48035
48037
  });
48036
48038
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apps-in-toss/web-framework",
3
3
  "type": "module",
4
- "version": "2.0.3",
4
+ "version": "2.0.5",
5
5
  "description": "Web Framework for Apps In Toss",
6
6
  "scripts": {
7
7
  "typecheck": "tsc --noEmit",
@@ -86,13 +86,13 @@
86
86
  "zod": "3.24.4"
87
87
  },
88
88
  "dependencies": {
89
- "@apps-in-toss/bridge-core": "2.0.3",
90
- "@apps-in-toss/cli": "2.0.3",
91
- "@apps-in-toss/framework": "2.0.3",
92
- "@apps-in-toss/plugins": "2.0.3",
93
- "@apps-in-toss/web-analytics": "2.0.3",
94
- "@apps-in-toss/web-bridge": "2.0.3",
95
- "@apps-in-toss/web-config": "2.0.3",
89
+ "@apps-in-toss/bridge-core": "2.0.5",
90
+ "@apps-in-toss/cli": "2.0.5",
91
+ "@apps-in-toss/framework": "2.0.5",
92
+ "@apps-in-toss/plugins": "2.0.5",
93
+ "@apps-in-toss/web-analytics": "2.0.5",
94
+ "@apps-in-toss/web-bridge": "2.0.5",
95
+ "@apps-in-toss/web-config": "2.0.5",
96
96
  "@babel/core": "7.23.9",
97
97
  "@granite-js/cli": "1.0.4",
98
98
  "@granite-js/mpack": "1.0.4",