@apps-in-toss/web-framework 2.10.3 → 2.10.4

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.
@@ -45565,7 +45565,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45565
45565
  "../user-scripts/dist/index.mjs"() {
45566
45566
  "use strict";
45567
45567
  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';
45568
- t52 = '"use strict";(()=>{var Se=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`)}},A=new Se,X=()=>Math.random().toString(36).substring(2,15),Q=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=X(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(A.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(A.on(`${e}/reject/${r}`,i=>{o(),a(Q(i))})),A.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function M(e){return t=>{let r=X(),n=[A.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),A.on(`${e}/onError/${r}`,o=>{t.onError(Q(o))})];return A.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{A.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function E(e){return()=>A.getConstant(e)}var Ce=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=Ce());var Mt=d("closeView"),kt=d("generateHapticFeedback"),Ft=d("share"),Bt=d("setSecureScreen"),Gt=d("setScreenAwakeMode"),Ut=d("getNetworkStatus"),Vt=d("setIosSwipeGestureEnabled"),Ht=d("openURL"),Wt=d("openPermissionDialog"),$t=d("getPermission"),qt=d("requestPermission"),zt=E("setClipboardText"),Kt=E("getClipboardText"),jt=E("fetchContacts"),Jt=E("fetchAlbumPhotos"),Xt=E("getCurrentLocation"),Qt=E("openCamera"),Yt=d("appLogin"),Zt=d("getAnonymousKey"),er=d("eventLog"),tr=d("getTossShareLink"),rr=d("setDeviceOrientation"),nr=d("checkoutPayment"),or=d("requestTossPayPaysBilling"),sr=d("saveBase64Data"),ar=d("openPDFViewer"),ir=d("fetchAlbumItems"),dr=d("appsInTossSignTossCert"),cr=d("getGameCenterGameProfile"),ur=d("openGameCenterLeaderboard"),pr=d("submitGameCenterLeaderBoardScore"),lr=d("getUserKeyForGame"),mr=d("grantPromotionReward"),gr=d("grantPromotionRewardForGame"),fr=d("getIsTossLoginIntegratedService"),vr=d("getServerTime"),Er=d("getConsentedUserData"),hr=d("requestReview"),Ir=d("getDeclaredAgeRange"),Tr=E("getLocale"),Ar=E("getSchemeUri"),_r=E("getPlatformOS"),wr=E("getOperationalEnvironment"),Sr=E("getTossAppVersion"),Cr=E("getDeviceId"),br=E("getGroupId"),Rr=M("contactsViral"),yr=M("startUpdateLocation"),Lr=M("onVisibilityChangedByTransparentServiceWeb");var C=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},Y=class extends C{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},Z=class extends C{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ee=class extends C{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var W=class extends C{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},te=W,re=class extends C{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ne=class extends C{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var be=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`)}},_=new be,ge=()=>Math.random().toString(36).substring(2,15),fe=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=ge(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(_.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(_.on(`${e}/reject/${r}`,i=>{o(),a(fe(i))})),_.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function T(e){return t=>{let r=ge(),n=[_.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),_.on(`${e}/onError/${r}`,o=>{t.onError(fe(o))})];return _.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{_.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>_.getConstant(e)}var Gr={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},Re=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,oe=e=>["*","x","X"].includes(e),se=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},ye=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],Le=(e,t)=>{if(oe(e)||oe(t))return 0;let[r,n]=ye(se(e),se(t));return r>n?1:r<n?-1:0},ae=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(Re);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},ie=(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=Le(o,s);if(a!==0)return a}return 0},Pe=(e,t)=>{let r=ae(e),n=ae(t),o=r.pop(),s=n.pop(),a=ie(r,n);return a!==0?a:o&&s?ie(o.split("."),s.split(".")):o?-1:s?1:0};function $(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:Pe(r,o)>=0}function de(e){return c("processProductGrant")(e)}var Ur={createOneTimePurchaseOrder:e=>{let t=$({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=$({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?T("requestOneTimePurchase")({options:{sku:i},onEvent:async f=>{if(f.type==="purchased"){let u=await o.processProductGrant({orderId:f.data.orderId});await de({orderId:f.data.orderId,isProductGranted:u}).catch(a)}else s(f)},onError:f=>{a(f)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(u=>{Promise.resolve(o.processProductGrant({orderId:u.orderId})).then(()=>{s({type:"success",data:u})}).catch(v=>{a(v)})}).catch(u=>{a(u)}),r)},createSubscriptionPurchaseOrder:e=>{let t=$({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:g}=n;return T("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async u=>{if(u.type==="purchased"){let v=await g({orderId:u.data.orderId,subscriptionId:u.data.subscriptionId});await de({orderId:u.data.orderId,isProductGranted:v}).catch(s)}else o(u)},onError:u=>{s(u)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant"),getSubscriptionInfo:c("getSubscriptionInfo")},Vr=p("getSafeAreaInsets");var Hr=p("getSafeAreaInsets");var Wr={loadAppsInTossAdMob:Object.assign(T("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(T("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var $r={getDeploymentId:p("getDeploymentId")},qr=p("deploymentId"),zr=p("brandDisplayName"),Kr=p("brandIcon"),jr=p("brandPrimaryColor");var Jr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},Ne=c("requestPermission"),De=c("getPermission"),xe=c("openPermissionDialog");function R({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await Ne(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>De(e),n.openPermissionDialog=()=>xe(e),n}var Qr=R({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:Y}),Zr=R({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:Z}),tn=R({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:W}),nn=R({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:ee}),sn=R({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:ne}),dn=R({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:re}),Oe=c("getPermission"),Me=c("openPermissionDialog"),ve=e=>T("updateLocationEvent")({...e,onError:t=>{let r=new te;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ve.getPermission=()=>Oe({name:"geolocation",access:"access"});ve.openPermissionDialog=()=>Me({name:"geolocation",access:"access"});var un=Object.assign(T("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),pn=Object.assign(T("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),x=new WeakMap;function ke(e,t){let r=x.get(e);if(r)return r;let n=t(),o=!1,s={destroy(){o||(o=!0,x.get(e)===s&&x.delete(e),n.destroy())}};return x.set(e,s),s}function Fe(){x=new WeakMap}var m={NETWORK_ERROR:1001,INVALID_REQUEST:1002,NO_AD:1003,ERROR:1004,INVALID_SPACE:1005,SDK_NOT_INITIALIZED:1007,HTTP_TIMEOUT:1008,EXECUTION_FAIL:1009,INTERRUPTED:1010,FAIL:1011,BLOCKED:1012,TIMEOUT:1013,LIMITED_AD:1014,CONSENT_REQUIRED:1015,TEST_MODE:1016,INTERNAL_ERROR:1017},Be=new Set(["OK","TEST_MODE","NO_AD"]),Ge={HTTP_TIMEOUT:m.HTTP_TIMEOUT,NETWORK_ERROR:m.NETWORK_ERROR,EXECUTION_FAIL:m.EXECUTION_FAIL,INTERRUPTED:m.INTERRUPTED,INTERNAL_ERROR:m.ERROR,FAIL:m.FAIL},Ue={BLOCKED:m.BLOCKED,ERROR:m.ERROR,TIMEOUT:m.TIMEOUT,INVALID_SPACE:m.INVALID_SPACE,INVALID_REQUEST:m.INVALID_REQUEST,LIMITED_AD:m.LIMITED_AD,CONSENT_REQUIRED:m.CONSENT_REQUIRED},Ee=c("tossAdEventLog"),Ve="display_ads_all::error__banner";function ce(e){Ee({log_name:Ve,log_type:"debug",params:{error_code:e.errorCode,error_message:e.errorMessage,ad_group_id:e.adGroupId,mediation_id:e.mediationId,event_context_token:e.eventContextToken}}).catch(()=>{})}function b(e){if(e.endpointError){fetch(e.endpointError,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventContextToken:e.eventContextToken,mediationId:e.mediationId,errorCode:e.errorCode,errorMessage:e.errorMessage})}).catch(()=>ce(e));return}ce(e)}function He(e,t,r){if(e.resultType!=="SUCCESS"){b({adGroupId:t,errorCode:Ge[e.resultType]??m.INTERNAL_ERROR,errorMessage:e.error?.reason??e.resultType});return}let n=e.success;!n||Be.has(String(n.status))||b({adGroupId:t,errorCode:Ue[String(n.status)]??m.INTERNAL_ERROR,mediationId:r.mediationId,eventContextToken:r.eventContextToken,errorMessage:`Ad response status: ${n.status}`,endpointError:r.errorEndpoint})}async function We(e){e.type==="EVENT_TRACKING"&&await $e(e)}async function $e(e){if(e.urls.length===0)return;let t=JSON.stringify({type:e.eventName,data:e.eventPayload}),r={"Content-Type":"application/json"};e.requestId&&(r["X-Toss-RequestId"]=e.requestId);let o=(await Promise.allSettled(e.urls.map(s=>fetch(s,{method:"POST",headers:r,body:t}).then(a=>{if(!a.ok)throw new Error(`HTTP ${a.status}`)})))).filter(s=>s.status==="rejected").length;o!==0&&b({adGroupId:e.adGroupId,errorCode:m.NETWORK_ERROR,errorMessage:`EVENT_TRACKING failed: ${e.eventName} (${o}/${e.urls.length})`,mediationId:e.mediationId||void 0,eventContextToken:e.eventContextToken||void 0,endpointError:e.errorEndpoint})}var qe="1.4.1",ze="{{device}}",Ke={ios:"com.vivarepublica.cash",android:"viva.republica.toss"};function je(e){return Ke[e]}var he="1",Je="2",z=[he,Je],Xe=new Set(z);function ue(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>Xe.has(String(r.styleId))):[];return{requestId:e.requestId??"",eventContextToken:e.eventContextToken,status:e.status??"OK",ads:t,ext:e.ext}}function Qe(e){return Ye(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:ue(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Ze(e)?{resultType:"SUCCESS",success:ue(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function Ye(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Ze(e){return!!(e&&typeof e=="object"&&"ads"in e)}var et=c("openURL");function tt(e){let t=rt(e);return et(t)}function rt(e){return["http://","https://"].some(r=>e.startsWith(r))?nt(e):e}function nt(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}async function ot(e,t,r){let n=e.success?.status;if(e.resultType!=="SUCCESS"||n!=="OK"&&n!=="TEST_MODE"||r.resultEndpoint==null||r.mediationId==null)return;let o={mediationId:r.mediationId,spaceUnitId:t,requestId:e.success?.requestId??"",eventContextToken:r.eventContextToken,winnerSource:"TOSS",content:null,adUnitId:r.adUnitId??null,placementId:r.placementId??null,tossFailed:null};try{let s=await fetch(r.resultEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!s.ok)throw new Error(`HTTP ${s.status}`)}catch(s){b({adGroupId:t,errorCode:m.NETWORK_ERROR,errorMessage:`RESULT_TRACKING failed: ${s instanceof Error?s.message:String(s)}`,mediationId:r.mediationId,eventContextToken:r.eventContextToken,endpointError:r.errorEndpoint})}}var pe="https://static.toss.im/ads/sdk/toss-ads-space-kit-3.1.0.js",le=15e3,k=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function st(){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(k)return k;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(g),k=null},a=()=>{let f=S();if(f){s(),r(f);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 ${pe}.`))},g=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${le}ms.`))},le);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=pe,document.head.appendChild(o)});return k=t,t}var at={name:"@apps-in-toss/web-bridge",type:"module",version:"2.10.3",description:"Web Bridge for Apps In Toss",scripts:{typecheck:"tsc --noEmit",lint:"eslint .",build:"tsup"},main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}}},files:["dist"],dependencies:{"@apps-in-toss/types":"workspace:*"},devDependencies:{"@apps-in-toss/bridge-core":"workspace:*","@apps-in-toss/native-modules":"workspace:^","@swc/core":"^1.12.7",picocolors:"^1.1.1","ts-morph":"^26.0.0",tsup:"^8.5.0",typescript:"5.8.3",vitest:"^3.1.2"}},it=at.version;function N(e){return typeof e=="string"&&e.length>0?e:void 0}function dt(e){let t=e?.ext?.mediation;return{mediationId:N(t?.mediationId),eventContextToken:N(e?.eventContextToken),resultEndpoint:N(t?.endpoint?.result),errorEndpoint:N(t?.endpoint?.error),adUnitId:N(t?.admob?.adUnitId),placementId:typeof t?.admob?.placementId=="number"?t.admob.placementId:void 0}}var w=Object.assign(T("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Ie=Object.assign(T("fetchAppsInTossAd"),{isSupported:p("fetchAppsInTossAd_isSupported")}),ct=p("getPlatformOS"),ut=p("getTossAppVersion"),pt="108",K="\\uC798\\uBABB\\uB41C \\uC694\\uCCAD\\uC774\\uC5D0\\uC694. \\uD544\\uC694\\uD55C \\uAC12\\uC774 \\uBE44\\uC5B4 \\uC788\\uC5B4\\uC694.";function F(e){return e.trim()}function j(){return new Error(K)}function lt(){return{resultType:"FAIL",error:{reason:K}}}function mt(e){return new Promise((t,r)=>{if(!w.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}let n=F(e.adGroupId);if(n.length===0){r(j());return}return w({options:{...e,adGroupId:n},onEvent:t,onError:r})})}function gt(){return globalThis.__granite?.app?.name??""}function ft(e){let t=ct(),r=ut(),n={specVersion:qe,platform:"WEB",spaceUnitId:e,sdkVersion:it,availableStyleIds:z,device:ze,app:{version:r,bundle:je(t),subBundle:gt()}};return new Promise((o,s)=>{Ie({options:n,onEvent:o,onError:s})})}function vt(){return async(e,t)=>{let r=F(t.spaceUnitId);if(r.length===0)return b({adGroupId:r,errorCode:m.INVALID_SPACE,errorMessage:K}),lt();try{let n=Ie.isSupported()?await ft(r):await mt({adGroupId:r,sdkId:pt,availableStyleIds:z}),o=Qe(n),s=dt(o.success);return He(o,r,s),ot(o,r,s),o}catch(n){let o=n instanceof Error?n.message:"Unknown fetchTossAd error";return b({adGroupId:r,errorCode:m.NETWORK_ERROR,errorMessage:o}),{resultType:"FAIL",error:{reason:o}}}}}var D=null;function Et(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(D!=null){D.then(r).catch(n);return}let s=st().then(a=>{if(a.isInitialized())return;let g={environment:"live",customAdFetcher:vt(),opener:tt,onTrackingRequest:We};a.init(g)});D=s,s.then(r).catch(n).finally(()=>{D===s&&(D=null)})}function ht(e,t,r={}){let{callbacks:n}=r,o=F(e),s=a=>{let i=a instanceof Error?a:new Error(String(a));n?.onAdFailedToRender?.({slotId:"",adGroupId:o,adMetadata:{},error:{code:0,message:i.message}})};try{let a=o;if(a.length===0)throw j();let i=S();if(!i)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!i.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let g=typeof t=="string"?document.querySelector(t):t;if(!g)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:a,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:Ae(o,r.callbacks)};i.banner.createSlot(g,f)}catch(a){s(a)}}var It="16px 20px",Tt="20px",At="auto",_t="blackAndWhite",wt="expanded",h="toss-ads-attach",me="toss-ads-attach-style",Te="data-toss-ads-attach-banner-wrapper",q=\'"Toss Product Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif\';function St(e){let t=e.ownerDocument;if(!t||t.getElementById(me))return;let r=t.createElement("style");r.id=me,r.textContent=`\n .${h},\n .${h} * {\n font-family: ${q};\n font-style: normal;\n }\n .${h} { background: #ffffff; }\n .${h}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${h} { background: #17171c; }\n .${h}.toss-ads-tone-grey { background: #101013; }\n }\n .${h}.toss-ads-theme-light { background: #ffffff; }\n .${h}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${h}.toss-ads-theme-dark { background: #17171c; }\n .${h}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function Ct(e){Array.from(e.children).forEach(t=>{t instanceof HTMLElement&&t.getAttribute(Te)==="true"&&e.removeChild(t)})}function bt(e,t,r={}){let{callbacks:n,theme:o=At,tone:s=_t,variant:a=wt}=r,i=F(e),g=u=>{let v=u instanceof Error?u:new Error(String(u));n?.onAdFailedToRender?.({slotId:"",adGroupId:i,adMetadata:{},error:{code:0,message:v.message}})},f=Ae(i,n);try{let u=i;if(u.length===0)throw j();let v=S();if(!v)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!v.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let P=typeof t=="string"?document.querySelector(t):t;if(!P)throw new Error(`[toss-ad] Failed to find target element: ${t}`);return ke(P,()=>{let l=document.createElement("div");l.style.width="100%",l.style.height="100%",l.style.boxSizing="border-box",l.style.display="flex",l.style.flexDirection="column",l.style.fontFamily=q,l.style.fontStyle="normal",l.style.justifyContent="center",l.style.overflow="hidden",l.setAttribute(Te,"true"),a==="card"&&(l.style.padding="0 10px");let I=document.createElement("div");I.classList.add(h),I.style.fontFamily=q,I.style.fontStyle="normal",s==="grey"&&I.classList.add("toss-ads-tone-grey"),o==="light"?I.classList.add("toss-ads-theme-light"):o==="dark"&&I.classList.add("toss-ads-theme-dark"),a==="card"&&(I.style.borderRadius="16px",I.style.overflow="hidden"),l.appendChild(I);let O=!1,J=null;try{St(P),Ct(P),P.appendChild(l),O=!0;let H={spaceId:u,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:we=>we===he?It:Tt,callbacks:f};J=v.banner.createSlot(I,H)}catch(H){throw O&&l.parentNode&&l.parentNode.removeChild(l),H}return{destroy(){J?.destroy(),O&&l.parentNode&&l.parentNode.removeChild(l),O=!1}}})}catch(u){return g(u),{destroy(){}}}}function Rt(e){let t=S();t?.banner&&t.banner.destroy(e)}function yt(){let e=S();e?.banner&&(e.banner.destroyAll(),Fe())}function Ae(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=>{Ee({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 ln={initialize:Object.assign(Et,{isSupported:w.isSupported}),attach:Object.assign(ht,{isSupported:w.isSupported}),attachBanner:Object.assign(bt,{isSupported:w.isSupported}),destroy:Object.assign(Rt,{isSupported:w.isSupported}),destroyAll:Object.assign(yt,{isSupported:w.isSupported})},mn=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")}),gn=Object.assign(c("requestReview"),{isSupported:p("requestReview_isSupported")});var fn=Object.assign(c("getDeclaredAgeRange"),{isSupported:p("getDeclaredAgeRange_isSupported")});var B=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 G=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 G,debugLogger:new B};var y=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function U(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)}),U(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!y.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let f=i.headers.get("ETag"),u=i.headers.get("Last-Modified");f&&s.headers.set("If-None-Match",f),u&&s.headers.set("If-Modified-Since",u);let v=await r.call(n,s);return v.status===304?(i.__revalidateResponse=v,i):(a.put(s,v.clone()),v)}let g=await r.call(n,s);return a.put(s,g.clone()),g})})();U(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 _e=window.__appsInToss.debugLogger;_e.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}:{};_e.log("load_complete",{isNavigationDebugSupported:r,...n})});function L(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:L(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:L(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:L(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})=>{y.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(!y.test(n.url))return;let a=await s.clone().blob().then(g=>L(g.size/1024,2)).catch(g=>(r({request:n,requestAt:o,error:g}),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})=>{y.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var V=[];function Lt(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){V.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function Pt(){if(V.length===0)return;let e=V;V=[];let t=Nt(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 Nt(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>Lt(),1e3);setInterval(()=>Pt(),3e5);})();\n';
45568
+ t52 = '"use strict";(()=>{var Se=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`)}},A=new Se,X=()=>Math.random().toString(36).substring(2,15),Q=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=X(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(A.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(A.on(`${e}/reject/${r}`,i=>{o(),a(Q(i))})),A.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function M(e){return t=>{let r=X(),n=[A.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),A.on(`${e}/onError/${r}`,o=>{t.onError(Q(o))})];return A.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{A.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function E(e){return()=>A.getConstant(e)}var Ce=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=Ce());var Mt=d("closeView"),kt=d("generateHapticFeedback"),Ft=d("share"),Bt=d("setSecureScreen"),Gt=d("setScreenAwakeMode"),Ut=d("getNetworkStatus"),Vt=d("setIosSwipeGestureEnabled"),Ht=d("openURL"),Wt=d("openPermissionDialog"),$t=d("getPermission"),qt=d("requestPermission"),zt=E("setClipboardText"),Kt=E("getClipboardText"),jt=E("fetchContacts"),Jt=E("fetchAlbumPhotos"),Xt=E("getCurrentLocation"),Qt=E("openCamera"),Yt=d("appLogin"),Zt=d("getAnonymousKey"),er=d("eventLog"),tr=d("getTossShareLink"),rr=d("setDeviceOrientation"),nr=d("checkoutPayment"),or=d("requestTossPayPaysBilling"),sr=d("saveBase64Data"),ar=d("openPDFViewer"),ir=d("fetchAlbumItems"),dr=d("appsInTossSignTossCert"),cr=d("getGameCenterGameProfile"),ur=d("openGameCenterLeaderboard"),pr=d("submitGameCenterLeaderBoardScore"),lr=d("getUserKeyForGame"),mr=d("grantPromotionReward"),gr=d("grantPromotionRewardForGame"),fr=d("getIsTossLoginIntegratedService"),vr=d("getServerTime"),Er=d("getConsentedUserData"),hr=d("requestReview"),Ir=d("getDeclaredAgeRange"),Tr=E("getLocale"),Ar=E("getSchemeUri"),_r=E("getPlatformOS"),wr=E("getOperationalEnvironment"),Sr=E("getTossAppVersion"),Cr=E("getDeviceId"),br=E("getGroupId"),Rr=M("contactsViral"),yr=M("startUpdateLocation"),Lr=M("onVisibilityChangedByTransparentServiceWeb");var C=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},Y=class extends C{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},Z=class extends C{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ee=class extends C{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var W=class extends C{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},te=W,re=class extends C{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ne=class extends C{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var be=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`)}},_=new be,ge=()=>Math.random().toString(36).substring(2,15),fe=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=ge(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(_.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(_.on(`${e}/reject/${r}`,i=>{o(),a(fe(i))})),_.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function T(e){return t=>{let r=ge(),n=[_.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),_.on(`${e}/onError/${r}`,o=>{t.onError(fe(o))})];return _.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{_.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>_.getConstant(e)}var Gr={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},Re=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,oe=e=>["*","x","X"].includes(e),se=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},ye=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],Le=(e,t)=>{if(oe(e)||oe(t))return 0;let[r,n]=ye(se(e),se(t));return r>n?1:r<n?-1:0},ae=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(Re);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},ie=(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=Le(o,s);if(a!==0)return a}return 0},Pe=(e,t)=>{let r=ae(e),n=ae(t),o=r.pop(),s=n.pop(),a=ie(r,n);return a!==0?a:o&&s?ie(o.split("."),s.split(".")):o?-1:s?1:0};function $(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:Pe(r,o)>=0}function de(e){return c("processProductGrant")(e)}var Ur={createOneTimePurchaseOrder:e=>{let t=$({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=$({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?T("requestOneTimePurchase")({options:{sku:i},onEvent:async f=>{if(f.type==="purchased"){let u=await o.processProductGrant({orderId:f.data.orderId});await de({orderId:f.data.orderId,isProductGranted:u}).catch(a)}else s(f)},onError:f=>{a(f)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(u=>{Promise.resolve(o.processProductGrant({orderId:u.orderId})).then(()=>{s({type:"success",data:u})}).catch(v=>{a(v)})}).catch(u=>{a(u)}),r)},createSubscriptionPurchaseOrder:e=>{let t=$({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:g}=n;return T("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async u=>{if(u.type==="purchased"){let v=await g({orderId:u.data.orderId,subscriptionId:u.data.subscriptionId});await de({orderId:u.data.orderId,isProductGranted:v}).catch(s)}else o(u)},onError:u=>{s(u)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant"),getSubscriptionInfo:c("getSubscriptionInfo")},Vr=p("getSafeAreaInsets");var Hr=p("getSafeAreaInsets");var Wr={loadAppsInTossAdMob:Object.assign(T("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(T("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var $r={getDeploymentId:p("getDeploymentId")},qr=p("deploymentId"),zr=p("brandDisplayName"),Kr=p("brandIcon"),jr=p("brandPrimaryColor");var Jr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},Ne=c("requestPermission"),De=c("getPermission"),xe=c("openPermissionDialog");function R({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await Ne(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>De(e),n.openPermissionDialog=()=>xe(e),n}var Qr=R({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:Y}),Zr=R({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:Z}),tn=R({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:W}),nn=R({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:ee}),sn=R({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:ne}),dn=R({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:re}),Oe=c("getPermission"),Me=c("openPermissionDialog"),ve=e=>T("updateLocationEvent")({...e,onError:t=>{let r=new te;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ve.getPermission=()=>Oe({name:"geolocation",access:"access"});ve.openPermissionDialog=()=>Me({name:"geolocation",access:"access"});var un=Object.assign(T("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),pn=Object.assign(T("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),x=new WeakMap;function ke(e,t){let r=x.get(e);if(r)return r;let n=t(),o=!1,s={destroy(){o||(o=!0,x.get(e)===s&&x.delete(e),n.destroy())}};return x.set(e,s),s}function Fe(){x=new WeakMap}var m={NETWORK_ERROR:1001,INVALID_REQUEST:1002,NO_AD:1003,ERROR:1004,INVALID_SPACE:1005,SDK_NOT_INITIALIZED:1007,HTTP_TIMEOUT:1008,EXECUTION_FAIL:1009,INTERRUPTED:1010,FAIL:1011,BLOCKED:1012,TIMEOUT:1013,LIMITED_AD:1014,CONSENT_REQUIRED:1015,TEST_MODE:1016,INTERNAL_ERROR:1017},Be=new Set(["OK","TEST_MODE","NO_AD"]),Ge={HTTP_TIMEOUT:m.HTTP_TIMEOUT,NETWORK_ERROR:m.NETWORK_ERROR,EXECUTION_FAIL:m.EXECUTION_FAIL,INTERRUPTED:m.INTERRUPTED,INTERNAL_ERROR:m.ERROR,FAIL:m.FAIL},Ue={BLOCKED:m.BLOCKED,ERROR:m.ERROR,TIMEOUT:m.TIMEOUT,INVALID_SPACE:m.INVALID_SPACE,INVALID_REQUEST:m.INVALID_REQUEST,LIMITED_AD:m.LIMITED_AD,CONSENT_REQUIRED:m.CONSENT_REQUIRED},Ee=c("tossAdEventLog"),Ve="display_ads_all::error__banner";function ce(e){Ee({log_name:Ve,log_type:"debug",params:{error_code:e.errorCode,error_message:e.errorMessage,ad_group_id:e.adGroupId,mediation_id:e.mediationId,event_context_token:e.eventContextToken}}).catch(()=>{})}function b(e){if(e.endpointError){fetch(e.endpointError,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventContextToken:e.eventContextToken,mediationId:e.mediationId,errorCode:e.errorCode,errorMessage:e.errorMessage})}).catch(()=>ce(e));return}ce(e)}function He(e,t,r){if(e.resultType!=="SUCCESS"){b({adGroupId:t,errorCode:Ge[e.resultType]??m.INTERNAL_ERROR,errorMessage:e.error?.reason??e.resultType});return}let n=e.success;!n||Be.has(String(n.status))||b({adGroupId:t,errorCode:Ue[String(n.status)]??m.INTERNAL_ERROR,mediationId:r.mediationId,eventContextToken:r.eventContextToken,errorMessage:`Ad response status: ${n.status}`,endpointError:r.errorEndpoint})}async function We(e){e.type==="EVENT_TRACKING"&&await $e(e)}async function $e(e){if(e.urls.length===0)return;let t=JSON.stringify({type:e.eventName,data:e.eventPayload}),r={"Content-Type":"application/json"};e.requestId&&(r["X-Toss-RequestId"]=e.requestId);let o=(await Promise.allSettled(e.urls.map(s=>fetch(s,{method:"POST",headers:r,body:t}).then(a=>{if(!a.ok)throw new Error(`HTTP ${a.status}`)})))).filter(s=>s.status==="rejected").length;o!==0&&b({adGroupId:e.adGroupId,errorCode:m.NETWORK_ERROR,errorMessage:`EVENT_TRACKING failed: ${e.eventName} (${o}/${e.urls.length})`,mediationId:e.mediationId||void 0,eventContextToken:e.eventContextToken||void 0,endpointError:e.errorEndpoint})}var qe="1.4.1",ze="{{device}}",Ke={ios:"com.vivarepublica.cash",android:"viva.republica.toss"};function je(e){return Ke[e]}var he="1",Je="2",z=[he,Je],Xe=new Set(z);function ue(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>Xe.has(String(r.styleId))):[];return{requestId:e.requestId??"",eventContextToken:e.eventContextToken,status:e.status??"OK",ads:t,ext:e.ext}}function Qe(e){return Ye(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:ue(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Ze(e)?{resultType:"SUCCESS",success:ue(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function Ye(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Ze(e){return!!(e&&typeof e=="object"&&"ads"in e)}var et=c("openURL");function tt(e){let t=rt(e);return et(t)}function rt(e){return["http://","https://"].some(r=>e.startsWith(r))?nt(e):e}function nt(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}async function ot(e,t,r){let n=e.success?.status;if(e.resultType!=="SUCCESS"||n!=="OK"&&n!=="TEST_MODE"||r.resultEndpoint==null||r.mediationId==null)return;let o={mediationId:r.mediationId,spaceUnitId:t,requestId:e.success?.requestId??"",eventContextToken:r.eventContextToken,winnerSource:"TOSS",content:null,adUnitId:r.adUnitId??null,placementId:r.placementId??null,tossFailed:null};try{let s=await fetch(r.resultEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!s.ok)throw new Error(`HTTP ${s.status}`)}catch(s){b({adGroupId:t,errorCode:m.NETWORK_ERROR,errorMessage:`RESULT_TRACKING failed: ${s instanceof Error?s.message:String(s)}`,mediationId:r.mediationId,eventContextToken:r.eventContextToken,endpointError:r.errorEndpoint})}}var pe="https://static.toss.im/ads/sdk/toss-ads-space-kit-3.1.0.js",le=15e3,k=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function st(){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(k)return k;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(g),k=null},a=()=>{let f=S();if(f){s(),r(f);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 ${pe}.`))},g=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${le}ms.`))},le);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=pe,document.head.appendChild(o)});return k=t,t}var at={name:"@apps-in-toss/web-bridge",type:"module",version:"2.10.4",description:"Web Bridge for Apps In Toss",scripts:{typecheck:"tsc --noEmit",lint:"eslint .",build:"tsup"},main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}}},files:["dist"],dependencies:{"@apps-in-toss/types":"workspace:*"},devDependencies:{"@apps-in-toss/bridge-core":"workspace:*","@apps-in-toss/native-modules":"workspace:^","@swc/core":"^1.12.7",picocolors:"^1.1.1","ts-morph":"^26.0.0",tsup:"^8.5.0",typescript:"5.8.3",vitest:"^3.1.2"}},it=at.version;function N(e){return typeof e=="string"&&e.length>0?e:void 0}function dt(e){let t=e?.ext?.mediation;return{mediationId:N(t?.mediationId),eventContextToken:N(e?.eventContextToken),resultEndpoint:N(t?.endpoint?.result),errorEndpoint:N(t?.endpoint?.error),adUnitId:N(t?.admob?.adUnitId),placementId:typeof t?.admob?.placementId=="number"?t.admob.placementId:void 0}}var w=Object.assign(T("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Ie=Object.assign(T("fetchAppsInTossAd"),{isSupported:p("fetchAppsInTossAd_isSupported")}),ct=p("getPlatformOS"),ut=p("getTossAppVersion"),pt="108",K="\\uC798\\uBABB\\uB41C \\uC694\\uCCAD\\uC774\\uC5D0\\uC694. \\uD544\\uC694\\uD55C \\uAC12\\uC774 \\uBE44\\uC5B4 \\uC788\\uC5B4\\uC694.";function F(e){return e.trim()}function j(){return new Error(K)}function lt(){return{resultType:"FAIL",error:{reason:K}}}function mt(e){return new Promise((t,r)=>{if(!w.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}let n=F(e.adGroupId);if(n.length===0){r(j());return}return w({options:{...e,adGroupId:n},onEvent:t,onError:r})})}function gt(){return globalThis.__granite?.app?.name??""}function ft(e){let t=ct(),r=ut(),n={specVersion:qe,platform:"WEB",spaceUnitId:e,sdkVersion:it,availableStyleIds:z,device:ze,app:{version:r,bundle:je(t),subBundle:gt()}};return new Promise((o,s)=>{Ie({options:n,onEvent:o,onError:s})})}function vt(){return async(e,t)=>{let r=F(t.spaceUnitId);if(r.length===0)return b({adGroupId:r,errorCode:m.INVALID_SPACE,errorMessage:K}),lt();try{let n=Ie.isSupported()?await ft(r):await mt({adGroupId:r,sdkId:pt,availableStyleIds:z}),o=Qe(n),s=dt(o.success);return He(o,r,s),ot(o,r,s),o}catch(n){let o=n instanceof Error?n.message:"Unknown fetchTossAd error";return b({adGroupId:r,errorCode:m.NETWORK_ERROR,errorMessage:o}),{resultType:"FAIL",error:{reason:o}}}}}var D=null;function Et(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(D!=null){D.then(r).catch(n);return}let s=st().then(a=>{if(a.isInitialized())return;let g={environment:"live",customAdFetcher:vt(),opener:tt,onTrackingRequest:We};a.init(g)});D=s,s.then(r).catch(n).finally(()=>{D===s&&(D=null)})}function ht(e,t,r={}){let{callbacks:n}=r,o=F(e),s=a=>{let i=a instanceof Error?a:new Error(String(a));n?.onAdFailedToRender?.({slotId:"",adGroupId:o,adMetadata:{},error:{code:0,message:i.message}})};try{let a=o;if(a.length===0)throw j();let i=S();if(!i)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!i.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let g=typeof t=="string"?document.querySelector(t):t;if(!g)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:a,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:Ae(o,r.callbacks)};i.banner.createSlot(g,f)}catch(a){s(a)}}var It="16px 20px",Tt="20px",At="auto",_t="blackAndWhite",wt="expanded",h="toss-ads-attach",me="toss-ads-attach-style",Te="data-toss-ads-attach-banner-wrapper",q=\'"Toss Product Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif\';function St(e){let t=e.ownerDocument;if(!t||t.getElementById(me))return;let r=t.createElement("style");r.id=me,r.textContent=`\n .${h},\n .${h} * {\n font-family: ${q};\n font-style: normal;\n }\n .${h} { background: #ffffff; }\n .${h}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${h} { background: #17171c; }\n .${h}.toss-ads-tone-grey { background: #101013; }\n }\n .${h}.toss-ads-theme-light { background: #ffffff; }\n .${h}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${h}.toss-ads-theme-dark { background: #17171c; }\n .${h}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function Ct(e){Array.from(e.children).forEach(t=>{t instanceof HTMLElement&&t.getAttribute(Te)==="true"&&e.removeChild(t)})}function bt(e,t,r={}){let{callbacks:n,theme:o=At,tone:s=_t,variant:a=wt}=r,i=F(e),g=u=>{let v=u instanceof Error?u:new Error(String(u));n?.onAdFailedToRender?.({slotId:"",adGroupId:i,adMetadata:{},error:{code:0,message:v.message}})},f=Ae(i,n);try{let u=i;if(u.length===0)throw j();let v=S();if(!v)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!v.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let P=typeof t=="string"?document.querySelector(t):t;if(!P)throw new Error(`[toss-ad] Failed to find target element: ${t}`);return ke(P,()=>{let l=document.createElement("div");l.style.width="100%",l.style.height="100%",l.style.boxSizing="border-box",l.style.display="flex",l.style.flexDirection="column",l.style.fontFamily=q,l.style.fontStyle="normal",l.style.justifyContent="center",l.style.overflow="hidden",l.setAttribute(Te,"true"),a==="card"&&(l.style.padding="0 10px");let I=document.createElement("div");I.classList.add(h),I.style.fontFamily=q,I.style.fontStyle="normal",s==="grey"&&I.classList.add("toss-ads-tone-grey"),o==="light"?I.classList.add("toss-ads-theme-light"):o==="dark"&&I.classList.add("toss-ads-theme-dark"),a==="card"&&(I.style.borderRadius="16px",I.style.overflow="hidden"),l.appendChild(I);let O=!1,J=null;try{St(P),Ct(P),P.appendChild(l),O=!0;let H={spaceId:u,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:we=>we===he?It:Tt,callbacks:f};J=v.banner.createSlot(I,H)}catch(H){throw O&&l.parentNode&&l.parentNode.removeChild(l),H}return{destroy(){J?.destroy(),O&&l.parentNode&&l.parentNode.removeChild(l),O=!1}}})}catch(u){return g(u),{destroy(){}}}}function Rt(e){let t=S();t?.banner&&t.banner.destroy(e)}function yt(){let e=S();e?.banner&&(e.banner.destroyAll(),Fe())}function Ae(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=>{Ee({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 ln={initialize:Object.assign(Et,{isSupported:w.isSupported}),attach:Object.assign(ht,{isSupported:w.isSupported}),attachBanner:Object.assign(bt,{isSupported:w.isSupported}),destroy:Object.assign(Rt,{isSupported:w.isSupported}),destroyAll:Object.assign(yt,{isSupported:w.isSupported})},mn=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")}),gn=Object.assign(c("requestReview"),{isSupported:p("requestReview_isSupported")});var fn=Object.assign(c("getDeclaredAgeRange"),{isSupported:p("getDeclaredAgeRange_isSupported")});var B=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 G=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 G,debugLogger:new B};var y=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function U(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)}),U(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!y.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let f=i.headers.get("ETag"),u=i.headers.get("Last-Modified");f&&s.headers.set("If-None-Match",f),u&&s.headers.set("If-Modified-Since",u);let v=await r.call(n,s);return v.status===304?(i.__revalidateResponse=v,i):(a.put(s,v.clone()),v)}let g=await r.call(n,s);return a.put(s,g.clone()),g})})();U(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 _e=window.__appsInToss.debugLogger;_e.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}:{};_e.log("load_complete",{isNavigationDebugSupported:r,...n})});function L(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:L(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:L(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:L(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})=>{y.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(!y.test(n.url))return;let a=await s.clone().blob().then(g=>L(g.size/1024,2)).catch(g=>(r({request:n,requestAt:o,error:g}),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})=>{y.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var V=[];function Lt(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){V.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function Pt(){if(V.length===0)return;let e=V;V=[];let t=Nt(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 Nt(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>Lt(),1e3);setInterval(()=>Pt(),3e5);})();\n';
45569
45569
  }
