@apps-in-toss/web-framework 1.11.2 → 1.13.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.
@@ -154324,16 +154324,16 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154324
154324
  var import_native_modules11 = _$$_REQUIRE(_dependencyMap[9], "@apps-in-toss/native-modules");
154325
154325
  var import_react_native20 = _$$_REQUIRE(_dependencyMap[10], "@granite-js/react-native");
154326
154326
  var import_jsx_runtime8 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154327
- function PermissionsMenu() {
154327
+ function SettingsMenu() {
154328
154328
  var globals = getAppsInTossGlobals();
154329
154329
  if ((0, import_native_modules11.getOperationalEnvironment)() === "sandbox") {
154330
154330
  return null;
154331
154331
  }
154332
154332
  return (0, import_jsx_runtime8.jsx)(Menu, {
154333
- title: "\uAD8C\uD55C \uC124\uC815",
154333
+ title: "\uC124\uC815",
154334
154334
  iconURL: "https://static.toss.im/icons/png/4x/icon-setting-mono.png",
154335
154335
  onPress: function onPress() {
154336
- return (0, import_react_native20.openURL)(`servicetoss://apps-in-toss-menu/permissions?appName=${import_react_native20.Granite.appName}&displayAppName=${globals.brandDisplayName}`);
154336
+ return (0, import_react_native20.openURL)(`servicetoss://apps-in-toss-menu/settings?appName=${import_react_native20.Granite.appName}&displayAppName=${globals.brandDisplayName}`);
154337
154337
  }
154338
154338
  });
154339
154339
  }
@@ -154358,7 +154358,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154358
154358
  android: "5.246.0",
154359
154359
  ios: "5.246.0"
154360
154360
  },
154361
- PERMISSIONS_MENU: {
154361
+ SETTINGS_MENU: {
154362
154362
  android: "5.238.0",
154363
154363
  ios: "5.237.0"
154364
154364
  }
@@ -154377,36 +154377,23 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154377
154377
  var isHomeShortcutSupported = (0, import_native_modules12.isMinVersionSupported)(MIN_VERSION.HOME_SHORTCUT_MENU);
154378
154378
  var isBottomSheetSupported = (0, import_native_modules12.isMinVersionSupported)(MIN_VERSION.BOTTOM_SHEET);
154379
154379
  var isShareListMenuSupported = (0, import_native_modules12.isMinVersionSupported)(MIN_VERSION.SHARE_LIST_MENU);
154380
- var _ref38 = (0, import_react15.useState)(false),
154381
- _ref39 = _slicedToArray(_ref38, 2),
154382
- isPermissionsMenuSupported = _ref39[0],
154383
- setIsPermissionsMenuSupported = _ref39[1];
154380
+ var isSettingsMenuSupported = (0, import_native_modules12.isMinVersionSupported)(MIN_VERSION.SETTINGS_MENU);
154384
154381
  (0, import_react15.useEffect)(function () {
154385
154382
  if (!isBottomSheetSupported) {
154386
154383
  return;
154387
154384
  }
154388
154385
  import_native_modules12.INTERNAL__appBridgeHandler.invokeAppBridgeMethod(APP_BRIDGE_METHOD_NAME, {}, {
154389
- onSuccess: function onSuccess(_ref40) {
154390
- var items = _ref40.items;
154386
+ onSuccess: function onSuccess(_ref38) {
154387
+ var items = _ref38.items;
154391
154388
  return setItemList(items);
154392
154389
  },
154393
154390
  onError: function onError(error) {
154394
154391
  return console.error("\uBA54\uB274 \uBAA9\uB85D\uC744 \uAC00\uC838\uC624\uB294 \uB370 \uC2E4\uD328\uD588\uC5B4\uC694:", error);
154395
154392
  }
154396
154393
  });
154397
- if ((0, import_native_modules12.isMinVersionSupported)(MIN_VERSION.PERMISSIONS_MENU)) {
154398
- import_native_modules12.INTERNAL__appBridgeHandler.invokeAppBridgeMethod("getAllPermission", {}, {
154399
- onSuccess: function onSuccess(permissions) {
154400
- return setIsPermissionsMenuSupported(permissions.length > 0);
154401
- },
154402
- onError: function onError(error) {
154403
- return console.error("\uAD8C\uD55C \uBAA9\uB85D\uC744 \uAC00\uC838\uC624\uB294 \uB370 \uC2E4\uD328\uD588\uC5B4\uC694:", error);
154404
- }
154405
- });
154406
- }
154407
154394
  }, [isBottomSheetSupported]);
154408
154395
  var onClickHandler = function () {
154409
- var _ref41 = _asyncToGenerator(function* () {
154396
+ var _ref39 = _asyncToGenerator(function* () {
154410
154397
  logging.open();
154411
154398
  if (!isBottomSheetSupported) {
154412
154399
  yield appUpdateDialog.open({
@@ -154415,10 +154402,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154415
154402
  });
154416
154403
  return;
154417
154404
  }
154418
- overlay.open(function (_ref42) {
154419
- var isOpen = _ref42.isOpen,
154420
- exit = _ref42.exit,
154421
- close = _ref42.close;
154405
+ overlay.open(function (_ref40) {
154406
+ var isOpen = _ref40.isOpen,
154407
+ exit = _ref40.exit,
154408
+ close = _ref40.close;
154422
154409
  var handleClose = function handleClose() {
154423
154410
  logging.close();
154424
154411
  close();
@@ -154455,22 +154442,22 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154455
154442
  return (0, import_react_native21.openURL)(item.contactUri);
154456
154443
  }
154457
154444
  }, item.contactItemName);
154458
- }), isHomeShortcutSupported && (0, import_jsx_runtime9.jsx)(HomeShortcutMenu, {}), isShareListMenuSupported && (0, import_jsx_runtime9.jsx)(AppShareListMenu, {}), isPermissionsMenuSupported && (0, import_jsx_runtime9.jsx)(PermissionsMenu, {})]
154445
+ }), isHomeShortcutSupported && (0, import_jsx_runtime9.jsx)(HomeShortcutMenu, {}), isShareListMenuSupported && (0, import_jsx_runtime9.jsx)(AppShareListMenu, {}), isSettingsMenuSupported && (0, import_jsx_runtime9.jsx)(SettingsMenu, {})]
154459
154446
  })
154460
154447
  })
154461
154448
  });
154462
154449
  });
154463
154450
  });
154464
154451
  return function onClickHandler() {
154465
- return _ref41.apply(this, arguments);
154452
+ return _ref39.apply(this, arguments);
154466
154453
  };
154467
154454
  }();
154468
154455
  return {
154469
154456
  open: onClickHandler
154470
154457
  };
154471
154458
  }
