@apps-in-toss/framework 0.0.0-dev.1744801739343 → 0.0.0-dev.1752049503789
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/bridge-meta.d.ts +1 -0
- package/dist/bridge-meta.js +158 -0
- package/dist/index.cjs +1388 -311
- package/dist/index.d.cts +26 -1179
- package/dist/index.d.ts +26 -1179
- package/dist/index.js +1341 -288
- package/dist/jest/index.cjs +2 -2
- package/dist/jest/index.d.cts +1 -1
- package/dist/jest/index.d.ts +1 -1
- package/dist/jest/index.js +1 -1
- package/package.json +25 -28
- package/src/bridge-entry.ts +4 -0
- package/src/async-bridges.ts +0 -9
- package/src/constant-bridges.ts +0 -3
- package/src/event-bridges.ts +0 -1
package/dist/index.cjs
CHANGED
|
@@ -17,6 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
21
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
22
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
23
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -31,33 +32,704 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
32
|
var src_exports = {};
|
|
32
33
|
__export(src_exports, {
|
|
33
34
|
Accuracy: () => Accuracy2,
|
|
35
|
+
Analytics: () => Analytics2,
|
|
34
36
|
AppsInToss: () => AppsInToss,
|
|
37
|
+
AppsInTossModule: () => AppsInTossModule,
|
|
38
|
+
BedrockCoreModule: () => BedrockCoreModule,
|
|
39
|
+
BedrockModule: () => BedrockModule,
|
|
40
|
+
GoogleAdMob: () => GoogleAdMob,
|
|
41
|
+
INTERNAL__AppsInTossModule: () => AppsInTossModuleInstance,
|
|
42
|
+
INTERNAL__module: () => INTERNAL__module,
|
|
35
43
|
Storage: () => Storage,
|
|
36
44
|
TossPay: () => TossPay,
|
|
37
45
|
WebView: () => WebView,
|
|
38
46
|
appLogin: () => appLogin,
|
|
47
|
+
appsInTossEvent: () => appsInTossEvent,
|
|
48
|
+
closeView: () => closeView,
|
|
39
49
|
env: () => env,
|
|
50
|
+
eventLog: () => eventLog,
|
|
40
51
|
fetchAlbumPhotos: () => fetchAlbumPhotos,
|
|
41
52
|
fetchContacts: () => fetchContacts,
|
|
53
|
+
generateHapticFeedback: () => generateHapticFeedback,
|
|
42
54
|
getClipboardText: () => getClipboardText,
|
|
43
55
|
getCurrentLocation: () => getCurrentLocation,
|
|
44
56
|
getDeviceId: () => getDeviceId,
|
|
57
|
+
getLocale: () => getLocale,
|
|
58
|
+
getNetworkStatus: () => getNetworkStatus,
|
|
45
59
|
getOperationalEnvironment: () => getOperationalEnvironment,
|
|
60
|
+
getPlatformOS: () => getPlatformOS,
|
|
61
|
+
getSchemeUri: () => getSchemeUri,
|
|
46
62
|
getTossAppVersion: () => getTossAppVersion,
|
|
63
|
+
getTossShareLink: () => getTossShareLink,
|
|
64
|
+
isMinVersionSupported: () => isMinVersionSupported,
|
|
47
65
|
openCamera: () => openCamera,
|
|
66
|
+
openURL: () => openURL,
|
|
67
|
+
saveBase64Data: () => saveBase64Data,
|
|
48
68
|
setClipboardText: () => setClipboardText,
|
|
69
|
+
setDeviceOrientation: () => setDeviceOrientation,
|
|
70
|
+
setIosSwipeGestureEnabled: () => setIosSwipeGestureEnabled,
|
|
71
|
+
setScreenAwakeMode: () => setScreenAwakeMode,
|
|
72
|
+
setSecureScreen: () => setSecureScreen,
|
|
73
|
+
share: () => share,
|
|
49
74
|
startUpdateLocation: () => startUpdateLocation,
|
|
50
75
|
useGeolocation: () => useGeolocation
|
|
51
76
|
});
|
|
52
77
|
module.exports = __toCommonJS(src_exports);
|
|
78
|
+
var import_analytics2 = require("@apps-in-toss/analytics");
|
|
53
79
|
|
|
54
80
|
// src/core/registerApp.tsx
|
|
55
|
-
var
|
|
56
|
-
var
|
|
81
|
+
var import_analytics = require("@apps-in-toss/analytics");
|
|
82
|
+
var import_react_native28 = require("@granite-js/react-native");
|
|
83
|
+
var import_react_native29 = require("@toss-design-system/react-native");
|
|
57
84
|
|
|
58
|
-
//
|
|
59
|
-
var import_react_native = require("@
|
|
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");
|
|
92
|
+
|
|
93
|
+
// ../../.yarn/cache/es-toolkit-npm-1.39.3-b94f623c91-1c85e518b1.zip/node_modules/es-toolkit/dist/function/noop.mjs
|
|
94
|
+
function noop() {
|
|
95
|
+
}
|
|
96
|
+
|
|
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 {
|
|
106
|
+
name = "entryMessageExited";
|
|
107
|
+
remove() {
|
|
108
|
+
}
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
110
|
+
listener(_) {
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
var Module = import_react_native4.TurboModuleRegistry.getEnforcing("AppsInTossModule");
|
|
114
|
+
var AppsInTossModuleInstance = Module;
|
|
115
|
+
var AppsInTossModule = Module;
|
|
116
|
+
function getPermission(permission) {
|
|
117
|
+
return AppsInTossModule.getPermission(permission);
|
|
118
|
+
}
|
|
119
|
+
function openPermissionDialog(permission) {
|
|
120
|
+
return AppsInTossModule.openPermissionDialog(permission);
|
|
121
|
+
}
|
|
122
|
+
async function requestPermission(permission) {
|
|
123
|
+
const permissionStatus = await getPermission(permission);
|
|
124
|
+
switch (permissionStatus) {
|
|
125
|
+
case "allowed":
|
|
126
|
+
case "denied":
|
|
127
|
+
return permissionStatus;
|
|
128
|
+
default:
|
|
129
|
+
return openPermissionDialog(permission);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
var nativeEventEmitter = new import_react_native5.NativeEventEmitter(AppsInTossModuleInstance);
|
|
133
|
+
var UpdateLocationEvent = class extends import_react_native3.GraniteEventDefinition {
|
|
134
|
+
name = "updateLocationEvent";
|
|
135
|
+
subscriptionCount = 0;
|
|
136
|
+
ref = {
|
|
137
|
+
remove: () => {
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
remove() {
|
|
141
|
+
if (--this.subscriptionCount === 0) {
|
|
142
|
+
AppsInTossModuleInstance.stopUpdateLocation({});
|
|
143
|
+
}
|
|
144
|
+
this.ref.remove();
|
|
145
|
+
}
|
|
146
|
+
listener(options, onEvent, onError) {
|
|
147
|
+
requestPermission({ name: "geolocation", access: "access" }).then((permissionStatus) => {
|
|
148
|
+
if (permissionStatus === "denied") {
|
|
149
|
+
onError(new Error("\uC704\uCE58 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694."));
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
void AppsInTossModuleInstance.startUpdateLocation(options).catch(onError);
|
|
153
|
+
const subscription = nativeEventEmitter.addListener("updateLocation", onEvent);
|
|
154
|
+
this.ref = {
|
|
155
|
+
remove: () => subscription?.remove()
|
|
156
|
+
};
|
|
157
|
+
this.subscriptionCount++;
|
|
158
|
+
}).catch(onError);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
function generateUUID(placeholder) {
|
|
162
|
+
return placeholder ? (placeholder ^ Math.random() * 16 >> placeholder / 4).toString(16) : (String(1e7) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, generateUUID);
|
|
163
|
+
}
|
|
164
|
+
var INTERNAL__callbacks = /* @__PURE__ */ new Map();
|
|
165
|
+
function invokeAppBridgeCallback(id, ...args) {
|
|
166
|
+
const callback = INTERNAL__callbacks.get(id);
|
|
167
|
+
callback?.call(null, ...args);
|
|
168
|
+
return Boolean(callback);
|
|
169
|
+
}
|
|
170
|
+
function invokeAppBridgeMethod(methodName, params, callbacks) {
|
|
171
|
+
const { onSuccess, onError, ...appBridgeCallbacks } = callbacks;
|
|
172
|
+
const { callbackMap, unregisterAll } = registerCallbacks(appBridgeCallbacks);
|
|
173
|
+
const promise = AppsInTossModuleInstance[methodName]({
|
|
174
|
+
params,
|
|
175
|
+
callbacks: callbackMap
|
|
176
|
+
});
|
|
177
|
+
void promise.then(onSuccess).catch(onError);
|
|
178
|
+
return unregisterAll;
|
|
179
|
+
}
|
|
180
|
+
function registerCallbacks(callbacks) {
|
|
181
|
+
const callbackMap = {};
|
|
182
|
+
for (const [callbackName, callback] of Object.entries(callbacks)) {
|
|
183
|
+
const id = registerCallback(callback, callbackName);
|
|
184
|
+
callbackMap[callbackName] = id;
|
|
185
|
+
}
|
|
186
|
+
const unregisterAll = () => {
|
|
187
|
+
Object.values(callbackMap).forEach(unregisterCallback);
|
|
188
|
+
};
|
|
189
|
+
return { callbackMap, unregisterAll };
|
|
190
|
+
}
|
|
191
|
+
function registerCallback(callback, name = "unnamed") {
|
|
192
|
+
const uniqueId = generateUUID();
|
|
193
|
+
const callbackId = `${uniqueId}__${name}`;
|
|
194
|
+
INTERNAL__callbacks.set(callbackId, callback);
|
|
195
|
+
return callbackId;
|
|
196
|
+
}
|
|
197
|
+
function unregisterCallback(id) {
|
|
198
|
+
INTERNAL__callbacks.delete(id);
|
|
199
|
+
}
|
|
200
|
+
function getCallbackIds() {
|
|
201
|
+
return Array.from(INTERNAL__callbacks.keys());
|
|
202
|
+
}
|
|
203
|
+
var INTERNAL__appBridgeHandler = {
|
|
204
|
+
invokeAppBridgeCallback,
|
|
205
|
+
invokeAppBridgeMethod,
|
|
206
|
+
registerCallback,
|
|
207
|
+
unregisterCallback,
|
|
208
|
+
getCallbackIds
|
|
209
|
+
};
|
|
210
|
+
var UNSAFE__nativeEventEmitter = nativeEventEmitter;
|
|
211
|
+
var AppBridgeCallbackEvent = class _AppBridgeCallbackEvent extends import_react_native6.GraniteEventDefinition {
|
|
212
|
+
static INTERNAL__appBridgeSubscription;
|
|
213
|
+
name = "appBridgeCallbackEvent";
|
|
214
|
+
constructor() {
|
|
215
|
+
super();
|
|
216
|
+
this.registerAppBridgeCallbackEventListener();
|
|
217
|
+
}
|
|
218
|
+
remove() {
|
|
219
|
+
}
|
|
220
|
+
listener() {
|
|
221
|
+
}
|
|
222
|
+
registerAppBridgeCallbackEventListener() {
|
|
223
|
+
if (_AppBridgeCallbackEvent.INTERNAL__appBridgeSubscription != null) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
_AppBridgeCallbackEvent.INTERNAL__appBridgeSubscription = UNSAFE__nativeEventEmitter.addListener(
|
|
227
|
+
"appBridgeCallback",
|
|
228
|
+
this.ensureInvokeAppBridgeCallback
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
ensureInvokeAppBridgeCallback(result) {
|
|
232
|
+
if (typeof result === "object" && typeof result.name === "string") {
|
|
233
|
+
INTERNAL__appBridgeHandler.invokeAppBridgeCallback(result.name, result.params);
|
|
234
|
+
} else {
|
|
235
|
+
console.warn("Invalid app bridge callback result:", result);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
};
|
|
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;
|
|
262
|
+
}
|
|
263
|
+
const [aVal, bVal] = coerceTypes(tryParse(a), tryParse(b));
|
|
264
|
+
if (aVal > bVal) {
|
|
265
|
+
return 1;
|
|
266
|
+
}
|
|
267
|
+
if (aVal < bVal) {
|
|
268
|
+
return -1;
|
|
269
|
+
}
|
|
270
|
+
return 0;
|
|
271
|
+
};
|
|
272
|
+
var parseVersion = (version) => {
|
|
273
|
+
if (typeof version !== "string") {
|
|
274
|
+
throw new TypeError("Invalid argument: expected a string");
|
|
275
|
+
}
|
|
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 });
|
|
436
|
+
}
|
|
437
|
+
async function setClipboardText(text) {
|
|
438
|
+
const permissionStatus = await requestPermission({ name: "clipboard", access: "write" });
|
|
439
|
+
if (permissionStatus === "denied") {
|
|
440
|
+
throw new Error("\uD074\uB9BD\uBCF4\uB4DC \uC4F0\uAE30 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
441
|
+
}
|
|
442
|
+
return AppsInTossModule.setClipboardText({ text });
|
|
443
|
+
}
|
|
444
|
+
async function getClipboardText() {
|
|
445
|
+
const permissionStatus = await requestPermission({ name: "clipboard", access: "read" });
|
|
446
|
+
if (permissionStatus === "denied") {
|
|
447
|
+
throw new Error("\uD074\uB9BD\uBCF4\uB4DC \uC77D\uAE30 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
448
|
+
}
|
|
449
|
+
return AppsInTossModule.getClipboardText({});
|
|
450
|
+
}
|
|
451
|
+
async function fetchContacts(options) {
|
|
452
|
+
const permissionStatus = await requestPermission({ name: "contacts", access: "read" });
|
|
453
|
+
if (permissionStatus === "denied") {
|
|
454
|
+
throw new Error("\uC5F0\uB77D\uCC98 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
455
|
+
}
|
|
456
|
+
const contacts = await AppsInTossModule.fetchContacts(options);
|
|
457
|
+
return {
|
|
458
|
+
result: contacts.result,
|
|
459
|
+
nextOffset: contacts.nextOffset ?? null,
|
|
460
|
+
done: contacts.done
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
var DEFAULT_MAX_COUNT = 10;
|
|
464
|
+
var DEFAULT_MAX_WIDTH = 1024;
|
|
465
|
+
async function fetchAlbumPhotos(options) {
|
|
466
|
+
const permissionStatus = await requestPermission({ name: "photos", access: "read" });
|
|
467
|
+
if (permissionStatus === "denied") {
|
|
468
|
+
throw new Error("\uC0AC\uC9C4\uCCA9 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
469
|
+
}
|
|
470
|
+
const albumPhotos = await AppsInTossModule.fetchAlbumPhotos({
|
|
471
|
+
...options,
|
|
472
|
+
maxCount: options.maxCount ?? DEFAULT_MAX_COUNT,
|
|
473
|
+
maxWidth: options.maxWidth ?? DEFAULT_MAX_WIDTH
|
|
474
|
+
});
|
|
475
|
+
return albumPhotos;
|
|
476
|
+
}
|
|
477
|
+
async function getCurrentLocation(options) {
|
|
478
|
+
const permissionStatus = await requestPermission({ name: "geolocation", access: "access" });
|
|
479
|
+
if (permissionStatus === "denied") {
|
|
480
|
+
throw new Error("\uC704\uCE58 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
481
|
+
}
|
|
482
|
+
const position = await AppsInTossModule.getCurrentLocation(options);
|
|
483
|
+
return position;
|
|
484
|
+
}
|
|
485
|
+
async function openCamera(options) {
|
|
486
|
+
const permissionStatus = await requestPermission({ name: "camera", access: "access" });
|
|
487
|
+
if (permissionStatus === "denied") {
|
|
488
|
+
throw new Error("\uCE74\uBA54\uB77C \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
489
|
+
}
|
|
490
|
+
const photo = await AppsInTossModule.openCamera({ base64: false, maxWidth: 1024, ...options });
|
|
491
|
+
return photo;
|
|
492
|
+
}
|
|
493
|
+
async function appLogin() {
|
|
494
|
+
return AppsInTossModule.appLogin({});
|
|
495
|
+
}
|
|
496
|
+
function getTossAppVersion() {
|
|
497
|
+
return AppsInTossModule.tossAppVersion;
|
|
498
|
+
}
|
|
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
|
+
};
|
|
523
|
+
function normalizeParams(params) {
|
|
524
|
+
return Object.fromEntries(
|
|
525
|
+
Object.entries(params).filter(([, value]) => value !== void 0).map(([key, value]) => [key, String(value)])
|
|
526
|
+
);
|
|
527
|
+
}
|
|
528
|
+
async function eventLog(params) {
|
|
529
|
+
if (AppsInTossModule.operationalEnvironment === "sandbox") {
|
|
530
|
+
console.log("[eventLogDebug]", {
|
|
531
|
+
log_name: params.log_name,
|
|
532
|
+
log_type: params.log_type,
|
|
533
|
+
params: normalizeParams(params.params)
|
|
534
|
+
});
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
const isSupported = isMinVersionSupported({
|
|
538
|
+
android: "5.208.0",
|
|
539
|
+
ios: "5.208.0"
|
|
540
|
+
});
|
|
541
|
+
if (!isSupported) {
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
return AppsInTossModule.eventLog({
|
|
545
|
+
log_name: params.log_name,
|
|
546
|
+
log_type: params.log_type,
|
|
547
|
+
params: normalizeParams(params.params)
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
async function getTossShareLink(path) {
|
|
551
|
+
const { shareLink } = await AppsInTossModule.getTossShareLink({});
|
|
552
|
+
const shareUrl = new URL(shareLink);
|
|
553
|
+
shareUrl.searchParams.set("deep_link_value", path);
|
|
554
|
+
shareUrl.searchParams.set("af_dp", path);
|
|
555
|
+
return shareUrl.toString();
|
|
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");
|
|
60
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");
|
|
61
733
|
|
|
62
734
|
// src/core/utils/getAppsInTossGlobals.ts
|
|
63
735
|
function getAppsInTossGlobals() {
|
|
@@ -67,94 +739,443 @@ function getAppsInTossGlobals() {
|
|
|
67
739
|
return global.__appsInToss;
|
|
68
740
|
}
|
|
69
741
|
|
|
70
|
-
// src/core/utils/toIcon.ts
|
|
71
|
-
function toIcon(source) {
|
|
72
|
-
return source.startsWith("http") ? { source: { uri: source } } : { name: source };
|
|
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();
|
|
73
1068
|
}
|
|
74
1069
|
|
|
75
|
-
// src/
|
|
76
|
-
function
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
};
|
|
86
|
-
controller.open({ ...commonProps });
|
|
87
|
-
}, []);
|
|
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);
|
|
88
1080
|
}
|
|
89
1081
|
|
|
90
|
-
// src/
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Container, { ...initialProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native2.TDSProvider, { colorPreference: "light", token: { color: { primary: getAppsInTossGlobals().brandPrimaryColor } }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TDSContainer, { ...initialProps, children }) }) });
|
|
94
|
-
}
|
|
95
|
-
function TDSContainer({ children }) {
|
|
96
|
-
useAppsInTossBridge();
|
|
97
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
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 });
|
|
98
1085
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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"
|
|
103
1092
|
});
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return global.__bedrock.app.name;
|
|
108
|
-
} catch (error) {
|
|
109
|
-
console.error("unexpected error occurred while getting app name");
|
|
110
|
-
throw error;
|
|
1093
|
+
if (!isSupported) {
|
|
1094
|
+
console.warn("saveBase64Data is not supported in this app version");
|
|
1095
|
+
return;
|
|
111
1096
|
}
|
|
1097
|
+
await AppsInTossModule2.saveBase64Data(params);
|
|
112
1098
|
}
|
|
113
1099
|
|
|
114
|
-
// src/
|
|
115
|
-
var
|
|
116
|
-
|
|
117
|
-
|
|
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
|
+
});
|
|
118
1110
|
|
|
119
|
-
//
|
|
120
|
-
var
|
|
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
|
+
}
|
|
121
1123
|
|
|
122
|
-
//
|
|
123
|
-
|
|
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
|
+
}
|
|
124
1128
|
|
|
125
|
-
// src/native-modules/
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
|
|
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
|
+
}
|
|
129
1134
|
|
|
130
|
-
// src/native-modules/
|
|
131
|
-
function
|
|
132
|
-
return
|
|
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;
|
|
133
1138
|
}
|
|
134
1139
|
|
|
135
|
-
// src/native-modules/
|
|
136
|
-
function
|
|
137
|
-
return
|
|
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;
|
|
138
1143
|
}
|
|
139
1144
|
|
|
140
|
-
// src/native-modules/
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
switch (permissionStatus) {
|
|
144
|
-
case "allowed":
|
|
145
|
-
case "denied":
|
|
146
|
-
return permissionStatus;
|
|
147
|
-
default:
|
|
148
|
-
return openPermissionDialog(permission);
|
|
149
|
-
}
|
|
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;
|
|
150
1148
|
}
|
|
151
1149
|
|
|
152
|
-
//
|
|
153
|
-
var
|
|
154
|
-
|
|
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");
|
|
155
1172
|
|
|
156
|
-
// src/native-event-emitter/
|
|
157
|
-
var
|
|
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 {
|
|
158
1179
|
name = "updateLocationEvent";
|
|
159
1180
|
subscriptionCount = 0;
|
|
160
1181
|
ref = {
|
|
@@ -162,17 +1183,19 @@ var UpdateLocationEvent = class extends import_react_native_bedrock2.BedrockEven
|
|
|
162
1183
|
}
|
|
163
1184
|
};
|
|
164
1185
|
remove() {
|
|
165
|
-
--this.subscriptionCount === 0
|
|
1186
|
+
if (--this.subscriptionCount === 0) {
|
|
1187
|
+
AppsInTossModuleInstance2.stopUpdateLocation({});
|
|
1188
|
+
}
|
|
166
1189
|
this.ref.remove();
|
|
167
1190
|
}
|
|
168
1191
|
listener(options, onEvent, onError) {
|
|
169
|
-
|
|
1192
|
+
requestPermission2({ name: "geolocation", access: "access" }).then((permissionStatus) => {
|
|
170
1193
|
if (permissionStatus === "denied") {
|
|
171
1194
|
onError(new Error("\uC704\uCE58 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694."));
|
|
172
1195
|
return;
|
|
173
1196
|
}
|
|
174
|
-
void
|
|
175
|
-
const subscription =
|
|
1197
|
+
void AppsInTossModuleInstance2.startUpdateLocation(options).catch(onError);
|
|
1198
|
+
const subscription = nativeEventEmitter2.addListener("updateLocation", onEvent);
|
|
176
1199
|
this.ref = {
|
|
177
1200
|
remove: () => subscription?.remove()
|
|
178
1201
|
};
|
|
@@ -181,179 +1204,178 @@ var UpdateLocationEvent = class extends import_react_native_bedrock2.BedrockEven
|
|
|
181
1204
|
}
|
|
182
1205
|
};
|
|
183
1206
|
|
|
184
|
-
// src/native-event-emitter/
|
|
185
|
-
var
|
|
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");
|
|
186
1209
|
|
|
187
|
-
//
|
|
188
|
-
function
|
|
189
|
-
return
|
|
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);
|
|
190
1213
|
}
|
|
191
1214
|
|
|
192
|
-
//
|
|
193
|
-
|
|
194
|
-
|
|
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);
|
|
195
1221
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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
|
|
1228
|
+
});
|
|
1229
|
+
void promise.then(onSuccess).catch(onError);
|
|
1230
|
+
return unregisterAll;
|
|
200
1231
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
throw new Error("\uD074\uB9BD\uBCF4\uB4DC \uC4F0\uAE30 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
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;
|
|
207
1237
|
}
|
|
208
|
-
|
|
1238
|
+
const unregisterAll = () => {
|
|
1239
|
+
Object.values(callbackMap).forEach(unregisterCallback2);
|
|
1240
|
+
};
|
|
1241
|
+
return { callbackMap, unregisterAll };
|
|
209
1242
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
throw new Error("\uD074\uB9BD\uBCF4\uB4DC \uC77D\uAE30 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
216
|
-
}
|
|
217
|
-
return AppsInTossModule.getClipboardText({});
|
|
1243
|
+
function registerCallback2(callback, name = "unnamed") {
|
|
1244
|
+
const uniqueId = generateUUID2();
|
|
1245
|
+
const callbackId = `${uniqueId}__${name}`;
|
|
1246
|
+
INTERNAL__callbacks2.set(callbackId, callback);
|
|
1247
|
+
return callbackId;
|
|
218
1248
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
async function fetchContacts({
|
|
222
|
-
size,
|
|
223
|
-
offset,
|
|
224
|
-
query
|
|
225
|
-
}) {
|
|
226
|
-
const permissionStatus = await requestPermission({ name: "contacts", access: "read" });
|
|
227
|
-
if (permissionStatus === "denied") {
|
|
228
|
-
throw new Error("\uC5F0\uB77D\uCC98 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
229
|
-
}
|
|
230
|
-
const contacts = await AppsInTossModule.fetchContacts({
|
|
231
|
-
size,
|
|
232
|
-
offset,
|
|
233
|
-
query
|
|
234
|
-
});
|
|
235
|
-
return {
|
|
236
|
-
result: contacts.result,
|
|
237
|
-
nextOffset: contacts.nextOffset ?? null,
|
|
238
|
-
done: contacts.done
|
|
239
|
-
};
|
|
1249
|
+
function unregisterCallback2(id) {
|
|
1250
|
+
INTERNAL__callbacks2.delete(id);
|
|
240
1251
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
var DEFAULT_MAX_COUNT = 10;
|
|
244
|
-
var DEFAULT_MAX_WIDTH = 1024;
|
|
245
|
-
async function fetchAlbumPhotos(options) {
|
|
246
|
-
const permissionStatus = await requestPermission({ name: "photos", access: "read" });
|
|
247
|
-
if (permissionStatus === "denied") {
|
|
248
|
-
throw new Error("\uC0AC\uC9C4\uCCA9 \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
249
|
-
}
|
|
250
|
-
const albumPhotos = await AppsInTossModule.fetchAlbumPhotos({
|
|
251
|
-
...options,
|
|
252
|
-
maxCount: options.maxCount ?? DEFAULT_MAX_COUNT,
|
|
253
|
-
maxWidth: options.maxWidth ?? DEFAULT_MAX_WIDTH
|
|
254
|
-
});
|
|
255
|
-
return albumPhotos;
|
|
1252
|
+
function getCallbackIds2() {
|
|
1253
|
+
return Array.from(INTERNAL__callbacks2.keys());
|
|
256
1254
|
}
|
|
1255
|
+
var INTERNAL__appBridgeHandler2 = {
|
|
1256
|
+
invokeAppBridgeCallback: invokeAppBridgeCallback2,
|
|
1257
|
+
invokeAppBridgeMethod: invokeAppBridgeMethod2,
|
|
1258
|
+
registerCallback: registerCallback2,
|
|
1259
|
+
unregisterCallback: unregisterCallback2,
|
|
1260
|
+
getCallbackIds: getCallbackIds2
|
|
1261
|
+
};
|
|
257
1262
|
|
|
258
|
-
//
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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();
|
|
263
1271
|
}
|
|
264
|
-
|
|
265
|
-
return position;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
// src/native-modules/openCamera.ts
|
|
269
|
-
async function openCamera(options) {
|
|
270
|
-
const permissionStatus = await requestPermission({ name: "camera", access: "access" });
|
|
271
|
-
if (permissionStatus === "denied") {
|
|
272
|
-
throw new Error("\uCE74\uBA54\uB77C \uAD8C\uD55C\uC774 \uAC70\uBD80\uB418\uC5C8\uC5B4\uC694.");
|
|
1272
|
+
remove() {
|
|
273
1273
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
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
|
+
};
|
|
282
1293
|
|
|
283
|
-
//
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
+
]);
|
|
287
1300
|
|
|
288
|
-
//
|
|
289
|
-
function
|
|
290
|
-
return
|
|
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);
|
|
291
1304
|
}
|
|
292
1305
|
|
|
293
|
-
// src/
|
|
294
|
-
|
|
295
|
-
|
|
1306
|
+
// src/core/registerApp.tsx
|
|
1307
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
1308
|
+
function AppsInTossContainer(Container, { children, ...initialProps }) {
|
|
1309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
1310
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppEvent.Entry, {}),
|
|
1311
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppEvent.System, { ...initialProps }),
|
|
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 }) }) })
|
|
1313
|
+
] });
|
|
296
1314
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
return AppsInTossModule.getStorageItem({ key });
|
|
1315
|
+
function TDSContainer({ children }) {
|
|
1316
|
+
useAppsInTossBridge();
|
|
1317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
301
1318
|
}
|
|
302
|
-
function
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
1319
|
+
function registerApp(container, { context, analytics }) {
|
|
1320
|
+
import_analytics.Analytics.init({
|
|
1321
|
+
logger: (params) => void eventLog2(params),
|
|
1322
|
+
debug: analytics?.debug ?? __DEV__
|
|
1323
|
+
});
|
|
1324
|
+
return import_react_native28.Granite.registerApp(AppsInTossContainer.bind(null, container), {
|
|
1325
|
+
appName: getAppName(),
|
|
1326
|
+
context,
|
|
1327
|
+
router: {
|
|
1328
|
+
screenContainer: import_analytics.Analytics.Screen,
|
|
1329
|
+
defaultScreenOption: {
|
|
1330
|
+
statusBarStyle: "dark"
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
306
1333
|
});
|
|
307
1334
|
}
|
|
308
|
-
function
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
1335
|
+
function getAppName() {
|
|
1336
|
+
try {
|
|
1337
|
+
return global.__granite.app.name;
|
|
1338
|
+
} catch (error) {
|
|
1339
|
+
console.error("unexpected error occurred while getting app name");
|
|
1340
|
+
throw error;
|
|
1341
|
+
}
|
|
313
1342
|
}
|
|
314
|
-
var Storage = {
|
|
315
|
-
getItem,
|
|
316
|
-
setItem,
|
|
317
|
-
removeItem,
|
|
318
|
-
clearItems
|
|
319
|
-
};
|
|
320
1343
|
|
|
321
|
-
// src/
|
|
322
|
-
var
|
|
323
|
-
|
|
324
|
-
executePayment
|
|
1344
|
+
// src/core/index.ts
|
|
1345
|
+
var AppsInToss = {
|
|
1346
|
+
registerApp
|
|
325
1347
|
};
|
|
326
1348
|
|
|
327
1349
|
// src/components/WebView.tsx
|
|
328
|
-
var
|
|
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");
|
|
329
1354
|
var import_private = require("@toss-design-system/react-native/private");
|
|
330
|
-
var
|
|
331
|
-
var import_react_native_bedrock5 = require("react-native-bedrock");
|
|
332
|
-
var bedrockAsyncBridges = __toESM(require("react-native-bedrock/async-bridges"), 1);
|
|
333
|
-
var bedrockConstantBridges = __toESM(require("react-native-bedrock/constant-bridges"), 1);
|
|
1355
|
+
var import_react6 = require("react");
|
|
334
1356
|
|
|
335
1357
|
// src/components/GameWebView.tsx
|
|
336
|
-
var import_react_native_webview = require("@
|
|
337
|
-
var
|
|
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");
|
|
338
1361
|
var import_es_hangul = require("es-hangul");
|
|
339
|
-
var
|
|
340
|
-
var
|
|
341
|
-
var import_react_native_bedrock4 = require("react-native-bedrock");
|
|
1362
|
+
var import_react4 = require("react");
|
|
1363
|
+
var import_react_native37 = require("react-native");
|
|
342
1364
|
|
|
343
1365
|
// src/components/GameWebViewNavigationBar/GameNavigationBar.tsx
|
|
344
|
-
var import_react_native_svg = require("@
|
|
345
|
-
var
|
|
346
|
-
var
|
|
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");
|
|
347
1369
|
|
|
348
1370
|
// src/components/GameWebViewNavigationBar/HeaderRight.tsx
|
|
349
|
-
var
|
|
1371
|
+
var import_react_native31 = require("react-native");
|
|
350
1372
|
|
|
351
1373
|
// src/components/GameWebViewNavigationBar/byPlatform.ts
|
|
352
|
-
var
|
|
1374
|
+
var import_react_native30 = require("react-native");
|
|
353
1375
|
function byPlatform({
|
|
354
1376
|
...props
|
|
355
1377
|
}) {
|
|
356
|
-
return (props[
|
|
1378
|
+
return (props[import_react_native30.Platform.OS] ?? props.fallback)();
|
|
357
1379
|
}
|
|
358
1380
|
|
|
359
1381
|
// src/components/GameWebViewNavigationBar/constants.ts
|
|
@@ -363,10 +1385,10 @@ var IOS_DEFAULT_MARGIN = 20;
|
|
|
363
1385
|
// src/components/GameWebViewNavigationBar/HeaderRight.tsx
|
|
364
1386
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
365
1387
|
function IOSHeaderRight(props) {
|
|
366
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
1388
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native31.View, { style: styles.ios, ...props });
|
|
367
1389
|
}
|
|
368
1390
|
function AndroidHeaderRight(props) {
|
|
369
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
1391
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native31.View, { style: styles.android, ...props });
|
|
370
1392
|
}
|
|
371
1393
|
function HeaderRight(props) {
|
|
372
1394
|
return byPlatform({
|
|
@@ -375,7 +1397,7 @@ function HeaderRight(props) {
|
|
|
375
1397
|
fallback: () => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IOSHeaderRight, { ...props })
|
|
376
1398
|
});
|
|
377
1399
|
}
|
|
378
|
-
var styles =
|
|
1400
|
+
var styles = import_react_native31.StyleSheet.create({
|
|
379
1401
|
ios: {
|
|
380
1402
|
marginRight: -IOS_DEFAULT_MARGIN + RIGHT_MARGIN,
|
|
381
1403
|
flexDirection: "row"
|
|
@@ -386,11 +1408,11 @@ var styles = import_react_native6.StyleSheet.create({
|
|
|
386
1408
|
});
|
|
387
1409
|
|
|
388
1410
|
// src/components/GameWebViewNavigationBar/useSafeAreaTop.ts
|
|
389
|
-
var import_react_native_safe_area_context = require("@
|
|
390
|
-
var
|
|
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");
|
|
391
1413
|
function useSafeAreaTop() {
|
|
392
1414
|
const safeAreaInsets = (0, import_react_native_safe_area_context.useSafeAreaInsets)();
|
|
393
|
-
const hasDynamicIsland =
|
|
1415
|
+
const hasDynamicIsland = import_react_native32.Platform.OS === "ios" && safeAreaInsets.top > 50;
|
|
394
1416
|
const safeAreaTop = hasDynamicIsland ? safeAreaInsets.top - 5 : safeAreaInsets.top;
|
|
395
1417
|
return safeAreaTop;
|
|
396
1418
|
}
|
|
@@ -401,31 +1423,31 @@ var originXML = '<svg fill="none" height="30" viewBox="0 0 30 30" width="30" xml
|
|
|
401
1423
|
function GameNavigationBar({ onClose }) {
|
|
402
1424
|
const safeAreaTop = useSafeAreaTop();
|
|
403
1425
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
|
|
404
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1426
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native33.PageNavbar, { preference: { type: "none" } }),
|
|
405
1427
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
406
|
-
|
|
1428
|
+
import_react_native34.View,
|
|
407
1429
|
{
|
|
408
1430
|
style: {
|
|
409
1431
|
width: "100%",
|
|
410
|
-
height:
|
|
1432
|
+
height: import_react_native34.Platform.OS === "ios" ? 44 : 54,
|
|
411
1433
|
flexDirection: "row",
|
|
412
1434
|
alignItems: "center",
|
|
413
1435
|
justifyContent: "flex-end",
|
|
414
1436
|
position: "absolute",
|
|
415
1437
|
zIndex: 9999,
|
|
416
1438
|
marginTop: safeAreaTop,
|
|
417
|
-
paddingRight:
|
|
1439
|
+
paddingRight: import_react_native34.Platform.OS === "ios" ? 10 : 8
|
|
418
1440
|
},
|
|
419
1441
|
pointerEvents: "box-none",
|
|
420
1442
|
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(HeaderRight, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
421
|
-
|
|
1443
|
+
import_react_native34.TouchableOpacity,
|
|
422
1444
|
{
|
|
423
1445
|
hitSlop: { left: 8, right: 8 },
|
|
424
1446
|
accessibilityRole: "button",
|
|
425
1447
|
accessible: true,
|
|
426
1448
|
accessibilityLabel: "\uAC8C\uC784\uC885\uB8CC",
|
|
427
1449
|
style: {
|
|
428
|
-
padding:
|
|
1450
|
+
padding: import_react_native34.Platform.OS === "ios" ? 7 : 9
|
|
429
1451
|
},
|
|
430
1452
|
onPress: onClose,
|
|
431
1453
|
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native_svg.SvgXml, { xml: originXML, width: 30, height: 30 })
|
|
@@ -438,10 +1460,10 @@ function GameNavigationBar({ onClose }) {
|
|
|
438
1460
|
|
|
439
1461
|
// src/components/GameWebView.tsx
|
|
440
1462
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
441
|
-
var GameWebView = (0,
|
|
442
|
-
const { openConfirm } = (0,
|
|
1463
|
+
var GameWebView = (0, import_react4.forwardRef)(function GameWebView2(props, ref) {
|
|
1464
|
+
const { openConfirm } = (0, import_react_native36.useDialog)();
|
|
443
1465
|
const { brandDisplayName } = getAppsInTossGlobals();
|
|
444
|
-
const handleClose = (0,
|
|
1466
|
+
const handleClose = (0, import_react4.useCallback)(async () => {
|
|
445
1467
|
const isConfirmed = await openConfirm({
|
|
446
1468
|
title: `${(0, import_es_hangul.josa)(brandDisplayName, "\uC744/\uB97C")} \uC885\uB8CC\uD560\uAE4C\uC694?`,
|
|
447
1469
|
leftButton: "\uCDE8\uC18C",
|
|
@@ -449,50 +1471,36 @@ var GameWebView = (0, import_react2.forwardRef)(function GameWebView2(props, ref
|
|
|
449
1471
|
closeOnDimmerClick: true
|
|
450
1472
|
});
|
|
451
1473
|
if (isConfirmed) {
|
|
452
|
-
(0,
|
|
1474
|
+
(0, import_react_native35.closeView)();
|
|
453
1475
|
}
|
|
454
1476
|
}, [brandDisplayName, openConfirm]);
|
|
455
|
-
(0,
|
|
456
|
-
if (
|
|
457
|
-
|
|
1477
|
+
(0, import_react4.useEffect)(() => {
|
|
1478
|
+
if (import_react_native37.Platform.OS === "ios") {
|
|
1479
|
+
setIosSwipeGestureEnabled({ isEnabled: false });
|
|
458
1480
|
return () => {
|
|
459
|
-
|
|
1481
|
+
setIosSwipeGestureEnabled({ isEnabled: true });
|
|
460
1482
|
};
|
|
461
1483
|
}
|
|
462
1484
|
return;
|
|
463
1485
|
}, []);
|
|
464
|
-
(0,
|
|
1486
|
+
(0, import_react4.useEffect)(() => {
|
|
465
1487
|
const backHandler = () => {
|
|
466
1488
|
handleClose();
|
|
467
1489
|
return true;
|
|
468
1490
|
};
|
|
469
|
-
|
|
1491
|
+
import_react_native37.BackHandler.addEventListener("hardwareBackPress", backHandler);
|
|
470
1492
|
return () => {
|
|
471
|
-
|
|
1493
|
+
import_react_native37.BackHandler.removeEventListener("hardwareBackPress", backHandler);
|
|
472
1494
|
};
|
|
473
1495
|
}, [handleClose]);
|
|
474
1496
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
475
1497
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(GameNavigationBar, { onClose: handleClose }),
|
|
476
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
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 }) })
|
|
477
1499
|
] });
|
|
478
1500
|
});
|
|
479
1501
|
|
|
480
|
-
// src/async-bridges.ts
|
|
481
|
-
var async_bridges_exports = {};
|
|
482
|
-
__export(async_bridges_exports, {
|
|
483
|
-
appLogin: () => appLogin,
|
|
484
|
-
checkoutPayment: () => checkoutPayment,
|
|
485
|
-
executePayment: () => executePayment,
|
|
486
|
-
fetchAlbumPhotos: () => fetchAlbumPhotos,
|
|
487
|
-
fetchContacts: () => fetchContacts,
|
|
488
|
-
getClipboardText: () => getClipboardText,
|
|
489
|
-
getCurrentLocation: () => getCurrentLocation,
|
|
490
|
-
openCamera: () => openCamera,
|
|
491
|
-
setClipboardText: () => setClipboardText
|
|
492
|
-
});
|
|
493
|
-
|
|
494
1502
|
// src/bridge-handler/useBridgeHandler.tsx
|
|
495
|
-
var
|
|
1503
|
+
var import_react5 = require("react");
|
|
496
1504
|
function serializeError(error) {
|
|
497
1505
|
return JSON.stringify(error, (_, value) => {
|
|
498
1506
|
if (value instanceof Error) {
|
|
@@ -513,22 +1521,23 @@ function methodHandler({
|
|
|
513
1521
|
handlerMap,
|
|
514
1522
|
injectJavaScript
|
|
515
1523
|
}) {
|
|
516
|
-
const func =
|
|
517
|
-
const result = await handlerMap[functionName](...args2);
|
|
518
|
-
return result;
|
|
519
|
-
};
|
|
1524
|
+
const func = handlerMap[functionName];
|
|
520
1525
|
if (!func) {
|
|
521
1526
|
console.error(`${functionName} is not a function`);
|
|
522
1527
|
return;
|
|
523
1528
|
}
|
|
524
|
-
|
|
1529
|
+
const wrappedFunc = async (...args2) => {
|
|
1530
|
+
const result = await func(...args2);
|
|
1531
|
+
return result;
|
|
1532
|
+
};
|
|
1533
|
+
wrappedFunc(...args).then((result) => {
|
|
525
1534
|
injectJavaScript?.(`
|
|
526
|
-
window.
|
|
1535
|
+
window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/resolve/${eventId}', ${JSON.stringify(result, null, 0)});
|
|
527
1536
|
`);
|
|
528
1537
|
}).catch((error) => {
|
|
529
1538
|
const serializedError = serializeError(error);
|
|
530
1539
|
injectJavaScript?.(`
|
|
531
|
-
window.
|
|
1540
|
+
window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/reject/${eventId}', ${serializedError});
|
|
532
1541
|
`);
|
|
533
1542
|
});
|
|
534
1543
|
}
|
|
@@ -540,8 +1549,8 @@ function useBridgeHandler({
|
|
|
540
1549
|
eventListenerMap,
|
|
541
1550
|
injectedJavaScript: originalInjectedJavaScript
|
|
542
1551
|
}) {
|
|
543
|
-
const ref = (0,
|
|
544
|
-
const injectedJavaScript = (0,
|
|
1552
|
+
const ref = (0, import_react5.useRef)(null);
|
|
1553
|
+
const injectedJavaScript = (0, import_react5.useMemo)(
|
|
545
1554
|
() => [
|
|
546
1555
|
`window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(
|
|
547
1556
|
Object.entries(constantHandlerMap).reduce(
|
|
@@ -559,15 +1568,15 @@ function useBridgeHandler({
|
|
|
559
1568
|
);
|
|
560
1569
|
const createHandleOnEvent = (functionName, eventId) => (response) => {
|
|
561
1570
|
ref.current?.injectJavaScript(`
|
|
562
|
-
window.
|
|
1571
|
+
window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onEvent/${eventId}', ${JSON.stringify(response, null, 0)});
|
|
563
1572
|
`);
|
|
564
1573
|
};
|
|
565
1574
|
const createHandleOnError = (functionName, eventId) => (error) => {
|
|
566
1575
|
ref.current?.injectJavaScript(`
|
|
567
|
-
window.
|
|
1576
|
+
window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${JSON.stringify(error, null, 0)});
|
|
568
1577
|
`);
|
|
569
1578
|
};
|
|
570
|
-
const $onMessage = (0,
|
|
1579
|
+
const $onMessage = (0, import_react5.useCallback)(
|
|
571
1580
|
async (e) => {
|
|
572
1581
|
onMessage?.(e);
|
|
573
1582
|
const data = JSON.parse(e.nativeEvent.data);
|
|
@@ -617,37 +1626,67 @@ function useBridgeHandler({
|
|
|
617
1626
|
};
|
|
618
1627
|
}
|
|
619
1628
|
|
|
620
|
-
// src/
|
|
621
|
-
var
|
|
622
|
-
__export(constant_bridges_exports, {
|
|
623
|
-
getDeviceId: () => getDeviceId,
|
|
624
|
-
getOperationalEnvironment: () => getOperationalEnvironment,
|
|
625
|
-
getTossAppVersion: () => getTossAppVersion
|
|
626
|
-
});
|
|
1629
|
+
// src/utils/log.ts
|
|
1630
|
+
var import_react_native38 = require("@granite-js/react-native");
|
|
627
1631
|
|
|
628
|
-
// src/
|
|
629
|
-
var
|
|
630
|
-
|
|
1632
|
+
// src/utils/extractDateFromUUIDv7.ts
|
|
1633
|
+
var extractDateFromUUIDv7 = (uuid) => {
|
|
1634
|
+
const timestampHex = uuid.split("-").join("").slice(0, 12);
|
|
1635
|
+
const timestamp = Number.parseInt(timestampHex, 16);
|
|
1636
|
+
return new Date(timestamp);
|
|
631
1637
|
};
|
|
632
1638
|
|
|
633
|
-
// src/
|
|
634
|
-
var
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
1639
|
+
// src/utils/log.ts
|
|
1640
|
+
var getGroupId = (url) => {
|
|
1641
|
+
try {
|
|
1642
|
+
const urlObject = new URL(url);
|
|
1643
|
+
return {
|
|
1644
|
+
groupId: urlObject.pathname,
|
|
1645
|
+
search: urlObject.search.startsWith("?") ? urlObject.search.substring(1) : urlObject.search
|
|
1646
|
+
};
|
|
1647
|
+
} catch {
|
|
1648
|
+
return {
|
|
1649
|
+
groupId: "unknown",
|
|
1650
|
+
search: "unknown"
|
|
1651
|
+
};
|
|
1652
|
+
}
|
|
1653
|
+
};
|
|
1654
|
+
var getReferrer = () => {
|
|
1655
|
+
try {
|
|
1656
|
+
const referrer = new URL((0, import_react_native38.getSchemeUri)());
|
|
1657
|
+
return referrer.searchParams.get("referrer");
|
|
1658
|
+
} catch {
|
|
1659
|
+
return "";
|
|
1660
|
+
}
|
|
1661
|
+
};
|
|
1662
|
+
var trackScreen = (url) => {
|
|
1663
|
+
const { groupId, search } = getGroupId(url);
|
|
1664
|
+
const log = {
|
|
1665
|
+
log_type: "screen",
|
|
1666
|
+
log_name: `${groupId}::screen`,
|
|
1667
|
+
params: {
|
|
1668
|
+
search,
|
|
1669
|
+
referrer: getReferrer(),
|
|
1670
|
+
deployment_id: env.getDeploymentId(),
|
|
1671
|
+
deployment_timestamp: extractDateFromUUIDv7(env.getDeploymentId()).getTime()
|
|
1672
|
+
}
|
|
1673
|
+
};
|
|
1674
|
+
return eventLog(log);
|
|
1675
|
+
};
|
|
638
1676
|
|
|
639
1677
|
// src/components/WebView.tsx
|
|
640
1678
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
641
1679
|
var appsInTossGlobals = getAppsInTossGlobals();
|
|
1680
|
+
var operationalEnvironment = getOperationalEnvironment2();
|
|
642
1681
|
var TYPES = ["partner", "external", "game"];
|
|
643
1682
|
var WEBVIEW_TYPES = {
|
|
644
|
-
partner:
|
|
645
|
-
external:
|
|
1683
|
+
partner: import_react_native40.PartnerWebViewScreen,
|
|
1684
|
+
external: import_react_native40.ExternalWebViewScreen,
|
|
646
1685
|
game: GameWebView
|
|
647
1686
|
};
|
|
648
1687
|
function mergeSchemeQueryParamsInto(url) {
|
|
649
1688
|
const baseUrl = new URL(url);
|
|
650
|
-
const schemeUrl = new URL((0,
|
|
1689
|
+
const schemeUrl = new URL((0, import_react_native39.getSchemeUri)());
|
|
651
1690
|
baseUrl.pathname = schemeUrl.pathname;
|
|
652
1691
|
for (const [key, value] of schemeUrl.searchParams.entries()) {
|
|
653
1692
|
baseUrl.searchParams.set(key, value);
|
|
@@ -671,8 +1710,8 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
671
1710
|
if (!TYPES.includes(type)) {
|
|
672
1711
|
throw new Error(`Invalid WebView type: '${type}'`);
|
|
673
1712
|
}
|
|
674
|
-
const
|
|
675
|
-
const uri = (0,
|
|
1713
|
+
const graniteEvent = (0, import_react_native39.useGraniteEvent)();
|
|
1714
|
+
const uri = (0, import_react6.useMemo)(() => getWebViewUri(local), [local]);
|
|
676
1715
|
const top = (0, import_private.useSafeAreaTop)();
|
|
677
1716
|
const bottom = (0, import_private.useSafeAreaBottom)();
|
|
678
1717
|
const handler = useBridgeHandler({
|
|
@@ -680,20 +1719,32 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
680
1719
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
681
1720
|
eventListenerMap: {
|
|
682
1721
|
...event_bridges_exports,
|
|
683
|
-
backEvent: ({ onEvent, onError, options }) =>
|
|
1722
|
+
backEvent: ({ onEvent, onError, options }) => graniteEvent.addEventListener("backEvent", { onEvent, onError, options }),
|
|
1723
|
+
entryMessageExited: ({ onEvent, onError }) => appsInTossEvent.addEventListener("entryMessageExited", { onEvent, onError }),
|
|
1724
|
+
updateLocationEvent: ({ onEvent, onError, options }) => appsInTossEvent.addEventListener("updateLocationEvent", { onEvent, onError, options }),
|
|
1725
|
+
/** @internal */
|
|
1726
|
+
appBridgeCallbackEvent: ({ onEvent, onError, options }) => appsInTossEvent.addEventListener("appBridgeCallbackEvent", { onEvent, onError, options }),
|
|
1727
|
+
/** AdMob */
|
|
1728
|
+
loadAdMobInterstitialAd: GoogleAdMob.loadAdMobInterstitialAd,
|
|
1729
|
+
showAdMobInterstitialAd: GoogleAdMob.showAdMobInterstitialAd,
|
|
1730
|
+
loadAdMobRewardedAd: GoogleAdMob.loadAdMobRewardedAd,
|
|
1731
|
+
showAdMobRewardedAd: GoogleAdMob.showAdMobRewardedAd
|
|
684
1732
|
},
|
|
685
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
686
|
-
// @ts-expect-error
|
|
687
1733
|
constantHandlerMap: {
|
|
688
|
-
...
|
|
1734
|
+
...graniteConstantBridges,
|
|
689
1735
|
...constant_bridges_exports,
|
|
690
1736
|
getSafeAreaTop: () => top,
|
|
691
|
-
getSafeAreaBottom: () => bottom
|
|
1737
|
+
getSafeAreaBottom: () => bottom,
|
|
1738
|
+
/** AdMob */
|
|
1739
|
+
loadAdMobInterstitialAd_isSupported: GoogleAdMob.loadAdMobInterstitialAd.isSupported,
|
|
1740
|
+
showAdMobInterstitialAd_isSupported: GoogleAdMob.showAdMobInterstitialAd.isSupported,
|
|
1741
|
+
loadAdMobRewardedAd_isSupported: GoogleAdMob.loadAdMobRewardedAd.isSupported,
|
|
1742
|
+
showAdMobRewardedAd_isSupported: GoogleAdMob.showAdMobRewardedAd.isSupported,
|
|
1743
|
+
/** env */
|
|
1744
|
+
getDeploymentId: env.getDeploymentId
|
|
692
1745
|
},
|
|
693
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
694
|
-
// @ts-expect-error
|
|
695
1746
|
asyncHandlerMap: {
|
|
696
|
-
...
|
|
1747
|
+
...graniteAsyncBridges,
|
|
697
1748
|
...async_bridges_exports,
|
|
698
1749
|
/** internal */
|
|
699
1750
|
openPermissionDialog: AppsInTossModule.openPermissionDialog,
|
|
@@ -704,7 +1755,7 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
704
1755
|
clearItems: Storage.clearItems
|
|
705
1756
|
}
|
|
706
1757
|
});
|
|
707
|
-
const baseProps = (0,
|
|
1758
|
+
const baseProps = (0, import_react6.useMemo)(() => {
|
|
708
1759
|
switch (type) {
|
|
709
1760
|
case "partner": {
|
|
710
1761
|
const headerOnlyProp = {
|
|
@@ -734,10 +1785,12 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
734
1785
|
}
|
|
735
1786
|
}, [type, props]);
|
|
736
1787
|
const BaseWebView = WEBVIEW_TYPES[type];
|
|
737
|
-
const
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
1788
|
+
const webViewDebuggingEnabled = operationalEnvironment === "sandbox";
|
|
1789
|
+
const handleNavigationStateChange = (0, import_react6.useCallback)((event) => {
|
|
1790
|
+
if (event.url) {
|
|
1791
|
+
trackScreen(event.url);
|
|
1792
|
+
}
|
|
1793
|
+
}, []);
|
|
741
1794
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
742
1795
|
BaseWebView,
|
|
743
1796
|
{
|
|
@@ -746,9 +1799,10 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
746
1799
|
...baseProps,
|
|
747
1800
|
source: { uri },
|
|
748
1801
|
sharedCookiesEnabled: true,
|
|
749
|
-
webviewDebuggingEnabled,
|
|
1802
|
+
webviewDebuggingEnabled: webViewDebuggingEnabled,
|
|
750
1803
|
thirdPartyCookiesEnabled: true,
|
|
751
1804
|
onMessage: handler.onMessage,
|
|
1805
|
+
onNavigationStateChange: handleNavigationStateChange,
|
|
752
1806
|
injectedJavaScript: handler.injectedJavaScript,
|
|
753
1807
|
injectedJavaScriptBeforeContentLoaded: handler.injectedJavaScript
|
|
754
1808
|
}
|
|
@@ -762,12 +1816,12 @@ function ensureValue(value, name) {
|
|
|
762
1816
|
}
|
|
763
1817
|
|
|
764
1818
|
// src/hooks/useGeolocation.ts
|
|
765
|
-
var
|
|
766
|
-
var
|
|
1819
|
+
var import_react_native41 = require("@granite-js/react-native");
|
|
1820
|
+
var import_react7 = require("react");
|
|
767
1821
|
function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
|
|
768
|
-
const isVisible = (0,
|
|
769
|
-
const [location, setLocation] = (0,
|
|
770
|
-
(0,
|
|
1822
|
+
const isVisible = (0, import_react_native41.useVisibility)();
|
|
1823
|
+
const [location, setLocation] = (0, import_react7.useState)(null);
|
|
1824
|
+
(0, import_react7.useEffect)(() => {
|
|
771
1825
|
if (!isVisible) {
|
|
772
1826
|
return;
|
|
773
1827
|
}
|
|
@@ -784,34 +1838,57 @@ function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
|
|
|
784
1838
|
return location;
|
|
785
1839
|
}
|
|
786
1840
|
|
|
787
|
-
// src/
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
return Accuracy3;
|
|
796
|
-
})(Accuracy2 || {});
|
|
1841
|
+
// src/index.ts
|
|
1842
|
+
__reExport(src_exports, require("@apps-in-toss/analytics"), module.exports);
|
|
1843
|
+
var Analytics2 = {
|
|
1844
|
+
init: import_analytics2.Analytics.init,
|
|
1845
|
+
Impression: import_analytics2.Analytics.Impression,
|
|
1846
|
+
Press: import_analytics2.Analytics.Press,
|
|
1847
|
+
Area: import_analytics2.Analytics.Area
|
|
1848
|
+
};
|
|
797
1849
|
// Annotate the CommonJS export names for ESM import in node:
|
|
798
1850
|
0 && (module.exports = {
|
|
799
1851
|
Accuracy,
|
|
1852
|
+
Analytics,
|
|
800
1853
|
AppsInToss,
|
|
1854
|
+
AppsInTossModule,
|
|
1855
|
+
BedrockCoreModule,
|
|
1856
|
+
BedrockModule,
|
|
1857
|
+
GoogleAdMob,
|
|
1858
|
+
INTERNAL__AppsInTossModule,
|
|
1859
|
+
INTERNAL__module,
|
|
801
1860
|
Storage,
|
|
802
1861
|
TossPay,
|
|
803
1862
|
WebView,
|
|
804
1863
|
appLogin,
|
|
1864
|
+
appsInTossEvent,
|
|
1865
|
+
closeView,
|
|
805
1866
|
env,
|
|
1867
|
+
eventLog,
|
|
806
1868
|
fetchAlbumPhotos,
|
|
807
1869
|
fetchContacts,
|
|
1870
|
+
generateHapticFeedback,
|
|
808
1871
|
getClipboardText,
|
|
809
1872
|
getCurrentLocation,
|
|
810
1873
|
getDeviceId,
|
|
1874
|
+
getLocale,
|
|
1875
|
+
getNetworkStatus,
|
|
811
1876
|
getOperationalEnvironment,
|
|
1877
|
+
getPlatformOS,
|
|
1878
|
+
getSchemeUri,
|
|
812
1879
|
getTossAppVersion,
|
|
1880
|
+
getTossShareLink,
|
|
1881
|
+
isMinVersionSupported,
|
|
813
1882
|
openCamera,
|
|
1883
|
+
openURL,
|
|
1884
|
+
saveBase64Data,
|
|
814
1885
|
setClipboardText,
|
|
1886
|
+
setDeviceOrientation,
|
|
1887
|
+
setIosSwipeGestureEnabled,
|
|
1888
|
+
setScreenAwakeMode,
|
|
1889
|
+
setSecureScreen,
|
|
1890
|
+
share,
|
|
815
1891
|
startUpdateLocation,
|
|
816
|
-
useGeolocation
|
|
1892
|
+
useGeolocation,
|
|
1893
|
+
...require("@apps-in-toss/analytics")
|
|
817
1894
|
});
|