@apps-in-toss/framework 0.0.0-dev.1752114017143 → 0.0.0-dev.1752115036458

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -34,29 +34,43 @@ __export(src_exports, {
34
34
  Accuracy: () => Accuracy2,
35
35
  Analytics: () => Analytics2,
36
36
  AppsInToss: () => AppsInToss,
37
+ AppsInTossModule: () => AppsInTossModule,
38
+ BedrockCoreModule: () => BedrockCoreModule,
39
+ BedrockModule: () => BedrockModule,
37
40
  GoogleAdMob: () => GoogleAdMob,
38
- IAP: () => IAP,
39
- INTERNAL__onVisibilityChangedByTransparentServiceWeb: () => INTERNAL__onVisibilityChangedByTransparentServiceWeb,
41
+ INTERNAL__AppsInTossModule: () => AppsInTossModuleInstance,
42
+ INTERNAL__module: () => INTERNAL__module,
40
43
  Storage: () => Storage,
41
44
  TossPay: () => TossPay,
42
45
  WebView: () => WebView,
43
46
  appLogin: () => appLogin,
44
47
  appsInTossEvent: () => appsInTossEvent,
48
+ closeView: () => closeView,
45
49
  env: () => env,
46
50
  eventLog: () => eventLog,
47
51
  fetchAlbumPhotos: () => fetchAlbumPhotos,
48
52
  fetchContacts: () => fetchContacts,
53
+ generateHapticFeedback: () => generateHapticFeedback,
49
54
  getClipboardText: () => getClipboardText,
50
55
  getCurrentLocation: () => getCurrentLocation,
51
56
  getDeviceId: () => getDeviceId,
57
+ getLocale: () => getLocale,
58
+ getNetworkStatus: () => getNetworkStatus,
52
59
  getOperationalEnvironment: () => getOperationalEnvironment,
60
+ getPlatformOS: () => getPlatformOS,
61
+ getSchemeUri: () => getSchemeUri,
53
62
  getTossAppVersion: () => getTossAppVersion,
54
63
  getTossShareLink: () => getTossShareLink,
55
64
  isMinVersionSupported: () => isMinVersionSupported,
56
65
  openCamera: () => openCamera,
66
+ openURL: () => openURL,
57
67
  saveBase64Data: () => saveBase64Data,
58
68
  setClipboardText: () => setClipboardText,
59
69
  setDeviceOrientation: () => setDeviceOrientation,
70
+ setIosSwipeGestureEnabled: () => setIosSwipeGestureEnabled,
71
+ setScreenAwakeMode: () => setScreenAwakeMode,
72
+ setSecureScreen: () => setSecureScreen,
73
+ share: () => share,
60
74
  startUpdateLocation: () => startUpdateLocation,
61
75
  useGeolocation: () => useGeolocation
62
76
  });
@@ -65,210 +79,30 @@ var import_analytics2 = require("@apps-in-toss/analytics");
65
79
 
66
80
  // src/core/registerApp.tsx
67
81
  var import_analytics = require("@apps-in-toss/analytics");
68
- var import_react_native6 = require("@toss-design-system/react-native");
69
- var import_react_native_bedrock8 = require("react-native-bedrock");
82
+ var import_react_native28 = require("@granite-js/react-native");
83
+ var import_react_native29 = require("@toss-design-system/react-native");
70
84
 
71
- // src/core/components/AppEvent.tsx
72
- var import_react2 = require("react");
73
- var import_react_native_bedrock2 = require("react-native-bedrock");
74
-
75
- // src/env.ts
76
- var env = {
77
- getDeploymentId: () => __DEV__ ? "local" : global.__appsInToss?.deploymentId
78
- };
79
-
80
- // src/native-modules/tossCore.ts
81
- var import_react_native3 = require("react-native");
82
-
83
- // src/native-modules/AppsInTossModule.ts
84
- var import_react_native = require("react-native");
85
- var AppsInTossModuleInstance = import_react_native.NativeModules.AppsInTossModule;
86
- var AppsInTossModule = AppsInTossModuleInstance;
87
-
88
- // src/native-modules/getOperationalEnvironment.ts
89
- function getOperationalEnvironment() {
90
- return AppsInTossModule.operationalEnvironment;
91
- }
92
-
93
- // src/native-modules/isMinVersionSupported.ts
94
- var import_react_native2 = require("react-native");
95
-
96
- // src/utils/compareVersion.ts
97
- var SEMVER_REGEX = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\\-]+(?:\.[\da-z\\-]+)*))?(?:\+[\da-z\\-]+(?:\.[\da-z\\-]+)*)?)?)?$/i;
98
- var isWildcard = (val) => ["*", "x", "X"].includes(val);
99
- var tryParse = (val) => {
100
- const num = parseInt(val, 10);
101
- return isNaN(num) ? val : num;
102
- };
103
- var coerceTypes = (a, b) => {
104
- return typeof a === typeof b ? [a, b] : [String(a), String(b)];
105
- };
106
- var compareValues = (a, b) => {
107
- if (isWildcard(a) || isWildcard(b)) {
108
- return 0;
109
- }
110
- const [aVal, bVal] = coerceTypes(tryParse(a), tryParse(b));
111
- if (aVal > bVal) {
112
- return 1;
113
- }
114
- if (aVal < bVal) {
115
- return -1;
116
- }
117
- return 0;
118
- };
119
- var parseVersion = (version) => {
120
- if (typeof version !== "string") {
121
- throw new TypeError("Invalid argument: expected a string");
122
- }
123
- const match = version.match(SEMVER_REGEX);
124
- if (!match) {
125
- throw new Error(`Invalid semver: '${version}'`);
126
- }
127
- const [, major, minor, patch, build, preRelease] = match;
128
- return [major, minor, patch, build, preRelease];
129
- };
130
- var compareSegments = (a, b) => {
131
- const maxLength = Math.max(a.length, b.length);
132
- for (let i = 0; i < maxLength; i++) {
133
- const segA = a[i] ?? "0";
134
- const segB = b[i] ?? "0";
135
- const result = compareValues(segA, segB);
136
- if (result !== 0) {
137
- return result;
138
- }
139
- }
140
- return 0;
141
- };
142
- var compareVersions = (v1, v2) => {
143
- const seg1 = parseVersion(v1);
144
- const seg2 = parseVersion(v2);
145
- const preRelease1 = seg1.pop();
146
- const preRelease2 = seg2.pop();
147
- const mainCompare = compareSegments(seg1, seg2);
148
- if (mainCompare !== 0) {
149
- return mainCompare;
150
- }
151
- if (preRelease1 && preRelease2) {
152
- return compareSegments(preRelease1.split("."), preRelease2.split("."));
153
- }
154
- if (preRelease1) {
155
- return -1;
156
- }
157
- if (preRelease2) {
158
- return 1;
159
- }
160
- return 0;
161
- };
162
-
163
- // src/native-modules/isMinVersionSupported.ts
164
- function isMinVersionSupported(minVersions) {
165
- const operationalEnvironment2 = AppsInTossModule.operationalEnvironment;
166
- if (operationalEnvironment2 === "sandbox") {
167
- return true;
168
- }
169
- const currentVersion = AppsInTossModule.tossAppVersion;
170
- const isIOS = import_react_native2.Platform.OS === "ios";
171
- const minVersion = isIOS ? minVersions.ios : minVersions.android;
172
- if (minVersion === void 0) {
173
- return false;
174
- }
175
- if (minVersion === "always") {
176
- return true;
177
- }
178
- if (minVersion === "never") {
179
- return false;
180
- }
181
- return compareVersions(currentVersion, minVersion) >= 0;
182
- }
183
-
184
- // src/native-modules/tossCore.ts
185
- var TossCoreModule = import_react_native3.NativeModules.TossCoreModule;
186
- function tossCoreEventLog(params) {
187
- const supported = isMinVersionSupported({ ios: "5.210.0", android: "5.210.0" });
188
- const isSandbox = getOperationalEnvironment() === "sandbox";
189
- if (!supported || isSandbox) {
190
- return;
191
- }
192
- TossCoreModule.eventLog({
193
- params: {
194
- log_name: params.log_name,
195
- log_type: params.log_type,
196
- params: params.params
197
- }
198
- });
199
- }
200
-
201
- // src/core/hooks/useReferrer.ts
202
- var import_react = require("react");
203
- var import_react_native_bedrock = require("react-native-bedrock");
204
- function useReferrer() {
205
- return (0, import_react.useMemo)(() => {
206
- try {
207
- return new URL((0, import_react_native_bedrock.getSchemeUri)()).searchParams.get("referrer");
208
- } catch {
209
- return null;
210
- }
211
- }, []);
212
- }
85
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/dist/index.js
86
+ var import_react_native = require("@granite-js/react-native");
87
+ var import_react_native2 = require("@granite-js/react-native");
88
+ var import_react_native3 = require("@granite-js/react-native");
89
+ var import_react_native4 = require("react-native");
90
+ var import_react_native5 = require("react-native");
91
+ var import_react_native6 = require("@granite-js/react-native");
213
92
 