154472
- function BottomSheetImpressionArea(_ref43) {
154473
- var children = _ref43.children;
154459
+ function BottomSheetImpressionArea(_ref41) {
154460
+ var children = _ref41.children;
154474
154461
  var logging = useMoreButtonBottomSheetLogging();
154475
154462
  (0, import_react15.useEffect)(function () {
154476
154463
  logging.show();
@@ -154490,9 +154477,9 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154490
154477
  }
154491
154478
  var import_react16 = _$$_REQUIRE(_dependencyMap[13], "react");
154492
154479
  var import_jsx_runtime10 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154493
- function NavigationBarImpressionArea(_ref44) {
154494
- var children = _ref44.children,
154495
- withHomeButton = _ref44.withHomeButton;
154480
+ function NavigationBarImpressionArea(_ref42) {
154481
+ var children = _ref42.children,
154482
+ withHomeButton = _ref42.withHomeButton;
154496
154483
  var hasLogged = (0, import_react16.useRef)(false);
154497
154484
  var logging = useNavigationBarLogging();
154498
154485
  (0, import_react16.useEffect)(function () {
@@ -154554,8 +154541,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154554
154541
  var navigationEvent = useNavigationEvent();
154555
154542
  var _useNavigationBarCont2 = useNavigationBarContext(),
154556
154543
  navigationRightButton = _useNavigationBarCont2.navigationRightButton;
154557
- var _ref45 = (0, import_react_native_safe_area_context.useSafeAreaInsets)(),
154558
- safeAreaRight = _ref45.right;
154544
+ var _ref43 = (0, import_react_native_safe_area_context.useSafeAreaInsets)(),
154545
+ safeAreaRight = _ref43.right;
154559
154546
  useHardwareBackPress(navigationEvent.handleBack);
154560
154547
  return (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, {
154561
154548
  children: [(0, import_jsx_runtime12.jsx)(import_tds_react_native9.PageNavbar, {
@@ -154593,8 +154580,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154593
154580
  __reExport(bridge_entry_exports, _$$_REQUIRE(_dependencyMap[19], "@apps-in-toss/native-modules/constant-bridges"));
154594
154581
  __reExport(bridge_entry_exports, _$$_REQUIRE(_dependencyMap[20], "@apps-in-toss/native-modules/event-bridges"));
154595
154582
  var import_jsx_runtime13 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154596
- function RNAppContainer(_ref46) {
154597
- var children = _ref46.children;
154583
+ function RNAppContainer(_ref44) {
154584
+ var children = _ref44.children;
154598
154585
  var global2 = getAppsInTossGlobals();
154599
154586
  switch (global2.appType) {
154600
154587
  case "game":
@@ -154608,8 +154595,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154608
154595
  });
154609
154596
  }
154610
154597
  }
154611
- function GameAppContainer(_ref47) {
154612
- var children = _ref47.children;
154598
+ function GameAppContainer(_ref45) {
154599
+ var children = _ref45.children;
154613
154600
  (0, import_react17.useEffect)(function () {
154614
154601
  if (import_react_native23.Platform.OS === "ios") {
154615
154602
  (0, import_native_modules13.setIosSwipeGestureEnabled)({
@@ -154629,16 +154616,16 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154629
154616
  }) : children]
154630
154617
  });
154631
154618
  }
154632
- function GeneralAppContainer(_ref48) {
154633
- var children = _ref48.children;
154619
+ function GeneralAppContainer(_ref46) {
154620
+ var children = _ref46.children;
154634
154621
  return (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, {
154635
154622
  children: [(0, import_jsx_runtime13.jsx)(RNNavigationBar.Default, {}), children]
154636
154623
  });
154637
154624
  }
154638
154625
  var import_jsx_runtime14 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154639
- function AppsInTossContainer(Container, _ref49) {
154640
- var children = _ref49.children,
154641
- initialProps = _objectWithoutProperties(_ref49, _excluded);
154626
+ function AppsInTossContainer(Container, _ref47) {
154627
+ var children = _ref47.children,
154628
+ initialProps = _objectWithoutProperties(_ref47, _excluded);
154642
154629
  if (!(0, import_native_modules14.isMinVersionSupported)({
154643
154630
  android: "5.220.0",
154644
154631
  ios: "5.221.0"
@@ -154661,9 +154648,9 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154661
154648
  }))]
154662
154649
  });
154663
154650
  }
154664
- function registerApp(container, _ref50) {
154665
- var context = _ref50.context,
154666
- analytics = _ref50.analytics;
154651
+ function registerApp(container, _ref48) {
154652
+ var context = _ref48.context,
154653
+ analytics = _ref48.analytics;
154667
154654
  var appName = getAppName();
154668
154655
  var isRegistered = import_react_native25.AppRegistry.getAppKeys().includes(appName);
154669
154656
  if (!isRegistered) {
@@ -154689,8 +154676,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154689
154676
  }
154690
154677
  return global.Page;
154691
154678
  }
154692
- function AppsInTossScreenContainer(_ref51) {
154693
- var children = _ref51.children;
154679
+ function AppsInTossScreenContainer(_ref49) {
154680
+ var children = _ref49.children;
154694
154681
  var isRNApp = getAppsInTossGlobals().webViewType == null;
154695
154682
  return (0, import_jsx_runtime14.jsx)(NavigationBarContextProvider, {
154696
154683
  children: (0, import_jsx_runtime14.jsx)(import_analytics.Analytics.Screen, {
@@ -154736,8 +154723,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154736
154723
  var import_jsx_runtime15 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154737
154724
  function GameWebviewNavigationBar() {
154738
154725
  var safeAreaTop = (0, import_private7.useSafeAreaTop)();
154739
- var _ref52 = (0, import_tds_react_native11.useDialog)(),
154740
- openConfirm = _ref52.openConfirm;
154726
+ var _ref50 = (0, import_tds_react_native11.useDialog)(),
154727
+ openConfirm = _ref50.openConfirm;
154741
154728
  var _useCaptureExitLog3 = useCaptureExitLog(),
154742
154729
  captureExitLog = _useCaptureExitLog3.captureExitLog;
154743
154730
  var global2 = getAppsInTossGlobals();
@@ -154746,8 +154733,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154746
154733
  openMoreButtonBottomSheet = _useMoreButtonBottomS3.open;
154747
154734
  var _useNavigationBarCont3 = useNavigationBarContext(),
154748
154735
  navigationRightButton = _useNavigationBarCont3.navigationRightButton;
154749
- var _ref53 = (0, import_react_native_safe_area_context2.useSafeAreaInsets)(),
154750
- safeAreaRight = _ref53.right;
154736
+ var _ref51 = (0, import_react_native_safe_area_context2.useSafeAreaInsets)(),
154737
+ safeAreaRight = _ref51.right;
154751
154738
  var handleGameWebviewClose = (0, import_react18.useCallback)(_asyncToGenerator(function* () {
154752
154739
  logging.closeButtonClick();
154753
154740
  var isConfirmed = yield openConfirm({
@@ -154825,16 +154812,16 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154825
154812
  var import_es_hangul4 = _$$_REQUIRE(_dependencyMap[15], "es-hangul");
154826
154813
  var import_react20 = _$$_REQUIRE(_dependencyMap[13], "react");
154827
154814
  var import_jsx_runtime17 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154828
- function PartnerWebviewNavigationBar(_ref55) {
154815
+ function PartnerWebviewNavigationBar(_ref53) {
154829
154816
  var _parsedNavigationBar$3, _parsedNavigationBar$4;
154830
- var onBackButtonClick = _ref55.onBackButtonClick,
154831
- onHomeButtonClick = _ref55.onHomeButtonClick;
154817
+ var onBackButtonClick = _ref53.onBackButtonClick,
154818
+ onHomeButtonClick = _ref53.onHomeButtonClick;
154832
154819
  var globals = getAppsInTossGlobals();
154833
154820
  var _useCaptureExitLog4 = useCaptureExitLog(),
154834
154821
  captureExitLog = _useCaptureExitLog4.captureExitLog;
154835
154822
  var logging = useNavigationBarLogging();
154836
- var _ref56 = (0, import_tds_react_native12.useDialog)(),
154837
- openConfirm = _ref56.openConfirm;
154823
+ var _ref54 = (0, import_tds_react_native12.useDialog)(),
154824
+ openConfirm = _ref54.openConfirm;
154838
154825
  var _useMoreButtonBottomS4 = useMoreButtonBottomSheet(),
154839
154826
  openMoreButtonBottomSheet = _useMoreButtonBottomS4.open;
154840
154827
  var parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
@@ -154880,10 +154867,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154880
154867
  });
154881
154868
  }
154882
154869
  var import_jsx_runtime18 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
154883
- var PartnerWebView = (0, import_react21.forwardRef)(function PartnerWebViewScreen(_ref58, ref) {
154884
- var onBackButtonClick = _ref58.onBackButtonClick,
154885
- onHomeButtonClick = _ref58.onHomeButtonClick,
154886
- webViewProps = _objectWithoutProperties(_ref58, _excluded2);
154870
+ var PartnerWebView = (0, import_react21.forwardRef)(function PartnerWebViewScreen(_ref56, ref) {
154871
+ var onBackButtonClick = _ref56.onBackButtonClick,
154872
+ onHomeButtonClick = _ref56.onHomeButtonClick,
154873
+ webViewProps = _objectWithoutProperties(_ref56, _excluded2);
154887
154874
  return (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, {
154888
154875
  children: [(0, import_jsx_runtime18.jsx)(PartnerWebviewNavigationBar, {
154889
154876
  onBackButtonClick: onBackButtonClick,
@@ -154905,9 +154892,9 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
154905
154892
  var components = url.hash.replace("#Intent;", "").split(";").map(function (component) {
154906
154893
  return component.split("=");
154907
154894
  });
154908
- var scheme = (_components$find = components.find(function (_ref59) {
154909
- var _ref60 = _slicedToArray(_ref59, 1),
154910
- key = _ref60[0];
154895
+ var scheme = (_components$find = components.find(function (_ref57) {
154896
+ var _ref58 = _slicedToArray(_ref57, 1),
154897
+ key = _ref58[0];
154911
154898
  return key === "scheme";
154912
154899
  })) == null ? void 0 : _components$find[1];
154913
154900
  if (!scheme) {
@@ -155273,10 +155260,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155273
155260
  function serializeError(error) {
155274
155261
  return JSON.stringify(error, function (_, value) {
155275
155262
  if (value instanceof Error) {
155276
- return Object.assign({}, Object.entries(value).reduce(function (acc, _ref61) {
155277
- var _ref62 = _slicedToArray(_ref61, 2),
155278
- key = _ref62[0],
155279
- value2 = _ref62[1];
155263
+ return Object.assign({}, Object.entries(value).reduce(function (acc, _ref59) {
155264
+ var _ref60 = _slicedToArray(_ref59, 2),
155265
+ key = _ref60[0],
155266
+ value2 = _ref60[1];
155280
155267
  acc[key] = value2;
155281
155268
  return acc;
155282
155269
  }, {}), {
@@ -155289,24 +155276,24 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155289
155276
  return value;
155290
155277
  });
155291
155278
  }
155292
- function methodHandler(_ref63) {
155293
- var args = _ref63.args,
155294
- eventId = _ref63.eventId,
155295
- functionName = _ref63.functionName,
155296
- handlerMap = _ref63.handlerMap,
155297
- injectJavaScript = _ref63.injectJavaScript;
155279
+ function methodHandler(_ref61) {
155280
+ var args = _ref61.args,
155281
+ eventId = _ref61.eventId,
155282
+ functionName = _ref61.functionName,
155283
+ handlerMap = _ref61.handlerMap,
155284
+ injectJavaScript = _ref61.injectJavaScript;
155298
155285
  var func = handlerMap[functionName];
155299
155286
  if (!func) {
155300
155287
  console.error(`${functionName} is not a function`);
155301
155288
  return;
155302
155289
  }
155303
155290
  var wrappedFunc = function () {
155304
- var _ref64 = _asyncToGenerator(function* () {
155291
+ var _ref62 = _asyncToGenerator(function* () {
155305
155292
  var result = yield func.apply(void 0, arguments);
155306
155293
  return result;
155307
155294
  });
155308
155295
  return function wrappedFunc() {
155309
- return _ref64.apply(this, arguments);
155296
+ return _ref62.apply(this, arguments);
155310
155297
  };
155311
155298
  }();
155312
155299
  wrappedFunc.apply(void 0, _toConsumableArray(args)).then(function (result) {
@@ -155321,17 +155308,17 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155321
155308
  });
155322
155309
  }
155323
155310
  var globalEventListenerMap = new Map();
155324
- function useBridgeHandler(_ref65) {
155325
- var onMessage = _ref65.onMessage,
155326
- constantHandlerMap = _ref65.constantHandlerMap,
155327
- asyncHandlerMap = _ref65.asyncHandlerMap,
155328
- eventListenerMap = _ref65.eventListenerMap;
155311
+ function useBridgeHandler(_ref63) {
155312
+ var onMessage = _ref63.onMessage,
155313
+ constantHandlerMap = _ref63.constantHandlerMap,
155314
+ asyncHandlerMap = _ref63.asyncHandlerMap,
155315
+ eventListenerMap = _ref63.eventListenerMap;
155329
155316
  var ref = (0, import_react22.useRef)(null);
155330
155317
  var injectedJavaScript = (0, import_react22.useMemo)(function () {
155331
- return `window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(Object.entries(constantHandlerMap).reduce(function (acc, _ref66) {
155332
- var _ref67 = _slicedToArray(_ref66, 2),
155333
- key = _ref67[0],
155334
- value = _ref67[1];
155318
+ return `window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(Object.entries(constantHandlerMap).reduce(function (acc, _ref64) {
155319
+ var _ref65 = _slicedToArray(_ref64, 2),
155320
+ key = _ref65[0],
155321
+ value = _ref65[1];
155335
155322
  acc[key] = typeof value === "function" ? value() : value;
155336
155323
  return acc;
155337
155324
  }, {}))};`;
@@ -155358,7 +155345,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155358
155345
  };
155359
155346
  };
155360
155347
  var $onMessage = (0, import_react22.useCallback)(function () {
155361
- var _ref68 = _asyncToGenerator(function* (e) {
155348
+ var _ref66 = _asyncToGenerator(function* (e) {
155362
155349
  onMessage == null ? void 0 : onMessage(e);
155363
155350
  var data = parseNativeEventData(e.nativeEvent.data);
155364
155351
  if (typeof data !== "object" || data === null || typeof data.functionName !== "string" || typeof data.eventId !== "string" || typeof data.type !== "string" || !["addEventListener", "removeEventListener", "method"].includes(data.type)) {
@@ -155403,7 +155390,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155403
155390
  }
155404
155391
  });
155405
155392
  return function (_x5) {
155406
- return _ref68.apply(this, arguments);
155393
+ return _ref66.apply(this, arguments);
155407
155394
  };
155408
155395
  }(), [onMessage]);
155409
155396
  return {
@@ -155526,20 +155513,20 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155526
155513
  }
155527
155514
  }
155528
155515
  function useWebViewHistory() {
155529
- var _ref69 = (0, import_react24.useReducer)(reducer, INITIAL_STATE),
155530
- _ref70 = _slicedToArray(_ref69, 2),
155531
- state = _ref70[0],
155532
- dispatch = _ref70[1];
155533
- var onNavigationStateChange = (0, import_react24.useCallback)(function (_ref71) {
155534
- var url = _ref71.url,
155535
- canGoForward2 = _ref71.canGoForward;
155516
+ var _ref67 = (0, import_react24.useReducer)(reducer, INITIAL_STATE),
155517
+ _ref68 = _slicedToArray(_ref67, 2),
155518
+ state = _ref68[0],
155519
+ dispatch = _ref68[1];
155520
+ var onNavigationStateChange = (0, import_react24.useCallback)(function (_ref69) {
155521
+ var url = _ref69.url,
155522
+ canGoForward2 = _ref69.canGoForward;
155536
155523
  dispatch({
155537
155524
  type: "NAVIGATION_CHANGE",
155538
155525
  url: url,
155539
155526
  canGoForward: canGoForward2
155540
155527
  });
155541
155528
  }, []);
155542
- var _ref72 = (0, import_react24.useMemo)(function () {
155529
+ var _ref70 = (0, import_react24.useMemo)(function () {
155543
155530
  var canBack = state.index > 0;
155544
155531
  var canFwd = state.index >= 0 && state.index < state.stack.length - 1;
155545
155532
  return {
@@ -155547,8 +155534,8 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155547
155534
  canGoForward: canFwd
155548
155535
  };
155549
155536
  }, [state.index, state.stack.length]),
155550
- canGoBack = _ref72.canGoBack,
155551
- canGoForward = _ref72.canGoForward;
155537
+ canGoBack = _ref70.canGoBack,
155538
+ canGoForward = _ref70.canGoForward;
155552
155539
  return {
155553
155540
  onNavigationStateChange: onNavigationStateChange,
155554
155541
  hasHistory: canGoBack,
@@ -155561,14 +155548,14 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155561
155548
  var _useWebViewHistory = useWebViewHistory(),
155562
155549
  hasHistory = _useWebViewHistory.hasHistory,
155563
155550
  onNavigationStateChange = _useWebViewHistory.onNavigationStateChange;
155564
- var _ref73 = (0, import_react_native33.useBackEventState)(),
155565
- webBackHandlersRef = _ref73.handlersRef,
155566
- hasWebBackEvent = _ref73.hasBackEvent,
155567
- addWebBackEventListener = _ref73.addEventListener,
155568
- removeWebBackEventListener = _ref73.removeEventListener;
155551
+ var _ref71 = (0, import_react_native33.useBackEventState)(),
155552
+ webBackHandlersRef = _ref71.handlersRef,
155553
+ hasWebBackEvent = _ref71.hasBackEvent,
155554
+ addWebBackEventListener = _ref71.addEventListener,
155555
+ removeWebBackEventListener = _ref71.removeEventListener;
155569
155556
  var logging = useNavigationBarLogging();
155570
- var _ref74 = (0, import_tds_react_native13.useDialog)(),
155571
- openConfirm = _ref74.openConfirm;
155557
+ var _ref72 = (0, import_tds_react_native13.useDialog)(),
155558
+ openConfirm = _ref72.openConfirm;
155572
155559
  var global2 = getAppsInTossGlobals();
155573
155560
  var addEventListener = (0, import_react25.useCallback)(function (handler) {
155574
155561
  addWebBackEventListener(handler);
@@ -155770,18 +155757,18 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155770
155757
  function mapFontScaleToCategory(fontScale, platform) {
155771
155758
  return platform === "ios" ? mapIOSFontScaleToCategory(fontScale) : mapAndroidFontScaleToCategory(fontScale);
155772
155759
  }
155773
- function _useCreateUserAgent(_ref76) {
155774
- var batteryModePreference = _ref76.batteryModePreference,
155775
- colorPreference = _ref76.colorPreference,
155776
- locale = _ref76.locale,
155777
- navbarPreference = _ref76.navbarPreference,
155778
- pureSafeArea = _ref76.pureSafeArea,
155779
- safeArea = _ref76.safeArea,
155780
- safeAreaBottomTransparency = _ref76.safeAreaBottomTransparency;
155760
+ function _useCreateUserAgent(_ref74) {
155761
+ var batteryModePreference = _ref74.batteryModePreference,
155762
+ colorPreference = _ref74.colorPreference,
155763
+ locale = _ref74.locale,
155764
+ navbarPreference = _ref74.navbarPreference,
155765
+ pureSafeArea = _ref74.pureSafeArea,
155766
+ safeArea = _ref74.safeArea,
155767
+ safeAreaBottomTransparency = _ref74.safeAreaBottomTransparency;
155781
155768
  var platform = (0, import_native_modules20.getPlatformOS)();
155782
155769
  var appVersion = (0, import_native_modules20.getTossAppVersion)();
155783
- var _ref77 = (0, import_react_native34.useWindowDimensions)(),
155784
- fontScale = _ref77.fontScale;
155770
+ var _ref75 = (0, import_react_native34.useWindowDimensions)(),
155771
+ fontScale = _ref75.fontScale;
155785
155772
  var platformString = platform === "ios" ? "iPhone" : "Android phone";
155786
155773
  var fontA11y = mapFontScaleToCategory(fontScale, platform);
155787
155774
  var normalizedFontScale = convertToAndroidStyleScale(fontScale, platform);
@@ -155790,15 +155777,15 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155790
155777
  var import_native_modules21 = _$$_REQUIRE(_dependencyMap[9], "@apps-in-toss/native-modules");
155791
155778
  var import_react_native35 = _$$_REQUIRE(_dependencyMap[10], "@granite-js/react-native");
155792
155779
  var import_react26 = _$$_REQUIRE(_dependencyMap[13], "react");
155793
- function _useGeolocation(_ref78) {
155794
- var accuracy = _ref78.accuracy,
155795
- distanceInterval = _ref78.distanceInterval,
155796
- timeInterval = _ref78.timeInterval;
155780
+ function _useGeolocation(_ref76) {
155781
+ var accuracy = _ref76.accuracy,
155782
+ distanceInterval = _ref76.distanceInterval,
155783
+ timeInterval = _ref76.timeInterval;
155797
155784
  var isVisible = (0, import_react_native35.useVisibility)();
155798
- var _ref79 = (0, import_react26.useState)(null),
155799
- _ref80 = _slicedToArray(_ref79, 2),
155800
- location = _ref80[0],
155801
- setLocation = _ref80[1];
155785
+ var _ref77 = (0, import_react26.useState)(null),
155786
+ _ref78 = _slicedToArray(_ref77, 2),
155787
+ location = _ref78[0],
155788
+ setLocation = _ref78[1];
155802
155789
  (0, import_react26.useEffect)(function () {
155803
155790
  if (!isVisible) {
155804
155791
  return;
@@ -155943,10 +155930,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155943
155930
  var baseUrl = new URL(url);
155944
155931
  var schemeUrl = new URL((0, import_react_native39.getSchemeUri)());
155945
155932
  baseUrl.pathname = schemeUrl.pathname;
155946
- for (var _ref81 of schemeUrl.searchParams.entries()) {
155947
- var _ref82 = _slicedToArray(_ref81, 2);
155948
- var key = _ref82[0];
155949
- var value = _ref82[1];
155933
+ for (var _ref79 of schemeUrl.searchParams.entries()) {
155934
+ var _ref80 = _slicedToArray(_ref79, 2);
155935
+ var key = _ref80[0];
155936
+ var value = _ref80[1];
155950
155937
  baseUrl.searchParams.set(key, value);
155951
155938
  }
155952
155939
  return baseUrl;
@@ -155965,11 +155952,11 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155965
155952
  }
155966
155953
  return url;
155967
155954
  }
155968
- function _WebView(_ref83) {
155969
- var type = _ref83.type,
155970
- local = _ref83.local,
155971
- onMessage = _ref83.onMessage,
155972
- props = _objectWithoutProperties(_ref83, _excluded3);
155955
+ function _WebView(_ref81) {
155956
+ var type = _ref81.type,
155957
+ local = _ref81.local,
155958
+ onMessage = _ref81.onMessage,
155959
+ props = _objectWithoutProperties(_ref81, _excluded3);
155973
155960
  if (!TYPES.includes(type)) {
155974
155961
  throw new Error(`Invalid WebView type: '${type}'`);
155975
155962
  }
@@ -155984,49 +155971,49 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
155984
155971
  var global2 = getAppsInTossGlobals();
155985
155972
  var navigationBarContext = useNavigationBarContext();
155986
155973
  var safeAreaInsetsEmitter = useSafeAreaInsetsEmitter();
155987
- var _ref84 = (0, import_react28.useState)(props.allowsBackForwardNavigationGestures),
155988
- _ref85 = _slicedToArray(_ref84, 2),
155989
- allowsBackForwardNavigationGestures = _ref85[0],
155990
- setAllowsBackForwardNavigationGestures = _ref85[1];
155974
+ var _ref82 = (0, import_react28.useState)(props.allowsBackForwardNavigationGestures),
155975
+ _ref83 = _slicedToArray(_ref82, 2),
155976
+ allowsBackForwardNavigationGestures = _ref83[0],
155977
+ setAllowsBackForwardNavigationGestures = _ref83[1];
155991
155978
  var handler = useBridgeHandler({
155992
155979
  onMessage: onMessage,
155993
155980
  eventListenerMap: Object.assign({}, appsInTossEventBridges, {
155994
- navigationAccessoryEvent: function navigationAccessoryEvent(_ref86) {
155995
- var onEvent = _ref86.onEvent,
155996
- onError = _ref86.onError;
155981
+ navigationAccessoryEvent: function navigationAccessoryEvent(_ref84) {
155982
+ var onEvent = _ref84.onEvent,
155983
+ onError = _ref84.onError;
155997
155984
  return import_tds_react_native15.tdsEvent.addEventListener("navigationAccessoryEvent", {
155998
155985
  onEvent: onEvent,
155999
155986
  onError: onError
156000
155987
  });
156001
155988
  },
156002
- backEvent: function backEvent(_ref87) {
156003
- var onEvent = _ref87.onEvent;
155989
+ backEvent: function backEvent(_ref85) {
155990
+ var onEvent = _ref85.onEvent;
156004
155991
  webBackHandler.addEventListener(onEvent);
156005
155992
  return function () {
156006
155993
  webBackHandler.removeEventListener(onEvent);
156007
155994
  };
156008
155995
  },
156009
- updateLocationEvent: function updateLocationEvent(_ref88) {
156010
- var onEvent = _ref88.onEvent,
156011
- onError = _ref88.onError,
156012
- options = _ref88.options;
155996
+ updateLocationEvent: function updateLocationEvent(_ref86) {
155997
+ var onEvent = _ref86.onEvent,
155998
+ onError = _ref86.onError,
155999
+ options = _ref86.options;
156013
156000
  return import_native_modules24.appsInTossEvent.addEventListener("updateLocationEvent", {
156014
156001
  onEvent: onEvent,
156015
156002
  onError: onError,
156016
156003
  options: options
156017
156004
  });
156018
156005
  },
156019
- safeAreaInsetsChange: function safeAreaInsetsChange(_ref89) {
156020
- var onEvent = _ref89.onEvent;
156006
+ safeAreaInsetsChange: function safeAreaInsetsChange(_ref87) {
156007
+ var onEvent = _ref87.onEvent;
156021
156008
  safeAreaInsetsEmitter.on("safeAreaInsetsChange", onEvent);
156022
156009
  return function () {
156023
156010
  safeAreaInsetsEmitter.off("safeAreaInsetsChange", onEvent);
156024
156011
  };
156025
156012
  },
156026
- appBridgeCallbackEvent: function appBridgeCallbackEvent(_ref90) {
156027
- var onEvent = _ref90.onEvent,
156028
- onError = _ref90.onError,
156029
- options = _ref90.options;
156013
+ appBridgeCallbackEvent: function appBridgeCallbackEvent(_ref88) {
156014
+ var onEvent = _ref88.onEvent,
156015
+ onError = _ref88.onError,
156016
+ options = _ref88.options;
156030
156017
  return import_native_modules24.appsInTossEvent.addEventListener("appBridgeCallbackEvent", {
156031
156018
  onEvent: onEvent,
156032
156019
  onError: onError,
@@ -156039,6 +156026,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
156039
156026
  showFullScreenAd: _showFullScreenAd,
156040
156027
  fetchTossAd: fetchTossAd,
156041
156028
  iapCreateOneTimePurchaseOrder: import_native_modules24.IAP.createOneTimePurchaseOrder,
156029
+ requestSubscriptionPurchase: import_native_modules24.IAP.createSubscriptionPurchaseOrder,
156042
156030
  requestOneTimePurchase: import_native_modules24.requestOneTimePurchase
156043
156031
  }),
156044
156032
  constantHandlerMap: Object.assign({}, appsInTossConstantBridges, {
@@ -156050,10 +156038,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
156050
156038
  right: insets.right
156051
156039
  };
156052
156040
  }
156053
- }, Object.fromEntries(Object.entries(global2).map(function (_ref91) {
156054
- var _ref92 = _slicedToArray(_ref91, 2),
156055
- key = _ref92[0],
156056
- value = _ref92[1];
156041
+ }, Object.fromEntries(Object.entries(global2).map(function (_ref89) {
156042
+ var _ref90 = _slicedToArray(_ref89, 2),
156043
+ key = _ref90[0],
156044
+ value = _ref90[1];
156057
156045
  return [key, function () {
156058
156046
  return value;
156059
156047
  }];
@@ -156429,9 +156417,9 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
156429
156417
  };
156430
156418
  }
156431
156419
  if (response.resultType !== "SUCCESS") {
156432
- var _ref100, _response$error$reaso, _response$error, _mappedError$code;
156420
+ var _ref98, _response$error$reaso, _response$error, _mappedError$code;
156433
156421
  var mappedError = API_RESULT_ERROR_MAP[response.resultType];
156434
- var errorMessage = (_ref100 = (_response$error$reaso = (_response$error = response.error) == null ? void 0 : _response$error.reason) != null ? _response$error$reaso : mappedError == null ? void 0 : mappedError.message) != null ? _ref100 : ERROR_MESSAGES[ERROR_CODES.INTERNAL_ERROR];
156422
+ var errorMessage = (_ref98 = (_response$error$reaso = (_response$error = response.error) == null ? void 0 : _response$error.reason) != null ? _response$error$reaso : mappedError == null ? void 0 : mappedError.message) != null ? _ref98 : ERROR_MESSAGES[ERROR_CODES.INTERNAL_ERROR];
156435
156423
  var errorCode = (_mappedError$code = mappedError == null ? void 0 : mappedError.code) != null ? _mappedError$code : ERROR_CODES.INTERNAL_ERROR;
156436
156424
  return {
156437
156425
  type: "error",
@@ -156622,20 +156610,20 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
156622
156610
  var import_react_native42 = _$$_REQUIRE(_dependencyMap[12], "react-native");
156623
156611
  var import_jsx_runtime20 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
156624
156612
  var ARROW_PATH = "m7.5 20.4c-.5-.5-.5-1.2 0-1.7l6.7-6.7-6.8-6.7c-.5-.5-.5-1.2 0-1.7s1.2-.5 1.7 0l7.5 7.5c.5.5.5 1.2 0 1.7l-7.5 7.5c-.2.3-.5.4-.8.4s-.6-.1-.8-.3z";
156625
- function FeedBannerAdView(_ref93) {
156626
- var brandName = _ref93.brandName,
156627
- brandLogoUri = _ref93.brandLogoUri,
156628
- title = _ref93.title,
156629
- subtitle = _ref93.subtitle,
156630
- mainImageUri = _ref93.mainImageUri,
156631
- ctaText = _ref93.ctaText,
156632
- ctaTextColor = _ref93.ctaTextColor,
156633
- ctaBackgroundColor = _ref93.ctaBackgroundColor,
156634
- adClearanceText = _ref93.adClearanceText,
156635
- colors = _ref93.colors,
156636
- isAdBadgeEnabled = _ref93.isAdBadgeEnabled,
156637
- paddingStyle = _ref93.paddingStyle,
156638
- _onPress2 = _ref93.onPress;
156613
+ function FeedBannerAdView(_ref91) {
156614
+ var brandName = _ref91.brandName,
156615
+ brandLogoUri = _ref91.brandLogoUri,
156616
+ title = _ref91.title,
156617
+ subtitle = _ref91.subtitle,
156618
+ mainImageUri = _ref91.mainImageUri,
156619
+ ctaText = _ref91.ctaText,
156620
+ ctaTextColor = _ref91.ctaTextColor,
156621
+ ctaBackgroundColor = _ref91.ctaBackgroundColor,
156622
+ adClearanceText = _ref91.adClearanceText,
156623
+ colors = _ref91.colors,
156624
+ isAdBadgeEnabled = _ref91.isAdBadgeEnabled,
156625
+ paddingStyle = _ref91.paddingStyle,
156626
+ _onPress2 = _ref91.onPress;
156639
156627
  var scale = (0, import_react29.useRef)(new import_react_native42.Animated.Value(1)).current;
156640
156628
  var animateScale = function animateScale(toValue) {
156641
156629
  import_react_native42.Animated.timing(scale, {
@@ -156923,15 +156911,15 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
156923
156911
  var import_react_native43 = _$$_REQUIRE(_dependencyMap[12], "react-native");
156924
156912
  var import_jsx_runtime21 = _$$_REQUIRE(_dependencyMap[14], "react/jsx-runtime");
156925
156913
  var SQUIRCLE_PATH = "M0 17.352C0 3.564 3.564 0 17.352 0H18.648C32.436 0 36 3.564 36 17.352V18.648C36 32.436 32.436 36 18.648 36H17.352C3.564 36 0 32.436 0 18.648V17.352Z";
156926
- function ListBannerAdView(_ref94) {
156927
- var title = _ref94.title,
156928
- subtitle = _ref94.subtitle,
156929
- adClearanceText = _ref94.adClearanceText,
156930
- adClearanceFontSize = _ref94.adClearanceFontSize,
156931
- imageUri = _ref94.imageUri,
156932
- paddingStyle = _ref94.paddingStyle,
156933
- colors = _ref94.colors,
156934
- _onPress3 = _ref94.onPress;
156914
+ function ListBannerAdView(_ref92) {
156915
+ var title = _ref92.title,
156916
+ subtitle = _ref92.subtitle,
156917
+ adClearanceText = _ref92.adClearanceText,
156918
+ adClearanceFontSize = _ref92.adClearanceFontSize,
156919
+ imageUri = _ref92.imageUri,
156920
+ paddingStyle = _ref92.paddingStyle,
156921
+ colors = _ref92.colors,
156922
+ _onPress3 = _ref92.onPress;
156935
156923
  var scale = (0, import_react30.useRef)(new import_react_native43.Animated.Value(1)).current;
156936
156924
  var clipIdRef = (0, import_react30.useRef)(`clip-${Math.random().toString(36).slice(2)}`);
156937
156925
  var animateScale = function animateScale(toValue) {
@@ -157243,7 +157231,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
157243
157231
  return false;
157244
157232
  }
157245
157233
  function _InlineAd(props) {
157246
- var _ad$requestId3, _ad$creative$id2, _ad$creative2, _listCreative$subTitl, _ref99, _listCreative$adClear;
157234
+ var _ad$requestId3, _ad$creative$id2, _ad$creative2, _listCreative$subTitl, _ref97, _listCreative$adClear;
157247
157235
  var adGroupId = props.adGroupId,
157248
157236
  theme = props.theme,
157249
157237
  tone = props.tone,
@@ -157256,14 +157244,14 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
157256
157244
  onAdFailedToRender = props.onAdFailedToRender,
157257
157245
  onNoFill = props.onNoFill;
157258
157246
  var slotIdRef = (0, import_react31.useRef)(createSlotId());
157259
- var _ref95 = (0, import_react31.useState)(null),
157247
+ var _ref93 = (0, import_react31.useState)(null),
157248
+ _ref94 = _slicedToArray(_ref93, 2),
157249
+ ad = _ref94[0],
157250
+ setAd = _ref94[1];
157251
+ var _ref95 = (0, import_react31.useState)(true),
157260
157252
  _ref96 = _slicedToArray(_ref95, 2),
157261
- ad = _ref96[0],
157262
- setAd = _ref96[1];
157263
- var _ref97 = (0, import_react31.useState)(true),
157264
- _ref98 = _slicedToArray(_ref97, 2),
157265
- isAdBadgeEnabled = _ref98[0],
157266
- setIsAdBadgeEnabled = _ref98[1];
157253
+ isAdBadgeEnabled = _ref96[0],
157254
+ setIsAdBadgeEnabled = _ref96[1];
157267
157255
  var eventTrackerRef = (0, import_react31.useRef)(null);
157268
157256
  var eventPayloadRef = (0, import_react31.useRef)(null);
157269
157257
  var hasRenderedRef = (0, import_react31.useRef)(false);
@@ -157403,7 +157391,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
157403
157391
  var listCreative = isListBanner ? ad.creative : null;
157404
157392
  var feedCreative = isFeedBanner ? ad.creative : null;
157405
157393
  var subtitleText = listCreative && isAdBadgeEnabled ? `${listCreative.subTitle} \u2022 AD` : (_listCreative$subTitl = listCreative == null ? void 0 : listCreative.subTitle) != null ? _listCreative$subTitl : "";
157406
- var adClearanceText = (_ref99 = (_listCreative$adClear = listCreative == null ? void 0 : listCreative.adClearanceText) != null ? _listCreative$adClear : feedCreative == null ? void 0 : feedCreative.adClearanceText) != null ? _ref99 : void 0;
157394
+ var adClearanceText = (_ref97 = (_listCreative$adClear = listCreative == null ? void 0 : listCreative.adClearanceText) != null ? _listCreative$adClear : feedCreative == null ? void 0 : feedCreative.adClearanceText) != null ? _ref97 : void 0;
157407
157395
  var adClearanceFontSize = adClearanceText && adClearanceText.length >= 60 ? 6 : 8;
157408
157396
  var imageUri = listCreative != null && listCreative.imageUrl && isSafeUrl(listCreative.imageUrl) ? listCreative.imageUrl : null;
157409
157397
  var brandLogoUri = feedCreative != null && feedCreative.brandLogoUrl && isSafeUrl(feedCreative.brandLogoUrl) ? feedCreative.brandLogoUrl : null;
@@ -159070,7 +159058,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159070
159058
  });
159071
159059
  return _getTossShareLinkV.apply(this, arguments);
159072
159060
  }
159073
- var import_es_toolkit2 = _$$_REQUIRE(_dependencyMap[11], "es-toolkit");
159061
+ var noop2 = function noop2() {};
159074
159062
  function _iapCreateOneTimePurchaseOrder(params) {
159075
159063
  var _params$sku;
159076
159064
  var sku = (_params$sku = params.sku) != null ? _params$sku : params.productId;
@@ -159118,7 +159106,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159118
159106
  ios: "5.219.0"
159119
159107
  });
159120
159108
  if (!isIAPSupported) {
159121
- return import_es_toolkit2.noop;
159109
+ return noop2;
159122
159110
  }
159123
159111
  var isProcessProductGrantSupported = _isMinVersionSupported({
159124
159112
  android: "5.231.1",
@@ -159146,7 +159134,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159146
159134
  }).catch(function (error) {
159147
159135
  _onError2(error);
159148
159136
  });
159149
- return import_es_toolkit2.noop;
159137
+ return noop2;
159150
159138
  };
159151
159139
  return v1();
159152
159140
  }
@@ -159244,14 +159232,58 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159244
159232
  });
159245
159233
  return _completeProductGrant.apply(this, arguments);
159246
159234
  }
159235
+ function createSubscriptionPurchaseOrder(params) {
159236
+ var isSupported = _isMinVersionSupported({
159237
+ android: "5.248.0",
159238
+ ios: "5.249.0"
159239
+ });
159240
+ if (!isSupported) {
159241
+ return noop2;
159242
+ }
159243
+ var options = params.options,
159244
+ onEvent = params.onEvent,
159245
+ _onError3 = params.onError;
159246
+ var sku = options.sku,
159247
+ offerId = options.offerId,
159248
+ processProductGrant2 = options.processProductGrant;
159249
+ var unregisterCallbacks = _INTERNAL__appBridgeHandler.invokeAppBridgeMethod("requestSubscriptionPurchase", {
159250
+ sku: sku,
159251
+ offerId: offerId != null ? offerId : null
159252
+ }, {
159253
+ onPurchased: function () {
159254
+ var _onPurchased2 = _asyncToGenerator(function* (purchasedParams) {
159255
+ var isProductGranted = yield processProductGrant2(purchasedParams);
159256
+ yield _AppsInTossModule.processProductGrant({
159257
+ orderId: purchasedParams.orderId,
159258
+ isProductGranted: isProductGranted
159259
+ });
159260
+ });
159261
+ function onPurchased(_x14) {
159262
+ return _onPurchased2.apply(this, arguments);
159263
+ }
159264
+ return onPurchased;
159265
+ }(),
159266
+ onSuccess: function onSuccess(result) {
159267
+ onEvent({
159268
+ type: "success",
159269
+ data: result
159270
+ });
159271
+ },
159272
+ onError: function onError(error) {
159273
+ _onError3(error);
159274
+ }
159275
+ });
159276
+ return unregisterCallbacks;
159277
+ }
159247
159278
  var _IAP = {
159248
159279
  createOneTimePurchaseOrder: createOneTimePurchaseOrder,
159280
+ createSubscriptionPurchaseOrder: createSubscriptionPurchaseOrder,
159249
159281
  getProductItemList: getProductItemList,
159250
159282
  getPendingOrders: getPendingOrders,
159251
159283
  getCompletedOrRefundedOrders: getCompletedOrRefundedOrders,
159252
159284
  completeProductGrant: completeProductGrant
159253
159285
  };
159254
- function _saveBase64Data(_x14) {
159286
+ function _saveBase64Data(_x15) {
159255
159287
  return _saveBase64Data2.apply(this, arguments);
159256
159288
  }
159257
159289
  function _saveBase64Data2() {
@@ -159268,7 +159300,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159268
159300
  });
159269
159301
  return _saveBase64Data2.apply(this, arguments);
159270
159302
  }
159271
- function _setDeviceOrientation(_x15) {
159303
+ function _setDeviceOrientation(_x16) {
159272
159304
  return _setDeviceOrientation2.apply(this, arguments);
159273
159305
  }
159274
159306
  function _setDeviceOrientation2() {
@@ -159363,7 +159395,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159363
159395
  });
159364
159396
  return _getGameCenterGameProfile2.apply(this, arguments);
159365
159397
  }
159366
- function _submitGameCenterLeaderBoardScore(_x16) {
159398
+ function _submitGameCenterLeaderBoardScore(_x17) {
159367
159399
  return _submitGameCenterLeaderBoardScore2.apply(this, arguments);
159368
159400
  }
159369
159401
  function _submitGameCenterLeaderBoardScore2() {
@@ -159403,7 +159435,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159403
159435
  function isGrantPromotionRewardForGameError(error) {
159404
159436
  return typeof error === "object" && error !== null && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string";
159405
159437
  }
159406
- function _grantPromotionRewardForGame(_x17) {
159438
+ function _grantPromotionRewardForGame(_x18) {
159407
159439
  return _grantPromotionRewardForGame2.apply(this, arguments);
159408
159440
  }
159409
159441
  function _grantPromotionRewardForGame2() {
@@ -159485,7 +159517,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159485
159517
  ios: "5.236.0"
159486
159518
  }
159487
159519
  };
159488
- function _appsInTossSignTossCert(_x18) {
159520
+ function _appsInTossSignTossCert(_x19) {
159489
159521
  return _appsInTossSignTossCert2.apply(this, arguments);
159490
159522
  }
159491
159523
  function _appsInTossSignTossCert2() {
@@ -159564,7 +159596,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159564
159596
  function _generateHapticFeedback(options) {
159565
159597
  return _BedrockModule.generateHapticFeedback(options);
159566
159598
  }
159567
- function _share(_x19) {
159599
+ function _share(_x20) {
159568
159600
  return _share2.apply(this, arguments);
159569
159601
  }
159570
159602
  function _share2() {
@@ -159576,7 +159608,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159576
159608
  function _setSecureScreen(options) {
159577
159609
  return _BedrockModule.setSecureScreen(options);
159578
159610
  }
159579
- function _setScreenAwakeMode(_x20) {
159611
+ function _setScreenAwakeMode(_x21) {
159580
159612
  return _setScreenAwakeMode2.apply(this, arguments);
159581
159613
  }
159582
159614
  function _setScreenAwakeMode2() {
@@ -159588,7 +159620,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
159588
159620
  function _getNetworkStatus() {
159589
159621
  return _BedrockModule.getNetworkStatus();
159590
159622
  }
159591
- function _setIosSwipeGestureEnabled(_x21) {
159623
+ function _setIosSwipeGestureEnabled(_x22) {
159592
159624
  return _setIosSwipeGestureEnabled2.apply(this, arguments);
159593
159625
  }
159594
159626
  function _setIosSwipeGestureEnabled2() {
@@ -235534,10 +235566,10 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
235534
235566
  exports.processProductGrant = processProductGrant;
235535
235567
  exports.requestOneTimePurchase = requestOneTimePurchase;
235536
235568
  var _asyncToGenerator2 = _interopRequireDefault(_$$_REQUIRE(_dependencyMap[1], "@babel/runtime/helpers/asyncToGenerator"));
235537
- var _esToolkit = _$$_REQUIRE(_dependencyMap[2], "es-toolkit");
235538
- var _AppsInTossModule = _$$_REQUIRE(_dependencyMap[3], "./AppsInTossModule");
235539
- var _isMinVersionSupported = _$$_REQUIRE(_dependencyMap[4], "./isMinVersionSupported");
235540
- var _appBridge = _$$_REQUIRE(_dependencyMap[5], "../native-event-emitter/internal/appBridge");
235569
+ var _AppsInTossModule = _$$_REQUIRE(_dependencyMap[2], "./AppsInTossModule");
235570
+ var _isMinVersionSupported = _$$_REQUIRE(_dependencyMap[3], "./isMinVersionSupported");
235571
+ var _appBridge = _$$_REQUIRE(_dependencyMap[4], "../native-event-emitter/internal/appBridge");
235572
+ var noop = function noop() {};
235541
235573
  function iapCreateOneTimePurchaseOrder(params) {
235542
235574
  var _params$sku;
235543
235575
  var sku = (_params$sku = params.sku) != null ? _params$sku : params.productId;
@@ -235585,7 +235617,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
235585
235617
  ios: '5.219.0'
235586
235618
  });
235587
235619
  if (!isIAPSupported) {
235588
- return _esToolkit.noop;
235620
+ return noop;
235589
235621
  }
235590
235622
  var isProcessProductGrantSupported = (0, _isMinVersionSupported.isMinVersionSupported)({
235591
235623
  android: '5.231.1',
@@ -235613,7 +235645,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
235613
235645
  }).catch(function (error) {
235614
235646
  _onError2(error);
235615
235647
  });
235616
- return _esToolkit.noop;
235648
+ return noop;
235617
235649
  };
235618
235650
  return v1();
235619
235651
  }
@@ -235711,14 +235743,58 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
235711
235743
  });
235712
235744
  return _completeProductGrant.apply(this, arguments);
235713
235745
  }
235746
+ function createSubscriptionPurchaseOrder(params) {
235747
+ var isSupported = (0, _isMinVersionSupported.isMinVersionSupported)({
235748
+ android: '5.248.0',
235749
+ ios: '5.249.0'
235750
+ });
235751
+ if (!isSupported) {
235752
+ return noop;
235753
+ }
235754
+ var options = params.options,
235755
+ onEvent = params.onEvent,
235756
+ _onError3 = params.onError;
235757
+ var sku = options.sku,
235758
+ offerId = options.offerId,
235759
+ processProductGrant = options.processProductGrant;
235760
+ var unregisterCallbacks = _appBridge.INTERNAL__appBridgeHandler.invokeAppBridgeMethod('requestSubscriptionPurchase', {
235761
+ sku: sku,
235762
+ offerId: offerId != null ? offerId : null
235763
+ }, {
235764
+ onPurchased: function () {
235765
+ var _onPurchased2 = (0, _asyncToGenerator2.default)(function* (purchasedParams) {
235766
+ var isProductGranted = yield processProductGrant(purchasedParams);
235767
+ yield _AppsInTossModule.AppsInTossModule.processProductGrant({
235768
+ orderId: purchasedParams.orderId,
235769
+ isProductGranted: isProductGranted
235770
+ });
235771
+ });
235772
+ function onPurchased(_x4) {
235773
+ return _onPurchased2.apply(this, arguments);
235774
+ }
235775
+ return onPurchased;
235776
+ }(),
235777
+ onSuccess: function onSuccess(result) {
235778
+ onEvent({
235779
+ type: 'success',
235780
+ data: result
235781
+ });
235782
+ },
235783
+ onError: function onError(error) {
235784
+ _onError3(error);
235785
+ }
235786
+ });
235787
+ return unregisterCallbacks;
235788
+ }
235714
235789
  var IAP = exports.IAP = {
235715
235790
  createOneTimePurchaseOrder: createOneTimePurchaseOrder,
235791
+ createSubscriptionPurchaseOrder: createSubscriptionPurchaseOrder,
235716
235792
  getProductItemList: getProductItemList,
235717
235793
  getPendingOrders: getPendingOrders,
235718
235794
  getCompletedOrRefundedOrders: getCompletedOrRefundedOrders,
235719
235795
  completeProductGrant: completeProductGrant
235720
235796
  };
235721
- },2625,[1,16,1261,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");
235797
+ },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
235798
  __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) {
235723
235799
  Object.defineProperty(exports, "__esModule", {
235724
235800
  value: true
@@ -235851,7 +235927,7 @@ __d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, e
235851
235927
  }
235852
235928
  \`;document.head.appendChild(e);})();
235853
235929
  `,
235854
- m = "\"use strict\";(()=>{var ce=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 ce,k=()=>Math.random().toString(36).substring(2,15),B=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=k(),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(B(i))})),h.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function R(e){return t=>{let r=k(),n=[h.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),h.on(`${e}/onError/${r}`,o=>{t.onError(B(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 de=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=de());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=l(\"setClipboardText\"),ct=l(\"getClipboardText\"),dt=l(\"fetchContacts\"),ut=l(\"fetchAlbumPhotos\"),pt=l(\"getCurrentLocation\"),mt=l(\"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\"),_t=d(\"submitGameCenterLeaderBoardScore\"),St=d(\"getUserKeyForGame\"),Tt=d(\"getIsTossLoginIntegratedService\"),Ct=d(\"grantPromotionRewardForGame\"),yt=d(\"getServerTime\"),It=l(\"getLocale\"),Lt=l(\"getSchemeUri\"),Rt=l(\"getPlatformOS\"),xt=l(\"getOperationalEnvironment\"),Pt=l(\"getTossAppVersion\"),Dt=l(\"getDeviceId\"),Nt=R(\"contactsViral\"),Mt=R(\"startUpdateLocation\"),Ft=R(\"onVisibilityChangedByTransparentServiceWeb\");var S=class extends Error{constructor({methodName:e,message:t}){super(),this.name=`${e} permission error`,this.message=t}},G=class extends S{constructor(){super({methodName:\"fetchAlbumPhotos\",message:\"\\uC0AC\\uC9C4\\uCCA9 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},V=class extends S{constructor(){super({methodName:\"fetchContacts\",message:\"\\uC5F0\\uB77D\\uCC98 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},H=class extends S{constructor(){super({methodName:\"openCamera\",message:\"\\uCE74\\uBA54\\uB77C \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var O=class extends S{constructor(){super({methodName:\"getCurrentLocation\",message:\"\\uC704\\uCE58 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},U=O,q=class extends S{constructor(){super({methodName:\"getClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC77D\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}},z=class extends S{constructor(){super({methodName:\"setClipboardText\",message:\"\\uD074\\uB9BD\\uBCF4\\uB4DC \\uC4F0\\uAE30 \\uAD8C\\uD55C\\uC774 \\uAC70\\uBD80\\uB418\\uC5C8\\uC5B4\\uC694.\"})}};var ue=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 ue,ee=()=>Math.random().toString(36).substring(2,15),te=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=ee(),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(te(i))})),w.postMessage({type:\"method\",functionName:e,eventId:r,args:t})})}}function A(e){return t=>{let r=ee(),n=[w.on(`${e}/onEvent/${r}`,o=>{t.onEvent(o)}),w.on(`${e}/onError/${r}`,o=>{t.onError(te(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\")},pe=/^[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},me=(e,t)=>typeof e==typeof t?[e,t]:[String(e),String(t)],le=(e,t)=>{if($(e)||$(t))return 0;let[r,n]=me(W(e),W(t));return r>n?1:r<n?-1:0},j=e=>{if(typeof e!=\"string\")throw new TypeError(\"Invalid argument: expected a string\");let t=e.match(pe);if(!t)throw new Error(`Invalid semver: '${e}'`);let[,r,n,o,s,a]=t;return[r,n,o,s,a]},K=(e,t)=>{let r=Math.max(e.length,t.length);for(let n=0;n<r;n++){let o=e[n]??\"0\",s=t[n]??\"0\",a=le(o,s);if(a!==0)return a}return 0},ge=(e,t)=>{let r=j(e),n=j(t),o=r.pop(),s=n.pop(),a=K(r,n);return a!==0?a:o&&s?K(o.split(\".\"),s.split(\".\")):o?-1:s?1:0};function J(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:ge(r,o)>=0}function fe(e){return c(\"processProductGrant\")(e)}var Wt={createOneTimePurchaseOrder:e=>{let t=J({android:\"5.219.0\",ios:\"5.219.0\"}),r=()=>{};if(!t)return r;let n=J({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 fe({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\")},jt=p(\"getSafeAreaInsets\");var Kt=p(\"getSafeAreaInsets\");var Jt={loadAppsInTossAdMob:Object.assign(A(\"loadAppsInTossAdMob\"),{isSupported:p(\"loadAppsInTossAdMob_isSupported\")}),showAppsInTossAdMob:Object.assign(A(\"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 T({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=T({handler:e=>c(\"fetchAlbumPhotos\")(e),permission:{name:\"photos\",access:\"read\"},error:G}),sr=T({handler:e=>c(\"fetchContacts\")(e),permission:{name:\"contacts\",access:\"read\"},error:V}),ir=T({handler:e=>c(\"getCurrentLocation\")(e),permission:{name:\"geolocation\",access:\"access\"},error:O}),dr=T({handler:e=>c(\"openCamera\")(e),permission:{name:\"camera\",access:\"access\"},error:H}),pr=T({handler:e=>c(\"setClipboardText\")(e),permission:{name:\"clipboard\",access:\"write\"},error:z}),lr=T({handler:()=>c(\"getClipboardText\")(),permission:{name:\"clipboard\",access:\"read\"},error:q}),Ee=c(\"getPermission\"),be=c(\"openPermissionDialog\"),re=e=>A(\"updateLocationEvent\")({...e,onError:t=>{let r=new U;return t instanceof Error&&t.name===r.name?e.onError(r):e.onError(t)}});re.getPermission=()=>Ee({name:\"geolocation\",access:\"access\"});re.openPermissionDialog=()=>be({name:\"geolocation\",access:\"access\"});var fr=Object.assign(A(\"loadFullScreenAd\"),{isSupported:p(\"loadFullScreenAd_isSupported\")}),vr=Object.assign(A(\"showFullScreenAd\"),{isSupported:p(\"showFullScreenAd_isSupported\")}),Ae=c(\"openURL\");function _e(e){let t=Se(e);return Ae(t)}function Se(e){return[\"http://\",\"https://\"].some(r=>e.startsWith(r))?Te(e):e}function Te(e){return`supertoss://web?url=${encodeURIComponent(e)}&external=true`}var X=\"https://static.toss.im/ads/sdk/toss-ads-space-kit-1.3.0.js\",Y=15e3,x=null;function _(){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=_();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 m=_();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 ${X}.`))},u=window.setTimeout(()=>{s(),n(new Error(`Loading Ads SDK timed out after ${Y}ms.`))},Y);o.addEventListener(\"load\",a),o.addEventListener(\"error\",i),o.async=!0,o.src=X,document.head.appendChild(o)});return x=t,t}var b=Object.assign(A(\"fetchTossAd\"),{isSupported:p(\"fetchTossAd_isSupported\")}),ye=c(\"tossAdEventLog\"),Ie=new Set([\"1\",\"2\"]);function Le(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 Z(e){let t=Array.isArray(e.ads)?e.ads.filter(r=>Ie.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:Z(e.success)}:{resultType:\"FAIL\",error:{reason:\"fetchTossAd returned SUCCESS without payload\"}}:Pe(e)?{resultType:\"SUCCESS\",success:Z(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(_()?.isInitialized()){r();return}if(L!=null){L.then(r).catch(n);return}let s=Ce().then(a=>{if(a.isInitialized())return;let u={environment:\"live\",customAdFetcher:De(),opener:_e};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=_();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:ne(e,r.callbacks)};a.banner.createSlot(i,u)}catch(s){o(s)}}var Fe=\"16px 20px\",Oe=\"20px\",ke=\"auto\",Be=\"blackAndWhite\",Ge=\"expanded\",f=\"toss-ads-attach\",Q=\"toss-ads-attach-style\";function Ve(e){let t=e.ownerDocument;if(!t||t.getElementById(Q))return;let r=t.createElement(\"style\");r.id=Q,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 He(e,t,r={}){let{callbacks:n,theme:o=ke,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(f),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 m=!1,g=null,v=E=>{let I=E instanceof Error?E:new Error(String(E));n?.onAdFailedToRender?.({slotId:\"\",adGroupId:e,adMetadata:{},error:{code:0,message:I.message}})},se=ne(e,n);try{let E=e,I=_();if(!I)throw new Error(\"[toss-ad] Call initialize() before attaching an ad.\");if(!I.banner)throw new Error(\"[toss-ad] Loaded TossAdsSpaceKit does not support banner ads.\");let 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),m=!0;let ae={spaceId:E,autoLoad:!0,theme:o===\"auto\"?void 0:o,renderPadding:ie=>ie===\"1\"?Fe:Oe,callbacks:se};g=I.banner.createSlot(u,ae)}catch(E){m&&i.parentNode&&i.parentNode.removeChild(i),v(E)}return{destroy(){g?.destroy(),m&&i.parentNode&&i.parentNode.removeChild(i)}}}function Ue(e){let t=_();t?.banner&&t.banner.destroy(e)}function qe(){let e=_();e?.banner&&e.banner.destroyAll()}function ne(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=>{ye({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:b.isSupported}),attach:Object.assign(Me,{isSupported:b.isSupported}),attachBanner:Object.assign(He,{isSupported:b.isSupported}),destroy:Object.assign(Ue,{isSupported:b.isSupported}),destroyAll:Object.assign(qe,{isSupported:b.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 C=/\\.(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(!C.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 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 oe=window.__appsInToss.debugLogger;oe.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}:{};oe.log(\"load_complete\",{isNavigationDebugSupported:r,...n})});function y(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:y(performance.memory.usedJSHeapSize/1024,2),totalJSHeapSize:y(performance.memory.totalJSHeapSize/1024,2),jsHeapSizeLimit:y(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})=>{C.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(!C.test(n.url))return;let a=await s.clone().blob().then(u=>y(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})=>{C.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";
235930
+ 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
235931
  0 && (module.exports = {
235856
235932
  afterDocumentLoad: afterDocumentLoad,
235857
235933
  beforeDocumentLoad: beforeDocumentLoad