@apps-in-toss/web-framework 2.10.3 → 2.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/index.js +1 -6
- package/dist/prebuilt/dev.android.rn84.js +14 -21
- package/dist/prebuilt/dev.ios.rn84.js +14 -21
- package/dist/prebuilt/prod.android.rn72.js +20 -27
- package/dist/prebuilt/prod.android.rn84.js +20 -27
- package/dist/prebuilt/prod.ios.rn72.js +20 -27
- package/dist/prebuilt/prod.ios.rn84.js +20 -27
- package/package.json +8 -8
package/dist/config/index.js
CHANGED
|
@@ -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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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
|