45570
45570
  });
45571
45571
 
@@ -46410,8 +46410,6 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46410
46410
  alignItems: "center",
46411
46411
  gap: 6,
46412
46412
  height: 34,
46413
- paddingLeft: 10,
46414
- paddingRight: 10,
46415
46413
  backgroundColor: theme === "light" ? pd.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
46416
46414
  borderRadius: 99
46417
46415
  },
@@ -46430,7 +46428,8 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46430
46428
  style: {
46431
46429
  flexDirection: "row",
46432
46430
  alignItems: "center",
46433
- gap: 6
46431
+ gap: 6,
46432
+ paddingHorizontal: 10
46434
46433
  },
46435
46434
  children: [
46436
46435
  iconUrl != null && iconUrl !== "" && (0, import_jsx_runtime224.jsx)(import_react_native209.View, {
@@ -46569,17 +46568,14 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46569
46568
  });
46570
46569
  }
46571
46570
  function DefaultNavigationBar() {
46572
- var _ref, _ref1, _ref2, _ref3, _ref4;
46571
+ var _ref, _ref1, _ref2, _ref3;
46573
46572
  var globals = getAppsInTossGlobals();
46574
46573
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
46575
46574
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
46576
46575
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
46577
46576
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
46578
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
46579
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
46580
- var iconURL = withIcon ? globals.brandIcon : void 0;
46581
- var title = withTitle ? globals.brandDisplayName : void 0;
46582
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
46577
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
46578
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
46583
46579
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
46584
46580
  var navigationEvent = useNavigationEvent();
46585
46581
  useHardwareBackPress(navigationEvent.handleBack);
@@ -46590,18 +46586,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46590
46586
  theme,
46591
46587
  onPress: navigationEvent.handleBack
46592
46588
  }) : null,
