@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.
@@ -238,7 +238,7 @@ var validateAppInTossWebPluginOptions = (() => {
238
238
  const _io0 = (input) => "object" === typeof input.commands && null !== input.commands && _io1(input.commands) && ("object" === typeof input.brand && null !== input.brand && _io2(input.brand)) && (void 0 === input.navigationBar || "object" === typeof input.navigationBar && null !== input.navigationBar && false === Array.isArray(input.navigationBar) && _io3(input.navigationBar)) && (void 0 === input.webViewProps || "object" === typeof input.webViewProps && null !== input.webViewProps && false === Array.isArray(input.webViewProps) && _io8(input.webViewProps)) && (Array.isArray(input.permissions) && input.permissions.every((elem) => "object" === typeof elem && null !== elem && _iu0(elem)));
239
239
  const _io1 = (input) => "string" === typeof input.build;
240
240
  const _io2 = (input) => "string" === typeof input.displayName && "string" === typeof input.primaryColor && "string" === typeof input.icon;
241
- const _io3 = (input) => (void 0 === input.withBackButton || "boolean" === typeof input.withBackButton) && (void 0 === input.withHomeButton || "boolean" === typeof input.withHomeButton) && (void 0 === input.withIcon || "boolean" === typeof input.withIcon) && (void 0 === input.withTitle || "boolean" === typeof input.withTitle) && (void 0 === input.transparentBackground || "boolean" === typeof input.transparentBackground) && (void 0 === input.theme || "light" === input.theme || "dark" === input.theme) && (void 0 === input.initialAccessoryButton || "object" === typeof input.initialAccessoryButton && null !== input.initialAccessoryButton && _io4(input.initialAccessoryButton));
241
+ const _io3 = (input) => (void 0 === input.withBackButton || "boolean" === typeof input.withBackButton) && (void 0 === input.withHomeButton || "boolean" === typeof input.withHomeButton) && (void 0 === input.withTitle || "boolean" === typeof input.withTitle) && (void 0 === input.transparentBackground || "boolean" === typeof input.transparentBackground) && (void 0 === input.theme || "light" === input.theme || "dark" === input.theme) && (void 0 === input.initialAccessoryButton || "object" === typeof input.initialAccessoryButton && null !== input.initialAccessoryButton && _io4(input.initialAccessoryButton));
242
242
  const _io4 = (input) => "string" === typeof input.id && "string" === typeof input.title && ("object" === typeof input.icon && null !== input.icon && _iu1(input.icon));
243
243
  const _io5 = (input) => "object" === typeof input.source && null !== input.source && _io6(input.source) && (null !== input.name && void 0 === input.name);
244
244
  const _io6 = (input) => "string" === typeof input.uri;
@@ -349,10 +349,6 @@ var validateAppInTossWebPluginOptions = (() => {
349
349
  path: _path + ".withHomeButton",
350
350
  expected: "(boolean | undefined)",
351
351
  value: input.withHomeButton
352
- }), void 0 === input.withIcon || "boolean" === typeof input.withIcon || _report(_exceptionable, {
353
- path: _path + ".withIcon",
354
- expected: "(boolean | undefined)",
355
- value: input.withIcon
356
352
  }), void 0 === input.withTitle || "boolean" === typeof input.withTitle || _report(_exceptionable, {
357
353
  path: _path + ".withTitle",
358
354
  expected: "(boolean | undefined)",
@@ -594,7 +590,6 @@ var defineConfig = (config) => {
594
590
  navigationBar: {
595
591
  withBackButton: true,
596
592
  withHomeButton: false,
597
- withIcon: true,
598
593
  withTitle: true,
599
594
  transparentBackground: false
600
595
  }
@@ -138499,8 +138499,6 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138499
138499
  alignItems: "center",
138500
138500
  gap: 6,
138501
138501
  height: 34,
138502
- paddingLeft: 10,
138503
- paddingRight: 10,
138504
138502
  backgroundColor: theme === "light" ? import_tds_react_native10.colors.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
138505
138503
  borderRadius: 99
138506
138504
  },
@@ -138522,7 +138520,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138522
138520
  style: {
138523
138521
  flexDirection: "row",
138524
138522
  alignItems: "center",
138525
- gap: 6
138523
+ gap: 6,
138524
+ paddingHorizontal: 10
138526
138525
  },
138527
138526
  children: [iconUrl != null && iconUrl !== "" && (0, import_jsx_runtime13.jsx)(import_react_native24.View, {
138528
138527
  style: {
@@ -138665,10 +138664,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138665
138664
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
138666
138665
  var withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
138667
138666
  var withBackButton = parsedNavigationBar?.withBackButton ?? true;
138668
- var withIcon = parsedNavigationBar?.withIcon ?? true;
138669
138667
  var withTitle = parsedNavigationBar?.withTitle ?? true;
138670
- var iconURL = withIcon ? globals.brandIcon : void 0;
138671
- var title = withTitle ? globals.brandDisplayName : void 0;
138672
138668
  var theme = parsedNavigationBar?.theme ?? "light";
138673
138669
  var _useNavigationBarCont = useNavigationBarContext(),
138674
138670
  navigationRightButton = _useNavigationBarCont.navigationRightButton;
@@ -138681,18 +138677,18 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138681
138677
  theme,
138682
138678
  onPress: navigationEvent.handleBack
138683
138679
  }) : null,
138684
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime16.jsx)(HomeButton, {
138680
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime16.jsx)(HomeButton, {
138685
138681
  theme,
138686
138682
  onPress: navigationEvent.handleHomeButtonClick,
138687
138683
  children: (0, import_jsx_runtime16.jsx)(AppTitle, {
138688
138684
  theme,
138689
- title,
138690
- iconUrl: iconURL
138685
+ title: globals.brandDisplayName,
138686
+ iconUrl: globals.brandIcon
138691
138687
  })
138692
138688
  }) : (0, import_jsx_runtime16.jsx)(AppTitle, {
138693
138689
  theme,
138694
- title,
138695
- iconUrl: iconURL
138690
+ title: globals.brandDisplayName,
138691
+ iconUrl: globals.brandIcon
138696
138692
  }) : null,
138697
138693
  right: (0, import_jsx_runtime16.jsx)(Menu2, {
138698
138694
  theme,
@@ -138969,10 +138965,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138969
138965
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
138970
138966
  var withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
138971
138967
  var withBackButton = parsedNavigationBar?.withBackButton ?? true;
138972
- var withIcon = parsedNavigationBar?.withIcon ?? true;
138973
138968
  var withTitle = parsedNavigationBar?.withTitle ?? true;
138974
- var iconURL = withIcon ? globals.brandIcon : void 0;
138975
- var title = withTitle ? globals.brandDisplayName : void 0;
138976
138969
  var theme = parsedNavigationBar?.theme ?? "light";
138977
138970
  var _useNavigationBarCont4 = useNavigationBarContext(),
138978
138971
  navigationRightButton = _useNavigationBarCont4.navigationRightButton;
@@ -138987,18 +138980,18 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138987
138980
  theme,
138988
138981
  onPress: onBackButtonClick
138989
138982
  }) : null,
138990
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime22.jsx)(HomeButton, {
138983
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime22.jsx)(HomeButton, {
138991
138984
  theme,
138992
138985
  onPress: onHomeButtonClick,
138993
138986
  children: (0, import_jsx_runtime22.jsx)(AppTitle, {
138994
138987
  theme,
138995
- title,
138996
- iconUrl: iconURL
138988
+ title: globals.brandDisplayName,
138989
+ iconUrl: globals.brandIcon
138997
138990
  })
138998
138991
  }) : (0, import_jsx_runtime22.jsx)(AppTitle, {
138999
138992
  theme,
139000
- title,
139001
- iconUrl: iconURL
138993
+ title: globals.brandDisplayName,
138994
+ iconUrl: globals.brandIcon
139002
138995
  }) : null,
139003
138996
  right: (0, import_jsx_runtime22.jsx)(Menu2, {
139004
138997
  theme,
@@ -140538,7 +140531,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
140538
140531
  var package_default = {
140539
140532
  name: "@apps-in-toss/framework",
140540
140533
  type: "module",
140541
- version: "2.10.3",
140534
+ version: "2.10.4",
140542
140535
  description: "The framework for Apps In Toss",
140543
140536
  scripts: {
140544
140537
  typecheck: "tsc --noEmit",
@@ -215460,7 +215453,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
215460
215453
  }
215461
215454
  \`;document.head.appendChild(e);})();
215462
215455
  `,
215463
- m = '"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';
215456
+ m = '"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';
215464
215457
  0 && (module.exports = {
215465
215458
  afterDocumentLoad,
215466
215459
  beforeDocumentLoad
@@ -138038,8 +138038,6 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138038
138038
  alignItems: "center",
138039
138039
  gap: 6,
138040
138040
  height: 34,
138041
- paddingLeft: 10,
138042
- paddingRight: 10,
138043
138041
  backgroundColor: theme === "light" ? import_tds_react_native10.colors.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
138044
138042
  borderRadius: 99
138045
138043
  },
@@ -138061,7 +138059,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138061
138059
  style: {
138062
138060
  flexDirection: "row",
138063
138061
  alignItems: "center",
138064
- gap: 6
138062
+ gap: 6,
138063
+ paddingHorizontal: 10
138065
138064
  },
138066
138065
  children: [iconUrl != null && iconUrl !== "" && (0, import_jsx_runtime13.jsx)(import_react_native24.View, {
138067
138066
  style: {
@@ -138204,10 +138203,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138204
138203
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
138205
138204
  var withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
138206
138205
  var withBackButton = parsedNavigationBar?.withBackButton ?? true;
138207
- var withIcon = parsedNavigationBar?.withIcon ?? true;
138208
138206
  var withTitle = parsedNavigationBar?.withTitle ?? true;
138209
- var iconURL = withIcon ? globals.brandIcon : void 0;
138210
- var title = withTitle ? globals.brandDisplayName : void 0;
138211
138207
  var theme = parsedNavigationBar?.theme ?? "light";
138212
138208
  var _useNavigationBarCont = useNavigationBarContext(),
138213
138209
  navigationRightButton = _useNavigationBarCont.navigationRightButton;
@@ -138220,18 +138216,18 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138220
138216
  theme,
138221
138217
  onPress: navigationEvent.handleBack
138222
138218
  }) : null,
138223
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime16.jsx)(HomeButton, {
138219
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime16.jsx)(HomeButton, {
138224
138220
  theme,
138225
138221
  onPress: navigationEvent.handleHomeButtonClick,
138226
138222
  children: (0, import_jsx_runtime16.jsx)(AppTitle, {
138227
138223
  theme,
138228
- title,
138229
- iconUrl: iconURL
138224
+ title: globals.brandDisplayName,
138225
+ iconUrl: globals.brandIcon
138230
138226
  })
138231
138227
  }) : (0, import_jsx_runtime16.jsx)(AppTitle, {
138232
138228
  theme,
138233
- title,
138234
- iconUrl: iconURL
138229
+ title: globals.brandDisplayName,
138230
+ iconUrl: globals.brandIcon
138235
138231
  }) : null,
138236
138232
  right: (0, import_jsx_runtime16.jsx)(Menu2, {
138237
138233
  theme,
@@ -138508,10 +138504,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138508
138504
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
138509
138505
  var withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
138510
138506
  var withBackButton = parsedNavigationBar?.withBackButton ?? true;
138511
- var withIcon = parsedNavigationBar?.withIcon ?? true;
138512
138507
  var withTitle = parsedNavigationBar?.withTitle ?? true;
138513
- var iconURL = withIcon ? globals.brandIcon : void 0;
138514
- var title = withTitle ? globals.brandDisplayName : void 0;
138515
138508
  var theme = parsedNavigationBar?.theme ?? "light";
138516
138509
  var _useNavigationBarCont4 = useNavigationBarContext(),
138517
138510
  navigationRightButton = _useNavigationBarCont4.navigationRightButton;
@@ -138526,18 +138519,18 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
138526
138519
  theme,
138527
138520
  onPress: onBackButtonClick
138528
138521
  }) : null,
138529
- center: title || iconURL ? withHomeButton ? (0, import_jsx_runtime22.jsx)(HomeButton, {
138522
+ center: withTitle ? withHomeButton ? (0, import_jsx_runtime22.jsx)(HomeButton, {
138530
138523
  theme,
138531
138524
  onPress: onHomeButtonClick,
138532
138525
  children: (0, import_jsx_runtime22.jsx)(AppTitle, {
138533
138526
  theme,
138534
- title,
138535
- iconUrl: iconURL
138527
+ title: globals.brandDisplayName,
138528
+ iconUrl: globals.brandIcon
138536
138529
  })
138537
138530
  }) : (0, import_jsx_runtime22.jsx)(AppTitle, {
138538
138531
  theme,
138539
- title,
138540
- iconUrl: iconURL
138532
+ title: globals.brandDisplayName,
138533
+ iconUrl: globals.brandIcon
138541
138534
  }) : null,
138542
138535
  right: (0, import_jsx_runtime22.jsx)(Menu2, {
138543
138536
  theme,
@@ -140077,7 +140070,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
140077
140070
  var package_default = {
140078
140071
  name: "@apps-in-toss/framework",
140079
140072
  type: "module",
140080
- version: "2.10.3",
140073
+ version: "2.10.4",
140081
140074
  description: "The framework for Apps In Toss",
140082
140075
  scripts: {
140083
140076
  typecheck: "tsc --noEmit",
@@ -214888,7 +214881,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
214888
214881
  }
214889
214882
  \`;document.head.appendChild(e);})();
214890
214883
  `,
214891
- m = '"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';
214884
+ m = '"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';
214892
214885
  0 && (module.exports = {
214893
214886
  afterDocumentLoad,
214894
214887
  beforeDocumentLoad