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