@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.
@@ -45556,7 +45556,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45556
45556
  "../user-scripts/dist/index.mjs"() {
45557
45557
  "use strict";
45558
45558
  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';
45559
- 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';
45559
+ 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';
45560
45560
  }
45561
45561
  });
45562
45562
 
@@ -46401,8 +46401,6 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46401
46401
  alignItems: "center",
46402
46402
  gap: 6,
46403
46403
  height: 34,
46404
- paddingLeft: 10,
46405
- paddingRight: 10,
46406
46404
  backgroundColor: theme === "light" ? pd.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
46407
46405
  borderRadius: 99
46408
46406
  },
@@ -46421,7 +46419,8 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46421
46419
  style: {
46422
46420
  flexDirection: "row",
46423
46421
  alignItems: "center",
46424
- gap: 6
46422
+ gap: 6,
46423
+ paddingHorizontal: 10
46425
46424
  },
46426
46425
  children: [
46427
46426
  iconUrl != null && iconUrl !== "" && (0, import_jsx_runtime224.jsx)(import_react_native209.View, {
@@ -46560,17 +46559,14 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46560
46559
  });
46561
46560
  }
46562
46561
  function DefaultNavigationBar() {
46563
- var _ref, _ref1, _ref2, _ref3, _ref4;
46562
+ var _ref, _ref1, _ref2, _ref3;
46564
46563
  var globals = getAppsInTossGlobals();
46565
46564
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
46566
46565
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
46567
46566
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
46568
46567
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
46569
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
46570
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
46571
- var iconURL = withIcon ? globals.brandIcon : void 0;
46572
- var title = withTitle ? globals.brandDisplayName : void 0;
46573
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
46568
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
46569
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
46574
46570
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
46575
46571
  var navigationEvent = useNavigationEvent();
46576
46572
  useHardwareBackPress(navigationEvent.handleBack);
@@ -46581,18 +46577,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46581
46577
  theme,
46582
46578
  onPress: navigationEvent.handleBack
46583
46579
  }) : null,
46584
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
46580
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
46585
46581
  theme,
46586
46582
  onPress: navigationEvent.handleHomeButtonClick,
46587
46583
  children: (0, import_jsx_runtime227.jsx)(AppTitle, {
46588
46584
  theme,
46589
- title,
46590
- iconUrl: iconURL
46585
+ title: globals.brandDisplayName,
46586
+ iconUrl: globals.brandIcon
46591
46587
  })
46592
46588
  }) : (0, import_jsx_runtime227.jsx)(AppTitle, {
46593
46589
  theme,
46594
- title,
46595
- iconUrl: iconURL
46590
+ title: globals.brandDisplayName,
46591
+ iconUrl: globals.brandIcon
46596
46592
  }) : null,
