@apps-in-toss/web-framework 1.11.1 → 1.12.0
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/cli/index.js +1 -1
- package/dist/prebuilt/dev.android.js +108 -19
- package/dist/prebuilt/dev.ios.js +108 -19
- package/dist/prebuilt/prod.android.js +65 -5
- package/dist/prebuilt/prod.ios.js +65 -5
- package/package.json +7 -7
package/dist/prebuilt/dev.ios.js
CHANGED
|
@@ -156039,6 +156039,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
156039
156039
|
showFullScreenAd: _showFullScreenAd,
|
|
156040
156040
|
fetchTossAd: fetchTossAd,
|
|
156041
156041
|
iapCreateOneTimePurchaseOrder: import_native_modules24.IAP.createOneTimePurchaseOrder,
|
|
156042
|
+
requestSubscriptionPurchase: import_native_modules24.IAP.createSubscriptionPurchaseOrder,
|
|
156042
156043
|
requestOneTimePurchase: import_native_modules24.requestOneTimePurchase
|
|
156043
156044
|
}),
|
|
156044
156045
|
constantHandlerMap: Object.assign({}, appsInTossConstantBridges, {
|
|
@@ -159070,7 +159071,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159070
159071
|
});
|
|
159071
159072
|
return _getTossShareLinkV.apply(this, arguments);
|
|
159072
159073
|
}
|
|
159073
|
-
var
|
|
159074
|
+
var noop2 = function noop2() {};
|
|
159074
159075
|
function _iapCreateOneTimePurchaseOrder(params) {
|
|
159075
159076
|
var _params$sku;
|
|
159076
159077
|
var sku = (_params$sku = params.sku) != null ? _params$sku : params.productId;
|
|
@@ -159118,7 +159119,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159118
159119
|
ios: "5.219.0"
|
|
159119
159120
|
});
|
|
159120
159121
|
if (!isIAPSupported) {
|
|
159121
|
-
return
|
|
159122
|
+
return noop2;
|
|
159122
159123
|
}
|
|
159123
159124
|
var isProcessProductGrantSupported = _isMinVersionSupported({
|
|
159124
159125
|
android: "5.231.1",
|
|
@@ -159146,7 +159147,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159146
159147
|
}).catch(function (error) {
|
|
159147
159148
|
_onError2(error);
|
|
159148
159149
|
});
|
|
159149
|
-
return
|
|
159150
|
+
return noop2;
|
|
159150
159151
|
};
|
|
159151
159152
|
return v1();
|
|
159152
159153
|
}
|
|
@@ -159244,14 +159245,58 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159244
159245
|
});
|
|
159245
159246
|
return _completeProductGrant.apply(this, arguments);
|
|
159246
159247
|
}
|
|
159248
|
+
function createSubscriptionPurchaseOrder(params) {
|
|
159249
|
+
var isSupported = _isMinVersionSupported({
|
|
159250
|
+
android: "5.248.0",
|
|
159251
|
+
ios: "5.249.0"
|
|
159252
|
+
});
|
|
159253
|
+
if (!isSupported) {
|
|
159254
|
+
return noop2;
|
|
159255
|
+
}
|
|
159256
|
+
var options = params.options,
|
|
159257
|
+
onEvent = params.onEvent,
|
|
159258
|
+
_onError3 = params.onError;
|
|
159259
|
+
var sku = options.sku,
|
|
159260
|
+
offerId = options.offerId,
|
|
159261
|
+
processProductGrant2 = options.processProductGrant;
|
|
159262
|
+
var unregisterCallbacks = _INTERNAL__appBridgeHandler.invokeAppBridgeMethod("requestSubscriptionPurchase", {
|
|
159263
|
+
sku: sku,
|
|
159264
|
+
offerId: offerId != null ? offerId : null
|
|
159265
|
+
}, {
|
|
159266
|
+
onPurchased: function () {
|
|
159267
|
+
var _onPurchased2 = _asyncToGenerator(function* (purchasedParams) {
|
|
159268
|
+
var isProductGranted = yield processProductGrant2(purchasedParams);
|
|
159269
|
+
yield _AppsInTossModule.processProductGrant({
|
|
159270
|
+
orderId: purchasedParams.orderId,
|
|
159271
|
+
isProductGranted: isProductGranted
|
|
159272
|
+
});
|
|
159273
|
+
});
|
|
159274
|
+
function onPurchased(_x14) {
|
|
159275
|
+
return _onPurchased2.apply(this, arguments);
|
|
159276
|
+
}
|
|
159277
|
+
return onPurchased;
|
|
159278
|
+
}(),
|
|
159279
|
+
onSuccess: function onSuccess(result) {
|
|
159280
|
+
onEvent({
|
|
159281
|
+
type: "success",
|
|
159282
|
+
data: result
|
|
159283
|
+
});
|
|
159284
|
+
},
|
|
159285
|
+
onError: function onError(error) {
|
|
159286
|
+
_onError3(error);
|
|
159287
|
+
}
|
|
159288
|
+
});
|
|
159289
|
+
return unregisterCallbacks;
|
|
159290
|
+
}
|
|
159247
159291
|
var _IAP = {
|
|
159248
159292
|
createOneTimePurchaseOrder: createOneTimePurchaseOrder,
|
|
159293
|
+
createSubscriptionPurchaseOrder: createSubscriptionPurchaseOrder,
|
|
159249
159294
|
getProductItemList: getProductItemList,
|
|
159250
159295
|
getPendingOrders: getPendingOrders,
|
|
159251
159296
|
getCompletedOrRefundedOrders: getCompletedOrRefundedOrders,
|
|
159252
159297
|
completeProductGrant: completeProductGrant
|
|
159253
159298
|
};
|
|
159254
|
-
function _saveBase64Data(
|
|
159299
|
+
function _saveBase64Data(_x15) {
|
|
159255
159300
|
return _saveBase64Data2.apply(this, arguments);
|
|
159256
159301
|
}
|
|
159257
159302
|
function _saveBase64Data2() {
|
|
@@ -159268,7 +159313,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159268
159313
|
});
|
|
159269
159314
|
return _saveBase64Data2.apply(this, arguments);
|
|
159270
159315
|
}
|
|
159271
|
-
function _setDeviceOrientation(
|
|
159316
|
+
function _setDeviceOrientation(_x16) {
|
|
159272
159317
|
return _setDeviceOrientation2.apply(this, arguments);
|
|
159273
159318
|
}
|
|
159274
159319
|
function _setDeviceOrientation2() {
|
|
@@ -159363,7 +159408,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159363
159408
|
});
|
|
159364
159409
|
return _getGameCenterGameProfile2.apply(this, arguments);
|
|
159365
159410
|
}
|
|
159366
|
-
function _submitGameCenterLeaderBoardScore(
|
|
159411
|
+
function _submitGameCenterLeaderBoardScore(_x17) {
|
|
159367
159412
|
return _submitGameCenterLeaderBoardScore2.apply(this, arguments);
|
|
159368
159413
|
}
|
|
159369
159414
|
function _submitGameCenterLeaderBoardScore2() {
|
|
@@ -159403,7 +159448,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159403
159448
|
function isGrantPromotionRewardForGameError(error) {
|
|
159404
159449
|
return typeof error === "object" && error !== null && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string";
|
|
159405
159450
|
}
|
|
159406
|
-
function _grantPromotionRewardForGame(
|
|
159451
|
+
function _grantPromotionRewardForGame(_x18) {
|
|
159407
159452
|
return _grantPromotionRewardForGame2.apply(this, arguments);
|
|
159408
159453
|
}
|
|
159409
159454
|
function _grantPromotionRewardForGame2() {
|
|
@@ -159485,7 +159530,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159485
159530
|
ios: "5.236.0"
|
|
159486
159531
|
}
|
|
159487
159532
|
};
|
|
159488
|
-
function _appsInTossSignTossCert(
|
|
159533
|
+
function _appsInTossSignTossCert(_x19) {
|
|
159489
159534
|
return _appsInTossSignTossCert2.apply(this, arguments);
|
|
159490
159535
|
}
|
|
159491
159536
|
function _appsInTossSignTossCert2() {
|
|
@@ -159564,7 +159609,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159564
159609
|
function _generateHapticFeedback(options) {
|
|
159565
159610
|
return _BedrockModule.generateHapticFeedback(options);
|
|
159566
159611
|
}
|
|
159567
|
-
function _share(
|
|
159612
|
+
function _share(_x20) {
|
|
159568
159613
|
return _share2.apply(this, arguments);
|
|
159569
159614
|
}
|
|
159570
159615
|
function _share2() {
|
|
@@ -159576,7 +159621,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159576
159621
|
function _setSecureScreen(options) {
|
|
159577
159622
|
return _BedrockModule.setSecureScreen(options);
|
|
159578
159623
|
}
|
|
159579
|
-
function _setScreenAwakeMode(
|
|
159624
|
+
function _setScreenAwakeMode(_x21) {
|
|
159580
159625
|
return _setScreenAwakeMode2.apply(this, arguments);
|
|
159581
159626
|
}
|
|
159582
159627
|
function _setScreenAwakeMode2() {
|
|
@@ -159588,7 +159633,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
159588
159633
|
function _getNetworkStatus() {
|
|
159589
159634
|
return _BedrockModule.getNetworkStatus();
|
|
159590
159635
|
}
|
|
159591
|
-
function _setIosSwipeGestureEnabled(
|
|
159636
|
+
function _setIosSwipeGestureEnabled(_x22) {
|
|
159592
159637
|
return _setIosSwipeGestureEnabled2.apply(this, arguments);
|
|
159593
159638
|
}
|
|
159594
159639
|
function _setIosSwipeGestureEnabled2() {
|
|
@@ -235534,10 +235579,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
235534
235579
|
exports.processProductGrant = processProductGrant;
|
|
235535
235580
|
exports.requestOneTimePurchase = requestOneTimePurchase;
|
|
235536
235581
|
var _asyncToGenerator2 = _interopRequireDefault(_$$_REQUIRE(_dependencyMap[1], "@babel/runtime/helpers/asyncToGenerator"));
|
|
235537
|
-
var
|
|
235538
|
-
var
|
|
235539
|
-
var
|
|
235540
|
-
var
|
|
235582
|
+
var _AppsInTossModule = _$$_REQUIRE(_dependencyMap[2], "./AppsInTossModule");
|
|
235583
|
+
var _isMinVersionSupported = _$$_REQUIRE(_dependencyMap[3], "./isMinVersionSupported");
|
|
235584
|
+
var _appBridge = _$$_REQUIRE(_dependencyMap[4], "../native-event-emitter/internal/appBridge");
|
|
235585
|
+
var noop = function noop() {};
|
|
235541
235586
|
function iapCreateOneTimePurchaseOrder(params) {
|
|
235542
235587
|
var _params$sku;
|
|
235543
235588
|
var sku = (_params$sku = params.sku) != null ? _params$sku : params.productId;
|
|
@@ -235585,7 +235630,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
235585
235630
|
ios: '5.219.0'
|
|
235586
235631
|
});
|
|
235587
235632
|
if (!isIAPSupported) {
|
|
235588
|
-
return
|
|
235633
|
+
return noop;
|
|
235589
235634
|
}
|
|
235590
235635
|
var isProcessProductGrantSupported = (0, _isMinVersionSupported.isMinVersionSupported)({
|
|
235591
235636
|
android: '5.231.1',
|
|
@@ -235613,7 +235658,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
235613
235658
|
}).catch(function (error) {
|
|
235614
235659
|
_onError2(error);
|
|
235615
235660
|
});
|
|
235616
|
-
return
|
|
235661
|
+
return noop;
|
|
235617
235662
|
};
|
|
235618
235663
|
return v1();
|
|
235619
235664
|
}
|
|
@@ -235711,14 +235756,58 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
235711
235756
|
});
|
|
235712
235757
|
return _completeProductGrant.apply(this, arguments);
|
|
235713
235758
|
}
|
|
235759
|
+
function createSubscriptionPurchaseOrder(params) {
|
|
235760
|
+
var isSupported = (0, _isMinVersionSupported.isMinVersionSupported)({
|
|
235761
|
+
android: '5.248.0',
|
|
235762
|
+
ios: '5.249.0'
|
|
235763
|
+
});
|
|
235764
|
+
if (!isSupported) {
|
|
235765
|
+
return noop;
|
|
235766
|
+
}
|
|
235767
|
+
var options = params.options,
|
|
235768
|
+
onEvent = params.onEvent,
|
|
235769
|
+
_onError3 = params.onError;
|
|
235770
|
+
var sku = options.sku,
|
|
235771
|
+
offerId = options.offerId,
|
|
235772
|
+
processProductGrant = options.processProductGrant;
|
|
235773
|
+
var unregisterCallbacks = _appBridge.INTERNAL__appBridgeHandler.invokeAppBridgeMethod('requestSubscriptionPurchase', {
|
|
235774
|
+
sku: sku,
|
|
235775
|
+
offerId: offerId != null ? offerId : null
|
|
235776
|
+
}, {
|
|
235777
|
+
onPurchased: function () {
|
|
235778
|
+
var _onPurchased2 = (0, _asyncToGenerator2.default)(function* (purchasedParams) {
|
|
235779
|
+
var isProductGranted = yield processProductGrant(purchasedParams);
|
|
235780
|
+
yield _AppsInTossModule.AppsInTossModule.processProductGrant({
|
|
235781
|
+
orderId: purchasedParams.orderId,
|
|
235782
|
+
isProductGranted: isProductGranted
|
|
235783
|
+
});
|
|
235784
|
+
});
|
|
235785
|
+
function onPurchased(_x4) {
|
|
235786
|
+
return _onPurchased2.apply(this, arguments);
|
|
235787
|
+
}
|
|
235788
|
+
return onPurchased;
|
|
235789
|
+
}(),
|
|
235790
|
+
onSuccess: function onSuccess(result) {
|
|
235791
|
+
onEvent({
|
|
235792
|
+
type: 'success',
|
|
235793
|
+
data: result
|
|
235794
|
+
});
|
|
235795
|
+
},
|
|
235796
|
+
onError: function onError(error) {
|
|
235797
|
+
_onError3(error);
|
|
235798
|
+
}
|
|
235799
|
+
});
|
|
235800
|
+
return unregisterCallbacks;
|
|
235801
|
+
}
|
|
235714
235802
|
var IAP = exports.IAP = {
|
|
235715
235803
|
createOneTimePurchaseOrder: createOneTimePurchaseOrder,
|
|
235804
|
+
createSubscriptionPurchaseOrder: createSubscriptionPurchaseOrder,
|
|
235716
235805
|
getProductItemList: getProductItemList,
|
|
235717
235806
|
getPendingOrders: getPendingOrders,
|
|
235718
235807
|
getCompletedOrRefundedOrders: getCompletedOrRefundedOrders,
|
|
235719
235808
|
completeProductGrant: completeProductGrant
|
|
235720
235809
|
};
|
|
235721
|
-
},2625,[1,16,
|
|
235810
|
+
},2625,[1,16,2579,2591,2619],"../../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-e56741e8de/1/packages/apps-in-toss/native-modules/src/AppsInTossModule/native-modules/iap.ts");
|
|
235722
235811
|
__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) {
|
|
235723
235812
|
Object.defineProperty(exports, "__esModule", {
|
|
235724
235813
|
value: true
|
|
@@ -235851,7 +235940,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
|
|
|
235851
235940
|
}
|
|
235852
235941
|
\`;document.head.appendChild(e);})();
|
|
235853
235942
|
`,
|
|
235854
|
-
m = "\"use strict\";(()=>{var ie=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`)}},h=new ie,O=()=>Math.random().toString(36).substring(2,15),k=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=O(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(h.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(h.on(`${e}/reject/${r}`,i=>{o(),a(k(i))})),h.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function x(e){return t=>{let r=O(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(k(o))})];return h.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{h.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function l(e){return()=>h.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 qe=d(\"closeView\"),je=d(\"generateHapticFeedback\"),Ke=d(\"share\"),Je=d(\"setSecureScreen\"),Xe=d(\"setScreenAwakeMode\"),Ye=d(\"getNetworkStatus\"),Ze=d(\"setIosSwipeGestureEnabled\"),Qe=d(\"openURL\"),et=d(\"openPermissionDialog\"),tt=d(\"getPermission\"),rt=d(\"requestPermission\"),nt=l(\"setClipboardText\"),ot=l(\"getClipboardText\"),st=l(\"fetchContacts\"),at=l(\"fetchAlbumPhotos\"),it=l(\"getCurrentLocation\"),ct=l(\"openCamera\"),dt=d(\"appLogin\"),ut=d(\"eventLog\"),pt=d(\"getTossShareLink\"),mt=d(\"setDeviceOrientation\"),lt=d(\"checkoutPayment\"),gt=d(\"saveBase64Data\"),ft=d(\"appsInTossSignTossCert\"),vt=d(\"getGameCenterGameProfile\"),ht=d(\"openGameCenterLeaderboard\"),wt=d(\"submitGameCenterLeaderBoardScore\"),Et=d(\"getUserKeyForGame\"),bt=d(\"getIsTossLoginIntegratedService\"),At=d(\"grantPromotionRewardForGame\"),St=d(\"getServerTime\"),_t=l(\"getLocale\"),Ct=l(\"getSchemeUri\"),Tt=l(\"getPlatformOS\"),yt=l(\"getOperationalEnvironment\"),It=l(\"getTossAppVersion\"),Lt=l(\"getDeviceId\"),xt=x(\"contactsViral\"),Pt=x(\"startUpdateLocation\"),Rt=x(\"onVisibilityChangedByTransparentServiceWeb\");var _=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},B=class extends _{constructor(){super({methodName:\"fetchAlbumPhotos\",message:\"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},G=class extends _{constructor(){super({methodName:\"fetchContacts\",message:\"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},V=class extends _{constructor(){super({methodName:\"openCamera\",message:\"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var F=class extends _{constructor(){super({methodName:\"getCurrentLocation\",message:\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},H=F,U=class extends _{constructor(){super({methodName:\"getClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},z=class extends _{constructor(){super({methodName:\"setClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var de=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`)}},w=new de,Q=()=>Math.random().toString(36).substring(2,15),ee=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=Q(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(w.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(w.on(`${e}/reject/${r}`,i=>{o(),a(ee(i))})),w.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function A(e){return t=>{let r=Q(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(ee(o))})];return w.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{w.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function u(e){return()=>w.getConstant(e)}var Ht={getItem:c(\"getStorageItem\"),setItem:c(\"setStorageItem\"),removeItem:c(\"removeStorageItem\"),clearItems:c(\"clearItems\")},ue=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,$=e=>[\"*\",\"x\",\"X\"].includes(e),W=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},pe=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],me=(e,t)=>{if($(e)||$(t))return 0;let[r,n]=pe(W(e),W(t));return r>n?1:r<n?-1:0},q=e=>{if(typeof e!=\"string\")throw new TypeError(\"Invalid argument: expected a string\");let t=e.match(ue);if(!t)throw new Error(`Invalid semver: '${e}'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},j=(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=me(o,s);if(a!==0)return a}return 0},le=(e,t)=>{let r=q(e),n=q(t),o=r.pop(),s=n.pop(),a=j(r,n);return a!==0?a:o&&s?j(o.split(\".\"),s.split(\".\")):o?-1:s?1:0};function K(e){if(u(\"getOperationalEnvironment\")()===\"sandbox\")return!0;let r=u(\"getTossAppVersion\")(),o=u(\"getPlatformOS\")()===\"ios\"?e.ios:e.android;return o===void 0?!1:o===\"always\"?!0:o===\"never\"?!1:le(r,o)>=0}function ge(e){return c(\"processProductGrant\")(e)}var Ut={createOneTimePurchaseOrder:e=>{let t=K({android:\"5.219.0\",ios:\"5.219.0\"}),r=()=>{};if(!t)return r;let n=K({android:\"5.231.1\",ios:\"5.230.0\"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?A(\"requestOneTimePurchase\")({options:{sku:i},onEvent:async m=>{if(m.type===\"purchased\"){let g=await o.processProductGrant({orderId:m.data.orderId});await ge({orderId:m.data.orderId,isProductGranted:g}).catch(a)}else s(m)},onError:m=>{a(m)}}):(c(\"iapCreateOneTimePurchaseOrder\")({productId:i}).then(g=>{Promise.resolve(o.processProductGrant({orderId:g.orderId})).then(()=>{s({type:\"success\",data:g})}).catch(v=>{a(v)})}).catch(g=>{a(g)}),r)},getProductItemList:c(\"iapGetProductItemList\"),getPendingOrders:c(\"getPendingOrders\"),getCompletedOrRefundedOrders:c(\"getCompletedOrRefundedOrders\"),completeProductGrant:c(\"completeProductGrant\")},zt=u(\"getSafeAreaInsets\");var $t=u(\"getSafeAreaInsets\");var Wt={loadAppsInTossAdMob:Object.assign(A(\"loadAppsInTossAdMob\"),{isSupported:u(\"loadAppsInTossAdMob_isSupported\")}),showAppsInTossAdMob:Object.assign(A(\"showAppsInTossAdMob\"),{isSupported:u(\"showAppsInTossAdMob_isSupported\")}),isAppsInTossAdMobLoaded:Object.assign(c(\"isAppsInTossAdMobLoaded\"),{isSupported:u(\"isAppsInTossAdMobLoaded_isSupported\")})};var qt={getDeploymentId:u(\"getDeploymentId\")},jt=u(\"deploymentId\"),Kt=u(\"brandDisplayName\"),Jt=u(\"brandIcon\"),Xt=u(\"brandPrimaryColor\");var Yt={addAccessoryButton:c(\"addAccessoryButton\"),removeAccessoryButton:c(\"removeAccessoryButton\")},fe=c(\"requestPermission\"),ve=c(\"getPermission\"),he=c(\"openPermissionDialog\");function C({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await fe(e)===\"denied\")throw new r;return t(...o)};return n.getPermission=()=>ve(e),n.openPermissionDialog=()=>he(e),n}var Qt=C({handler:e=>c(\"fetchAlbumPhotos\")(e),permission:{name:\"photos\",access:\"read\"},error:B}),tr=C({handler:e=>c(\"fetchContacts\")(e),permission:{name:\"contacts\",access:\"read\"},error:G}),nr=C({handler:e=>c(\"getCurrentLocation\")(e),permission:{name:\"geolocation\",access:\"access\"},error:F}),sr=C({handler:e=>c(\"openCamera\")(e),permission:{name:\"camera\",access:\"access\"},error:V}),ir=C({handler:e=>c(\"setClipboardText\")(e),permission:{name:\"clipboard\",access:\"write\"},error:z}),dr=C({handler:()=>c(\"getClipboardText\")(),permission:{name:\"clipboard\",access:\"read\"},error:U}),we=c(\"getPermission\"),Ee=c(\"openPermissionDialog\"),te=e=>A(\"updateLocationEvent\")({...e,onError:t=>{let r=new H;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});te.getPermission=()=>we({name:\"geolocation\",access:\"access\"});te.openPermissionDialog=()=>Ee({name:\"geolocation\",access:\"access\"});var pr=Object.assign(A(\"loadFullScreenAd\"),{isSupported:u(\"loadFullScreenAd_isSupported\")}),mr=Object.assign(A(\"showFullScreenAd\"),{isSupported:u(\"showFullScreenAd_isSupported\")}),be=c(\"openURL\");function Ae(e){let t=Se(e);return be(t)}function Se(e){return[\"http://\",\"https://\"].some(r=>e.startsWith(r))?_e(e):e}function _e(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var J=\"https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js\",X=15e3,P=null;function S(){if(!(typeof window>\"u\"))return window.TossAdsSpaceKit}function Ce(){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(P)return P;let t=new Promise((r,n)=>{let o=document.createElement(\"script\"),s=()=>{o.removeEventListener(\"load\",a),o.removeEventListener(\"error\",i),window.clearTimeout(p),P=null},a=()=>{let m=S();if(m){s(),r(m);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 ${J}.`))},p=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${X}ms.`))},X);o.addEventListener(\"load\",a),o.addEventListener(\"error\",i),o.async=!0,o.src=J,document.head.appendChild(o)});return P=t,t}var b=Object.assign(A(\"fetchTossAd\"),{isSupported:u(\"fetchTossAd_isSupported\")}),Te=c(\"tossAdEventLog\"),ye=new Set([\"1\",\"2\"]);function Ie(e){return new Promise((t,r)=>{if(!b.isSupported()){r(new Error(\"fetchTossAd is not supported in this environment.\"));return}return b({options:e,onEvent:t,onError:r})})}function Y(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>ye.has(String(r.styleId))):[];return{requestId:e.requestId??\"\",status:e.status??\"OK\",ads:t,ext:e.ext}}function Le(e){return xe(e)?e.resultType!==\"SUCCESS\"?e:e.success?{...e,success:Y(e.success)}:{resultType:\"FAIL\",error:{reason:\"fetchTossAd returned SUCCESS without payload\"}}:Pe(e)?{resultType:\"SUCCESS\",success:Y(e)}:{resultType:\"FAIL\",error:{reason:\"Invalid response from fetchTossAd\"}}}function xe(e){return!!(e&&typeof e==\"object\"&&\"resultType\"in e)}function Pe(e){return!!(e&&typeof e==\"object\"&&\"ads\"in e)}function Re(){return async(e,t)=>{try{let r=await Ie({adGroupId:t.spaceUnitId,sdkId:\"108\",availableStyleIds:[\"1\",\"2\"]});return Le(r)}catch(r){return{resultType:\"FAIL\",error:{reason:r instanceof Error?r.message:\"Unknown fetchTossAd error\"}}}}}var I=null;function De(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(I!=null){I.then(r).catch(n);return}let s=Ce().then(a=>{if(a.isInitialized())return;let p={environment:\"live\",customAdFetcher:Re(),opener:Ae};a.init(p)});I=s,s.then(r).catch(n).finally(()=>{I===s&&(I=null)})}function Ne(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=S();if(!a)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!a.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let i=typeof t==\"string\"?document.querySelector(t):t;if(!i)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let p={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:re(e,r.callbacks)};a.banner.createSlot(i,p)}catch(s){o(s)}}var Me=\"16px 20px\",Fe=\"20px\",Oe=\"auto\",ke=\"blackAndWhite\",Be=\"expanded\",f=\"toss-ads-attach\",Z=\"toss-ads-attach-style\";function Ge(e){let t=e.ownerDocument;if(!t||t.getElementById(Z))return;let r=t.createElement(\"style\");r.id=Z,r.textContent=`\n .${f} { background: #ffffff; }\n .${f}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${f} { background: #17171c; }\n .${f}.toss-ads-tone-grey { background: #101013; }\n }\n .${f}.toss-ads-theme-light { background: #ffffff; }\n .${f}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${f}.toss-ads-theme-dark { background: #17171c; }\n .${f}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function Ve(e,t,r={}){let{callbacks:n,theme:o=Oe,tone:s=ke,variant:a=Be}=r,i=document.createElement(\"div\");i.style.width=\"100%\",i.style.height=\"100%\",i.style.boxSizing=\"border-box\",i.style.display=\"flex\",i.style.flexDirection=\"column\",i.style.justifyContent=\"center\",i.style.overflow=\"hidden\",a===\"card\"&&(i.style.padding=\"0 10px\");let p=document.createElement(\"div\");p.classList.add(f),s===\"grey\"&&p.classList.add(\"toss-ads-tone-grey\"),o===\"light\"?p.classList.add(\"toss-ads-theme-light\"):o===\"dark\"&&p.classList.add(\"toss-ads-theme-dark\"),a===\"card\"&&(p.style.borderRadius=\"16px\",p.style.overflow=\"hidden\"),i.appendChild(p);let m=!1,g=null,v=E=>{let y=E instanceof Error?E:new Error(String(E));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:y.message}})},oe=re(e,n);try{let E=e,y=S();if(!y)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!y.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let M=typeof t==\"string\"?document.querySelector(t):t;if(!M)throw new Error(`[toss-ad] Failed to find target element: ${t}`);Ge(M),M.appendChild(i),m=!0;let se={spaceId:E,autoLoad:!0,theme:o===\"auto\"?void 0:o,renderPadding:ae=>ae===\"1\"?Me:Fe,callbacks:oe};g=y.banner.createSlot(p,se)}catch(E){m&&i.parentNode&&i.parentNode.removeChild(i),v(E)}return{destroy(){g?.destroy(),m&&i.parentNode&&i.parentNode.removeChild(i)}}}function He(e){let t=S();t?.banner&&t.banner.destroy(e)}function Ue(){let e=S();e?.banner&&e.banner.destroyAll()}function re(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=>{Te({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 lr={initialize:Object.assign(De,{isSupported:b.isSupported}),attach:Object.assign(Ne,{isSupported:b.isSupported}),attachBanner:Object.assign(Ve,{isSupported:b.isSupported}),destroy:Object.assign(He,{isSupported:b.isSupported}),destroyAll:Object.assign(Ue,{isSupported:b.isSupported})},gr=Object.assign(c(\"getServerTime\"),{isSupported:u(\"getServerTime_isSupported\")});var R=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 D=class{callbacks={};on(t,r){typeof this.callbacks[t]>\"u\"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:u(\"getAppName\")(),deploymentId:u(\"getDeploymentId\")(),webViewType:u(\"getWebViewType\")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new D,debugLogger:new R};var L=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function N(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)}),N(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!L.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let m=i.headers.get(\"ETag\"),g=i.headers.get(\"Last-Modified\");m&&s.headers.set(\"If-None-Match\",m),g&&s.headers.set(\"If-Modified-Since\",g);let v=await r.call(n,s);return v.status===304?(i.__revalidateResponse=v,i):(a.put(s,v.clone()),v)}let p=await r.call(n,s);return a.put(s,p.clone()),p})})();N(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit(\"fetchRequest\",{request:n});let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit(\"fetchResponse\",{request:n,response:s,requestAt:o}),s});var ne=window.__appsInToss.debugLogger;ne.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}:{};ne.log(\"load_complete\",{isNavigationDebugSupported:r,...n})});function T(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:T(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:T(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:T(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;function e(t){let r=t.getContext(\"webgl2\")??t.getContext(\"webgl\");if(r==null)return;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})}window.addEventListener(\"load\",()=>{let t=document.querySelector(\"#unity-canvas\");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type===\"childList\"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute(\"id\")===\"unity-canvas\"&&(e(a),o.disconnect()),a instanceof HTMLElement){let i=a.querySelector(\"#unity-canvas\");i!=null&&(e(i),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on(\"fetchRequest\",({request:r})=>{L.test(r.url)&&e.log(\"game_resource_download_start\",{gameResourceRequestURL:r.url})}),t.on(\"fetchResponse\",async({request:r,requestAt:n,response:o})=>{if(!L.test(r.url))return;let s=T((await o.clone().blob()).size/1024,2),a=Date.now();e.log(\"game_resource_download_end\",{gameResourceRequestURL:r.url,gameResourceRequestAtMs:n,gameResourceResponseAtMs:a,gameResourceResponseSize:s,gameResourceResponseStatus:o.__revalidateResponse?.status??o.status,gameResourceDownloadDurationMs:a-n})})})();})();\n";
|
|
235943
|
+
m = "\"use strict\";(()=>{var de=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`)}},h=new de,B=()=>Math.random().toString(36).substring(2,15),G=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=B(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(h.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(h.on(`${e}/reject/${r}`,i=>{o(),a(G(i))})),h.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function R(e){return t=>{let r=B(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(G(o))})];return h.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{h.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function g(e){return()=>h.getConstant(e)}var ue=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=ue());var Xe=d(\"closeView\"),Ye=d(\"generateHapticFeedback\"),Ze=d(\"share\"),Qe=d(\"setSecureScreen\"),et=d(\"setScreenAwakeMode\"),tt=d(\"getNetworkStatus\"),rt=d(\"setIosSwipeGestureEnabled\"),nt=d(\"openURL\"),ot=d(\"openPermissionDialog\"),st=d(\"getPermission\"),at=d(\"requestPermission\"),it=g(\"setClipboardText\"),ct=g(\"getClipboardText\"),dt=g(\"fetchContacts\"),ut=g(\"fetchAlbumPhotos\"),pt=g(\"getCurrentLocation\"),mt=g(\"openCamera\"),lt=d(\"appLogin\"),gt=d(\"eventLog\"),ft=d(\"getTossShareLink\"),vt=d(\"setDeviceOrientation\"),ht=d(\"checkoutPayment\"),wt=d(\"saveBase64Data\"),Et=d(\"appsInTossSignTossCert\"),bt=d(\"getGameCenterGameProfile\"),At=d(\"openGameCenterLeaderboard\"),St=d(\"submitGameCenterLeaderBoardScore\"),_t=d(\"getUserKeyForGame\"),Ct=d(\"getIsTossLoginIntegratedService\"),Tt=d(\"grantPromotionRewardForGame\"),It=d(\"getServerTime\"),yt=g(\"getLocale\"),Lt=g(\"getSchemeUri\"),Rt=g(\"getPlatformOS\"),xt=g(\"getOperationalEnvironment\"),Pt=g(\"getTossAppVersion\"),Dt=g(\"getDeviceId\"),Nt=R(\"contactsViral\"),Mt=R(\"startUpdateLocation\"),Ft=R(\"onVisibilityChangedByTransparentServiceWeb\");var _=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},V=class extends _{constructor(){super({methodName:\"fetchAlbumPhotos\",message:\"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},H=class extends _{constructor(){super({methodName:\"fetchContacts\",message:\"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},U=class extends _{constructor(){super({methodName:\"openCamera\",message:\"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var k=class extends _{constructor(){super({methodName:\"getCurrentLocation\",message:\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},q=k,z=class extends _{constructor(){super({methodName:\"getClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},$=class extends _{constructor(){super({methodName:\"setClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var pe=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`)}},w=new pe,te=()=>Math.random().toString(36).substring(2,15),re=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=te(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(w.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(w.on(`${e}/reject/${r}`,i=>{o(),a(re(i))})),w.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function E(e){return t=>{let r=te(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(re(o))})];return w.postMessage({type:\"addEventListener\",functionName:e,eventId:r,args:t.options}),()=>{w.postMessage({type:\"removeEventListener\",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>w.getConstant(e)}var $t={getItem:c(\"getStorageItem\"),setItem:c(\"setStorageItem\"),removeItem:c(\"removeStorageItem\"),clearItems:c(\"clearItems\")},me=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,W=e=>[\"*\",\"x\",\"X\"].includes(e),j=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},le=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ge=(e,t)=>{if(W(e)||W(t))return 0;let[r,n]=le(j(e),j(t));return r>n?1:r<n?-1:0},K=e=>{if(typeof e!=\"string\")throw new TypeError(\"Invalid argument: expected a string\");let t=e.match(me);if(!t)throw new Error(`Invalid semver: '${e}'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},J=(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=ge(o,s);if(a!==0)return a}return 0},fe=(e,t)=>{let r=K(e),n=K(t),o=r.pop(),s=n.pop(),a=J(r,n);return a!==0?a:o&&s?J(o.split(\".\"),s.split(\".\")):o?-1:s?1:0};function O(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:fe(r,o)>=0}function X(e){return c(\"processProductGrant\")(e)}var Wt={createOneTimePurchaseOrder:e=>{let t=O({android:\"5.219.0\",ios:\"5.219.0\"}),r=()=>{};if(!t)return r;let n=O({android:\"5.231.1\",ios:\"5.230.0\"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?E(\"requestOneTimePurchase\")({options:{sku:i},onEvent:async l=>{if(l.type===\"purchased\"){let m=await o.processProductGrant({orderId:l.data.orderId});await X({orderId:l.data.orderId,isProductGranted:m}).catch(a)}else s(l)},onError:l=>{a(l)}}):(c(\"iapCreateOneTimePurchaseOrder\")({productId:i}).then(m=>{Promise.resolve(o.processProductGrant({orderId:m.orderId})).then(()=>{s({type:\"success\",data:m})}).catch(f=>{a(f)})}).catch(m=>{a(m)}),r)},createSubscriptionPurchaseOrder:e=>{let t=O({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:u}=n;return E(\"requestSubscriptionPurchase\")({options:{sku:a,offerId:i??null},onEvent:async m=>{if(m.type===\"purchased\"){let f=await u({orderId:m.data.orderId,subscriptionId:m.data.subscriptionId});await X({orderId:m.data.orderId,isProductGranted:f}).catch(s)}else o(m)},onError:m=>{s(m)}})},getProductItemList:c(\"iapGetProductItemList\"),getPendingOrders:c(\"getPendingOrders\"),getCompletedOrRefundedOrders:c(\"getCompletedOrRefundedOrders\"),completeProductGrant:c(\"completeProductGrant\")},jt=p(\"getSafeAreaInsets\");var Kt=p(\"getSafeAreaInsets\");var Jt={loadAppsInTossAdMob:Object.assign(E(\"loadAppsInTossAdMob\"),{isSupported:p(\"loadAppsInTossAdMob_isSupported\")}),showAppsInTossAdMob:Object.assign(E(\"showAppsInTossAdMob\"),{isSupported:p(\"showAppsInTossAdMob_isSupported\")}),isAppsInTossAdMobLoaded:Object.assign(c(\"isAppsInTossAdMobLoaded\"),{isSupported:p(\"isAppsInTossAdMobLoaded_isSupported\")})};var Xt={getDeploymentId:p(\"getDeploymentId\")},Yt=p(\"deploymentId\"),Zt=p(\"brandDisplayName\"),Qt=p(\"brandIcon\"),er=p(\"brandPrimaryColor\");var tr={addAccessoryButton:c(\"addAccessoryButton\"),removeAccessoryButton:c(\"removeAccessoryButton\")},ve=c(\"requestPermission\"),he=c(\"getPermission\"),we=c(\"openPermissionDialog\");function C({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ve(e)===\"denied\")throw new r;return t(...o)};return n.getPermission=()=>he(e),n.openPermissionDialog=()=>we(e),n}var nr=C({handler:e=>c(\"fetchAlbumPhotos\")(e),permission:{name:\"photos\",access:\"read\"},error:V}),sr=C({handler:e=>c(\"fetchContacts\")(e),permission:{name:\"contacts\",access:\"read\"},error:H}),ir=C({handler:e=>c(\"getCurrentLocation\")(e),permission:{name:\"geolocation\",access:\"access\"},error:k}),dr=C({handler:e=>c(\"openCamera\")(e),permission:{name:\"camera\",access:\"access\"},error:U}),pr=C({handler:e=>c(\"setClipboardText\")(e),permission:{name:\"clipboard\",access:\"write\"},error:$}),lr=C({handler:()=>c(\"getClipboardText\")(),permission:{name:\"clipboard\",access:\"read\"},error:z}),Ee=c(\"getPermission\"),be=c(\"openPermissionDialog\"),ne=e=>E(\"updateLocationEvent\")({...e,onError:t=>{let r=new q;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ne.getPermission=()=>Ee({name:\"geolocation\",access:\"access\"});ne.openPermissionDialog=()=>be({name:\"geolocation\",access:\"access\"});var fr=Object.assign(E(\"loadFullScreenAd\"),{isSupported:p(\"loadFullScreenAd_isSupported\")}),vr=Object.assign(E(\"showFullScreenAd\"),{isSupported:p(\"showFullScreenAd_isSupported\")}),Ae=c(\"openURL\");function Se(e){let t=_e(e);return Ae(t)}function _e(e){return[\"http://\",\"https://\"].some(r=>e.startsWith(r))?Ce(e):e}function Ce(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var Y=\"https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js\",Z=15e3,x=null;function S(){if(!(typeof window>\"u\"))return window.TossAdsSpaceKit}function Te(){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(x)return x;let t=new Promise((r,n)=>{let o=document.createElement(\"script\"),s=()=>{o.removeEventListener(\"load\",a),o.removeEventListener(\"error\",i),window.clearTimeout(u),x=null},a=()=>{let l=S();if(l){s(),r(l);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 ${Y}.`))},u=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${Z}ms.`))},Z);o.addEventListener(\"load\",a),o.addEventListener(\"error\",i),o.async=!0,o.src=Y,document.head.appendChild(o)});return x=t,t}var A=Object.assign(E(\"fetchTossAd\"),{isSupported:p(\"fetchTossAd_isSupported\")}),Ie=c(\"tossAdEventLog\"),ye=new Set([\"1\",\"2\"]);function Le(e){return new Promise((t,r)=>{if(!A.isSupported()){r(new Error(\"fetchTossAd is not supported in this environment.\"));return}return A({options:e,onEvent:t,onError:r})})}function Q(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>ye.has(String(r.styleId))):[];return{requestId:e.requestId??\"\",status:e.status??\"OK\",ads:t,ext:e.ext}}function Re(e){return xe(e)?e.resultType!==\"SUCCESS\"?e:e.success?{...e,success:Q(e.success)}:{resultType:\"FAIL\",error:{reason:\"fetchTossAd returned SUCCESS without payload\"}}:Pe(e)?{resultType:\"SUCCESS\",success:Q(e)}:{resultType:\"FAIL\",error:{reason:\"Invalid response from fetchTossAd\"}}}function xe(e){return!!(e&&typeof e==\"object\"&&\"resultType\"in e)}function Pe(e){return!!(e&&typeof e==\"object\"&&\"ads\"in e)}function De(){return async(e,t)=>{try{let r=await Le({adGroupId:t.spaceUnitId,sdkId:\"108\",availableStyleIds:[\"1\",\"2\"]});return Re(r)}catch(r){return{resultType:\"FAIL\",error:{reason:r instanceof Error?r.message:\"Unknown fetchTossAd error\"}}}}}var L=null;function Ne(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(L!=null){L.then(r).catch(n);return}let s=Te().then(a=>{if(a.isInitialized())return;let u={environment:\"live\",customAdFetcher:De(),opener:Se};a.init(u)});L=s,s.then(r).catch(n).finally(()=>{L===s&&(L=null)})}function Me(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=S();if(!a)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!a.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let i=typeof t==\"string\"?document.querySelector(t):t;if(!i)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let u={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:oe(e,r.callbacks)};a.banner.createSlot(i,u)}catch(s){o(s)}}var Fe=\"16px 20px\",ke=\"20px\",Oe=\"auto\",Be=\"blackAndWhite\",Ge=\"expanded\",v=\"toss-ads-attach\",ee=\"toss-ads-attach-style\";function Ve(e){let t=e.ownerDocument;if(!t||t.getElementById(ee))return;let r=t.createElement(\"style\");r.id=ee,r.textContent=`\n .${v} { background: #ffffff; }\n .${v}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${v} { background: #17171c; }\n .${v}.toss-ads-tone-grey { background: #101013; }\n }\n .${v}.toss-ads-theme-light { background: #ffffff; }\n .${v}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${v}.toss-ads-theme-dark { background: #17171c; }\n .${v}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function He(e,t,r={}){let{callbacks:n,theme:o=Oe,tone:s=Be,variant:a=Ge}=r,i=document.createElement(\"div\");i.style.width=\"100%\",i.style.height=\"100%\",i.style.boxSizing=\"border-box\",i.style.display=\"flex\",i.style.flexDirection=\"column\",i.style.justifyContent=\"center\",i.style.overflow=\"hidden\",a===\"card\"&&(i.style.padding=\"0 10px\");let u=document.createElement(\"div\");u.classList.add(v),s===\"grey\"&&u.classList.add(\"toss-ads-tone-grey\"),o===\"light\"?u.classList.add(\"toss-ads-theme-light\"):o===\"dark\"&&u.classList.add(\"toss-ads-theme-dark\"),a===\"card\"&&(u.style.borderRadius=\"16px\",u.style.overflow=\"hidden\"),i.appendChild(u);let l=!1,m=null,f=b=>{let y=b instanceof Error?b:new Error(String(b));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:y.message}})},ae=oe(e,n);try{let b=e,y=S();if(!y)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!y.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let F=typeof t==\"string\"?document.querySelector(t):t;if(!F)throw new Error(`[toss-ad] Failed to find target element: ${t}`);Ve(F),F.appendChild(i),l=!0;let ie={spaceId:b,autoLoad:!0,theme:o===\"auto\"?void 0:o,renderPadding:ce=>ce===\"1\"?Fe:ke,callbacks:ae};m=y.banner.createSlot(u,ie)}catch(b){l&&i.parentNode&&i.parentNode.removeChild(i),f(b)}return{destroy(){m?.destroy(),l&&i.parentNode&&i.parentNode.removeChild(i)}}}function Ue(e){let t=S();t?.banner&&t.banner.destroy(e)}function qe(){let e=S();e?.banner&&e.banner.destroyAll()}function oe(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=>{Ie({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 hr={initialize:Object.assign(Ne,{isSupported:A.isSupported}),attach:Object.assign(Me,{isSupported:A.isSupported}),attachBanner:Object.assign(He,{isSupported:A.isSupported}),destroy:Object.assign(Ue,{isSupported:A.isSupported}),destroyAll:Object.assign(qe,{isSupported:A.isSupported})},wr=Object.assign(c(\"getServerTime\"),{isSupported:p(\"getServerTime_isSupported\")});var P=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 D=class{callbacks={};on(t,r){typeof this.callbacks[t]>\"u\"&&(this.callbacks[t]=[]),this.callbacks[t].push(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 D,debugLogger:new P};var T=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function N(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)}),N(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!T.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let l=i.headers.get(\"ETag\"),m=i.headers.get(\"Last-Modified\");l&&s.headers.set(\"If-None-Match\",l),m&&s.headers.set(\"If-Modified-Since\",m);let f=await r.call(n,s);return f.status===304?(i.__revalidateResponse=f,i):(a.put(s,f.clone()),f)}let u=await r.call(n,s);return a.put(s,u.clone()),u})})();N(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}});var se=window.__appsInToss.debugLogger;se.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}:{};se.log(\"load_complete\",{isNavigationDebugSupported:r,...n})});function I(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:I(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:I(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:I(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;function e(t){let r=t.getContext(\"webgl2\")??t.getContext(\"webgl\");if(r==null)return;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})}window.addEventListener(\"load\",()=>{let t=document.querySelector(\"#unity-canvas\");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type===\"childList\"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute(\"id\")===\"unity-canvas\"&&(e(a),o.disconnect()),a instanceof HTMLElement){let i=a.querySelector(\"#unity-canvas\");i!=null&&(e(i),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!==\"game\")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on(\"fetchRequest\",({request:n})=>{T.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(!T.test(n.url))return;let a=await s.clone().blob().then(u=>I(u.size/1024,2)).catch(u=>(r({request:n,requestAt:o,error:u}),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})=>{T.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var M=[];function ze(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){M.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function $e(){if(M.length===0)return;let e=M;M=[];let t=We(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 We(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>ze(),1e3);setInterval(()=>$e(),3e5);})();\n";
|
|
235855
235944
|
0 && (module.exports = {
|
|
235856
235945
|
afterDocumentLoad: afterDocumentLoad,
|
|
235857
235946
|
beforeDocumentLoad: beforeDocumentLoad
|
|
@@ -11335,7 +11335,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
11335
11335
|
ios: "5.219.0"
|
|
11336
11336
|
});
|
|
11337
11337
|
if (!isIAPSupported) {
|
|
11338
|
-
return
|
|
11338
|
+
return noop22;
|
|
11339
11339
|
}
|
|
11340
11340
|
var isProcessProductGrantSupported = isMinVersionSupported({
|
|
11341
11341
|
android: "5.231.1",
|
|
@@ -11362,7 +11362,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
11362
11362
|
}).catch(function(error) {
|
|
11363
11363
|
onError2(error);
|
|
11364
11364
|
});
|
|
11365
|
-
return
|
|
11365
|
+
return noop22;
|
|
11366
11366
|
};
|
|
11367
11367
|
return v1();
|
|
11368
11368
|
}
|
|
@@ -11510,6 +11510,63 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
11510
11510
|
});
|
|
11511
11511
|
return _completeProductGrant.apply(this, arguments);
|
|
11512
11512
|
}
|
|
11513
|
+
function createSubscriptionPurchaseOrder(params) {
|
|
11514
|
+
var isSupported = isMinVersionSupported({
|
|
11515
|
+
android: "5.248.0",
|
|
11516
|
+
ios: "5.249.0"
|
|
11517
|
+
});
|
|
11518
|
+
if (!isSupported) {
|
|
11519
|
+
return noop22;
|
|
11520
|
+
}
|
|
11521
|
+
var options = params.options, onEvent = params.onEvent, onError2 = params.onError;
|
|
11522
|
+
var sku = options.sku, offerId = options.offerId, processProductGrant2 = options.processProductGrant;
|
|
11523
|
+
var unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("requestSubscriptionPurchase", {
|
|
11524
|
+
sku,
|
|
11525
|
+
offerId: offerId !== null && offerId !== void 0 ? offerId : null
|
|
11526
|
+
}, {
|
|
11527
|
+
onPurchased: function() {
|
|
11528
|
+
var _ref = _async_to_generator(function(purchasedParams) {
|
|
11529
|
+
var isProductGranted;
|
|
11530
|
+
return __generator(this, function(_state) {
|
|
11531
|
+
switch (_state.label) {
|
|
11532
|
+
case 0:
|
|
11533
|
+
return [
|
|
11534
|
+
4,
|
|
11535
|
+
processProductGrant2(purchasedParams)
|
|
11536
|
+
];
|
|
11537
|
+
case 1:
|
|
11538
|
+
isProductGranted = _state.sent();
|
|
11539
|
+
return [
|
|
11540
|
+
4,
|
|
11541
|
+
AppsInTossModule.processProductGrant({
|
|
11542
|
+
orderId: purchasedParams.orderId,
|
|
11543
|
+
isProductGranted
|
|
11544
|
+
})
|
|
11545
|
+
];
|
|
11546
|
+
case 2:
|
|
11547
|
+
_state.sent();
|
|
11548
|
+
return [
|
|
11549
|
+
2
|
|
11550
|
+
];
|
|
11551
|
+
}
|
|
11552
|
+
});
|
|
11553
|
+
});
|
|
11554
|
+
return function(purchasedParams) {
|
|
11555
|
+
return _ref.apply(this, arguments);
|
|
11556
|
+
};
|
|
11557
|
+
}(),
|
|
11558
|
+
onSuccess: function(result) {
|
|
11559
|
+
onEvent({
|
|
11560
|
+
type: "success",
|
|
11561
|
+
data: result
|
|
11562
|
+
});
|
|
11563
|
+
},
|
|
11564
|
+
onError: function(error) {
|
|
11565
|
+
onError2(error);
|
|
11566
|
+
}
|
|
11567
|
+
});
|
|
11568
|
+
return unregisterCallbacks;
|
|
11569
|
+
}
|
|
11513
11570
|
function getItem(key) {
|
|
11514
11571
|
return AppsInTossModule.getStorageItem({
|
|
11515
11572
|
key
|
|
@@ -11627,7 +11684,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
11627
11684
|
}
|
|
11628
11685
|
});
|
|
11629
11686
|
}
|
|
11630
|
-
var import_react_native37, import_react_native38, import_react_native42, import_react_native43, import_react_native44, import_react_native45, import_react_native46, import_react_native47, import_react_native48, Module, AppsInTossModuleInstance, AppsInTossModule, nativeEventEmitter2, UpdateLocationEvent, INTERNAL__callbacks, INTERNAL__appBridgeHandler, UNSAFE__nativeEventEmitter, AppBridgeCallbackEvent, VisibilityChangedByTransparentServiceWebEvent, appsInTossEvent, SEMVER_REGEX, isWildcard, tryParse, coerceTypes, compareValues, parseVersion, compareSegments, compareVersions, ANDROID_GOOGLE_AD_MOB_SUPPORTED_VERSION, IOS_GOOGLE_AD_MOB_SUPPORTED_VERSION, UNSUPPORTED_ERROR_MESSAGE, ENVIRONMENT, DEFAULT_MAX_COUNT, DEFAULT_MAX_WIDTH, fetchAlbumPhotos, fetchContacts, getClipboardText, getCurrentLocation, setClipboardText, openCamera, IAP, Storage, GAME_CENTER_MIN_VERSION, GET_SERVER_TIME_MIN_VERSION, GoogleAdMob, BedrockModule, BedrockCoreModule, TossCoreModule, INTERNAL__module;
|
|
11687
|
+
var import_react_native37, import_react_native38, import_react_native42, import_react_native43, import_react_native44, import_react_native45, import_react_native46, import_react_native47, import_react_native48, Module, AppsInTossModuleInstance, AppsInTossModule, nativeEventEmitter2, UpdateLocationEvent, INTERNAL__callbacks, INTERNAL__appBridgeHandler, UNSAFE__nativeEventEmitter, AppBridgeCallbackEvent, VisibilityChangedByTransparentServiceWebEvent, appsInTossEvent, SEMVER_REGEX, isWildcard, tryParse, coerceTypes, compareValues, parseVersion, compareSegments, compareVersions, ANDROID_GOOGLE_AD_MOB_SUPPORTED_VERSION, IOS_GOOGLE_AD_MOB_SUPPORTED_VERSION, UNSUPPORTED_ERROR_MESSAGE, ENVIRONMENT, DEFAULT_MAX_COUNT, DEFAULT_MAX_WIDTH, fetchAlbumPhotos, fetchContacts, getClipboardText, getCurrentLocation, setClipboardText, openCamera, noop22, IAP, Storage, GAME_CENTER_MIN_VERSION, GET_SERVER_TIME_MIN_VERSION, GoogleAdMob, BedrockModule, BedrockCoreModule, TossCoreModule, INTERNAL__module;
|
|
11631
11688
|
var init_dist6 = __esm({
|
|
11632
11689
|
"../../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-e56741e8de/1/packages/apps-in-toss/native-modules/dist/index.js"() {
|
|
11633
11690
|
"use strict";
|
|
@@ -11659,7 +11716,6 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
11659
11716
|
init_dist4();
|
|
11660
11717
|
init_dist4();
|
|
11661
11718
|
init_dist4();
|
|
11662
|
-
init_dist5();
|
|
11663
11719
|
init_dist4();
|
|
11664
11720
|
import_react_native43 = __toESM(require_react_native(), 1);
|
|
11665
11721
|
import_react_native44 = __toESM(require_react_native(), 1);
|
|
@@ -12036,8 +12092,11 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
12036
12092
|
},
|
|
12037
12093
|
error: OpenCameraPermissionError
|
|
12038
12094
|
});
|
|
12095
|
+
noop22 = function() {
|
|
12096
|
+
};
|
|
12039
12097
|
IAP = {
|
|
12040
12098
|
createOneTimePurchaseOrder,
|
|
12099
|
+
createSubscriptionPurchaseOrder,
|
|
12041
12100
|
getProductItemList,
|
|
12042
12101
|
getPendingOrders,
|
|
12043
12102
|
getCompletedOrRefundedOrders,
|
|
@@ -44941,7 +45000,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
44941
45000
|
"../user-scripts/dist/index.mjs"() {
|
|
44942
45001
|
"use strict";
|
|
44943
45002
|
e60 = '"use strict";(()=>{var e=document.createElement("style");e.textContent=`\n*:not(input):not(textarea) {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n`;document.head.appendChild(e);})();\n';
|
|
44944
|
-
t55 = '"use strict";(()=>{var ie=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`)}},h=new ie,O=()=>Math.random().toString(36).substring(2,15),k=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=O(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(h.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(h.on(`${e}/reject/${r}`,i=>{o(),a(k(i))})),h.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function x(e){return t=>{let r=O(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(k(o))})];return h.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{h.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function l(e){return()=>h.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 qe=d("closeView"),je=d("generateHapticFeedback"),Ke=d("share"),Je=d("setSecureScreen"),Xe=d("setScreenAwakeMode"),Ye=d("getNetworkStatus"),Ze=d("setIosSwipeGestureEnabled"),Qe=d("openURL"),et=d("openPermissionDialog"),tt=d("getPermission"),rt=d("requestPermission"),nt=l("setClipboardText"),ot=l("getClipboardText"),st=l("fetchContacts"),at=l("fetchAlbumPhotos"),it=l("getCurrentLocation"),ct=l("openCamera"),dt=d("appLogin"),ut=d("eventLog"),pt=d("getTossShareLink"),mt=d("setDeviceOrientation"),lt=d("checkoutPayment"),gt=d("saveBase64Data"),ft=d("appsInTossSignTossCert"),vt=d("getGameCenterGameProfile"),ht=d("openGameCenterLeaderboard"),wt=d("submitGameCenterLeaderBoardScore"),Et=d("getUserKeyForGame"),bt=d("getIsTossLoginIntegratedService"),At=d("grantPromotionRewardForGame"),St=d("getServerTime"),_t=l("getLocale"),Ct=l("getSchemeUri"),Tt=l("getPlatformOS"),yt=l("getOperationalEnvironment"),It=l("getTossAppVersion"),Lt=l("getDeviceId"),xt=x("contactsViral"),Pt=x("startUpdateLocation"),Rt=x("onVisibilityChangedByTransparentServiceWeb");var _=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},B=class extends _{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},G=class extends _{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},V=class extends _{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var F=class extends _{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},H=F,U=class extends _{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},z=class extends _{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var de=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`)}},w=new de,Q=()=>Math.random().toString(36).substring(2,15),ee=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=Q(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(w.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(w.on(`${e}/reject/${r}`,i=>{o(),a(ee(i))})),w.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function A(e){return t=>{let r=Q(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(ee(o))})];return w.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{w.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function u(e){return()=>w.getConstant(e)}var Ht={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},ue=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,$=e=>["*","x","X"].includes(e),W=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},pe=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],me=(e,t)=>{if($(e)||$(t))return 0;let[r,n]=pe(W(e),W(t));return r>n?1:r<n?-1:0},q=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(ue);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},j=(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=me(o,s);if(a!==0)return a}return 0},le=(e,t)=>{let r=q(e),n=q(t),o=r.pop(),s=n.pop(),a=j(r,n);return a!==0?a:o&&s?j(o.split("."),s.split(".")):o?-1:s?1:0};function K(e){if(u("getOperationalEnvironment")()==="sandbox")return!0;let r=u("getTossAppVersion")(),o=u("getPlatformOS")()==="ios"?e.ios:e.android;return o===void 0?!1:o==="always"?!0:o==="never"?!1:le(r,o)>=0}function ge(e){return c("processProductGrant")(e)}var Ut={createOneTimePurchaseOrder:e=>{let t=K({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=K({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?A("requestOneTimePurchase")({options:{sku:i},onEvent:async m=>{if(m.type==="purchased"){let g=await o.processProductGrant({orderId:m.data.orderId});await ge({orderId:m.data.orderId,isProductGranted:g}).catch(a)}else s(m)},onError:m=>{a(m)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(g=>{Promise.resolve(o.processProductGrant({orderId:g.orderId})).then(()=>{s({type:"success",data:g})}).catch(v=>{a(v)})}).catch(g=>{a(g)}),r)},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant")},zt=u("getSafeAreaInsets");var $t=u("getSafeAreaInsets");var Wt={loadAppsInTossAdMob:Object.assign(A("loadAppsInTossAdMob"),{isSupported:u("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(A("showAppsInTossAdMob"),{isSupported:u("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:u("isAppsInTossAdMobLoaded_isSupported")})};var qt={getDeploymentId:u("getDeploymentId")},jt=u("deploymentId"),Kt=u("brandDisplayName"),Jt=u("brandIcon"),Xt=u("brandPrimaryColor");var Yt={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},fe=c("requestPermission"),ve=c("getPermission"),he=c("openPermissionDialog");function C({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await fe(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>ve(e),n.openPermissionDialog=()=>he(e),n}var Qt=C({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:B}),tr=C({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:G}),nr=C({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:F}),sr=C({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:V}),ir=C({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:z}),dr=C({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:U}),we=c("getPermission"),Ee=c("openPermissionDialog"),te=e=>A("updateLocationEvent")({...e,onError:t=>{let r=new H;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});te.getPermission=()=>we({name:"geolocation",access:"access"});te.openPermissionDialog=()=>Ee({name:"geolocation",access:"access"});var pr=Object.assign(A("loadFullScreenAd"),{isSupported:u("loadFullScreenAd_isSupported")}),mr=Object.assign(A("showFullScreenAd"),{isSupported:u("showFullScreenAd_isSupported")}),be=c("openURL");function Ae(e){let t=Se(e);return be(t)}function Se(e){return["http://","https://"].some(r=>e.startsWith(r))?_e(e):e}function _e(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var J="https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js",X=15e3,P=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function Ce(){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(P)return P;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(p),P=null},a=()=>{let m=S();if(m){s(),r(m);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 ${J}.`))},p=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${X}ms.`))},X);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=J,document.head.appendChild(o)});return P=t,t}var b=Object.assign(A("fetchTossAd"),{isSupported:u("fetchTossAd_isSupported")}),Te=c("tossAdEventLog"),ye=new Set(["1","2"]);function Ie(e){return new Promise((t,r)=>{if(!b.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}return b({options:e,onEvent:t,onError:r})})}function Y(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>ye.has(String(r.styleId))):[];return{requestId:e.requestId??"",status:e.status??"OK",ads:t,ext:e.ext}}function Le(e){return xe(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:Y(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Pe(e)?{resultType:"SUCCESS",success:Y(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function xe(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Pe(e){return!!(e&&typeof e=="object"&&"ads"in e)}function Re(){return async(e,t)=>{try{let r=await Ie({adGroupId:t.spaceUnitId,sdkId:"108",availableStyleIds:["1","2"]});return Le(r)}catch(r){return{resultType:"FAIL",error:{reason:r instanceof Error?r.message:"Unknown fetchTossAd error"}}}}}var I=null;function De(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(I!=null){I.then(r).catch(n);return}let s=Ce().then(a=>{if(a.isInitialized())return;let p={environment:"live",customAdFetcher:Re(),opener:Ae};a.init(p)});I=s,s.then(r).catch(n).finally(()=>{I===s&&(I=null)})}function Ne(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=S();if(!a)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!a.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let i=typeof t=="string"?document.querySelector(t):t;if(!i)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let p={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:re(e,r.callbacks)};a.banner.createSlot(i,p)}catch(s){o(s)}}var Me="16px 20px",Fe="20px",Oe="auto",ke="blackAndWhite",Be="expanded",f="toss-ads-attach",Z="toss-ads-attach-style";function Ge(e){let t=e.ownerDocument;if(!t||t.getElementById(Z))return;let r=t.createElement("style");r.id=Z,r.textContent=`\n .${f} { background: #ffffff; }\n .${f}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${f} { background: #17171c; }\n .${f}.toss-ads-tone-grey { background: #101013; }\n }\n .${f}.toss-ads-theme-light { background: #ffffff; }\n .${f}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${f}.toss-ads-theme-dark { background: #17171c; }\n .${f}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function Ve(e,t,r={}){let{callbacks:n,theme:o=Oe,tone:s=ke,variant:a=Be}=r,i=document.createElement("div");i.style.width="100%",i.style.height="100%",i.style.boxSizing="border-box",i.style.display="flex",i.style.flexDirection="column",i.style.justifyContent="center",i.style.overflow="hidden",a==="card"&&(i.style.padding="0 10px");let p=document.createElement("div");p.classList.add(f),s==="grey"&&p.classList.add("toss-ads-tone-grey"),o==="light"?p.classList.add("toss-ads-theme-light"):o==="dark"&&p.classList.add("toss-ads-theme-dark"),a==="card"&&(p.style.borderRadius="16px",p.style.overflow="hidden"),i.appendChild(p);let m=!1,g=null,v=E=>{let y=E instanceof Error?E:new Error(String(E));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:y.message}})},oe=re(e,n);try{let E=e,y=S();if(!y)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!y.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let M=typeof t=="string"?document.querySelector(t):t;if(!M)throw new Error(`[toss-ad] Failed to find target element: ${t}`);Ge(M),M.appendChild(i),m=!0;let se={spaceId:E,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:ae=>ae==="1"?Me:Fe,callbacks:oe};g=y.banner.createSlot(p,se)}catch(E){m&&i.parentNode&&i.parentNode.removeChild(i),v(E)}return{destroy(){g?.destroy(),m&&i.parentNode&&i.parentNode.removeChild(i)}}}function He(e){let t=S();t?.banner&&t.banner.destroy(e)}function Ue(){let e=S();e?.banner&&e.banner.destroyAll()}function re(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=>{Te({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 lr={initialize:Object.assign(De,{isSupported:b.isSupported}),attach:Object.assign(Ne,{isSupported:b.isSupported}),attachBanner:Object.assign(Ve,{isSupported:b.isSupported}),destroy:Object.assign(He,{isSupported:b.isSupported}),destroyAll:Object.assign(Ue,{isSupported:b.isSupported})},gr=Object.assign(c("getServerTime"),{isSupported:u("getServerTime_isSupported")});var R=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 D=class{callbacks={};on(t,r){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(r)}emit(t,r){this.callbacks[t]?.forEach(n=>n(r))}};window.__appsInToss={appName:u("getAppName")(),deploymentId:u("getDeploymentId")(),webViewType:u("getWebViewType")(),sessionId:Math.random().toString(36).substring(2),eventEmitter:new D,debugLogger:new R};var L=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function N(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)}),N(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!L.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let m=i.headers.get("ETag"),g=i.headers.get("Last-Modified");m&&s.headers.set("If-None-Match",m),g&&s.headers.set("If-Modified-Since",g);let v=await r.call(n,s);return v.status===304?(i.__revalidateResponse=v,i):(a.put(s,v.clone()),v)}let p=await r.call(n,s);return a.put(s,p.clone()),p})})();N(async(e,t,r)=>{let n=new Request(r[0],r[1]),o=Date.now();window.__appsInToss.eventEmitter.emit("fetchRequest",{request:n});let s=await e.call(t,n);return window.__appsInToss.eventEmitter.emit("fetchResponse",{request:n,response:s,requestAt:o}),s});var ne=window.__appsInToss.debugLogger;ne.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}:{};ne.log("load_complete",{isNavigationDebugSupported:r,...n})});function T(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:T(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:T(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:T(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;function e(t){let r=t.getContext("webgl2")??t.getContext("webgl");if(r==null)return;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})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type==="childList"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute("id")==="unity-canvas"&&(e(a),o.disconnect()),a instanceof HTMLElement){let i=a.querySelector("#unity-canvas");i!=null&&(e(i),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:r})=>{L.test(r.url)&&e.log("game_resource_download_start",{gameResourceRequestURL:r.url})}),t.on("fetchResponse",async({request:r,requestAt:n,response:o})=>{if(!L.test(r.url))return;let s=T((await o.clone().blob()).size/1024,2),a=Date.now();e.log("game_resource_download_end",{gameResourceRequestURL:r.url,gameResourceRequestAtMs:n,gameResourceResponseAtMs:a,gameResourceResponseSize:s,gameResourceResponseStatus:o.__revalidateResponse?.status??o.status,gameResourceDownloadDurationMs:a-n})})})();})();\n';
|
|
45003
|
+
t55 = '"use strict";(()=>{var de=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`)}},h=new de,B=()=>Math.random().toString(36).substring(2,15),G=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=B(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(h.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(h.on(`${e}/reject/${r}`,i=>{o(),a(G(i))})),h.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function R(e){return t=>{let r=B(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(G(o))})];return h.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{h.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function g(e){return()=>h.getConstant(e)}var ue=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=ue());var Xe=d("closeView"),Ye=d("generateHapticFeedback"),Ze=d("share"),Qe=d("setSecureScreen"),et=d("setScreenAwakeMode"),tt=d("getNetworkStatus"),rt=d("setIosSwipeGestureEnabled"),nt=d("openURL"),ot=d("openPermissionDialog"),st=d("getPermission"),at=d("requestPermission"),it=g("setClipboardText"),ct=g("getClipboardText"),dt=g("fetchContacts"),ut=g("fetchAlbumPhotos"),pt=g("getCurrentLocation"),mt=g("openCamera"),lt=d("appLogin"),gt=d("eventLog"),ft=d("getTossShareLink"),vt=d("setDeviceOrientation"),ht=d("checkoutPayment"),wt=d("saveBase64Data"),Et=d("appsInTossSignTossCert"),bt=d("getGameCenterGameProfile"),At=d("openGameCenterLeaderboard"),St=d("submitGameCenterLeaderBoardScore"),_t=d("getUserKeyForGame"),Ct=d("getIsTossLoginIntegratedService"),Tt=d("grantPromotionRewardForGame"),It=d("getServerTime"),yt=g("getLocale"),Lt=g("getSchemeUri"),Rt=g("getPlatformOS"),xt=g("getOperationalEnvironment"),Pt=g("getTossAppVersion"),Dt=g("getDeviceId"),Nt=R("contactsViral"),Mt=R("startUpdateLocation"),Ft=R("onVisibilityChangedByTransparentServiceWeb");var _=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},V=class extends _{constructor(){super({methodName:"fetchAlbumPhotos",message:"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},H=class extends _{constructor(){super({methodName:"fetchContacts",message:"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},U=class extends _{constructor(){super({methodName:"openCamera",message:"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var k=class extends _{constructor(){super({methodName:"getCurrentLocation",message:"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},q=k,z=class extends _{constructor(){super({methodName:"getClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}},$=class extends _{constructor(){super({methodName:"setClipboardText",message:"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694."})}};var pe=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`)}},w=new pe,te=()=>Math.random().toString(36).substring(2,15),re=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=te(),n=[],o=()=>{for(let s of n)s()};return new Promise((s,a)=>{n.push(w.on(`${e}/resolve/${r}`,i=>{o(),s(i)})),n.push(w.on(`${e}/reject/${r}`,i=>{o(),a(re(i))})),w.postMessage({type:"method",functionName:e,eventId:r,args:t})})}}function E(e){return t=>{let r=te(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(re(o))})];return w.postMessage({type:"addEventListener",functionName:e,eventId:r,args:t.options}),()=>{w.postMessage({type:"removeEventListener",functionName:e,eventId:r}),n.forEach(o=>o())}}}function p(e){return()=>w.getConstant(e)}var $t={getItem:c("getStorageItem"),setItem:c("setStorageItem"),removeItem:c("removeStorageItem"),clearItems:c("clearItems")},me=/^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*))?(?:\\+[\\da-z\\\\-]+(?:\\.[\\da-z\\\\-]+)*)?)?)?$/i,W=e=>["*","x","X"].includes(e),j=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},le=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],ge=(e,t)=>{if(W(e)||W(t))return 0;let[r,n]=le(j(e),j(t));return r>n?1:r<n?-1:0},K=e=>{if(typeof e!="string")throw new TypeError("Invalid argument: expected a string");let t=e.match(me);if(!t)throw new Error(`Invalid semver: \'${e}\'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},J=(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=ge(o,s);if(a!==0)return a}return 0},fe=(e,t)=>{let r=K(e),n=K(t),o=r.pop(),s=n.pop(),a=J(r,n);return a!==0?a:o&&s?J(o.split("."),s.split(".")):o?-1:s?1:0};function O(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:fe(r,o)>=0}function X(e){return c("processProductGrant")(e)}var Wt={createOneTimePurchaseOrder:e=>{let t=O({android:"5.219.0",ios:"5.219.0"}),r=()=>{};if(!t)return r;let n=O({android:"5.231.1",ios:"5.230.0"}),{options:o,onEvent:s,onError:a}=e,i=o.sku??o.productId;return n?E("requestOneTimePurchase")({options:{sku:i},onEvent:async l=>{if(l.type==="purchased"){let m=await o.processProductGrant({orderId:l.data.orderId});await X({orderId:l.data.orderId,isProductGranted:m}).catch(a)}else s(l)},onError:l=>{a(l)}}):(c("iapCreateOneTimePurchaseOrder")({productId:i}).then(m=>{Promise.resolve(o.processProductGrant({orderId:m.orderId})).then(()=>{s({type:"success",data:m})}).catch(f=>{a(f)})}).catch(m=>{a(m)}),r)},createSubscriptionPurchaseOrder:e=>{let t=O({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:u}=n;return E("requestSubscriptionPurchase")({options:{sku:a,offerId:i??null},onEvent:async m=>{if(m.type==="purchased"){let f=await u({orderId:m.data.orderId,subscriptionId:m.data.subscriptionId});await X({orderId:m.data.orderId,isProductGranted:f}).catch(s)}else o(m)},onError:m=>{s(m)}})},getProductItemList:c("iapGetProductItemList"),getPendingOrders:c("getPendingOrders"),getCompletedOrRefundedOrders:c("getCompletedOrRefundedOrders"),completeProductGrant:c("completeProductGrant")},jt=p("getSafeAreaInsets");var Kt=p("getSafeAreaInsets");var Jt={loadAppsInTossAdMob:Object.assign(E("loadAppsInTossAdMob"),{isSupported:p("loadAppsInTossAdMob_isSupported")}),showAppsInTossAdMob:Object.assign(E("showAppsInTossAdMob"),{isSupported:p("showAppsInTossAdMob_isSupported")}),isAppsInTossAdMobLoaded:Object.assign(c("isAppsInTossAdMobLoaded"),{isSupported:p("isAppsInTossAdMobLoaded_isSupported")})};var Xt={getDeploymentId:p("getDeploymentId")},Yt=p("deploymentId"),Zt=p("brandDisplayName"),Qt=p("brandIcon"),er=p("brandPrimaryColor");var tr={addAccessoryButton:c("addAccessoryButton"),removeAccessoryButton:c("removeAccessoryButton")},ve=c("requestPermission"),he=c("getPermission"),we=c("openPermissionDialog");function C({permission:e,handler:t,error:r}){let n=async(...o)=>{if(await ve(e)==="denied")throw new r;return t(...o)};return n.getPermission=()=>he(e),n.openPermissionDialog=()=>we(e),n}var nr=C({handler:e=>c("fetchAlbumPhotos")(e),permission:{name:"photos",access:"read"},error:V}),sr=C({handler:e=>c("fetchContacts")(e),permission:{name:"contacts",access:"read"},error:H}),ir=C({handler:e=>c("getCurrentLocation")(e),permission:{name:"geolocation",access:"access"},error:k}),dr=C({handler:e=>c("openCamera")(e),permission:{name:"camera",access:"access"},error:U}),pr=C({handler:e=>c("setClipboardText")(e),permission:{name:"clipboard",access:"write"},error:$}),lr=C({handler:()=>c("getClipboardText")(),permission:{name:"clipboard",access:"read"},error:z}),Ee=c("getPermission"),be=c("openPermissionDialog"),ne=e=>E("updateLocationEvent")({...e,onError:t=>{let r=new q;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});ne.getPermission=()=>Ee({name:"geolocation",access:"access"});ne.openPermissionDialog=()=>be({name:"geolocation",access:"access"});var fr=Object.assign(E("loadFullScreenAd"),{isSupported:p("loadFullScreenAd_isSupported")}),vr=Object.assign(E("showFullScreenAd"),{isSupported:p("showFullScreenAd_isSupported")}),Ae=c("openURL");function Se(e){let t=_e(e);return Ae(t)}function _e(e){return["http://","https://"].some(r=>e.startsWith(r))?Ce(e):e}function Ce(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var Y="https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js",Z=15e3,x=null;function S(){if(!(typeof window>"u"))return window.TossAdsSpaceKit}function Te(){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(x)return x;let t=new Promise((r,n)=>{let o=document.createElement("script"),s=()=>{o.removeEventListener("load",a),o.removeEventListener("error",i),window.clearTimeout(u),x=null},a=()=>{let l=S();if(l){s(),r(l);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 ${Y}.`))},u=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${Z}ms.`))},Z);o.addEventListener("load",a),o.addEventListener("error",i),o.async=!0,o.src=Y,document.head.appendChild(o)});return x=t,t}var A=Object.assign(E("fetchTossAd"),{isSupported:p("fetchTossAd_isSupported")}),Ie=c("tossAdEventLog"),ye=new Set(["1","2"]);function Le(e){return new Promise((t,r)=>{if(!A.isSupported()){r(new Error("fetchTossAd is not supported in this environment."));return}return A({options:e,onEvent:t,onError:r})})}function Q(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>ye.has(String(r.styleId))):[];return{requestId:e.requestId??"",status:e.status??"OK",ads:t,ext:e.ext}}function Re(e){return xe(e)?e.resultType!=="SUCCESS"?e:e.success?{...e,success:Q(e.success)}:{resultType:"FAIL",error:{reason:"fetchTossAd returned SUCCESS without payload"}}:Pe(e)?{resultType:"SUCCESS",success:Q(e)}:{resultType:"FAIL",error:{reason:"Invalid response from fetchTossAd"}}}function xe(e){return!!(e&&typeof e=="object"&&"resultType"in e)}function Pe(e){return!!(e&&typeof e=="object"&&"ads"in e)}function De(){return async(e,t)=>{try{let r=await Le({adGroupId:t.spaceUnitId,sdkId:"108",availableStyleIds:["1","2"]});return Re(r)}catch(r){return{resultType:"FAIL",error:{reason:r instanceof Error?r.message:"Unknown fetchTossAd error"}}}}}var L=null;function Ne(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(L!=null){L.then(r).catch(n);return}let s=Te().then(a=>{if(a.isInitialized())return;let u={environment:"live",customAdFetcher:De(),opener:Se};a.init(u)});L=s,s.then(r).catch(n).finally(()=>{L===s&&(L=null)})}function Me(e,t,r={}){let{callbacks:n}=r,o=s=>{let a=s instanceof Error?s:new Error(String(s));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:a.message}})};try{let s=e,a=S();if(!a)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!a.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let i=typeof t=="string"?document.querySelector(t):t;if(!i)throw new Error(`[toss-ad] Failed to find target element: ${t}`);let u={spaceId:s,autoLoad:!0,theme:r.theme,padding:r.padding,callbacks:oe(e,r.callbacks)};a.banner.createSlot(i,u)}catch(s){o(s)}}var Fe="16px 20px",ke="20px",Oe="auto",Be="blackAndWhite",Ge="expanded",v="toss-ads-attach",ee="toss-ads-attach-style";function Ve(e){let t=e.ownerDocument;if(!t||t.getElementById(ee))return;let r=t.createElement("style");r.id=ee,r.textContent=`\n .${v} { background: #ffffff; }\n .${v}.toss-ads-tone-grey { background: #f2f4f7; }\n @media (prefers-color-scheme: dark) {\n .${v} { background: #17171c; }\n .${v}.toss-ads-tone-grey { background: #101013; }\n }\n .${v}.toss-ads-theme-light { background: #ffffff; }\n .${v}.toss-ads-theme-light.toss-ads-tone-grey { background: #f2f4f7; }\n .${v}.toss-ads-theme-dark { background: #17171c; }\n .${v}.toss-ads-theme-dark.toss-ads-tone-grey { background: #101013; }\n `;let n=t.head??t.body??t.documentElement;n&&n.appendChild(r)}function He(e,t,r={}){let{callbacks:n,theme:o=Oe,tone:s=Be,variant:a=Ge}=r,i=document.createElement("div");i.style.width="100%",i.style.height="100%",i.style.boxSizing="border-box",i.style.display="flex",i.style.flexDirection="column",i.style.justifyContent="center",i.style.overflow="hidden",a==="card"&&(i.style.padding="0 10px");let u=document.createElement("div");u.classList.add(v),s==="grey"&&u.classList.add("toss-ads-tone-grey"),o==="light"?u.classList.add("toss-ads-theme-light"):o==="dark"&&u.classList.add("toss-ads-theme-dark"),a==="card"&&(u.style.borderRadius="16px",u.style.overflow="hidden"),i.appendChild(u);let l=!1,m=null,f=b=>{let y=b instanceof Error?b:new Error(String(b));n?.onAdFailedToRender?.({slotId:"",adGroupId:e,adMetadata:{},error:{code:0,message:y.message}})},ae=oe(e,n);try{let b=e,y=S();if(!y)throw new Error("[toss-ad] Call initialize() before attaching an ad.");if(!y.banner)throw new Error("[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.");let F=typeof t=="string"?document.querySelector(t):t;if(!F)throw new Error(`[toss-ad] Failed to find target element: ${t}`);Ve(F),F.appendChild(i),l=!0;let ie={spaceId:b,autoLoad:!0,theme:o==="auto"?void 0:o,renderPadding:ce=>ce==="1"?Fe:ke,callbacks:ae};m=y.banner.createSlot(u,ie)}catch(b){l&&i.parentNode&&i.parentNode.removeChild(i),f(b)}return{destroy(){m?.destroy(),l&&i.parentNode&&i.parentNode.removeChild(i)}}}function Ue(e){let t=S();t?.banner&&t.banner.destroy(e)}function qe(){let e=S();e?.banner&&e.banner.destroyAll()}function oe(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=>{Ie({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 hr={initialize:Object.assign(Ne,{isSupported:A.isSupported}),attach:Object.assign(Me,{isSupported:A.isSupported}),attachBanner:Object.assign(He,{isSupported:A.isSupported}),destroy:Object.assign(Ue,{isSupported:A.isSupported}),destroyAll:Object.assign(qe,{isSupported:A.isSupported})},wr=Object.assign(c("getServerTime"),{isSupported:p("getServerTime_isSupported")});var P=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 D=class{callbacks={};on(t,r){typeof this.callbacks[t]>"u"&&(this.callbacks[t]=[]),this.callbacks[t].push(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 D,debugLogger:new P};var T=/\\.(data|wasm|framework\\.js)(?:\\.gz|\\.br|\\.unityweb)?$/;function N(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)}),N(async(r,n,o)=>{let s=new Request(o[0],o[1]);if(!T.test(s.url))return await r.call(n,s);let a=await caches.open(t),i=await a.match(s);if(i){let l=i.headers.get("ETag"),m=i.headers.get("Last-Modified");l&&s.headers.set("If-None-Match",l),m&&s.headers.set("If-Modified-Since",m);let f=await r.call(n,s);return f.status===304?(i.__revalidateResponse=f,i):(a.put(s,f.clone()),f)}let u=await r.call(n,s);return a.put(s,u.clone()),u})})();N(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}});var se=window.__appsInToss.debugLogger;se.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}:{};se.log("load_complete",{isNavigationDebugSupported:r,...n})});function I(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:I(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:I(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:I(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;function e(t){let r=t.getContext("webgl2")??t.getContext("webgl");if(r==null)return;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})}window.addEventListener("load",()=>{let t=document.querySelector("#unity-canvas");if(t!=null){e(t);return}new MutationObserver((n,o)=>{for(let s of n)s.type==="childList"&&s.addedNodes.forEach(a=>{if(a instanceof HTMLCanvasElement&&a.getAttribute("id")==="unity-canvas"&&(e(a),o.disconnect()),a instanceof HTMLElement){let i=a.querySelector("#unity-canvas");i!=null&&(e(i),o.disconnect())}})}).observe(document.body,{childList:!0,subtree:!0})})})();(()=>{if(window.__appsInToss.webViewType!=="game")return;let e=window.__appsInToss.debugLogger,t=window.__appsInToss.eventEmitter;t.on("fetchRequest",({request:n})=>{T.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(!T.test(n.url))return;let a=await s.clone().blob().then(u=>I(u.size/1024,2)).catch(u=>(r({request:n,requestAt:o,error:u}),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})=>{T.test(n.url)&&r({request:n,requestAt:o,error:s})})})();var M=[];function ze(){let e=0;function t(r){let n=performance.now();if(r<n-1e3){M.push(e);return}e+=1,window.requestAnimationFrame(()=>t(r))}window.requestAnimationFrame(()=>t(performance.now()))}function $e(){if(M.length===0)return;let e=M;M=[];let t=We(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 We(e){let t=new Set(e);return Array.from(t.values())}setInterval(()=>ze(),1e3);setInterval(()=>$e(),3e5);})();\n';
|
|
44945
45004
|
}
|
|
44946
45005
|
});
|
|
44947
45006
|
|
|
@@ -47164,6 +47223,7 @@ var global=typeof globalThis!=='undefined'?globalThis:typeof global!=='undefined
|
|
|
47164
47223
|
fetchTossAd,
|
|
47165
47224
|
/** IAP */
|
|
47166
47225
|
iapCreateOneTimePurchaseOrder: IAP.createOneTimePurchaseOrder,
|
|
47226
|
+
requestSubscriptionPurchase: IAP.createSubscriptionPurchaseOrder,
|
|
47167
47227
|
requestOneTimePurchase
|
|
47168
47228
|
}),
|
|
47169
47229
|
constantHandlerMap: _object_spread_props(_object_spread(_object_spread_props(_object_spread({}, constant_bridges_exports), {
|