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