46593
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
46589
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
46594
46590
  theme,
46595
46591
  onPress: navigationEvent.handleHomeButtonClick,
46596
46592
  children: (0, import_jsx_runtime227.jsx)(AppTitle, {
46597
46593
  theme,
46598
- title,
46599
- iconUrl: iconURL
46594
+ title: globals.brandDisplayName,
46595
+ iconUrl: globals.brandIcon
46600
46596
  })
46601
46597
  }) : (0, import_jsx_runtime227.jsx)(AppTitle, {
46602
46598
  theme,
46603
- title,
46604
- iconUrl: iconURL
46599
+ title: globals.brandDisplayName,
46600
+ iconUrl: globals.brandIcon
46605
46601
  }) : null,
46606
46602
  right: (0, import_jsx_runtime227.jsx)(Menu2, {
46607
46603
  theme,
@@ -46828,18 +46824,15 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46828
46824
  }
46829
46825
  function PartnerWebviewNavigationBar(param) {
46830
46826
  var onBackButtonClick = param.onBackButtonClick, onHomeButtonClick = param.onHomeButtonClick;
46831
- var _ref, _ref1, _ref2, _ref3, _ref4;
46827
+ var _ref, _ref1, _ref2, _ref3;
46832
46828
  var globals = getAppsInTossGlobals();
46833
46829
  var logging = useNavigationBarLogging();
46834
46830
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
46835
46831
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
46836
46832
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
46837
46833
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
46838
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
46839
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
46840
- var iconURL = withIcon ? globals.brandIcon : void 0;
46841
- var title = withTitle ? globals.brandDisplayName : void 0;
46842
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
46834
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
46835
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
46843
46836
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
46844
46837
  var handleClose = (0, import_react197.useCallback)(function() {
46845
46838
  return _async_to_generator(function() {
@@ -46861,18 +46854,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46861
46854
  theme,
46862
46855
  onPress: onBackButtonClick
46863
46856
  }) : null,
46864
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
46857
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
46865
46858
  theme,
46866
46859
  onPress: onHomeButtonClick,
46867
46860
  children: (0, import_jsx_runtime233.jsx)(AppTitle, {
46868
46861
  theme,
46869
- title,
46870
- iconUrl: iconURL
46862
+ title: globals.brandDisplayName,
46863
+ iconUrl: globals.brandIcon
46871
46864
  })
46872
46865
  }) : (0, import_jsx_runtime233.jsx)(AppTitle, {
46873
46866
  theme,
46874
- title,
46875
- iconUrl: iconURL
46867
+ title: globals.brandDisplayName,
46868
+ iconUrl: globals.brandIcon
46876
46869
  }) : null,
46877
46870
  right: (0, import_jsx_runtime233.jsx)(Menu2, {
46878
46871
  theme,
@@ -49279,7 +49272,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
49279
49272
  package_default2 = {
49280
49273
  name: "@apps-in-toss/framework",
49281
49274
  type: "module",
49282
- version: "2.10.3",
49275
+ version: "2.10.4",
49283
49276
  description: "The framework for Apps In Toss",
49284
49277
  scripts: {
49285
49278
  typecheck: "tsc --noEmit",
@@ -44582,7 +44582,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
44582
44582
  "../user-scripts/dist/index.mjs"() {
44583
44583
  "use strict";
44584
44584
  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';
44585
- t52 = '"use strict";(()=>{var Se=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`)}},A=new Se,X=()=>Math.random().toString(36).substring(2,15),Q=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=X(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(A.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(A.on(`${e}/reject/${r}`,i=>{o(),a(Q(i))})),A.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function M(e){return t=>{let r=X(),n=[A.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),A.on(`${e}/onError/${r}`,o=>{t.onError(Q(o))})];return A.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{A.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function E(e){return()=>A.getConstant(e)}var Ce=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=Ce());var Mt=d("closeView"),kt=d("generateHapticFeedback"),Ft=d("share"),Bt=d("setSecureScreen"),Gt=d("setScreenAwakeMode"),Ut=d("getNetworkStatus"),Vt=d("setIosSwipeGestureEnabled"),Ht=d("openURL"),Wt=d("openPermissionDialog"),$t=d("getPermission"),qt=d("requestPermission"),zt=E("setClipboardText"),Kt=E("getClipboardText"),jt=E("fetchContacts"),Jt=E("fetchAlbumPhotos"),Xt=E("getCurrentLocation"),Qt=E("openCamera"),Yt=d("appLogin"),Zt=d("getAnonymousKey"),er=d("eventLog"),tr=d("getTossShareLink"),rr=d("setDeviceOrientation"),nr=d("checkoutPayment"),or=d("requestTossPayPaysBilling"),sr=d("saveBase64Data"),ar=d("openPDFViewer"),ir=d("fetchAlbumItems"),dr=d("appsInTossSignTossCert"),cr=d("getGameCenterGameProfile"),ur=d("openGameCenterLeaderboard"),pr=d("submitGameCenterLeaderBoardScore"),lr=d("getUserKeyForGame"),mr=d("grantPromotionReward"),gr=d("grantPromotionRewardForGame"),fr=d("getIsTossLoginIntegratedService"),vr=d("getServerTime"),Er=d("getConsentedUserData"),hr=d("requestReview"),Ir=d("getDeclaredAgeRange"),Tr=E("getLocale"),Ar=E("getSchemeUri"),_r=E("getPlatformOS"),wr=E("getOperationalEnvironment"),Sr=E("getTossAppVersion"),Cr=E("getDeviceId"),br=E("getGroupId"),Rr=M("contactsViral"),yr=M("startUpdateLocation"),Lr=M("onVisibilityChangedByTransparentServiceWeb");var C=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},Y=class extends C{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},Z=class extends C{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ee=class extends C{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var W=class extends C{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},te=W,re=class extends C{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ne=class extends C{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var be=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`)}},_=new be,ge=()=>Math.random().toString(36).substring(2,15),fe=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=ge(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(_.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(_.on(`${e}/reject/${r}`,i=>{o(),a(fe(i))})),_.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function T(e){return t=>{let r=ge(),n=[_.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),_.on(`${e}/onError/${r}`,o=>{t.onError(fe(o))})];return _.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{_.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>_.getConstant(e)}var Gr={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},Re=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,oe=e=>["*","x","X"].includes(e),se=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},ye=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],Le=(e,t)=>{if(oe(e)||oe(t))return 0;let[r,n]=ye(se(e),se(t));return r>n?1:r<n?-1:0},ae=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(Re);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},ie=(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=Le(o,s);if(a!==0)return a}return 0},Pe=(e,t)=>{let r=ae(e),n=ae(t),o=r.pop(),s=n.pop(),a=ie(r,n);return a!==0?a:o&&s?ie(o.split("."),s.split(".")):o?-1:s?1:0};function $(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:Pe(r,o)>=0}function de(e){return c("processProductGrant")(e)}var Ur={createOneTimePurchaseOrder:e=>{let t=$({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=$({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?T("requestOneTimePurchase")({options:{sku:i},onEvent:async f=>{if(f.type==="purchased"){let u=await o.processProductGrant({orderId:f.data.orderId});await de({orderId:f.data.orderId,isProductGranted:u}).catch(a)}else s(f)},onError:f=>{a(f)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(u=>{Promise.resolve(o.processProductGrant({orderId:u.orderId})).then(()=>{s({type:"success",data:u})}).catch(v=>{a(v)})}).catch(u=>{a(u)}),r)},createSubscriptionPurchaseOrder:e=>{let t=$({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:g}=n;return T("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async u=>{if(u.type==="purchased"){let v=await g({orderId:u.data.orderId,subscriptionId:u.data.subscriptionId});await de({orderId:u.data.orderId,isProductGranted:v}).catch(s)}else o(u)},onError:u=>{s(u)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant"),getSubscriptionInfo:c("getSubscriptionInfo")},Vr=p("getSafeAreaInsets");var Hr=p("getSafeAreaInsets");var Wr={loadAppsInTossAdMob:Object.assign(T("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(T("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var $r={getDeploymentId:p("getDeploymentId")},qr=p("deploymentId"),zr=p("brandDisplayName"),Kr=p("brandIcon"),jr=p("brandPrimaryColor");var Jr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},Ne=c("requestPermission"),De=c("getPermission"),xe=c("openPermissionDialog");function R({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await Ne(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>De(e),n.openPermissionDialog=()=>xe(e),n}var Qr=R({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:Y}),Zr=R({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:Z}),tn=R({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:W}),nn=R({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:ee}),sn=R({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:ne}),dn=R({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:re}),Oe=c("getPermission"),Me=c("openPermissionDialog"),ve=e=>T("updateLocationEvent")({...e,onError:t=>{let r=new te;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ve.getPermission=()=>Oe({name:"geolocation",access:"access"});ve.openPermissionDialog=()=>Me({name:"geolocation",access:"access"});var un=Object.assign(T("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),pn=Object.assign(T("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),x=new WeakMap;function ke(e,t){let r=x.get(e);if(r)return r;let n=t(),o=!1,s={destroy(){o||(o=!0,x.get(e)===s&&x.delete(e),n.destroy())}};return x.set(e,s),s}function Fe(){x=new WeakMap}var m={NETWORK_ERROR:1001,INVALID_REQUEST:1002,NO_AD:1003,ERROR:1004,INVALID_SPACE:1005,SDK_NOT_INITIALIZED:1007,HTTP_TIMEOUT:1008,EXECUTION_FAIL:1009,INTERRUPTED:1010,FAIL:1011,BLOCKED:1012,TIMEOUT:1013,LIMITED_AD:1014,CONSENT_REQUIRED:1015,TEST_MODE:1016,INTERNAL_ERROR:1017},Be=new Set(["OK","TEST_MODE","NO_AD"]),Ge={HTTP_TIMEOUT:m.HTTP_TIMEOUT,NETWORK_ERROR:m.NETWORK_ERROR,EXECUTION_FAIL:m.EXECUTION_FAIL,INTERRUPTED:m.INTERRUPTED,INTERNAL_ERROR:m.ERROR,FAIL:m.FAIL},Ue={BLOCKED:m.BLOCKED,ERROR:m.ERROR,TIMEOUT:m.TIMEOUT,INVALID_SPACE:m.INVALID_SPACE,INVALID_REQUEST:m.INVALID_REQUEST,LIMITED_AD:m.LIMITED_AD,CONSENT_REQUIRED:m.CONSENT_REQUIRED},Ee=c("tossAdEventLog"),Ve="display_ads_all::error__banner";function ce(e){Ee({log_name:Ve,log_type:"debug",params:{error_code:e.errorCode,error_message:e.errorMessage,ad_group_id:e.adGroupId,mediation_id:e.mediationId,event_context_token:e.eventContextToken}}).catch(()=>{})}function b(e){if(e.endpointError){fetch(e.endpointError,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventContextToken:e.eventContextToken,mediationId:e.mediationId,errorCode:e.errorCode,errorMessage:e.errorMessage})}).catch(()=>ce(e));return}ce(e)}function He(e,t,r){if(e.resultType!=="SUCCESS"){b({adGroupId:t,errorCode:Ge[e.resultType]??m.INTERNAL_ERROR,errorMessage:e.error?.reason??e.resultType});return}let n=e.success;!n||Be.has(String(n.status))||b({adGroupId:t,errorCode:Ue[String(n.status)]??m.INTERNAL_ERROR,mediationId:r.mediationId,eventContextToken:r.eventContextToken,errorMessage:`Ad response status: ${n.status}`,endpointError:r.errorEndpoint})}async function We(e){e.type==="EVENT_TRACKING"&&await $e(e)}async function $e(e){if(e.urls.length===0)return;let t=JSON.stringify({type:e.eventName,data:e.eventPayload}),r={"Content-Type":"application/json"};e.requestId&&(r["X-Toss-RequestId"]=e.requestId);let o=(await Promise.allSettled(e.urls.map(s=>fetch(s,{method:"POST",headers:r,body:t}).then(a=>{if(!a.ok)throw new Error(`HTTP ${a.status}`)})))).filter(s=>s.status==="rejected").length;o!==0&&b({adGroupId:e.adGroupId,errorCode:m.NETWORK_ERROR,errorMessage:`EVENT_TRACKING failed: ${e.eventName} (${o}/${e.urls.length})`,mediationId:e.mediationId||void 0,eventContextToken:e.eventContextToken||void 0,endpointError:e.errorEndpoint})}var qe="1.4.1",ze="{{device}}",Ke={ios:"com.vivarepublica.cash",android:"viva.republica.toss"};function je(e){return Ke[e]}var he="1",Je="2",z=[he,Je],Xe=new Set(z);function ue(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>Xe.has(String(r.styleId))):[];return{requestId:e.requestId??"",eventContextToken:e.eventContextToken,status:e.status??"OK",ads:t,ext:e.ext}}function Qe(e){return Ye(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:ue(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Ze(e)?{resultType:"SUCCESS",success:ue(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function Ye(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Ze(e){return!!(e&&typeof e=="object"&&"ads"in e)}var et=c("openURL");function tt(e){let t=rt(e);return et(t)}function rt(e){return["http://","https://"].some(r=>e.startsWith(r))?nt(e):e}function nt(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}async function ot(e,t,r){let n=e.success?.status;if(e.resultType!=="SUCCESS"||n!=="OK"&&n!=="TEST_MODE"||r.resultEndpoint==null||r.mediationId==null)return;let o={mediationId:r.mediationId,spaceUnitId:t,requestId:e.success?.requestId??"",eventContextToken:r.eventContextToken,winnerSource:"TOSS",content:null,adUnitId:r.adUnitId??null,placementId:r.placementId??null,tossFailed:null};try{let s=await fetch(r.resultEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!s.ok)throw new Error(`HTTP ${s.status}`)}catch(s){b({adGroupId:t,errorCode:m.NETWORK_ERROR,errorMessage:`RESULT_TRACKING failed: ${s instanceof Error?s.message:String(s)}`,mediationId:r.mediationId,eventContextToken:r.eventContextToken,endpointError:r.errorEndpoint})}}var pe="https://static.toss.im/ads/sdk/toss-ads-space-kit-3.1.0.js",le=15e3,k=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function st(){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(k)return k;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(g),k=null},a=()=>{let f=S();if(f){s(),r(f);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 ${pe}.`))},g=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${le}ms.`))},le);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=pe,document.head.appendChild(o)});return k=t,t}var at={name:"@apps-in-toss/web-bridge",type:"module",version:"2.10.3",description:"Web Bridge for Apps In Toss",scripts:{typecheck:"tsc --noEmit",lint:"eslint .",build:"tsup"},main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}}},files:["dist"],dependencies:{"@apps-in-toss/types":"workspace:*"},devDependencies:{"@apps-in-toss/bridge-core":"workspace:*","@apps-in-toss/native-modules":"workspace:^","@swc/core":"^1.12.7",picocolors:"^1.1.1","ts-morph":"^26.0.0",tsup:"^8.5.0",typescript:"5.8.3",vitest:"^3.1.2"}},it=at.version;function N(e){return typeof e=="string"&&e.length>0?e:void 0}function dt(e){let t=e?.ext?.mediation;return{mediationId:N(t?.mediationId),eventContextToken:N(e?.eventContextToken),resultEndpoint:N(t?.endpoint?.result),errorEndpoint:N(t?.endpoint?.error),adUnitId:N(t?.admob?.adUnitId),placementId:typeof t?.admob?.placementId=="number"?t.admob.placementId:void 0}}var w=Object.assign(T("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Ie=Object.assign(T("fetchAppsInTossAd"),{isSupported:p("fetchAppsInTossAd_isSupported")}),ct=p("getPlatformOS"),ut=p("getTossAppVersion"),pt="108",K="\\uC798\\uBABB\\uB41C \\uC694\\uCCAD\\uC774\\uC5D0\\uC694. \\uD544\\uC694\\uD55C \\uAC12\\uC774 \\uBE44\\uC5B4 \\uC788\\uC5B4\\uC694.";function F(e){return e.trim()}function j(){return new Error(K)}function lt(){return{resultType:"FAIL",error:{reason:K}}}function mt(e){return new Promise((t,r)=>{if(!w.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}let n=F(e.adGroupId);if(n.length===0){r(j());return}return w({options:{...e,adGroupId:n},onEvent:t,onError:r})})}function gt(){return globalThis.__granite?.app?.name??""}function ft(e){let t=ct(),r=ut(),n={specVersion:qe,platform:"WEB",spaceUnitId:e,sdkVersion:it,availableStyleIds:z,device:ze,app:{version:r,bundle:je(t),subBundle:gt()}};return new Promise((o,s)=>{Ie({options:n,onEvent:o,onError:s})})}function vt(){return async(e,t)=>{let r=F(t.spaceUnitId);if(r.length===0)return b({adGroupId:r,errorCode:m.INVALID_SPACE,errorMessage:K}),lt();try{let n=Ie.isSupported()?await ft(r):await mt({adGroupId:r,sdkId:pt,availableStyleIds:z}),o=Qe(n),s=dt(o.success);return He(o,r,s),ot(o,r,s),o}catch(n){let o=n instanceof Error?n.message:"Unknown fetchTossAd error";return b({adGroupId:r,errorCode:m.NETWORK_ERROR,errorMessage:o}),{resultType:"FAIL",error:{reason:o}}}}}var D=null;function Et(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(D!=null){D.then(r).catch(n);return}let s=st().then(a=>{if(a.isInitialized())return;let g={environment:"live",customAdFetcher:vt(),opener:tt,onTrackingRequest:We};a.init(g)});D=s,s.then(r).catch(n).finally(()=>{D===s&&(D=null)})}function ht(e,t,r={}){let{callbacks:n}=r,o=F(e),s=a=>{let i=a instanceof Error?a:new Error(String(a));n?.onAdFailedToRender?.({slotId:"",adGroupId:o,adMetadata:{},error:{code:0,message:i.message}})};try{let a=o;if(a.length===0)throw j();let i=S();if(!i)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!i.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let g=typeof t=="string"?document.querySelector(t):t;if(!g)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:a,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:Ae(o,r.callbacks)};i.banner.createSlot(g,f)}catch(a){s(a)}}var It="16px 20px",Tt="20px",At="auto",_t="blackAndWhite",wt="expanded",h="toss-ads-attach",me="toss-ads-attach-style",Te="data-toss-ads-attach-banner-wrapper",q=\'"Toss Product Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif\';function St(e){let t=e.ownerDocument;if(!t||t.getElementById(me))return;let r=t.createElement("style");r.id=me,r.textContent=`\n .${h},\n .${h} * {\n font-family: ${q};\n font-style: normal;\n }\n .${h} { background: #ffffff; }\n .${h}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${h} { background: #17171c; }\n .${h}.toss-ads-tone-grey { background: #101013; }\n }\n .${h}.toss-ads-theme-light { background: #ffffff; }\n .${h}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${h}.toss-ads-theme-dark { background: #17171c; }\n .${h}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function Ct(e){Array.from(e.children).forEach(t=>{t instanceof HTMLElement&&t.getAttribute(Te)==="true"&&e.removeChild(t)})}function bt(e,t,r={}){let{callbacks:n,theme:o=At,tone:s=_t,variant:a=wt}=r,i=F(e),g=u=>{let v=u instanceof Error?u:new Error(String(u));n?.onAdFailedToRender?.({slotId:"",adGroupId:i,adMetadata:{},error:{code:0,message:v.message}})},f=Ae(i,n);try{let u=i;if(u.length===0)throw j();let v=S();if(!v)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!v.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let P=typeof t=="string"?document.querySelector(t):t;if(!P)throw new Error(`[toss-ad] Failed to find target element: ${t}`);return ke(P,()=>{let l=document.createElement("div");l.style.width="100%",l.style.height="100%",l.style.boxSizing="border-box",l.style.display="flex",l.style.flexDirection="column",l.style.fontFamily=q,l.style.fontStyle="normal",l.style.justifyContent="center",l.style.overflow="hidden",l.setAttribute(Te,"true"),a==="card"&&(l.style.padding="0 10px");let I=document.createElement("div");I.classList.add(h),I.style.fontFamily=q,I.style.fontStyle="normal",s==="grey"&&I.classList.add("toss-ads-tone-grey"),o==="light"?I.classList.add("toss-ads-theme-light"):o==="dark"&&I.classList.add("toss-ads-theme-dark"),a==="card"&&(I.style.borderRadius="16px",I.style.overflow="hidden"),l.appendChild(I);let O=!1,J=null;try{St(P),Ct(P),P.appendChild(l),O=!0;let H={spaceId:u,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:we=>we===he?It:Tt,callbacks:f};J=v.banner.createSlot(I,H)}catch(H){throw O&&l.parentNode&&l.parentNode.removeChild(l),H}return{destroy(){J?.destroy(),O&&l.parentNode&&l.parentNode.removeChild(l),O=!1}}})}catch(u){return g(u),{destroy(){}}}}function Rt(e){let t=S();t?.banner&&t.banner.destroy(e)}function yt(){let e=S();e?.banner&&(e.banner.destroyAll(),Fe())}function Ae(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=>{Ee({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 ln={initialize:Object.assign(Et,{isSupported:w.isSupported}),attach:Object.assign(ht,{isSupported:w.isSupported}),attachBanner:Object.assign(bt,{isSupported:w.isSupported}),destroy:Object.assign(Rt,{isSupported:w.isSupported}),destroyAll:Object.assign(yt,{isSupported:w.isSupported})},mn=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")}),gn=Object.assign(c("requestReview"),{isSupported:p("requestReview_isSupported")});var fn=Object.assign(c("getDeclaredAgeRange"),{isSupported:p("getDeclaredAgeRange_isSupported")});var B=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 G=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 G,debugLogger:new B};var y=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function U(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)}),U(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!y.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let f=i.headers.get("ETag"),u=i.headers.get("Last-Modified");f&&s.headers.set("If-None-Match",f),u&&s.headers.set("If-Modified-Since",u);let v=await r.call(n,s);return v.status===304?(i.__revalidateResponse=v,i):(a.put(s,v.clone()),v)}let g=await r.call(n,s);return a.put(s,g.clone()),g})})();U(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 _e=window.__appsInToss.debugLogger;_e.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}:{};_e.log("load_complete",{isNavigationDebugSupported:r,...n})});function L(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:L(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:L(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:L(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})=>{y.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(!y.test(n.url))return;let a=await s.clone().blob().then(g=>L(g.size/1024,2)).catch(g=>(r({request:n,requestAt:o,error:g}),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})=>{y.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var V=[];function Lt(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){V.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function Pt(){if(V.length===0)return;let e=V;V=[];let t=Nt(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 Nt(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>Lt(),1e3);setInterval(()=>Pt(),3e5);})();\n';
44585
+ t52 = '"use strict";(()=>{var Se=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`)}},A=new Se,X=()=>Math.random().toString(36).substring(2,15),Q=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=X(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(A.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(A.on(`${e}/reject/${r}`,i=>{o(),a(Q(i))})),A.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function M(e){return t=>{let r=X(),n=[A.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),A.on(`${e}/onError/${r}`,o=>{t.onError(Q(o))})];return A.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{A.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function E(e){return()=>A.getConstant(e)}var Ce=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=Ce());var Mt=d("closeView"),kt=d("generateHapticFeedback"),Ft=d("share"),Bt=d("setSecureScreen"),Gt=d("setScreenAwakeMode"),Ut=d("getNetworkStatus"),Vt=d("setIosSwipeGestureEnabled"),Ht=d("openURL"),Wt=d("openPermissionDialog"),$t=d("getPermission"),qt=d("requestPermission"),zt=E("setClipboardText"),Kt=E("getClipboardText"),jt=E("fetchContacts"),Jt=E("fetchAlbumPhotos"),Xt=E("getCurrentLocation"),Qt=E("openCamera"),Yt=d("appLogin"),Zt=d("getAnonymousKey"),er=d("eventLog"),tr=d("getTossShareLink"),rr=d("setDeviceOrientation"),nr=d("checkoutPayment"),or=d("requestTossPayPaysBilling"),sr=d("saveBase64Data"),ar=d("openPDFViewer"),ir=d("fetchAlbumItems"),dr=d("appsInTossSignTossCert"),cr=d("getGameCenterGameProfile"),ur=d("openGameCenterLeaderboard"),pr=d("submitGameCenterLeaderBoardScore"),lr=d("getUserKeyForGame"),mr=d("grantPromotionReward"),gr=d("grantPromotionRewardForGame"),fr=d("getIsTossLoginIntegratedService"),vr=d("getServerTime"),Er=d("getConsentedUserData"),hr=d("requestReview"),Ir=d("getDeclaredAgeRange"),Tr=E("getLocale"),Ar=E("getSchemeUri"),_r=E("getPlatformOS"),wr=E("getOperationalEnvironment"),Sr=E("getTossAppVersion"),Cr=E("getDeviceId"),br=E("getGroupId"),Rr=M("contactsViral"),yr=M("startUpdateLocation"),Lr=M("onVisibilityChangedByTransparentServiceWeb");var C=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},Y=class extends C{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},Z=class extends C{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ee=class extends C{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var W=class extends C{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},te=W,re=class extends C{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},ne=class extends C{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var be=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`)}},_=new be,ge=()=>Math.random().toString(36).substring(2,15),fe=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=ge(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(_.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(_.on(`${e}/reject/${r}`,i=>{o(),a(fe(i))})),_.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function T(e){return t=>{let r=ge(),n=[_.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),_.on(`${e}/onError/${r}`,o=>{t.onError(fe(o))})];return _.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{_.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>_.getConstant(e)}var Gr={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},Re=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,oe=e=>["*","x","X"].includes(e),se=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},ye=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],Le=(e,t)=>{if(oe(e)||oe(t))return 0;let[r,n]=ye(se(e),se(t));return r>n?1:r<n?-1:0},ae=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(Re);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},ie=(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=Le(o,s);if(a!==0)return a}return 0},Pe=(e,t)=>{let r=ae(e),n=ae(t),o=r.pop(),s=n.pop(),a=ie(r,n);return a!==0?a:o&&s?ie(o.split("."),s.split(".")):o?-1:s?1:0};function $(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:Pe(r,o)>=0}function de(e){return c("processProductGrant")(e)}var Ur={createOneTimePurchaseOrder:e=>{let t=$({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=$({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?T("requestOneTimePurchase")({options:{sku:i},onEvent:async f=>{if(f.type==="purchased"){let u=await o.processProductGrant({orderId:f.data.orderId});await de({orderId:f.data.orderId,isProductGranted:u}).catch(a)}else s(f)},onError:f=>{a(f)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(u=>{Promise.resolve(o.processProductGrant({orderId:u.orderId})).then(()=>{s({type:"success",data:u})}).catch(v=>{a(v)})}).catch(u=>{a(u)}),r)},createSubscriptionPurchaseOrder:e=>{let t=$({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:g}=n;return T("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async u=>{if(u.type==="purchased"){let v=await g({orderId:u.data.orderId,subscriptionId:u.data.subscriptionId});await de({orderId:u.data.orderId,isProductGranted:v}).catch(s)}else o(u)},onError:u=>{s(u)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant"),getSubscriptionInfo:c("getSubscriptionInfo")},Vr=p("getSafeAreaInsets");var Hr=p("getSafeAreaInsets");var Wr={loadAppsInTossAdMob:Object.assign(T("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(T("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var $r={getDeploymentId:p("getDeploymentId")},qr=p("deploymentId"),zr=p("brandDisplayName"),Kr=p("brandIcon"),jr=p("brandPrimaryColor");var Jr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},Ne=c("requestPermission"),De=c("getPermission"),xe=c("openPermissionDialog");function R({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await Ne(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>De(e),n.openPermissionDialog=()=>xe(e),n}var Qr=R({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:Y}),Zr=R({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:Z}),tn=R({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:W}),nn=R({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:ee}),sn=R({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:ne}),dn=R({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:re}),Oe=c("getPermission"),Me=c("openPermissionDialog"),ve=e=>T("updateLocationEvent")({...e,onError:t=>{let r=new te;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ve.getPermission=()=>Oe({name:"geolocation",access:"access"});ve.openPermissionDialog=()=>Me({name:"geolocation",access:"access"});var un=Object.assign(T("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),pn=Object.assign(T("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),x=new WeakMap;function ke(e,t){let r=x.get(e);if(r)return r;let n=t(),o=!1,s={destroy(){o||(o=!0,x.get(e)===s&&x.delete(e),n.destroy())}};return x.set(e,s),s}function Fe(){x=new WeakMap}var m={NETWORK_ERROR:1001,INVALID_REQUEST:1002,NO_AD:1003,ERROR:1004,INVALID_SPACE:1005,SDK_NOT_INITIALIZED:1007,HTTP_TIMEOUT:1008,EXECUTION_FAIL:1009,INTERRUPTED:1010,FAIL:1011,BLOCKED:1012,TIMEOUT:1013,LIMITED_AD:1014,CONSENT_REQUIRED:1015,TEST_MODE:1016,INTERNAL_ERROR:1017},Be=new Set(["OK","TEST_MODE","NO_AD"]),Ge={HTTP_TIMEOUT:m.HTTP_TIMEOUT,NETWORK_ERROR:m.NETWORK_ERROR,EXECUTION_FAIL:m.EXECUTION_FAIL,INTERRUPTED:m.INTERRUPTED,INTERNAL_ERROR:m.ERROR,FAIL:m.FAIL},Ue={BLOCKED:m.BLOCKED,ERROR:m.ERROR,TIMEOUT:m.TIMEOUT,INVALID_SPACE:m.INVALID_SPACE,INVALID_REQUEST:m.INVALID_REQUEST,LIMITED_AD:m.LIMITED_AD,CONSENT_REQUIRED:m.CONSENT_REQUIRED},Ee=c("tossAdEventLog"),Ve="display_ads_all::error__banner";function ce(e){Ee({log_name:Ve,log_type:"debug",params:{error_code:e.errorCode,error_message:e.errorMessage,ad_group_id:e.adGroupId,mediation_id:e.mediationId,event_context_token:e.eventContextToken}}).catch(()=>{})}function b(e){if(e.endpointError){fetch(e.endpointError,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventContextToken:e.eventContextToken,mediationId:e.mediationId,errorCode:e.errorCode,errorMessage:e.errorMessage})}).catch(()=>ce(e));return}ce(e)}function He(e,t,r){if(e.resultType!=="SUCCESS"){b({adGroupId:t,errorCode:Ge[e.resultType]??m.INTERNAL_ERROR,errorMessage:e.error?.reason??e.resultType});return}let n=e.success;!n||Be.has(String(n.status))||b({adGroupId:t,errorCode:Ue[String(n.status)]??m.INTERNAL_ERROR,mediationId:r.mediationId,eventContextToken:r.eventContextToken,errorMessage:`Ad response status: ${n.status}`,endpointError:r.errorEndpoint})}async function We(e){e.type==="EVENT_TRACKING"&&await $e(e)}async function $e(e){if(e.urls.length===0)return;let t=JSON.stringify({type:e.eventName,data:e.eventPayload}),r={"Content-Type":"application/json"};e.requestId&&(r["X-Toss-RequestId"]=e.requestId);let o=(await Promise.allSettled(e.urls.map(s=>fetch(s,{method:"POST",headers:r,body:t}).then(a=>{if(!a.ok)throw new Error(`HTTP ${a.status}`)})))).filter(s=>s.status==="rejected").length;o!==0&&b({adGroupId:e.adGroupId,errorCode:m.NETWORK_ERROR,errorMessage:`EVENT_TRACKING failed: ${e.eventName} (${o}/${e.urls.length})`,mediationId:e.mediationId||void 0,eventContextToken:e.eventContextToken||void 0,endpointError:e.errorEndpoint})}var qe="1.4.1",ze="{{device}}",Ke={ios:"com.vivarepublica.cash",android:"viva.republica.toss"};function je(e){return Ke[e]}var he="1",Je="2",z=[he,Je],Xe=new Set(z);function ue(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>Xe.has(String(r.styleId))):[];return{requestId:e.requestId??"",eventContextToken:e.eventContextToken,status:e.status??"OK",ads:t,ext:e.ext}}function Qe(e){return Ye(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:ue(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Ze(e)?{resultType:"SUCCESS",success:ue(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function Ye(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Ze(e){return!!(e&&typeof e=="object"&&"ads"in e)}var et=c("openURL");function tt(e){let t=rt(e);return et(t)}function rt(e){return["http://","https://"].some(r=>e.startsWith(r))?nt(e):e}function nt(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}async function ot(e,t,r){let n=e.success?.status;if(e.resultType!=="SUCCESS"||n!=="OK"&&n!=="TEST_MODE"||r.resultEndpoint==null||r.mediationId==null)return;let o={mediationId:r.mediationId,spaceUnitId:t,requestId:e.success?.requestId??"",eventContextToken:r.eventContextToken,winnerSource:"TOSS",content:null,adUnitId:r.adUnitId??null,placementId:r.placementId??null,tossFailed:null};try{let s=await fetch(r.resultEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!s.ok)throw new Error(`HTTP ${s.status}`)}catch(s){b({adGroupId:t,errorCode:m.NETWORK_ERROR,errorMessage:`RESULT_TRACKING failed: ${s instanceof Error?s.message:String(s)}`,mediationId:r.mediationId,eventContextToken:r.eventContextToken,endpointError:r.errorEndpoint})}}var pe="https://static.toss.im/ads/sdk/toss-ads-space-kit-3.1.0.js",le=15e3,k=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function st(){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(k)return k;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(g),k=null},a=()=>{let f=S();if(f){s(),r(f);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 ${pe}.`))},g=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${le}ms.`))},le);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=pe,document.head.appendChild(o)});return k=t,t}var at={name:"@apps-in-toss/web-bridge",type:"module",version:"2.10.4",description:"Web Bridge for Apps In Toss",scripts:{typecheck:"tsc --noEmit",lint:"eslint .",build:"tsup"},main:"./dist/index.cjs",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{import:{types:"./dist/index.d.ts",default:"./dist/index.js"},require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"}}},files:["dist"],dependencies:{"@apps-in-toss/types":"workspace:*"},devDependencies:{"@apps-in-toss/bridge-core":"workspace:*","@apps-in-toss/native-modules":"workspace:^","@swc/core":"^1.12.7",picocolors:"^1.1.1","ts-morph":"^26.0.0",tsup:"^8.5.0",typescript:"5.8.3",vitest:"^3.1.2"}},it=at.version;function N(e){return typeof e=="string"&&e.length>0?e:void 0}function dt(e){let t=e?.ext?.mediation;return{mediationId:N(t?.mediationId),eventContextToken:N(e?.eventContextToken),resultEndpoint:N(t?.endpoint?.result),errorEndpoint:N(t?.endpoint?.error),adUnitId:N(t?.admob?.adUnitId),placementId:typeof t?.admob?.placementId=="number"?t.admob.placementId:void 0}}var w=Object.assign(T("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Ie=Object.assign(T("fetchAppsInTossAd"),{isSupported:p("fetchAppsInTossAd_isSupported")}),ct=p("getPlatformOS"),ut=p("getTossAppVersion"),pt="108",K="\\uC798\\uBABB\\uB41C \\uC694\\uCCAD\\uC774\\uC5D0\\uC694. \\uD544\\uC694\\uD55C \\uAC12\\uC774 \\uBE44\\uC5B4 \\uC788\\uC5B4\\uC694.";function F(e){return e.trim()}function j(){return new Error(K)}function lt(){return{resultType:"FAIL",error:{reason:K}}}function mt(e){return new Promise((t,r)=>{if(!w.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}let n=F(e.adGroupId);if(n.length===0){r(j());return}return w({options:{...e,adGroupId:n},onEvent:t,onError:r})})}function gt(){return globalThis.__granite?.app?.name??""}function ft(e){let t=ct(),r=ut(),n={specVersion:qe,platform:"WEB",spaceUnitId:e,sdkVersion:it,availableStyleIds:z,device:ze,app:{version:r,bundle:je(t),subBundle:gt()}};return new Promise((o,s)=>{Ie({options:n,onEvent:o,onError:s})})}function vt(){return async(e,t)=>{let r=F(t.spaceUnitId);if(r.length===0)return b({adGroupId:r,errorCode:m.INVALID_SPACE,errorMessage:K}),lt();try{let n=Ie.isSupported()?await ft(r):await mt({adGroupId:r,sdkId:pt,availableStyleIds:z}),o=Qe(n),s=dt(o.success);return He(o,r,s),ot(o,r,s),o}catch(n){let o=n instanceof Error?n.message:"Unknown fetchTossAd error";return b({adGroupId:r,errorCode:m.NETWORK_ERROR,errorMessage:o}),{resultType:"FAIL",error:{reason:o}}}}}var D=null;function Et(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(D!=null){D.then(r).catch(n);return}let s=st().then(a=>{if(a.isInitialized())return;let g={environment:"live",customAdFetcher:vt(),opener:tt,onTrackingRequest:We};a.init(g)});D=s,s.then(r).catch(n).finally(()=>{D===s&&(D=null)})}function ht(e,t,r={}){let{callbacks:n}=r,o=F(e),s=a=>{let i=a instanceof Error?a:new Error(String(a));n?.onAdFailedToRender?.({slotId:"",adGroupId:o,adMetadata:{},error:{code:0,message:i.message}})};try{let a=o;if(a.length===0)throw j();let i=S();if(!i)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!i.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let g=typeof t=="string"?document.querySelector(t):t;if(!g)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let f={spaceId:a,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:Ae(o,r.callbacks)};i.banner.createSlot(g,f)}catch(a){s(a)}}var It="16px 20px",Tt="20px",At="auto",_t="blackAndWhite",wt="expanded",h="toss-ads-attach",me="toss-ads-attach-style",Te="data-toss-ads-attach-banner-wrapper",q=\'"Toss Product Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif\';function St(e){let t=e.ownerDocument;if(!t||t.getElementById(me))return;let r=t.createElement("style");r.id=me,r.textContent=`\n .${h},\n .${h} * {\n font-family: ${q};\n font-style: normal;\n }\n .${h} { background: #ffffff; }\n .${h}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${h} { background: #17171c; }\n .${h}.toss-ads-tone-grey { background: #101013; }\n }\n .${h}.toss-ads-theme-light { background: #ffffff; }\n .${h}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${h}.toss-ads-theme-dark { background: #17171c; }\n .${h}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function Ct(e){Array.from(e.children).forEach(t=>{t instanceof HTMLElement&&t.getAttribute(Te)==="true"&&e.removeChild(t)})}function bt(e,t,r={}){let{callbacks:n,theme:o=At,tone:s=_t,variant:a=wt}=r,i=F(e),g=u=>{let v=u instanceof Error?u:new Error(String(u));n?.onAdFailedToRender?.({slotId:"",adGroupId:i,adMetadata:{},error:{code:0,message:v.message}})},f=Ae(i,n);try{let u=i;if(u.length===0)throw j();let v=S();if(!v)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!v.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let P=typeof t=="string"?document.querySelector(t):t;if(!P)throw new Error(`[toss-ad] Failed to find target element: ${t}`);return ke(P,()=>{let l=document.createElement("div");l.style.width="100%",l.style.height="100%",l.style.boxSizing="border-box",l.style.display="flex",l.style.flexDirection="column",l.style.fontFamily=q,l.style.fontStyle="normal",l.style.justifyContent="center",l.style.overflow="hidden",l.setAttribute(Te,"true"),a==="card"&&(l.style.padding="0 10px");let I=document.createElement("div");I.classList.add(h),I.style.fontFamily=q,I.style.fontStyle="normal",s==="grey"&&I.classList.add("toss-ads-tone-grey"),o==="light"?I.classList.add("toss-ads-theme-light"):o==="dark"&&I.classList.add("toss-ads-theme-dark"),a==="card"&&(I.style.borderRadius="16px",I.style.overflow="hidden"),l.appendChild(I);let O=!1,J=null;try{St(P),Ct(P),P.appendChild(l),O=!0;let H={spaceId:u,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:we=>we===he?It:Tt,callbacks:f};J=v.banner.createSlot(I,H)}catch(H){throw O&&l.parentNode&&l.parentNode.removeChild(l),H}return{destroy(){J?.destroy(),O&&l.parentNode&&l.parentNode.removeChild(l),O=!1}}})}catch(u){return g(u),{destroy(){}}}}function Rt(e){let t=S();t?.banner&&t.banner.destroy(e)}function yt(){let e=S();e?.banner&&(e.banner.destroyAll(),Fe())}function Ae(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=>{Ee({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 ln={initialize:Object.assign(Et,{isSupported:w.isSupported}),attach:Object.assign(ht,{isSupported:w.isSupported}),attachBanner:Object.assign(bt,{isSupported:w.isSupported}),destroy:Object.assign(Rt,{isSupported:w.isSupported}),destroyAll:Object.assign(yt,{isSupported:w.isSupported})},mn=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")}),gn=Object.assign(c("requestReview"),{isSupported:p("requestReview_isSupported")});var fn=Object.assign(c("getDeclaredAgeRange"),{isSupported:p("getDeclaredAgeRange_isSupported")});var B=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 G=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 G,debugLogger:new B};var y=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function U(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)}),U(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!y.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let f=i.headers.get("ETag"),u=i.headers.get("Last-Modified");f&&s.headers.set("If-None-Match",f),u&&s.headers.set("If-Modified-Since",u);let v=await r.call(n,s);return v.status===304?(i.__revalidateResponse=v,i):(a.put(s,v.clone()),v)}let g=await r.call(n,s);return a.put(s,g.clone()),g})})();U(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 _e=window.__appsInToss.debugLogger;_e.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}:{};_e.log("load_complete",{isNavigationDebugSupported:r,...n})});function L(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:L(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:L(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:L(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})=>{y.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(!y.test(n.url))return;let a=await s.clone().blob().then(g=>L(g.size/1024,2)).catch(g=>(r({request:n,requestAt:o,error:g}),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})=>{y.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var V=[];function Lt(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){V.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function Pt(){if(V.length===0)return;let e=V;V=[];let t=Nt(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 Nt(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>Lt(),1e3);setInterval(()=>Pt(),3e5);})();\n';
44586
44586
  }
44587
44587
  });
44588
44588
 
@@ -45427,8 +45427,6 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45427
45427
  alignItems: "center",
45428
45428
  gap: 6,
45429
45429
  height: 34,
45430
- paddingLeft: 10,
45431
- paddingRight: 10,
45432
45430
  backgroundColor: theme === "light" ? pd.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
45433
45431
  borderRadius: 99
45434
45432
  },
@@ -45447,7 +45445,8 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45447
45445
  style: {
45448
45446
  flexDirection: "row",
45449
45447
  alignItems: "center",
45450
- gap: 6
45448
+ gap: 6,
45449
+ paddingHorizontal: 10
45451
45450
  },
45452
45451
  children: [
45453
45452
  iconUrl != null && iconUrl !== "" && (0, import_jsx_runtime224.jsx)(import_react_native209.View, {
@@ -45586,17 +45585,14 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45586
45585
  });
45587
45586
  }
45588
45587
  function DefaultNavigationBar() {
45589
- var _ref, _ref1, _ref2, _ref3, _ref4;
45588
+ var _ref, _ref1, _ref2, _ref3;
45590
45589
  var globals = getAppsInTossGlobals();
45591
45590
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
45592
45591
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
45593
45592
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
45594
45593
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
45595
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
45596
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
45597
- var iconURL = withIcon ? globals.brandIcon : void 0;
45598
- var title = withTitle ? globals.brandDisplayName : void 0;
45599
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
45594
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
45595
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
45600
45596
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
45601
45597
  var navigationEvent = useNavigationEvent();
45602
45598
  useHardwareBackPress(navigationEvent.handleBack);
@@ -45607,18 +45603,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45607
45603
  theme,
45608
45604
  onPress: navigationEvent.handleBack
45609
45605
  }) : null,
45610
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
45606
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
45611
45607
  theme,
45612
45608
  onPress: navigationEvent.handleHomeButtonClick,
45613
45609
  children: (0, import_jsx_runtime227.jsx)(AppTitle, {
45614
45610
  theme,
45615
- title,
45616
- iconUrl: iconURL
45611
+ title: globals.brandDisplayName,
45612
+ iconUrl: globals.brandIcon
45617
45613
  })
45618
45614
  }) : (0, import_jsx_runtime227.jsx)(AppTitle, {
45619
45615
  theme,
45620
- title,
45621
- iconUrl: iconURL
45616
+ title: globals.brandDisplayName,
45617
+ iconUrl: globals.brandIcon
45622
45618
  }) : null,