214
- // src/core/components/AppEvent.tsx
215
- var ENTRY_APP_EVENT_SCHEMA_ID = 1562181;
216
- function isPrivateScheme() {
217
- try {
218
- return new URL((0, import_react_native_bedrock2.getSchemeUri)()).protocol === "intoss-private:";
219
- } catch {
220
- return false;
221
- }
222
- }
223
- function EntryAppEvent() {
224
- const referrer = useReferrer() ?? "";
225
- (0, import_react2.useEffect)(() => {
226
- tossCoreEventLog({
227
- log_name: "appsintoss_app_visit::impression__enter_appsintoss",
228
- log_type: "info",
229
- params: {
230
- is_transform: true,
231
- schema_id: ENTRY_APP_EVENT_SCHEMA_ID,
232
- referrer,
233
- deployment_id: env.getDeploymentId(),
234
- app_name: import_react_native_bedrock2.Bedrock.appName,
235
- is_private: isPrivateScheme()
236
- }
237
- });
238
- }, [referrer]);
239
- return null;
240
- }
241
- function SystemAppEvent({ ...initialProps }) {
242
- (0, import_react2.useEffect)(() => {
243
- tossCoreEventLog({
244
- log_name: "AppsInTossInitialProps",
245
- log_type: "debug",
246
- params: {
247
- ...initialProps,
248
- schemeUri: (0, import_react_native_bedrock2.getSchemeUri)(),
249
- deployment_id: env.getDeploymentId(),
250
- app_name: import_react_native_bedrock2.Bedrock.appName,
251
- is_private: isPrivateScheme()
252
- }
253
- });
254
- }, [initialProps]);
255
- return null;
93
+ // ../../.yarn/cache/es-toolkit-npm-1.39.3-b94f623c91-1c85e518b1.zip/node_modules/es-toolkit/dist/function/noop.mjs
94
+ function noop() {
256
95
  }
257
- var AppEvent = {
258
- Entry: EntryAppEvent,
259
- System: SystemAppEvent
260
- };
261
-
262
- // src/core/hooks/useAppsInTossBridge.ts
263
- var import_react_native5 = require("@toss-design-system/react-native");
264
- var import_react3 = require("react");
265
96
 
266
- // src/native-event-emitter/appsInTossEvent.ts
267
- var import_react_native_bedrock7 = require("react-native-bedrock");
268
-
269
- // src/native-event-emitter/event-plugins/EntryMessageExitedEvent.ts
270
- var import_react_native_bedrock3 = require("react-native-bedrock");
271
- var EntryMessageExitedEvent = class extends import_react_native_bedrock3.BedrockEventDefinition {
97
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/dist/index.js
98
+ var import_react_native7 = require("react-native");
99
+ var import_react_native8 = require("react-native");
100
+ var import_react_native9 = require("react-native");
101
+ var import_react_native10 = require("react-native");
102
+ var import_react_native11 = require("react-native");
103
+ var import_react_native12 = require("react-native");
104
+ var import_react_native13 = require("react-native");
105
+ var EntryMessageExitedEvent = class extends import_react_native2.GraniteEventDefinition {
272
106
  name = "entryMessageExited";
273
107
  remove() {
274
108
  }
@@ -276,21 +110,15 @@ var EntryMessageExitedEvent = class extends import_react_native_bedrock3.Bedrock
276
110
  listener(_) {
277
111
  }
278
112
  };
279
-
280
- // src/native-event-emitter/event-plugins/UpdateLocationEvent.ts
281
- var import_react_native_bedrock4 = require("react-native-bedrock");
282
-
283
- // src/native-modules/getPermission.ts
113
+ var Module = import_react_native4.TurboModuleRegistry.getEnforcing("AppsInTossModule");
114
+ var AppsInTossModuleInstance = Module;
115
+ var AppsInTossModule = Module;
284
116
  function getPermission(permission) {
285
117
  return AppsInTossModule.getPermission(permission);
286
118
  }
287
-
288
- // src/native-modules/openPermissionDialog.ts
289
119
  function openPermissionDialog(permission) {
290
120
  return AppsInTossModule.openPermissionDialog(permission);
291
121
  }
292
-
293
- // src/native-modules/requestPermission.ts
294
122
  async function requestPermission(permission) {
295
123
  const permissionStatus = await getPermission(permission);
296
124
  switch (permissionStatus) {
@@ -301,13 +129,8 @@ async function requestPermission(permission) {
301
129
  return openPermissionDialog(permission);
302
130
  }
303
131
  }
304
-
305
- // src/native-event-emitter/nativeEventEmitter.ts
306
- var import_react_native4 = require("react-native");
307
- var nativeEventEmitter = new import_react_native4.NativeEventEmitter(AppsInTossModuleInstance);
308
-
309
- // src/native-event-emitter/event-plugins/UpdateLocationEvent.ts
310
- var UpdateLocationEvent = class extends import_react_native_bedrock4.BedrockEventDefinition {
132
+ var nativeEventEmitter = new import_react_native5.NativeEventEmitter(AppsInTossModuleInstance);
133
+ var UpdateLocationEvent = class extends import_react_native3.GraniteEventDefinition {
311
134
  name = "updateLocationEvent";
312
135
  subscriptionCount = 0;
313
136
  ref = {
@@ -335,16 +158,9 @@ var UpdateLocationEvent = class extends import_react_native_bedrock4.BedrockEven
335
158
  }).catch(onError);
336
159
  }
337
160
  };
338
-
339
- // src/native-event-emitter/internal/AppBridgeCallbackEvent.ts
340
- var import_react_native_bedrock5 = require("react-native-bedrock");
341
-
342
- // src/utils/generateUUID.ts
343
161
  function generateUUID(placeholder) {
344
162
  return placeholder ? (placeholder ^ Math.random() * 16 >> placeholder / 4).toString(16) : (String(1e7) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, generateUUID);
345
163
  }
346
-
347
- // src/native-event-emitter/internal/appBridge.ts
348
164
  var INTERNAL__callbacks = /* @__PURE__ */ new Map();
349
165
  function invokeAppBridgeCallback(id, ...args) {
350
166
  const callback = INTERNAL__callbacks.get(id);
@@ -391,10 +207,8 @@ var INTERNAL__appBridgeHandler = {
391
207
  unregisterCallback,
392
208
  getCallbackIds
393
209
  };
394
-
395
- // src/native-event-emitter/internal/AppBridgeCallbackEvent.ts
396
210
  var UNSAFE__nativeEventEmitter = nativeEventEmitter;
397
- var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_native_bedrock5.BedrockEventDefinition {
211
+ var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_native6.GraniteEventDefinition {
398
212
  static INTERNAL__appBridgeSubscription;
399
213
  name = "appBridgeCallbackEvent";
400
214
  constructor() {
@@ -422,93 +236,204 @@ var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_
422
236
  }
423
237
  }
424
238
  };
425
-
426
- // src/native-event-emitter/internal/VisibilityChangedByTransparentServiceWebEvent.ts
427
- var import_react_native_bedrock6 = require("react-native-bedrock");
428
- var VisibilityChangedByTransparentServiceWebEvent = class extends import_react_native_bedrock6.BedrockEventDefinition {
429
- name = "onVisibilityChangedByTransparentServiceWeb";
430
- subscription = null;
431
- remove() {
432
- this.subscription?.remove();
433
- this.subscription = null;
239
+ var appsInTossEvent = new import_react_native.GraniteEvent([
240
+ new AppBridgeCallbackEvent(),
241
+ new UpdateLocationEvent(),
242
+ new EntryMessageExitedEvent()
243
+ ]);
244
+ function startUpdateLocation(eventParams) {
245
+ return appsInTossEvent.addEventListener("updateLocationEvent", eventParams);
246
+ }
247
+ function getOperationalEnvironment() {
248
+ return AppsInTossModule.operationalEnvironment;
249
+ }
250
+ var SEMVER_REGEX = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\\-]+(?:\.[\da-z\\-]+)*))?(?:\+[\da-z\\-]+(?:\.[\da-z\\-]+)*)?)?)?$/i;
251
+ var isWildcard = (val) => ["*", "x", "X"].includes(val);
252
+ var tryParse = (val) => {
253
+ const num = parseInt(val, 10);
254
+ return isNaN(num) ? val : num;
255
+ };
256
+ var coerceTypes = (a, b) => {
257
+ return typeof a === typeof b ? [a, b] : [String(a), String(b)];
258
+ };
259
+ var compareValues = (a, b) => {
260
+ if (isWildcard(a) || isWildcard(b)) {
261
+ return 0;
434
262
  }
435
- listener(options, onEvent, onError) {
436
- const subscription = nativeEventEmitter.addListener("visibilityChangedByTransparentServiceWeb", (params) => {
437
- if (this.isVisibilityChangedByTransparentServiceWebResult(params)) {
438
- if (params.callbackId === options.callbackId) {
439
- onEvent(params.isVisible);
440
- }
441
- } else {
442
- onError(new Error("Invalid visibility changed by transparent service web result"));
443
- }
444
- });
445
- this.subscription = subscription;
263
+ const [aVal, bVal] = coerceTypes(tryParse(a), tryParse(b));
264
+ if (aVal > bVal) {
265
+ return 1;
446
266
  }
447
- isVisibilityChangedByTransparentServiceWebResult(params) {
448
- return typeof params === "object" && typeof params.callbackId === "string" && typeof params.isVisible === "boolean";
267
+ if (aVal < bVal) {
268
+ return -1;
449
269
  }
270
+ return 0;
450
271
  };
451
-
452
- // src/native-event-emitter/appsInTossEvent.ts
453
- var appsInTossEvent = new import_react_native_bedrock7.BedrockEvent([
454
- new UpdateLocationEvent(),
455
- new EntryMessageExitedEvent(),
456
- // Internal events
457
- new AppBridgeCallbackEvent(),
458
- new VisibilityChangedByTransparentServiceWebEvent()
459
- ]);
460
-
461
- // src/core/utils/getAppsInTossGlobals.ts
462
- function getAppsInTossGlobals() {
463
- if (global.__appsInToss == null) {
464
- throw new Error("invalid apps-in-toss globals");
272
+ var parseVersion = (version) => {
273
+ if (typeof version !== "string") {
274
+ throw new TypeError("Invalid argument: expected a string");
465
275
  }
466
- return global.__appsInToss;
467
- }
468
-
469
- // src/core/utils/toIcon.ts
470
- function toIcon(source) {
471
- return source.startsWith("http") ? { source: { uri: source } } : { name: source };
472
- }
473
-
474
- // src/core/hooks/useAppsInTossBridge.ts
475
- function useAppsInTossBridge() {
476
- const controller = (0, import_react_native5.useBridge)();
477
- const appsInTossGlobals2 = getAppsInTossGlobals();
478
- (0, import_react3.useEffect)(() => {
479
- const commonProps = {
480
- serviceName: appsInTossGlobals2.brandDisplayName,
481
- icon: toIcon(appsInTossGlobals2.brandIcon),
482
- color: appsInTossGlobals2.brandPrimaryColor,
483
- colorMode: appsInTossGlobals2.brandBridgeColorMode
484
- };
485
- controller.open({
486
- ...commonProps,
487
- onExited: () => {
488
- appsInTossEvent.emit("entryMessageExited", void 0);
489
- }
490
- });
491
- }, []);
276
+ const match = version.match(SEMVER_REGEX);
277
+ if (!match) {
278
+ throw new Error(`Invalid semver: '${version}'`);
279
+ }
280
+ const [, major, minor, patch, build, preRelease] = match;
281
+ return [major, minor, patch, build, preRelease];
282
+ };
283
+ var compareSegments = (a, b) => {
284
+ const maxLength = Math.max(a.length, b.length);
285
+ for (let i = 0; i < maxLength; i++) {
286
+ const segA = a[i] ?? "0";
287
+ const segB = b[i] ?? "0";
288
+ const result = compareValues(segA, segB);
289
+ if (result !== 0) {
290
+ return result;
291
+ }
292
+ }
293
+ return 0;
294
+ };
295
+ var compareVersions = (v1, v2) => {
296
+ const seg1 = parseVersion(v1);
297
+ const seg2 = parseVersion(v2);
298
+ const preRelease1 = seg1.pop();
299
+ const preRelease2 = seg2.pop();
300
+ const mainCompare = compareSegments(seg1, seg2);
301
+ if (mainCompare !== 0) {
302
+ return mainCompare;
303
+ }
304
+ if (preRelease1 && preRelease2) {
305
+ return compareSegments(preRelease1.split("."), preRelease2.split("."));
306
+ }
307
+ if (preRelease1) {
308
+ return -1;
309
+ }
310
+ if (preRelease2) {
311
+ return 1;
312
+ }
313
+ return 0;
314
+ };
315
+ function isMinVersionSupported(minVersions) {
316
+ const operationalEnvironment2 = AppsInTossModule.operationalEnvironment;
317
+ if (operationalEnvironment2 === "sandbox") {
318
+ return true;
319
+ }
320
+ const currentVersion = AppsInTossModule.tossAppVersion;
321
+ const isIOS = import_react_native7.Platform.OS === "ios";
322
+ const minVersion = isIOS ? minVersions.ios : minVersions.android;
323
+ if (minVersion === void 0) {
324
+ return false;
325
+ }
326
+ if (minVersion === "always") {
327
+ return true;
328
+ }
329
+ if (minVersion === "never") {
330
+ return false;
331
+ }
332
+ return compareVersions(currentVersion, minVersion) >= 0;
333
+ }
334
+ function loadAdMobInterstitialAd(params) {
335
+ if (!loadAdMobInterstitialAd.isSupported()) {
336
+ params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
337
+ return noop;
338
+ }
339
+ const { onEvent, onError, options } = params;
340
+ const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("loadAdMobInterstitialAd", options, {
341
+ onAdClicked: () => {
342
+ onEvent({ type: "clicked" });
343
+ },
344
+ onAdDismissed: () => {
345
+ onEvent({ type: "dismissed" });
346
+ },
347
+ onAdFailedToShow: () => {
348
+ onEvent({ type: "failedToShow" });
349
+ },
350
+ onAdImpression: () => {
351
+ onEvent({ type: "impression" });
352
+ },
353
+ onAdShow: () => {
354
+ onEvent({ type: "show" });
355
+ },
356
+ onSuccess: (result) => onEvent({ type: "loaded", data: result }),
357
+ onError
358
+ });
359
+ return unregisterCallbacks;
360
+ }
361
+ function showAdMobInterstitialAd(params) {
362
+ if (!showAdMobInterstitialAd.isSupported()) {
363
+ params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
364
+ return noop;
365
+ }
366
+ const { onEvent, onError, options } = params;
367
+ const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("showAdMobInterstitialAd", options, {
368
+ onSuccess: () => onEvent({ type: "requested" }),
369
+ onError
370
+ });
371
+ return unregisterCallbacks;
372
+ }
373
+ function loadAdMobRewardedAd(params) {
374
+ if (!loadAdMobRewardedAd.isSupported()) {
375
+ params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
376
+ return noop;
377
+ }
378
+ const { onEvent, onError, options } = params;
379
+ const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("loadAdMobRewardedAd", options, {
380
+ onAdClicked: () => {
381
+ onEvent({ type: "clicked" });
382
+ },
383
+ onAdDismissed: () => {
384
+ onEvent({ type: "dismissed" });
385
+ },
386
+ onAdFailedToShow: () => {
387
+ onEvent({ type: "failedToShow" });
388
+ },
389
+ onAdImpression: () => {
390
+ onEvent({ type: "impression" });
391
+ },
392
+ onAdShow: () => {
393
+ onEvent({ type: "show" });
394
+ },
395
+ onUserEarnedReward: () => {
396
+ onEvent({ type: "userEarnedReward" });
397
+ },
398
+ onSuccess: (result) => onEvent({ type: "loaded", data: result }),
399
+ onError
400
+ });
401
+ return unregisterCallbacks;
402
+ }
403
+ function showAdMobRewardedAd(params) {
404
+ if (!showAdMobRewardedAd.isSupported()) {
405
+ params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
406
+ return noop;
407
+ }
408
+ const { onEvent, onError, options } = params;
409
+ const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("showAdMobRewardedAd", options, {
410
+ onSuccess: () => onEvent({ type: "requested" }),
411
+ onError
412
+ });
413
+ return unregisterCallbacks;
414
+ }
415
+ var ANDROID_GOOGLE_AD_MOB_SUPPORTED_VERSION = "5.209.0";
416
+ var IOS_GOOGLE_AD_MOB_SUPPORTED_VERSION = "5.209.0";
417
+ var UNSUPPORTED_ERROR_MESSAGE = "This feature is not supported in the current environment";
418
+ var ENVIRONMENT = getOperationalEnvironment();
419
+ function createIsSupported() {
420
+ return () => {
421
+ if (ENVIRONMENT !== "toss") {
422
+ return false;
423
+ }
424
+ return isMinVersionSupported({
425
+ android: ANDROID_GOOGLE_AD_MOB_SUPPORTED_VERSION,
426
+ ios: IOS_GOOGLE_AD_MOB_SUPPORTED_VERSION
427
+ });
428
+ };
429
+ }
430
+ loadAdMobInterstitialAd.isSupported = createIsSupported();
431
+ loadAdMobRewardedAd.isSupported = createIsSupported();
432
+ showAdMobInterstitialAd.isSupported = createIsSupported();
433
+ showAdMobRewardedAd.isSupported = createIsSupported();
434
+ async function checkoutPayment(options) {
435
+ return AppsInTossModule.checkoutPayment({ params: options });
492
436
  }
493
-
494
- // src/async-bridges.ts
495
- var async_bridges_exports = {};
496
- __export(async_bridges_exports, {
497
- appLogin: () => appLogin,
498
- checkoutPayment: () => checkoutPayment,
499
- eventLog: () => eventLog,
500
- fetchAlbumPhotos: () => fetchAlbumPhotos,
501
- fetchContacts: () => fetchContacts,
502
- getClipboardText: () => getClipboardText,
503
- getCurrentLocation: () => getCurrentLocation,
504
- getTossShareLink: () => getTossShareLink,
505
- openCamera: () => openCamera,
506
- saveBase64Data: () => saveBase64Data,
507
- setClipboardText: () => setClipboardText,
508
- setDeviceOrientation: () => setDeviceOrientation
509
- });
510
-
511
- // src/native-modules/setClipboardText.ts
512
437
  async function setClipboardText(text) {
513
438
  const permissionStatus = await requestPermission({ name: "clipboard", access: "write" });
514
439
  if (permissionStatus === "denied") {
@@ -516,8 +441,6 @@ async function setClipboardText(text) {
516
441
  }
517
442
  return AppsInTossModule.setClipboardText({ text });
518
443
  }
519
-
520
- // src/native-modules/getClipboardText.ts
521
444
  async function getClipboardText() {
522
445
  const permissionStatus = await requestPermission({ name: "clipboard", access: "read" });
523
446
  if (permissionStatus === "denied") {
@@ -525,30 +448,18 @@ async function getClipboardText() {
525
448
  }
526
449
  return AppsInTossModule.getClipboardText({});
527
450
  }
528
-
529
- // src/native-modules/fetchContacts.ts
530
- async function fetchContacts({
531
- size,
532
- offset,
533
- query
534
- }) {
451
+ async function fetchContacts(options) {
535
452
  const permissionStatus = await requestPermission({ name: "contacts", access: "read" });
536
453
  if (permissionStatus === "denied") {
537
454
  throw new Error("\uC5F0\uB77D\uCC98 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
538
455
  }
539
- const contacts = await AppsInTossModule.fetchContacts({
540
- size,
541
- offset,
542
- query
543
- });
456
+ const contacts = await AppsInTossModule.fetchContacts(options);
544
457
  return {
545
458
  result: contacts.result,
546
459
  nextOffset: contacts.nextOffset ?? null,
547
460
  done: contacts.done
548
461
  };
549
462
  }
550
-
551
- // src/native-modules/fetchAlbumPhotos.ts
552
463
  var DEFAULT_MAX_COUNT = 10;
553
464
  var DEFAULT_MAX_WIDTH = 1024;
554
465
  async function fetchAlbumPhotos(options) {
@@ -563,8 +474,6 @@ async function fetchAlbumPhotos(options) {
563
474
  });
564
475
  return albumPhotos;
565
476
  }
566
-
567
- // src/native-modules/getCurrentLocation.ts
568
477
  async function getCurrentLocation(options) {
569
478
  const permissionStatus = await requestPermission({ name: "geolocation", access: "access" });
570
479
  if (permissionStatus === "denied") {
@@ -573,8 +482,6 @@ async function getCurrentLocation(options) {
573
482
  const position = await AppsInTossModule.getCurrentLocation(options);
574
483
  return position;
575
484
  }
576
-
577
- // src/native-modules/openCamera.ts
578
485
  async function openCamera(options) {
579
486
  const permissionStatus = await requestPermission({ name: "camera", access: "access" });
580
487
  if (permissionStatus === "denied") {
@@ -583,18 +490,36 @@ async function openCamera(options) {
583
490
  const photo = await AppsInTossModule.openCamera({ base64: false, maxWidth: 1024, ...options });
584
491
  return photo;
585
492
  }
586
-
587
- // src/native-modules/appLogin.ts
588
493
  async function appLogin() {
589
494
  return AppsInTossModule.appLogin({});
590
495
  }
591
-
592
- // src/native-modules/checkoutPayment.ts
593
- async function checkoutPayment(options) {
594
- return AppsInTossModule.checkoutPayment({ params: options });
496
+ function getTossAppVersion() {
497
+ return AppsInTossModule.tossAppVersion;
595
498
  }
596
-
597
- // src/native-modules/eventLog.ts
499
+ function getDeviceId() {
500
+ return AppsInTossModule.deviceId;
501
+ }
502
+ function getItem(key) {
503
+ return AppsInTossModule.getStorageItem({ key });
504
+ }
505
+ function setItem(key, value) {
506
+ return AppsInTossModule.setStorageItem({
507
+ key,
508
+ value
509
+ });
510
+ }
511
+ function removeItem(key) {
512
+ return AppsInTossModule.removeStorageItem({ key });
513
+ }
514
+ function clearItems() {
515
+ return AppsInTossModule.clearStorage({});
516
+ }
517
+ var Storage = {
518
+ getItem,
519
+ setItem,
520
+ removeItem,
521
+ clearItems
522
+ };
598
523
  function normalizeParams(params) {
599
524
  return Object.fromEntries(
600
525
  Object.entries(params).filter(([, value]) => value !== void 0).map(([key, value]) => [key, String(value)])
@@ -622,8 +547,6 @@ async function eventLog(params) {
622
547
  params: normalizeParams(params.params)
623
548
  });
624
549
  }
625
-
626
- // src/native-modules/getTossShareLink.ts
627
550
  async function getTossShareLink(path) {
628
551
  const { shareLink } = await AppsInTossModule.getTossShareLink({});
629
552
  const shareUrl = new URL(shareLink);
@@ -631,30 +554,753 @@ async function getTossShareLink(path) {
631
554
  shareUrl.searchParams.set("af_dp", path);
632
555
  return shareUrl.toString();
633
556
  }
557
+ async function setDeviceOrientation(options) {
558
+ const isSupported = isMinVersionSupported({
559
+ android: "5.215.0",
560
+ ios: "5.215.0"
561
+ });
562
+ if (!isSupported) {
563
+ return;
564
+ }
565
+ return AppsInTossModule.setDeviceOrientation(options);
566
+ }
567
+ async function saveBase64Data(params) {
568
+ const isSupported = isMinVersionSupported({
569
+ android: "5.218.0",
570
+ ios: "5.216.0"
571
+ });
572
+ if (!isSupported) {
573
+ console.warn("saveBase64Data is not supported in this app version");
574
+ return;
575
+ }
576
+ await AppsInTossModule.saveBase64Data(params);
577
+ }
578
+ var TossPay = {
579
+ checkoutPayment
580
+ };
581
+ var GoogleAdMob = {
582
+ loadAdMobInterstitialAd,
583
+ showAdMobInterstitialAd,
584
+ loadAdMobRewardedAd,
585
+ showAdMobRewardedAd
586
+ };
587
+ var BedrockModule = import_react_native8.NativeModules.BedrockModule;
588
+ async function closeView() {
589
+ return BedrockModule.closeView();
590
+ }
591
+ function getLocale() {
592
+ const locale = BedrockModule?.DeviceInfo?.locale ?? "ko-KR";
593
+ if (import_react_native9.Platform.OS === "android") {
594
+ return replaceUnderbarToHypen(locale);
595
+ }
596
+ return locale;
597
+ }
598
+ function replaceUnderbarToHypen(locale) {
599
+ return locale.replace(/_/g, "-");
600
+ }
601
+ function getSchemeUri() {
602
+ return BedrockModule.schemeUri;
603
+ }
604
+ function generateHapticFeedback(options) {
605
+ return BedrockModule.generateHapticFeedback(options);
606
+ }
607
+ async function share(message) {
608
+ BedrockModule.share(message);
609
+ }
610
+ function setSecureScreen(options) {
611
+ return BedrockModule.setSecureScreen(options);
612
+ }
613
+ async function setScreenAwakeMode(options) {
614
+ return BedrockModule.setScreenAwakeMode(options);
615
+ }
616
+ function getNetworkStatus() {
617
+ return BedrockModule.getNetworkStatus();
618
+ }
619
+ async function setIosSwipeGestureEnabled(options) {
620
+ if (BedrockModule.setIosSwipeGestureEnabled == null) {
621
+ return;
622
+ }
623
+ return BedrockModule.setIosSwipeGestureEnabled(options);
624
+ }
625
+ function openURL(url) {
626
+ return import_react_native10.Linking.openURL(url);
627
+ }
628
+ function getPlatformOS() {
629
+ return import_react_native11.Platform.OS;
630
+ }
631
+ var BedrockCoreModule = import_react_native12.NativeModules.BedrockCoreModule;
632
+ var Accuracy2 = /* @__PURE__ */ ((Accuracy3) => {
633
+ Accuracy3[Accuracy3["Lowest"] = 1] = "Lowest";
634
+ Accuracy3[Accuracy3["Low"] = 2] = "Low";
635
+ Accuracy3[Accuracy3["Balanced"] = 3] = "Balanced";
636
+ Accuracy3[Accuracy3["High"] = 4] = "High";
637
+ Accuracy3[Accuracy3["Highest"] = 5] = "Highest";
638
+ Accuracy3[Accuracy3["BestForNavigation"] = 6] = "BestForNavigation";
639
+ return Accuracy3;
640
+ })(Accuracy2 || {});
641
+ var TossCoreModule = import_react_native13.NativeModules.TossCoreModule;
642
+ function tossCoreEventLog(params) {
643
+ const supported = isMinVersionSupported({ ios: "5.210.0", android: "5.210.0" });
644
+ const isSandbox = getOperationalEnvironment() === "sandbox";
645
+ if (!supported || isSandbox) {
646
+ return;
647
+ }
648
+ TossCoreModule.eventLog({
649
+ params: {
650
+ log_name: params.log_name,
651
+ log_type: params.log_type,
652
+ params: params.params
653
+ }
654
+ });
655
+ }
656
+ var INTERNAL__module = {
657
+ tossCoreEventLog
658
+ };
659
+
660
+ // src/core/components/AppEvent.tsx
661
+ var import_react_native15 = require("@granite-js/react-native");
662
+ var import_react2 = require("react");
663
+
664
+ // src/env.ts
665
+ var env = {
666
+ getDeploymentId: () => __DEV__ ? "local" : global.__appsInToss?.deploymentId
667
+ };
668
+
669
+ // src/core/hooks/useReferrer.ts
670
+ var import_react_native14 = require("@granite-js/react-native");
671
+ var import_react = require("react");
672
+ function useReferrer() {
673
+ return (0, import_react.useMemo)(() => {
674
+ try {
675
+ return new URL((0, import_react_native14.getSchemeUri)()).searchParams.get("referrer");
676
+ } catch {
677
+ return null;
678
+ }
679
+ }, []);
680
+ }
681
+
682
+ // src/core/components/AppEvent.tsx
683
+ var ENTRY_APP_EVENT_SCHEMA_ID = 1562181;
684
+ function isPrivateScheme() {
685
+ try {
686
+ return new URL((0, import_react_native15.getSchemeUri)()).protocol === "intoss-private:";
687
+ } catch {
688
+ return false;
689
+ }
690
+ }
691
+ function EntryAppEvent() {
692
+ const referrer = useReferrer() ?? "";
693
+ (0, import_react2.useEffect)(() => {
694
+ INTERNAL__module.tossCoreEventLog({
695
+ log_name: "appsintoss_app_visit::impression__enter_appsintoss",
696
+ log_type: "info",
697
+ params: {
698
+ is_transform: true,
699
+ schema_id: ENTRY_APP_EVENT_SCHEMA_ID,
700
+ referrer,
701
+ deployment_id: env.getDeploymentId(),
702
+ app_name: import_react_native15.Granite.appName,
703
+ is_private: isPrivateScheme()
704
+ }
705
+ });
706
+ }, [referrer]);
707
+ return null;
708
+ }
709
+ function SystemAppEvent({ ...initialProps }) {
710
+ (0, import_react2.useEffect)(() => {
711
+ INTERNAL__module.tossCoreEventLog({
712
+ log_name: "AppsInTossInitialProps",
713
+ log_type: "debug",
714
+ params: {
715
+ ...initialProps,
716
+ schemeUri: (0, import_react_native15.getSchemeUri)(),
717
+ deployment_id: env.getDeploymentId(),
718
+ app_name: import_react_native15.Granite.appName,
719
+ is_private: isPrivateScheme()
720
+ }
721
+ });
722
+ }, [initialProps]);
723
+ return null;
724
+ }
725
+ var AppEvent = {
726
+ Entry: EntryAppEvent,
727
+ System: SystemAppEvent
728
+ };
729
+
730
+ // src/core/hooks/useAppsInTossBridge.ts
731
+ var import_react_native16 = require("@toss-design-system/react-native");
732
+ var import_react3 = require("react");
733
+
734
+ // src/core/utils/getAppsInTossGlobals.ts
735
+ function getAppsInTossGlobals() {
736
+ if (global.__appsInToss == null) {
737
+ throw new Error("invalid apps-in-toss globals");
738
+ }
739
+ return global.__appsInToss;
740
+ }
741
+
742
+ // src/core/utils/toIcon.ts
743
+ function toIcon(source) {
744
+ return source.startsWith("http") ? { source: { uri: source } } : { name: source };
745
+ }
746
+
747
+ // src/core/hooks/useAppsInTossBridge.ts
748
+ function useAppsInTossBridge() {
749
+ const controller = (0, import_react_native16.useBridge)();
750
+ const appsInTossGlobals2 = getAppsInTossGlobals();
751
+ (0, import_react3.useEffect)(() => {
752
+ const commonProps = {
753
+ serviceName: appsInTossGlobals2.brandDisplayName,
754
+ icon: toIcon(appsInTossGlobals2.brandIcon),
755
+ color: appsInTossGlobals2.brandPrimaryColor,
756
+ colorMode: appsInTossGlobals2.brandBridgeColorMode
757
+ };
758
+ controller.open({
759
+ ...commonProps,
760
+ onExited: () => {
761
+ appsInTossEvent.emit("entryMessageExited", void 0);
762
+ }
763
+ });
764
+ }, []);
765
+ }
766
+
767
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/async-bridges.ts
768
+ var async_bridges_exports = {};
769
+ __export(async_bridges_exports, {
770
+ appLogin: () => appLogin2,
771
+ checkoutPayment: () => checkoutPayment2,
772
+ closeView: () => closeView2,
773
+ eventLog: () => eventLog2,
774
+ fetchAlbumPhotos: () => fetchAlbumPhotos2,
775
+ fetchContacts: () => fetchContacts2,
776
+ generateHapticFeedback: () => generateHapticFeedback2,
777
+ getClipboardText: () => getClipboardText2,
778
+ getCurrentLocation: () => getCurrentLocation2,
779
+ getNetworkStatus: () => getNetworkStatus2,
780
+ getTossShareLink: () => getTossShareLink2,
781
+ openCamera: () => openCamera2,
782
+ openURL: () => openURL2,
783
+ saveBase64Data: () => saveBase64Data2,
784
+ setClipboardText: () => setClipboardText2,
785
+ setDeviceOrientation: () => setDeviceOrientation2,
786
+ setIosSwipeGestureEnabled: () => setIosSwipeGestureEnabled2,
787
+ setScreenAwakeMode: () => setScreenAwakeMode2,
788
+ setSecureScreen: () => setSecureScreen2,
789
+ share: () => share2
790
+ });
791
+
792
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/BedrockModule.ts
793
+ var import_react_native17 = require("react-native");
794
+ var BedrockModule2 = import_react_native17.NativeModules.BedrockModule;
795
+
796
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/closeView.ts
797
+ async function closeView2() {
798
+ return BedrockModule2.closeView();
799
+ }
800
+
801
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/generateHapticFeedback/index.ts
802
+ function generateHapticFeedback2(options) {
803
+ return BedrockModule2.generateHapticFeedback(options);
804
+ }
805
+
806
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/share.ts
807
+ async function share2(message) {
808
+ BedrockModule2.share(message);
809
+ }
810
+
811
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/setSecureScreen.ts
812
+ function setSecureScreen2(options) {
813
+ return BedrockModule2.setSecureScreen(options);
814
+ }
815
+
816
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/setScreenAwakeMode.ts
817
+ async function setScreenAwakeMode2(options) {
818
+ return BedrockModule2.setScreenAwakeMode(options);
819
+ }
820
+
821
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/getNetworkStatus/index.ts
822
+ function getNetworkStatus2() {
823
+ return BedrockModule2.getNetworkStatus();
824
+ }
825
+
826
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/setIosSwipeGestureEnabled.ts
827
+ async function setIosSwipeGestureEnabled2(options) {
828
+ if (BedrockModule2.setIosSwipeGestureEnabled == null) {
829
+ return;
830
+ }
831
+ return BedrockModule2.setIosSwipeGestureEnabled(options);
832
+ }
833
+
834
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/openURL.ts
835
+ var import_react_native18 = require("react-native");
836
+ function openURL2(url) {
837
+ return import_react_native18.Linking.openURL(url);
838
+ }
839
+
840
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/AppsInTossModule.ts
841
+ var import_react_native19 = require("react-native");
842
+ var Module2 = import_react_native19.TurboModuleRegistry.getEnforcing("AppsInTossModule");
843
+ var AppsInTossModuleInstance2 = Module2;
844
+ var AppsInTossModule2 = Module2;
845
+
846
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getPermission.ts
847
+ function getPermission2(permission) {
848
+ return AppsInTossModule2.getPermission(permission);
849
+ }
850
+
851
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/openPermissionDialog.ts
852
+ function openPermissionDialog2(permission) {
853
+ return AppsInTossModule2.openPermissionDialog(permission);
854
+ }
855
+
856
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/requestPermission.ts
857
+ async function requestPermission2(permission) {
858
+ const permissionStatus = await getPermission2(permission);
859
+ switch (permissionStatus) {
860
+ case "allowed":
861
+ case "denied":
862
+ return permissionStatus;
863
+ default:
864
+ return openPermissionDialog2(permission);
865
+ }
866
+ }
867
+
868
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/setClipboardText.ts
869
+ async function setClipboardText2(text) {
870
+ const permissionStatus = await requestPermission2({ name: "clipboard", access: "write" });
871
+ if (permissionStatus === "denied") {
872
+ throw new Error("\uD074\uB9BD\uBCF4\uB4DC \uC4F0\uAE30 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
873
+ }
874
+ return AppsInTossModule2.setClipboardText({ text });
875
+ }
876
+
877
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getClipboardText.ts
878
+ async function getClipboardText2() {
879
+ const permissionStatus = await requestPermission2({ name: "clipboard", access: "read" });
880
+ if (permissionStatus === "denied") {
881
+ throw new Error("\uD074\uB9BD\uBCF4\uB4DC \uC77D\uAE30 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
882
+ }
883
+ return AppsInTossModule2.getClipboardText({});
884
+ }
885
+
886
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/fetchContacts.ts
887
+ async function fetchContacts2(options) {
888
+ const permissionStatus = await requestPermission2({ name: "contacts", access: "read" });
889
+ if (permissionStatus === "denied") {
890
+ throw new Error("\uC5F0\uB77D\uCC98 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
891
+ }
892
+ const contacts = await AppsInTossModule2.fetchContacts(options);
893
+ return {
894
+ result: contacts.result,
895
+ nextOffset: contacts.nextOffset ?? null,
896
+ done: contacts.done
897
+ };
898
+ }
899
+
900
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/fetchAlbumPhotos.ts
901
+ var DEFAULT_MAX_COUNT2 = 10;
902
+ var DEFAULT_MAX_WIDTH2 = 1024;
903
+ async function fetchAlbumPhotos2(options) {
904
+ const permissionStatus = await requestPermission2({ name: "photos", access: "read" });
905
+ if (permissionStatus === "denied") {
906
+ throw new Error("\uC0AC\uC9C4\uCCA9 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
907
+ }
908
+ const albumPhotos = await AppsInTossModule2.fetchAlbumPhotos({
909
+ ...options,
910
+ maxCount: options.maxCount ?? DEFAULT_MAX_COUNT2,
911
+ maxWidth: options.maxWidth ?? DEFAULT_MAX_WIDTH2
912
+ });
913
+ return albumPhotos;
914
+ }
915
+
916
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getCurrentLocation.ts
917
+ async function getCurrentLocation2(options) {
918
+ const permissionStatus = await requestPermission2({ name: "geolocation", access: "access" });
919
+ if (permissionStatus === "denied") {
920
+ throw new Error("\uC704\uCE58 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
921
+ }
922
+ const position = await AppsInTossModule2.getCurrentLocation(options);
923
+ return position;
924
+ }
925
+
926
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/openCamera.ts
927
+ async function openCamera2(options) {
928
+ const permissionStatus = await requestPermission2({ name: "camera", access: "access" });
929
+ if (permissionStatus === "denied") {
930
+ throw new Error("\uCE74\uBA54\uB77C \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
931
+ }
932
+ const photo = await AppsInTossModule2.openCamera({ base64: false, maxWidth: 1024, ...options });
933
+ return photo;
934
+ }
935
+
936
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/appLogin.ts
937
+ async function appLogin2() {
938
+ return AppsInTossModule2.appLogin({});
939
+ }
940
+
941
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/isMinVersionSupported.ts
942
+ var import_react_native20 = require("react-native");
943
+
944
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/utils/compareVersion.ts
945
+ var SEMVER_REGEX2 = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\\-]+(?:\.[\da-z\\-]+)*))?(?:\+[\da-z\\-]+(?:\.[\da-z\\-]+)*)?)?)?$/i;
946
+ var isWildcard2 = (val) => ["*", "x", "X"].includes(val);
947
+ var tryParse2 = (val) => {
948
+ const num = parseInt(val, 10);
949
+ return isNaN(num) ? val : num;
950
+ };
951
+ var coerceTypes2 = (a, b) => {
952
+ return typeof a === typeof b ? [a, b] : [String(a), String(b)];
953
+ };
954
+ var compareValues2 = (a, b) => {
955
+ if (isWildcard2(a) || isWildcard2(b)) {
956
+ return 0;
957
+ }
958
+ const [aVal, bVal] = coerceTypes2(tryParse2(a), tryParse2(b));
959
+ if (aVal > bVal) {
960
+ return 1;
961
+ }
962
+ if (aVal < bVal) {
963
+ return -1;
964
+ }
965
+ return 0;
966
+ };
967
+ var parseVersion2 = (version) => {
968
+ if (typeof version !== "string") {
969
+ throw new TypeError("Invalid argument: expected a string");
970
+ }
971
+ const match = version.match(SEMVER_REGEX2);
972
+ if (!match) {
973
+ throw new Error(`Invalid semver: '${version}'`);
974
+ }
975
+ const [, major, minor, patch, build, preRelease] = match;
976
+ return [major, minor, patch, build, preRelease];
977
+ };
978
+ var compareSegments2 = (a, b) => {
979
+ const maxLength = Math.max(a.length, b.length);
980
+ for (let i = 0; i < maxLength; i++) {
981
+ const segA = a[i] ?? "0";
982
+ const segB = b[i] ?? "0";
983
+ const result = compareValues2(segA, segB);
984
+ if (result !== 0) {
985
+ return result;
986
+ }
987
+ }
988
+ return 0;
989
+ };
990
+ var compareVersions2 = (v1, v2) => {
991
+ const seg1 = parseVersion2(v1);
992
+ const seg2 = parseVersion2(v2);
993
+ const preRelease1 = seg1.pop();
994
+ const preRelease2 = seg2.pop();
995
+ const mainCompare = compareSegments2(seg1, seg2);
996
+ if (mainCompare !== 0) {
997
+ return mainCompare;
998
+ }
999
+ if (preRelease1 && preRelease2) {
1000
+ return compareSegments2(preRelease1.split("."), preRelease2.split("."));
1001
+ }
1002
+ if (preRelease1) {
1003
+ return -1;
1004
+ }
1005
+ if (preRelease2) {
1006
+ return 1;
1007
+ }
1008
+ return 0;
1009
+ };
1010
+
1011
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/isMinVersionSupported.ts
1012
+ function isMinVersionSupported2(minVersions) {
1013
+ const operationalEnvironment2 = AppsInTossModule2.operationalEnvironment;
1014
+ if (operationalEnvironment2 === "sandbox") {
1015
+ return true;
1016
+ }
1017
+ const currentVersion = AppsInTossModule2.tossAppVersion;
1018
+ const isIOS = import_react_native20.Platform.OS === "ios";
1019
+ const minVersion = isIOS ? minVersions.ios : minVersions.android;
1020
+ if (minVersion === void 0) {
1021
+ return false;
1022
+ }
1023
+ if (minVersion === "always") {
1024
+ return true;
1025
+ }
1026
+ if (minVersion === "never") {
1027
+ return false;
1028
+ }
1029
+ return compareVersions2(currentVersion, minVersion) >= 0;
1030
+ }
1031
+
1032
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/eventLog.ts
1033
+ function normalizeParams2(params) {
1034
+ return Object.fromEntries(
1035
+ Object.entries(params).filter(([, value]) => value !== void 0).map(([key, value]) => [key, String(value)])
1036
+ );
1037
+ }
1038
+ async function eventLog2(params) {
1039
+ if (AppsInTossModule2.operationalEnvironment === "sandbox") {
1040
+ console.log("[eventLogDebug]", {
1041
+ log_name: params.log_name,
1042
+ log_type: params.log_type,
1043
+ params: normalizeParams2(params.params)
1044
+ });
1045
+ return;
1046
+ }
1047
+ const isSupported = isMinVersionSupported2({
1048
+ android: "5.208.0",
1049
+ ios: "5.208.0"
1050
+ });
1051
+ if (!isSupported) {
1052
+ return;
1053
+ }
1054
+ return AppsInTossModule2.eventLog({
1055
+ log_name: params.log_name,
1056
+ log_type: params.log_type,
1057
+ params: normalizeParams2(params.params)
1058
+ });
1059
+ }
1060
+
1061
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getTossShareLink.ts
1062
+ async function getTossShareLink2(path) {
1063
+ const { shareLink } = await AppsInTossModule2.getTossShareLink({});
1064
+ const shareUrl = new URL(shareLink);
1065
+ shareUrl.searchParams.set("deep_link_value", path);
1066
+ shareUrl.searchParams.set("af_dp", path);
1067
+ return shareUrl.toString();
1068
+ }
1069
+
1070
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/setDeviceOrientation.ts
1071
+ async function setDeviceOrientation2(options) {
1072
+ const isSupported = isMinVersionSupported2({
1073
+ android: "5.215.0",
1074
+ ios: "5.215.0"
1075
+ });
1076
+ if (!isSupported) {
1077
+ return;
1078
+ }
1079
+ return AppsInTossModule2.setDeviceOrientation(options);
1080
+ }
1081
+
1082
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/checkoutPayment.ts
1083
+ async function checkoutPayment2(options) {
1084
+ return AppsInTossModule2.checkoutPayment({ params: options });
1085
+ }
1086
+
1087
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/saveBase64Data.ts
1088
+ async function saveBase64Data2(params) {
1089
+ const isSupported = isMinVersionSupported2({
1090
+ android: "5.218.0",
1091
+ ios: "5.216.0"
1092
+ });
1093
+ if (!isSupported) {
1094
+ console.warn("saveBase64Data is not supported in this app version");
1095
+ return;
1096
+ }
1097
+ await AppsInTossModule2.saveBase64Data(params);
1098
+ }
1099
+
1100
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/constant-bridges.ts
1101
+ var constant_bridges_exports = {};
1102
+ __export(constant_bridges_exports, {
1103
+ getDeviceId: () => getDeviceId2,
1104
+ getLocale: () => getLocale2,
1105
+ getOperationalEnvironment: () => getOperationalEnvironment2,
1106
+ getPlatformOS: () => getPlatformOS2,
1107
+ getSchemeUri: () => getSchemeUri4,
1108
+ getTossAppVersion: () => getTossAppVersion2
1109
+ });
1110
+
1111
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/getLocale.ts
1112
+ var import_react_native21 = require("react-native");
1113
+ function getLocale2() {
1114
+ const locale = BedrockModule2?.DeviceInfo?.locale ?? "ko-KR";
1115
+ if (import_react_native21.Platform.OS === "android") {
1116
+ return replaceUnderbarToHypen2(locale);
1117
+ }
1118
+ return locale;
1119
+ }
1120
+ function replaceUnderbarToHypen2(locale) {
1121
+ return locale.replace(/_/g, "-");
1122
+ }
1123
+
1124
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/getSchemeUri.ts
1125
+ function getSchemeUri4() {
1126
+ return BedrockModule2.schemeUri;
1127
+ }
1128
+
1129
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/BedrockModule/native-modules/natives/getPlatformOS.ts
1130
+ var import_react_native22 = require("react-native");
1131
+ function getPlatformOS2() {
1132
+ return import_react_native22.Platform.OS;
1133
+ }
1134
+
1135
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getOperationalEnvironment.ts
1136
+ function getOperationalEnvironment2() {
1137
+ return AppsInTossModule2.operationalEnvironment;
1138
+ }
1139
+
1140
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getTossAppVersion.ts
1141
+ function getTossAppVersion2() {
1142
+ return AppsInTossModule2.tossAppVersion;
1143
+ }
1144
+
1145
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-modules/getDeviceId.ts
1146
+ function getDeviceId2() {
1147
+ return AppsInTossModule2.deviceId;
1148
+ }
1149
+
1150
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/event-bridges.ts
1151
+ var event_bridges_exports = {};
1152
+ __export(event_bridges_exports, {
1153
+ startUpdateLocation: () => startUpdateLocation2
1154
+ });
1155
+
1156
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/appsInTossEvent.ts
1157
+ var import_react_native27 = require("@granite-js/react-native");
1158
+
1159
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/event-plugins/EntryMessageExitedEvent.ts
1160
+ var import_react_native23 = require("@granite-js/react-native");
1161
+ var EntryMessageExitedEvent2 = class extends import_react_native23.GraniteEventDefinition {
1162
+ name = "entryMessageExited";
1163
+ remove() {
1164
+ }
1165
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1166
+ listener(_) {
1167
+ }
1168
+ };
1169
+
1170
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/event-plugins/UpdateLocationEvent.ts
1171
+ var import_react_native25 = require("@granite-js/react-native");
1172
+
1173
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/nativeEventEmitter.ts
1174
+ var import_react_native24 = require("react-native");
1175
+ var nativeEventEmitter2 = new import_react_native24.NativeEventEmitter(AppsInTossModuleInstance2);
1176
+
1177
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/event-plugins/UpdateLocationEvent.ts
1178
+ var UpdateLocationEvent2 = class extends import_react_native25.GraniteEventDefinition {
1179
+ name = "updateLocationEvent";
1180
+ subscriptionCount = 0;
1181
+ ref = {
1182
+ remove: () => {
1183
+ }
1184
+ };
1185
+ remove() {
1186
+ if (--this.subscriptionCount === 0) {
1187
+ AppsInTossModuleInstance2.stopUpdateLocation({});
1188
+ }
1189
+ this.ref.remove();
1190
+ }
1191
+ listener(options, onEvent, onError) {
1192
+ requestPermission2({ name: "geolocation", access: "access" }).then((permissionStatus) => {
1193
+ if (permissionStatus === "denied") {
1194
+ onError(new Error("\uC704\uCE58 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694."));
1195
+ return;
1196
+ }
1197
+ void AppsInTossModuleInstance2.startUpdateLocation(options).catch(onError);
1198
+ const subscription = nativeEventEmitter2.addListener("updateLocation", onEvent);
1199
+ this.ref = {
1200
+ remove: () => subscription?.remove()
1201
+ };
1202
+ this.subscriptionCount++;
1203
+ }).catch(onError);
1204
+ }
1205
+ };
1206
+
1207
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/internal/AppBridgeCallbackEvent.ts
1208
+ var import_react_native26 = require("@granite-js/react-native");
1209
+
1210
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/utils/generateUUID.ts
1211
+ function generateUUID2(placeholder) {
1212
+ return placeholder ? (placeholder ^ Math.random() * 16 >> placeholder / 4).toString(16) : (String(1e7) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, generateUUID2);
1213
+ }
634
1214
 
635
- // src/native-modules/setDeviceOrientation.ts
636
- async function setDeviceOrientation(options) {
637
- const isSupported = isMinVersionSupported({
638
- android: "5.215.0",
639
- ios: "5.215.0"
1215
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/internal/appBridge.ts
1216
+ var INTERNAL__callbacks2 = /* @__PURE__ */ new Map();
1217
+ function invokeAppBridgeCallback2(id, ...args) {
1218
+ const callback = INTERNAL__callbacks2.get(id);
1219
+ callback?.call(null, ...args);
1220
+ return Boolean(callback);
1221
+ }
1222
+ function invokeAppBridgeMethod2(methodName, params, callbacks) {
1223
+ const { onSuccess, onError, ...appBridgeCallbacks } = callbacks;
1224
+ const { callbackMap, unregisterAll } = registerCallbacks2(appBridgeCallbacks);
1225
+ const promise = AppsInTossModuleInstance2[methodName]({
1226
+ params,
1227
+ callbacks: callbackMap
640
1228
  });
641
- if (!isSupported) {
642
- return;
1229
+ void promise.then(onSuccess).catch(onError);
1230
+ return unregisterAll;
1231
+ }
1232
+ function registerCallbacks2(callbacks) {
1233
+ const callbackMap = {};
1234
+ for (const [callbackName, callback] of Object.entries(callbacks)) {
1235
+ const id = registerCallback2(callback, callbackName);
1236
+ callbackMap[callbackName] = id;
643
1237
  }
644
- return AppsInTossModule.setDeviceOrientation(options);
1238
+ const unregisterAll = () => {
1239
+ Object.values(callbackMap).forEach(unregisterCallback2);
1240
+ };
1241
+ return { callbackMap, unregisterAll };
1242
+ }
1243
+ function registerCallback2(callback, name = "unnamed") {
1244
+ const uniqueId = generateUUID2();
1245
+ const callbackId = `${uniqueId}__${name}`;
1246
+ INTERNAL__callbacks2.set(callbackId, callback);
1247
+ return callbackId;
645
1248
  }
1249
+ function unregisterCallback2(id) {
1250
+ INTERNAL__callbacks2.delete(id);
1251
+ }
1252
+ function getCallbackIds2() {
1253
+ return Array.from(INTERNAL__callbacks2.keys());
1254
+ }
1255
+ var INTERNAL__appBridgeHandler2 = {
1256
+ invokeAppBridgeCallback: invokeAppBridgeCallback2,
1257
+ invokeAppBridgeMethod: invokeAppBridgeMethod2,
1258
+ registerCallback: registerCallback2,
1259
+ unregisterCallback: unregisterCallback2,
1260
+ getCallbackIds: getCallbackIds2
1261
+ };
646
1262
 
647
- // src/native-modules/saveBase64Data.ts
648
- async function saveBase64Data(params) {
649
- const isSupported = isMinVersionSupported({
650
- android: "5.218.0",
651
- ios: "5.216.0"
652
- });
653
- if (!isSupported) {
654
- console.warn("saveBase64Data is not supported in this app version");
655
- return;
1263
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/internal/AppBridgeCallbackEvent.ts
1264
+ var UNSAFE__nativeEventEmitter2 = nativeEventEmitter2;
1265
+ var AppBridgeCallbackEvent2 = class _AppBridgeCallbackEvent2 extends import_react_native26.GraniteEventDefinition {
1266
+ static INTERNAL__appBridgeSubscription;
1267
+ name = "appBridgeCallbackEvent";
1268
+ constructor() {
1269
+ super();
1270
+ this.registerAppBridgeCallbackEventListener();
656
1271
  }
657
- await AppsInTossModule.saveBase64Data(params);
1272
+ remove() {
1273
+ }
1274
+ listener() {
1275
+ }
1276
+ registerAppBridgeCallbackEventListener() {
1277
+ if (_AppBridgeCallbackEvent2.INTERNAL__appBridgeSubscription != null) {
1278
+ return;
1279
+ }
1280
+ _AppBridgeCallbackEvent2.INTERNAL__appBridgeSubscription = UNSAFE__nativeEventEmitter2.addListener(
1281
+ "appBridgeCallback",
1282
+ this.ensureInvokeAppBridgeCallback
1283
+ );
1284
+ }
1285
+ ensureInvokeAppBridgeCallback(result) {
1286
+ if (typeof result === "object" && typeof result.name === "string") {
1287
+ INTERNAL__appBridgeHandler2.invokeAppBridgeCallback(result.name, result.params);
1288
+ } else {
1289
+ console.warn("Invalid app bridge callback result:", result);
1290
+ }
1291
+ }
1292
+ };
1293
+
1294
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/appsInTossEvent.ts
1295
+ var appsInTossEvent2 = new import_react_native27.GraniteEvent([
1296
+ new AppBridgeCallbackEvent2(),
1297
+ new UpdateLocationEvent2(),
1298
+ new EntryMessageExitedEvent2()
1299
+ ]);
1300
+
1301
+ // ../../.yarn/__virtual__/@apps-in-toss-native-modules-virtual-79d3aa8191/1/apps-in-toss-packages/native-modules/src/AppsInTossModule/native-event-emitter/startUpdateLocation.ts
1302
+ function startUpdateLocation2(eventParams) {
1303
+ return appsInTossEvent2.addEventListener("updateLocationEvent", eventParams);
658
1304
  }
659
1305
 
660
1306
  // src/core/registerApp.tsx
@@ -663,7 +1309,7 @@ function AppsInTossContainer(Container, { children, ...initialProps }) {
663
1309
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
664
1310
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppEvent.Entry, {}),
665
1311
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppEvent.System, { ...initialProps }),
666
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Container, { ...initialProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native6.TDSProvider, { colorPreference: "light", token: { color: { primary: getAppsInTossGlobals().brandPrimaryColor } }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TDSContainer, { ...initialProps, children }) }) })
1312
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Container, { ...initialProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native29.TDSProvider, { colorPreference: "light", token: { color: { primary: getAppsInTossGlobals().brandPrimaryColor } }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TDSContainer, { ...initialProps, children }) }) })
667
1313
  ] });
668
1314
  }
669
1315
  function TDSContainer({ children }) {
@@ -672,10 +1318,10 @@ function TDSContainer({ children }) {
672
1318
  }
673
1319
  function registerApp(container, { context, analytics }) {
674
1320
  import_analytics.Analytics.init({
675
- logger: (params) => void eventLog(params),
1321
+ logger: (params) => void eventLog2(params),
676
1322
  debug: analytics?.debug ?? __DEV__
677
1323
  });
678
- return import_react_native_bedrock8.Bedrock.registerApp(AppsInTossContainer.bind(null, container), {
1324
+ return import_react_native28.Granite.registerApp(AppsInTossContainer.bind(null, container), {
679
1325
  appName: getAppName(),
680
1326
  context,
681
1327
  router: {
@@ -688,7 +1334,7 @@ function registerApp(container, { context, analytics }) {
688
1334
  }
689
1335
  function getAppName() {
690
1336
  try {
691
- return global.__bedrock.app.name;
1337
+ return global.__granite.app.name;
692
1338
  } catch (error) {
693
1339
  console.error("unexpected error occurred while getting app name");
694
1340
  throw error;
@@ -700,217 +1346,36 @@ var AppsInToss = {
700
1346
  registerApp
701
1347
  };
702
1348
 
703
- // src/native-event-emitter/startUpdateLocation.ts
704
- function startUpdateLocation(eventParams) {
705
- return appsInTossEvent.addEventListener("updateLocationEvent", eventParams);
706
- }
707
-
708
- // ../../.yarn/cache/es-toolkit-npm-1.34.1-4cd6371dcb-aab6d07be3.zip/node_modules/es-toolkit/dist/function/noop.mjs
709
- function noop() {
710
- }
711
-
712
- // src/native-modules/ads/googleAdMob.ts
713
- function loadAdMobInterstitialAd(params) {
714
- if (!loadAdMobInterstitialAd.isSupported()) {
715
- params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
716
- return noop;
717
- }
718
- const { onEvent, onError, options } = params;
719
- const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("loadAdMobInterstitialAd", options, {
720
- onAdClicked: () => {
721
- onEvent({ type: "clicked" });
722
- },
723
- onAdDismissed: () => {
724
- onEvent({ type: "dismissed" });
725
- },
726
- onAdFailedToShow: () => {
727
- onEvent({ type: "failedToShow" });
728
- },
729
- onAdImpression: () => {
730
- onEvent({ type: "impression" });
731
- },
732
- onAdShow: () => {
733
- onEvent({ type: "show" });
734
- },
735
- onSuccess: (result) => onEvent({ type: "loaded", data: result }),
736
- onError
737
- });
738
- return unregisterCallbacks;
739
- }
740
- function showAdMobInterstitialAd(params) {
741
- if (!showAdMobInterstitialAd.isSupported()) {
742
- params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
743
- return noop;
744
- }
745
- const { onEvent, onError, options } = params;
746
- const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("showAdMobInterstitialAd", options, {
747
- onSuccess: () => onEvent({ type: "requested" }),
748
- onError
749
- });
750
- return unregisterCallbacks;
751
- }
752
- function loadAdMobRewardedAd(params) {
753
- if (!loadAdMobRewardedAd.isSupported()) {
754
- params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
755
- return noop;
756
- }
757
- const { onEvent, onError, options } = params;
758
- const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("loadAdMobRewardedAd", options, {
759
- onAdClicked: () => {
760
- onEvent({ type: "clicked" });
761
- },
762
- onAdDismissed: () => {
763
- onEvent({ type: "dismissed" });
764
- },
765
- onAdFailedToShow: () => {
766
- onEvent({ type: "failedToShow" });
767
- },
768
- onAdImpression: () => {
769
- onEvent({ type: "impression" });
770
- },
771
- onAdShow: () => {
772
- onEvent({ type: "show" });
773
- },
774
- onUserEarnedReward: () => {
775
- onEvent({ type: "userEarnedReward" });
776
- },
777
- onSuccess: (result) => onEvent({ type: "loaded", data: result }),
778
- onError
779
- });
780
- return unregisterCallbacks;
781
- }
782
- function showAdMobRewardedAd(params) {
783
- if (!showAdMobRewardedAd.isSupported()) {
784
- params.onError(new Error(UNSUPPORTED_ERROR_MESSAGE));
785
- return noop;
786
- }
787
- const { onEvent, onError, options } = params;
788
- const unregisterCallbacks = INTERNAL__appBridgeHandler.invokeAppBridgeMethod("showAdMobRewardedAd", options, {
789
- onSuccess: () => onEvent({ type: "requested" }),
790
- onError
791
- });
792
- return unregisterCallbacks;
793
- }
794
- var ANDROID_GOOGLE_AD_MOB_SUPPORTED_VERSION = "5.209.0";
795
- var IOS_GOOGLE_AD_MOB_SUPPORTED_VERSION = "5.209.0";
796
- var UNSUPPORTED_ERROR_MESSAGE = "This feature is not supported in the current environment";
797
- var ENVIRONMENT = getOperationalEnvironment();
798
- function createIsSupported() {
799
- return () => {
800
- if (ENVIRONMENT !== "toss") {
801
- return false;
802
- }
803
- return isMinVersionSupported({
804
- android: ANDROID_GOOGLE_AD_MOB_SUPPORTED_VERSION,
805
- ios: IOS_GOOGLE_AD_MOB_SUPPORTED_VERSION
806
- });
807
- };
808
- }
809
- loadAdMobInterstitialAd.isSupported = createIsSupported();
810
- loadAdMobRewardedAd.isSupported = createIsSupported();
811
- showAdMobInterstitialAd.isSupported = createIsSupported();
812
- showAdMobRewardedAd.isSupported = createIsSupported();
813
-
814
- // src/native-modules/getTossAppVersion.ts
815
- function getTossAppVersion() {
816
- return AppsInTossModule.tossAppVersion;
817
- }
818
-
819
- // src/native-modules/getDeviceId.ts
820
- function getDeviceId() {
821
- return AppsInTossModule.deviceId;
822
- }
823
-
824
- // src/native-modules/storage.ts
825
- function getItem(key) {
826
- return AppsInTossModule.getStorageItem({ key });
827
- }
828
- function setItem(key, value) {
829
- return AppsInTossModule.setStorageItem({
830
- key,
831
- value
832
- });
833
- }
834
- function removeItem(key) {
835
- return AppsInTossModule.removeStorageItem({ key });
836
- }
837
- function clearItems() {
838
- return AppsInTossModule.clearStorage({});
839
- }
840
- var Storage = {
841
- getItem,
842
- setItem,
843
- removeItem,
844
- clearItems
845
- };
846
-
847
- // src/native-modules/iap.ts
848
- async function createOneTimePurchaseOrder(params) {
849
- const isSupported = isMinVersionSupported({
850
- android: "5.219.0",
851
- ios: "5.219.0"
852
- });
853
- if (!isSupported) {
854
- return;
855
- }
856
- return AppsInTossModule.iapCreateOneTimePurchaseOrder(params);
857
- }
858
- async function getProductItemList() {
859
- const isSupported = isMinVersionSupported({
860
- android: "5.219.0",
861
- ios: "5.219.0"
862
- });
863
- if (!isSupported) {
864
- return;
865
- }
866
- return AppsInTossModule.iapGetProductItemList({});
867
- }
868
- var IAP = {
869
- createOneTimePurchaseOrder,
870
- getProductItemList
871
- };
872
-
873
- // src/native-modules/index.ts
874
- var TossPay = {
875
- checkoutPayment
876
- };
877
- var GoogleAdMob = {
878
- loadAdMobInterstitialAd,
879
- showAdMobInterstitialAd,
880
- loadAdMobRewardedAd,
881
- showAdMobRewardedAd
882
- };
883
-
884
1349
  // src/components/WebView.tsx
885
- var import_react_native14 = require("@toss-design-system/react-native");
1350
+ var import_react_native39 = require("@granite-js/react-native");
1351
+ var graniteAsyncBridges = __toESM(require("@granite-js/react-native/async-bridges"), 1);
1352
+ var graniteConstantBridges = __toESM(require("@granite-js/react-native/constant-bridges"), 1);
1353
+ var import_react_native40 = require("@toss-design-system/react-native");
886
1354
  var import_private = require("@toss-design-system/react-native/private");
887
1355
  var import_react6 = require("react");
888
- var import_react_native_bedrock11 = require("react-native-bedrock");
889
- var bedrockAsyncBridges = __toESM(require("react-native-bedrock/async-bridges"), 1);
890
- var bedrockConstantBridges = __toESM(require("react-native-bedrock/constant-bridges"), 1);
891
1356
 
892
1357
  // src/components/GameWebView.tsx
893
- var import_react_native_webview = require("@react-native-bedrock/native/react-native-webview");
894
- var import_react_native12 = require("@toss-design-system/react-native");
1358
+ var import_react_native_webview = require("@granite-js/native/react-native-webview");
1359
+ var import_react_native35 = require("@granite-js/react-native");
1360
+ var import_react_native36 = require("@toss-design-system/react-native");
895
1361
  var import_es_hangul = require("es-hangul");
896
1362
  var import_react4 = require("react");
897
- var import_react_native13 = require("react-native");
898
- var import_react_native_bedrock9 = require("react-native-bedrock");
1363
+ var import_react_native37 = require("react-native");
899
1364
 
900
1365
  // src/components/GameWebViewNavigationBar/GameNavigationBar.tsx
901
- var import_react_native_svg = require("@react-native-bedrock/native/react-native-svg");
902
- var import_react_native10 = require("@toss-design-system/react-native");
903
- var import_react_native11 = require("react-native");
1366
+ var import_react_native_svg = require("@granite-js/native/react-native-svg");
1367
+ var import_react_native33 = require("@toss-design-system/react-native");
1368
+ var import_react_native34 = require("react-native");
904
1369
 
905
1370
  // src/components/GameWebViewNavigationBar/HeaderRight.tsx
906
- var import_react_native8 = require("react-native");
1371
+ var import_react_native31 = require("react-native");
907
1372
 
908
1373
  // src/components/GameWebViewNavigationBar/byPlatform.ts
909
- var import_react_native7 = require("react-native");
1374
+ var import_react_native30 = require("react-native");
910
1375
  function byPlatform({
911
1376
  ...props
912
1377
  }) {
913
- return (props[import_react_native7.Platform.OS] ?? props.fallback)();
1378
+ return (props[import_react_native30.Platform.OS] ?? props.fallback)();
914
1379
  }
915
1380
 
916
1381
  // src/components/GameWebViewNavigationBar/constants.ts
@@ -920,10 +1385,10 @@ var IOS_DEFAULT_MARGIN = 20;
920
1385
  // src/components/GameWebViewNavigationBar/HeaderRight.tsx
921
1386
  var import_jsx_runtime2 = require("react/jsx-runtime");
922
1387
  function IOSHeaderRight(props) {
923
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native8.View, { style: styles.ios, ...props });
1388
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native31.View, { style: styles.ios, ...props });
924
1389
  }
925
1390
  function AndroidHeaderRight(props) {
926
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native8.View, { style: styles.android, ...props });
1391
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native31.View, { style: styles.android, ...props });
927
1392
  }
928
1393
  function HeaderRight(props) {
929
1394
  return byPlatform({
@@ -932,7 +1397,7 @@ function HeaderRight(props) {
932
1397
  fallback: () => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IOSHeaderRight, { ...props })
933
1398
  });
934
1399
  }
935
- var styles = import_react_native8.StyleSheet.create({
1400
+ var styles = import_react_native31.StyleSheet.create({
936
1401
  ios: {
937
1402
  marginRight: -IOS_DEFAULT_MARGIN + RIGHT_MARGIN,
938
1403
  flexDirection: "row"
@@ -943,11 +1408,11 @@ var styles = import_react_native8.StyleSheet.create({
943
1408
  });
944
1409
 
945
1410
  // src/components/GameWebViewNavigationBar/useSafeAreaTop.ts
946
- var import_react_native_safe_area_context = require("@react-native-bedrock/native/react-native-safe-area-context");
947
- var import_react_native9 = require("react-native");
1411
+ var import_react_native_safe_area_context = require("@granite-js/native/react-native-safe-area-context");
1412
+ var import_react_native32 = require("react-native");
948
1413
  function useSafeAreaTop() {
949
1414
  const safeAreaInsets = (0, import_react_native_safe_area_context.useSafeAreaInsets)();
950
- const hasDynamicIsland = import_react_native9.Platform.OS === "ios" && safeAreaInsets.top > 50;
1415
+ const hasDynamicIsland = import_react_native32.Platform.OS === "ios" && safeAreaInsets.top > 50;
951
1416
  const safeAreaTop = hasDynamicIsland ? safeAreaInsets.top - 5 : safeAreaInsets.top;
952
1417
  return safeAreaTop;
953
1418
  }
@@ -958,31 +1423,31 @@ var originXML = '<svg fill="none" height="30" viewBox="0 0 30 30" width="30" xml
958
1423
  function GameNavigationBar({ onClose }) {
959
1424
  const safeAreaTop = useSafeAreaTop();
960
1425
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
961
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native10.PageNavbar, { preference: { type: "none" } }),
1426
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native33.PageNavbar, { preference: { type: "none" } }),
962
1427
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
963
- import_react_native11.View,
1428
+ import_react_native34.View,
964
1429
  {
965
1430
  style: {
966
1431
  width: "100%",
967
- height: import_react_native11.Platform.OS === "ios" ? 44 : 54,
1432
+ height: import_react_native34.Platform.OS === "ios" ? 44 : 54,
968
1433
  flexDirection: "row",
969
1434
  alignItems: "center",
970
1435
  justifyContent: "flex-end",
971
1436
  position: "absolute",
972
1437
  zIndex: 9999,
973
1438
  marginTop: safeAreaTop,
974
- paddingRight: import_react_native11.Platform.OS === "ios" ? 10 : 8
1439
+ paddingRight: import_react_native34.Platform.OS === "ios" ? 10 : 8
975
1440
  },
976
1441
  pointerEvents: "box-none",
977
1442
  children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(HeaderRight, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
978
- import_react_native11.TouchableOpacity,
1443
+ import_react_native34.TouchableOpacity,
979
1444
  {
980
1445
  hitSlop: { left: 8, right: 8 },
981
1446
  accessibilityRole: "button",
982
1447
  accessible: true,
983
1448
  accessibilityLabel: "\uAC8C\uC784\uC885\uB8CC",
984
1449
  style: {
985
- padding: import_react_native11.Platform.OS === "ios" ? 7 : 9
1450
+ padding: import_react_native34.Platform.OS === "ios" ? 7 : 9
986
1451
  },
987
1452
  onPress: onClose,
988
1453
  children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native_svg.SvgXml, { xml: originXML, width: 30, height: 30 })
@@ -996,7 +1461,7 @@ function GameNavigationBar({ onClose }) {
996
1461
  // src/components/GameWebView.tsx
997
1462
  var import_jsx_runtime4 = require("react/jsx-runtime");
998
1463
  var GameWebView = (0, import_react4.forwardRef)(function GameWebView2(props, ref) {
999
- const { openConfirm } = (0, import_react_native12.useDialog)();
1464
+ const { openConfirm } = (0, import_react_native36.useDialog)();
1000
1465
  const { brandDisplayName } = getAppsInTossGlobals();
1001
1466
  const handleClose = (0, import_react4.useCallback)(async () => {
1002
1467
  const isConfirmed = await openConfirm({
@@ -1006,14 +1471,14 @@ var GameWebView = (0, import_react4.forwardRef)(function GameWebView2(props, ref
1006
1471
  closeOnDimmerClick: true
1007
1472
  });
1008
1473
  if (isConfirmed) {
1009
- (0, import_react_native_bedrock9.closeView)();
1474
+ (0, import_react_native35.closeView)();
1010
1475
  }
1011
1476
  }, [brandDisplayName, openConfirm]);
1012
1477
  (0, import_react4.useEffect)(() => {
1013
- if (import_react_native13.Platform.OS === "ios") {
1014
- (0, import_react_native_bedrock9.setIosSwipeGestureEnabled)({ isEnabled: false });
1478
+ if (import_react_native37.Platform.OS === "ios") {
1479
+ setIosSwipeGestureEnabled({ isEnabled: false });
1015
1480
  return () => {
1016
- (0, import_react_native_bedrock9.setIosSwipeGestureEnabled)({ isEnabled: true });
1481
+ setIosSwipeGestureEnabled({ isEnabled: true });
1017
1482
  };
1018
1483
  }
1019
1484
  return;
@@ -1023,14 +1488,14 @@ var GameWebView = (0, import_react4.forwardRef)(function GameWebView2(props, ref
1023
1488
  handleClose();
1024
1489
  return true;
1025
1490
  };
1026
- import_react_native13.BackHandler.addEventListener("hardwareBackPress", backHandler);
1491
+ import_react_native37.BackHandler.addEventListener("hardwareBackPress", backHandler);
1027
1492
  return () => {
1028
- import_react_native13.BackHandler.removeEventListener("hardwareBackPress", backHandler);
1493
+ import_react_native37.BackHandler.removeEventListener("hardwareBackPress", backHandler);
1029
1494
  };
1030
1495
  }, [handleClose]);
1031
1496
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
1032
1497
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(GameNavigationBar, { onClose: handleClose }),
1033
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_native13.View, { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_native_webview.WebView, { ref, ...props }) })
1498
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_native37.View, { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_native_webview.WebView, { ref, ...props }) })
1034
1499
  ] });
1035
1500
  });
1036
1501
 
@@ -1067,12 +1532,12 @@ function methodHandler({
1067
1532
  };
1068
1533
  wrappedFunc(...args).then((result) => {
1069
1534
  injectJavaScript?.(`
1070
- window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/resolve/${eventId}', ${JSON.stringify(result, null, 0)});
1535
+ window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/resolve/${eventId}', ${JSON.stringify(result, null, 0)});
1071
1536
  `);
1072
1537
  }).catch((error) => {
1073
1538
  const serializedError = serializeError(error);
1074
1539
  injectJavaScript?.(`
1075
- window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/reject/${eventId}', ${serializedError});
1540
+ window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/reject/${eventId}', ${serializedError});
1076
1541
  `);
1077
1542
  });
1078
1543
  }
@@ -1103,12 +1568,12 @@ function useBridgeHandler({
1103
1568
  );
1104
1569
  const createHandleOnEvent = (functionName, eventId) => (response) => {
1105
1570
  ref.current?.injectJavaScript(`
1106
- window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/onEvent/${eventId}', ${JSON.stringify(response, null, 0)});
1571
+ window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onEvent/${eventId}', ${JSON.stringify(response, null, 0)});
1107
1572
  `);
1108
1573
  };
1109
1574
  const createHandleOnError = (functionName, eventId) => (error) => {
1110
1575
  ref.current?.injectJavaScript(`
1111
- window.__BEDROCK_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${JSON.stringify(error, null, 0)});
1576
+ window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${JSON.stringify(error, null, 0)});
1112
1577
  `);
1113
1578
  };
1114
1579
  const $onMessage = (0, import_react5.useCallback)(
@@ -1161,22 +1626,8 @@ function useBridgeHandler({
1161
1626
  };
1162
1627
  }
1163
1628
 
1164
- // src/constant-bridges.ts
1165
- var constant_bridges_exports = {};
1166
- __export(constant_bridges_exports, {
1167
- getDeviceId: () => getDeviceId,
1168
- getOperationalEnvironment: () => getOperationalEnvironment,
1169
- getTossAppVersion: () => getTossAppVersion
1170
- });
1171
-
1172
- // src/event-bridges.ts
1173
- var event_bridges_exports = {};
1174
- __export(event_bridges_exports, {
1175
- startUpdateLocation: () => startUpdateLocation
1176
- });
1177
-
1178
1629
  // src/utils/log.ts
1179
- var import_react_native_bedrock10 = require("react-native-bedrock");
1630
+ var import_react_native38 = require("@granite-js/react-native");
1180
1631
 
1181
1632
  // src/utils/extractDateFromUUIDv7.ts
1182
1633
  var extractDateFromUUIDv7 = (uuid) => {
@@ -1202,7 +1653,7 @@ var getGroupId = (url) => {
1202
1653
  };
1203
1654
  var getReferrer = () => {
1204
1655
  try {
1205
- const referrer = new URL((0, import_react_native_bedrock10.getSchemeUri)());
1656
+ const referrer = new URL((0, import_react_native38.getSchemeUri)());
1206
1657
  return referrer.searchParams.get("referrer");
1207
1658
  } catch {
1208
1659
  return "";
@@ -1226,16 +1677,16 @@ var trackScreen = (url) => {
1226
1677
  // src/components/WebView.tsx
1227
1678
  var import_jsx_runtime5 = require("react/jsx-runtime");
1228
1679
  var appsInTossGlobals = getAppsInTossGlobals();
1229
- var operationalEnvironment = getOperationalEnvironment();
1680
+ var operationalEnvironment = getOperationalEnvironment2();
1230
1681
  var TYPES = ["partner", "external", "game"];
1231
1682
  var WEBVIEW_TYPES = {
1232
- partner: import_react_native14.PartnerWebViewScreen,
1233
- external: import_react_native14.ExternalWebViewScreen,
1683
+ partner: import_react_native40.PartnerWebViewScreen,
1684
+ external: import_react_native40.ExternalWebViewScreen,
1234
1685
  game: GameWebView
1235
1686
  };
1236
1687
  function mergeSchemeQueryParamsInto(url) {
1237
1688
  const baseUrl = new URL(url);
1238
- const schemeUrl = new URL((0, import_react_native_bedrock11.getSchemeUri)());
1689
+ const schemeUrl = new URL((0, import_react_native39.getSchemeUri)());
1239
1690
  baseUrl.pathname = schemeUrl.pathname;
1240
1691
  for (const [key, value] of schemeUrl.searchParams.entries()) {
1241
1692
  baseUrl.searchParams.set(key, value);
@@ -1259,7 +1710,7 @@ function WebView({ type, local, onMessage, ...props }) {
1259
1710
  if (!TYPES.includes(type)) {
1260
1711
  throw new Error(`Invalid WebView type: '${type}'`);
1261
1712
  }
1262
- const bedrockEvent = (0, import_react_native_bedrock11.useBedrockEvent)();
1713
+ const graniteEvent = (0, import_react_native39.useGraniteEvent)();
1263
1714
  const uri = (0, import_react6.useMemo)(() => getWebViewUri(local), [local]);
1264
1715
  const top = (0, import_private.useSafeAreaTop)();
1265
1716
  const bottom = (0, import_private.useSafeAreaBottom)();
@@ -1268,7 +1719,7 @@ function WebView({ type, local, onMessage, ...props }) {
1268
1719
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1269
1720
  eventListenerMap: {
1270
1721
  ...event_bridges_exports,
1271
- backEvent: ({ onEvent, onError, options }) => bedrockEvent.addEventListener("backEvent", { onEvent, onError, options }),
1722
+ backEvent: ({ onEvent, onError, options }) => graniteEvent.addEventListener("backEvent", { onEvent, onError, options }),
1272
1723
  entryMessageExited: ({ onEvent, onError }) => appsInTossEvent.addEventListener("entryMessageExited", { onEvent, onError }),
1273
1724
  updateLocationEvent: ({ onEvent, onError, options }) => appsInTossEvent.addEventListener("updateLocationEvent", { onEvent, onError, options }),
1274
1725
  /** @internal */
@@ -1280,7 +1731,7 @@ function WebView({ type, local, onMessage, ...props }) {
1280
1731
  showAdMobRewardedAd: GoogleAdMob.showAdMobRewardedAd
1281
1732
  },
1282
1733
  constantHandlerMap: {
1283
- ...bedrockConstantBridges,
1734
+ ...graniteConstantBridges,
1284
1735
  ...constant_bridges_exports,
1285
1736
  getSafeAreaTop: () => top,
1286
1737
  getSafeAreaBottom: () => bottom,
@@ -1293,7 +1744,7 @@ function WebView({ type, local, onMessage, ...props }) {
1293
1744
  getDeploymentId: env.getDeploymentId
1294
1745
  },
1295
1746
  asyncHandlerMap: {
1296
- ...bedrockAsyncBridges,
1747
+ ...graniteAsyncBridges,
1297
1748
  ...async_bridges_exports,
1298
1749
  /** internal */
1299
1750
  openPermissionDialog: AppsInTossModule.openPermissionDialog,
@@ -1301,10 +1752,7 @@ function WebView({ type, local, onMessage, ...props }) {
1301
1752
  getStorageItem: Storage.getItem,
1302
1753
  setStorageItem: Storage.setItem,
1303
1754
  removeStorageItem: Storage.removeItem,
1304
- clearItems: Storage.clearItems,
1305
- /** IAP */
1306
- iapCreateOneTimePurchaseOrder: IAP.createOneTimePurchaseOrder,
1307
- iapGetProductItemList: IAP.getProductItemList
1755
+ clearItems: Storage.clearItems
1308
1756
  }
1309
1757
  });
1310
1758
  const baseProps = (0, import_react6.useMemo)(() => {
@@ -1368,10 +1816,10 @@ function ensureValue(value, name) {
1368
1816
  }
1369
1817
 
1370
1818
  // src/hooks/useGeolocation.ts
1819
+ var import_react_native41 = require("@granite-js/react-native");
1371
1820
  var import_react7 = require("react");
1372
- var import_react_native_bedrock12 = require("react-native-bedrock");
1373
1821
  function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
1374
- const isVisible = (0, import_react_native_bedrock12.useVisibility)();
1822
+ const isVisible = (0, import_react_native41.useVisibility)();
1375
1823
  const [location, setLocation] = (0, import_react7.useState)(null);
1376
1824
  (0, import_react7.useEffect)(() => {
1377
1825
  if (!isVisible) {
@@ -1390,25 +1838,6 @@ function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
1390
1838
  return location;
1391
1839
  }
1392
1840
 
1393
- // src/types.ts
1394
- var Accuracy2 = /* @__PURE__ */ ((Accuracy3) => {
1395
- Accuracy3[Accuracy3["Lowest"] = 1] = "Lowest";
1396
- Accuracy3[Accuracy3["Low"] = 2] = "Low";
1397
- Accuracy3[Accuracy3["Balanced"] = 3] = "Balanced";
1398
- Accuracy3[Accuracy3["High"] = 4] = "High";
1399
- Accuracy3[Accuracy3["Highest"] = 5] = "Highest";
1400
- Accuracy3[Accuracy3["BestForNavigation"] = 6] = "BestForNavigation";
1401
- return Accuracy3;
1402
- })(Accuracy2 || {});
1403
-
1404
- // src/native-event-emitter/internal/onVisibilityChangedByTransparentServiceWeb.ts
1405
- function onVisibilityChangedByTransparentServiceWeb(eventParams) {
1406
- return appsInTossEvent.addEventListener("onVisibilityChangedByTransparentServiceWeb", eventParams);
1407
- }
1408
-
1409
- // src/private.ts
1410
- var INTERNAL__onVisibilityChangedByTransparentServiceWeb = onVisibilityChangedByTransparentServiceWeb;
1411
-
1412
1841
  // src/index.ts
1413
1842
  __reExport(src_exports, require("@apps-in-toss/analytics"), module.exports);
1414
1843
  var Analytics2 = {
@@ -1422,29 +1851,43 @@ var Analytics2 = {
1422
1851
  Accuracy,
1423
1852
  Analytics,
1424
1853
  AppsInToss,
1854
+ AppsInTossModule,
1855
+ BedrockCoreModule,
1856
+ BedrockModule,
1425
1857
  GoogleAdMob,
1426
- IAP,
1427
- INTERNAL__onVisibilityChangedByTransparentServiceWeb,
1858
+ INTERNAL__AppsInTossModule,
1859
+ INTERNAL__module,
1428
1860
  Storage,
1429
1861
  TossPay,
1430
1862
  WebView,
1431
1863
  appLogin,
1432
1864
  appsInTossEvent,
1865
+ closeView,
1433
1866
  env,
1434
1867
  eventLog,
1435
1868
  fetchAlbumPhotos,
1436
1869
  fetchContacts,
1870
+ generateHapticFeedback,
1437
1871
  getClipboardText,
1438
1872
  getCurrentLocation,
1439
1873
  getDeviceId,
1874
+ getLocale,
1875
+ getNetworkStatus,
1440
1876
  getOperationalEnvironment,
1877
+ getPlatformOS,
1878
+ getSchemeUri,
1441
1879
  getTossAppVersion,
1442
1880
  getTossShareLink,
1443
1881
  isMinVersionSupported,
1444
1882
  openCamera,
1883
+ openURL,
1445
1884
  saveBase64Data,
1446
1885
  setClipboardText,
1447
1886
  setDeviceOrientation,
1887
+ setIosSwipeGestureEnabled,
1888
+ setScreenAwakeMode,
1889
+ setSecureScreen,
1890
+ share,
1448
1891
  startUpdateLocation,
1449
1892
  useGeolocation,
1450
1893
  ...require("@apps-in-toss/analytics")