46597
46593
  right: (0, import_jsx_runtime227.jsx)(Menu2, {
46598
46594
  theme,
@@ -46819,18 +46815,15 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46819
46815
  }
46820
46816
  function PartnerWebviewNavigationBar(param) {
46821
46817
  var onBackButtonClick = param.onBackButtonClick, onHomeButtonClick = param.onHomeButtonClick;
46822
- var _ref, _ref1, _ref2, _ref3, _ref4;
46818
+ var _ref, _ref1, _ref2, _ref3;
46823
46819
  var globals = getAppsInTossGlobals();
46824
46820
  var logging = useNavigationBarLogging();
46825
46821
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
46826
46822
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
46827
46823
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
46828
46824
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
46829
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
46830
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
46831
- var iconURL = withIcon ? globals.brandIcon : void 0;
46832
- var title = withTitle ? globals.brandDisplayName : void 0;
46833
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
46825
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
46826
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
46834
46827
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
46835
46828
  var handleClose = (0, import_react196.useCallback)(function() {
46836
46829
  return _async_to_generator(function() {
@@ -46852,18 +46845,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
46852
46845
  theme,
46853
46846
  onPress: onBackButtonClick
46854
46847
  }) : null,
46855
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
46848
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
46856
46849
  theme,
46857
46850
  onPress: onHomeButtonClick,
46858
46851
  children: (0, import_jsx_runtime233.jsx)(AppTitle, {
46859
46852
  theme,
46860
- title,
46861
- iconUrl: iconURL
46853
+ title: globals.brandDisplayName,
46854
+ iconUrl: globals.brandIcon
46862
46855
  })
46863
46856
  }) : (0, import_jsx_runtime233.jsx)(AppTitle, {
46864
46857
  theme,
46865
- title,
46866
- iconUrl: iconURL
46858
+ title: globals.brandDisplayName,
46859
+ iconUrl: globals.brandIcon
46867
46860
  }) : null,
46868
46861
  right: (0, import_jsx_runtime233.jsx)(Menu2, {
46869
46862
  theme,
@@ -49270,7 +49263,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
49270
49263
  package_default2 = {
49271
49264
  name: "@apps-in-toss/framework",
49272
49265
  type: "module",
49273
- version: "2.10.3",
49266
+ version: "2.10.4",
49274
49267
  description: "The framework for Apps In Toss",
49275
49268
  scripts: {
49276
49269
  typecheck: "tsc --noEmit",
@@ -44573,7 +44573,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
44573
44573
  "../user-scripts/dist/index.mjs"() {
44574
44574
  "use strict";
44575
44575
  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';
44576
- 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';
44576
+ 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';
44577
44577
  }
44578
44578
  });
44579
44579
 
@@ -45418,8 +45418,6 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45418
45418
  alignItems: "center",
45419
45419
  gap: 6,
45420
45420
  height: 34,
45421
- paddingLeft: 10,
45422
- paddingRight: 10,
45423
45421
  backgroundColor: theme === "light" ? pd.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
45424
45422
  borderRadius: 99
45425
45423
  },
@@ -45438,7 +45436,8 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45438
45436
  style: {
45439
45437
  flexDirection: "row",
45440
45438
  alignItems: "center",
45441
- gap: 6
45439
+ gap: 6,
45440
+ paddingHorizontal: 10
45442
45441
  },
45443
45442
  children: [
45444
45443
  iconUrl != null && iconUrl !== "" && (0, import_jsx_runtime224.jsx)(import_react_native209.View, {
@@ -45577,17 +45576,14 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45577
45576
  });
45578
45577
  }
45579
45578
  function DefaultNavigationBar() {
45580
- var _ref, _ref1, _ref2, _ref3, _ref4;
45579
+ var _ref, _ref1, _ref2, _ref3;
45581
45580
  var globals = getAppsInTossGlobals();
45582
45581
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
45583
45582
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
45584
45583
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
45585
45584
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
45586
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
45587
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
45588
- var iconURL = withIcon ? globals.brandIcon : void 0;
45589
- var title = withTitle ? globals.brandDisplayName : void 0;
45590
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
45585
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
45586
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
45591
45587
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
45592
45588
  var navigationEvent = useNavigationEvent();
45593
45589
  useHardwareBackPress(navigationEvent.handleBack);
@@ -45598,18 +45594,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45598
45594
  theme,
45599
45595
  onPress: navigationEvent.handleBack
45600
45596
  }) : null,
45601
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
45597
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime227.jsx)(HomeButton, {
45602
45598
  theme,
45603
45599
  onPress: navigationEvent.handleHomeButtonClick,
45604
45600
  children: (0, import_jsx_runtime227.jsx)(AppTitle, {
45605
45601
  theme,
45606
- title,
45607
- iconUrl: iconURL
45602
+ title: globals.brandDisplayName,
45603
+ iconUrl: globals.brandIcon
45608
45604
  })
45609
45605
  }) : (0, import_jsx_runtime227.jsx)(AppTitle, {
45610
45606
  theme,
45611
- title,
45612
- iconUrl: iconURL
45607
+ title: globals.brandDisplayName,
45608
+ iconUrl: globals.brandIcon
45613
45609
  }) : null,
45614
45610
  right: (0, import_jsx_runtime227.jsx)(Menu2, {
45615
45611
  theme,
@@ -45836,18 +45832,15 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45836
45832
  }
45837
45833
  function PartnerWebviewNavigationBar(param) {
45838
45834
  var onBackButtonClick = param.onBackButtonClick, onHomeButtonClick = param.onHomeButtonClick;
45839
- var _ref, _ref1, _ref2, _ref3, _ref4;
45835
+ var _ref, _ref1, _ref2, _ref3;
45840
45836
  var globals = getAppsInTossGlobals();
45841
45837
  var logging = useNavigationBarLogging();
45842
45838
  var _useMoreButtonBottomSheet = useMoreButtonBottomSheet(), openMoreButtonBottomSheet = _useMoreButtonBottomSheet.open;
45843
45839
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
45844
45840
  var withHomeButton = (_ref = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withHomeButton) !== null && _ref !== void 0 ? _ref : false;
45845
45841
  var withBackButton = (_ref1 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withBackButton) !== null && _ref1 !== void 0 ? _ref1 : true;
45846
- var withIcon = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withIcon) !== null && _ref2 !== void 0 ? _ref2 : true;
45847
- var withTitle = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref3 !== void 0 ? _ref3 : true;
45848
- var iconURL = withIcon ? globals.brandIcon : void 0;
45849
- var title = withTitle ? globals.brandDisplayName : void 0;
45850
- var theme = (_ref4 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref4 !== void 0 ? _ref4 : "light";
45842
+ var withTitle = (_ref2 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.withTitle) !== null && _ref2 !== void 0 ? _ref2 : true;
45843
+ var theme = (_ref3 = parsedNavigationBar === null || parsedNavigationBar === void 0 ? void 0 : parsedNavigationBar.theme) !== null && _ref3 !== void 0 ? _ref3 : "light";
45851
45844
  var navigationRightButton = useNavigationBarContext().navigationRightButton;
45852
45845
  var handleClose = (0, import_react196.useCallback)(function() {
45853
45846
  return _async_to_generator(function() {
@@ -45869,18 +45862,18 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
45869
45862
  theme,
45870
45863
  onPress: onBackButtonClick
45871
45864
  }) : null,
45872
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
45865
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime233.jsx)(HomeButton, {
45873
45866
  theme,
45874
45867
  onPress: onHomeButtonClick,
45875
45868
  children: (0, import_jsx_runtime233.jsx)(AppTitle, {
45876
45869
  theme,
45877
- title,
45878
- iconUrl: iconURL
45870
+ title: globals.brandDisplayName,
45871
+ iconUrl: globals.brandIcon
45879
45872
  })
45880
45873
  }) : (0, import_jsx_runtime233.jsx)(AppTitle, {
45881
45874
  theme,
45882
- title,
45883
- iconUrl: iconURL
45875
+ title: globals.brandDisplayName,
45876
+ iconUrl: globals.brandIcon
45884
45877
  }) : null,
45885
45878
  right: (0, import_jsx_runtime233.jsx)(Menu2, {
45886
45879
  theme,
@@ -48287,7 +48280,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
48287
48280
  package_default2 = {
48288
48281
  name: "@apps-in-toss/framework",
48289
48282
  type: "module",
48290
- version: "2.10.3",
48283
+ version: "2.10.4",
48291
48284
  description: "The framework for Apps In Toss",
48292
48285
  scripts: {
48293
48286
  typecheck: "tsc --noEmit",