45623
45619
  right: (0, import_jsx_runtime227.jsx)(Menu2, {
45624
45620
  theme,
@@ -45845,18 +45841,15 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45845
45841
  }
45846
45842
  function PartnerWebviewNavigationBar(param) {
45847
45843
  var onBackButtonClick = param.onBackButtonClick, onHomeButtonClick = param.onHomeButtonClick;
45848
- var _ref, _ref1, _ref2, _ref3, _ref4;
45844
+ var _ref, _ref1, _ref2, _ref3;
45849
45845
  var globals = getAppsInTossGlobals();
45850
45846
  var logging = useNavigationBarLogging();
45851
45847
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
45852
45848
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
45853
45849
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
45854
45850
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
45855
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
45856
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
45857
- var iconURL = withIcon ? globals.brandIcon : void 0;
45858
- var title = withTitle ? globals.brandDisplayName : void 0;
45859
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
45851
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
45852
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
45860
45853
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
45861
45854
  var handleClose = (0, import_react197.useCallback)(function() {
45862
45855
  return _async_to_generator(function() {
@@ -45878,18 +45871,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45878
45871
  theme,
45879
45872
  onPress: onBackButtonClick
45880
45873
  }) : null,
45881
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
45874
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
45882
45875
  theme,
45883
45876
  onPress: onHomeButtonClick,
45884
45877
  children: (0, import_jsx_runtime233.jsx)(AppTitle, {
45885
45878
  theme,
45886
- title,
45887
- iconUrl: iconURL
45879
+ title: globals.brandDisplayName,
45880
+ iconUrl: globals.brandIcon
45888
45881
  })
45889
45882
  }) : (0, import_jsx_runtime233.jsx)(AppTitle, {
45890
45883
  theme,
45891
- title,
45892
- iconUrl: iconURL
45884
+ title: globals.brandDisplayName,
45885
+ iconUrl: globals.brandIcon
45893
45886
  }) : null,
45894
45887
  right: (0, import_jsx_runtime233.jsx)(Menu2, {
45895
45888
  theme,
@@ -48296,7 +48289,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
48296
48289
  package_default2 = {
48297
48290
  name: "@apps-in-toss/framework",
48298
48291
  type: "module",
48299
- version: "2.10.3",
48292
+ version: "2.10.4",
48300
48293
  description: "The framework for Apps In Toss",
48301
48294
  scripts: {
48302
48295
  typecheck: "tsc --noEmit",
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.10.3",
4
+ "version": "2.10.4",
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.10.3",
90
- "@apps-in-toss/cli": "2.10.3",
91
- "@apps-in-toss/framework": "2.10.3",
92
- "@apps-in-toss/plugins": "2.10.3",
93
- "@apps-in-toss/web-analytics": "2.10.3",
94
- "@apps-in-toss/web-bridge": "2.10.3",
95
- "@apps-in-toss/web-config": "2.10.3",
89
+ "@apps-in-toss/bridge-core": "2.10.4",
90
+ "@apps-in-toss/cli": "2.10.4",
91
+ "@apps-in-toss/framework": "2.10.4",
92
+ "@apps-in-toss/plugins": "2.10.4",
93
+ "@apps-in-toss/web-analytics": "2.10.4",
94
+ "@apps-in-toss/web-bridge": "2.10.4",
95
+ "@apps-in-toss/web-config": "2.10.4",
96
96
  "@babel/core": "7.23.9",
97
97
  "@granite-js/cli": "1.0.20",
98
98
  "@granite-js/mpack": "1.0.20",