@apps-in-toss/web-bridge 2.6.1 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge.d.ts +1 -0
- package/dist/bridge.js +1 -1
- package/dist/getConsentedUserData.d.ts +68 -0
- package/package.json +4 -4
package/dist/bridge.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from './grantPromotionReward';
|
|
|
34
34
|
export * from './grantPromotionRewardForGame';
|
|
35
35
|
export * from './getIsTossLoginIntegratedService';
|
|
36
36
|
export * from './getServerTime';
|
|
37
|
+
export * from './getConsentedUserData';
|
|
37
38
|
export * from './requestReview';
|
|
38
39
|
export * from './getLocale';
|
|
39
40
|
export * from './getSchemeUri';
|
package/dist/bridge.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createAsyncBridge,createConstantBridge,createEventBridge}from"@apps-in-toss/bridge-core";var createEvents=function(){return{emit:function emit(event,args){for(var callbacks=this.events[event]||[],i=0,length=callbacks.length;i<length;i++){callbacks[i](args)}},events:{},on:function on(event,cb){var _this=this;var _this_events,_event;((_this_events=this.events)[_event=event]||(_this_events[_event]=[])).push(cb);return function(){var _this_events_event;_this.events[event]=(_this_events_event=_this.events[event])===null||_this_events_event===void 0?void 0:_this_events_event.filter(function(i){return cb!==i})}}}};if(typeof window!=="undefined"){window.__GRANITE_NATIVE_EMITTER=createEvents()}export var closeView=createAsyncBridge("closeView");export var generateHapticFeedback=createAsyncBridge("generateHapticFeedback");export var share=createAsyncBridge("share");export var setSecureScreen=createAsyncBridge("setSecureScreen");export var setScreenAwakeMode=createAsyncBridge("setScreenAwakeMode");export var getNetworkStatus=createAsyncBridge("getNetworkStatus");export var setIosSwipeGestureEnabled=createAsyncBridge("setIosSwipeGestureEnabled");export var openURL=createAsyncBridge("openURL");export var openPermissionDialog=createAsyncBridge("openPermissionDialog");export var getPermission=createAsyncBridge("getPermission");export var requestPermission=createAsyncBridge("requestPermission");export var setClipboardText=createConstantBridge("setClipboardText");export var getClipboardText=createConstantBridge("getClipboardText");export var fetchContacts=createConstantBridge("fetchContacts");export var fetchAlbumPhotos=createConstantBridge("fetchAlbumPhotos");export var getCurrentLocation=createConstantBridge("getCurrentLocation");export var openCamera=createConstantBridge("openCamera");export var appLogin=createAsyncBridge("appLogin");export var eventLog=createAsyncBridge("eventLog");export var getTossShareLink=createAsyncBridge("getTossShareLink");export var setDeviceOrientation=createAsyncBridge("setDeviceOrientation");export var checkoutPayment=createAsyncBridge("checkoutPayment");export var requestTossPayPaysBilling=createAsyncBridge("requestTossPayPaysBilling");export var saveBase64Data=createAsyncBridge("saveBase64Data");export var openPDFViewer=createAsyncBridge("openPDFViewer");export var fetchAlbumItems=createAsyncBridge("fetchAlbumItems");export var appsInTossSignTossCert=createAsyncBridge("appsInTossSignTossCert");export var getGameCenterGameProfile=createAsyncBridge("getGameCenterGameProfile");export var openGameCenterLeaderboard=createAsyncBridge("openGameCenterLeaderboard");export var submitGameCenterLeaderBoardScore=createAsyncBridge("submitGameCenterLeaderBoardScore");export var getAnonymousKey=createAsyncBridge("getAnonymousKey");export var getUserKeyForGame=createAsyncBridge("getUserKeyForGame");export var grantPromotionReward=createAsyncBridge("grantPromotionReward");export var grantPromotionRewardForGame=createAsyncBridge("grantPromotionRewardForGame");export var getIsTossLoginIntegratedService=createAsyncBridge("getIsTossLoginIntegratedService");export var getServerTime=createAsyncBridge("getServerTime");export var requestReview=createAsyncBridge("requestReview");export var getLocale=createConstantBridge("getLocale");export var getSchemeUri=createConstantBridge("getSchemeUri");export var getPlatformOS=createConstantBridge("getPlatformOS");export var getOperationalEnvironment=createConstantBridge("getOperationalEnvironment");export var getTossAppVersion=createConstantBridge("getTossAppVersion");export var getDeviceId=createConstantBridge("getDeviceId");export var getGroupId=createConstantBridge("getGroupId");export var contactsViral=createEventBridge("contactsViral");export var startUpdateLocation=createEventBridge("startUpdateLocation");export var onVisibilityChangedByTransparentServiceWeb=createEventBridge("onVisibilityChangedByTransparentServiceWeb");
|
|
1
|
+
import{createAsyncBridge,createConstantBridge,createEventBridge}from"@apps-in-toss/bridge-core";var createEvents=function(){return{emit:function emit(event,args){for(var callbacks=this.events[event]||[],i=0,length=callbacks.length;i<length;i++){callbacks[i](args)}},events:{},on:function on(event,cb){var _this=this;var _this_events,_event;((_this_events=this.events)[_event=event]||(_this_events[_event]=[])).push(cb);return function(){var _this_events_event;_this.events[event]=(_this_events_event=_this.events[event])===null||_this_events_event===void 0?void 0:_this_events_event.filter(function(i){return cb!==i})}}}};if(typeof window!=="undefined"){window.__GRANITE_NATIVE_EMITTER=createEvents()}export var closeView=createAsyncBridge("closeView");export var generateHapticFeedback=createAsyncBridge("generateHapticFeedback");export var share=createAsyncBridge("share");export var setSecureScreen=createAsyncBridge("setSecureScreen");export var setScreenAwakeMode=createAsyncBridge("setScreenAwakeMode");export var getNetworkStatus=createAsyncBridge("getNetworkStatus");export var setIosSwipeGestureEnabled=createAsyncBridge("setIosSwipeGestureEnabled");export var openURL=createAsyncBridge("openURL");export var openPermissionDialog=createAsyncBridge("openPermissionDialog");export var getPermission=createAsyncBridge("getPermission");export var requestPermission=createAsyncBridge("requestPermission");export var setClipboardText=createConstantBridge("setClipboardText");export var getClipboardText=createConstantBridge("getClipboardText");export var fetchContacts=createConstantBridge("fetchContacts");export var fetchAlbumPhotos=createConstantBridge("fetchAlbumPhotos");export var getCurrentLocation=createConstantBridge("getCurrentLocation");export var openCamera=createConstantBridge("openCamera");export var appLogin=createAsyncBridge("appLogin");export var eventLog=createAsyncBridge("eventLog");export var getTossShareLink=createAsyncBridge("getTossShareLink");export var setDeviceOrientation=createAsyncBridge("setDeviceOrientation");export var checkoutPayment=createAsyncBridge("checkoutPayment");export var requestTossPayPaysBilling=createAsyncBridge("requestTossPayPaysBilling");export var saveBase64Data=createAsyncBridge("saveBase64Data");export var openPDFViewer=createAsyncBridge("openPDFViewer");export var fetchAlbumItems=createAsyncBridge("fetchAlbumItems");export var appsInTossSignTossCert=createAsyncBridge("appsInTossSignTossCert");export var getGameCenterGameProfile=createAsyncBridge("getGameCenterGameProfile");export var openGameCenterLeaderboard=createAsyncBridge("openGameCenterLeaderboard");export var submitGameCenterLeaderBoardScore=createAsyncBridge("submitGameCenterLeaderBoardScore");export var getAnonymousKey=createAsyncBridge("getAnonymousKey");export var getUserKeyForGame=createAsyncBridge("getUserKeyForGame");export var grantPromotionReward=createAsyncBridge("grantPromotionReward");export var grantPromotionRewardForGame=createAsyncBridge("grantPromotionRewardForGame");export var getIsTossLoginIntegratedService=createAsyncBridge("getIsTossLoginIntegratedService");export var getServerTime=createAsyncBridge("getServerTime");export var getConsentedUserData=createAsyncBridge("getConsentedUserData");export var requestReview=createAsyncBridge("requestReview");export var getLocale=createConstantBridge("getLocale");export var getSchemeUri=createConstantBridge("getSchemeUri");export var getPlatformOS=createConstantBridge("getPlatformOS");export var getOperationalEnvironment=createConstantBridge("getOperationalEnvironment");export var getTossAppVersion=createConstantBridge("getTossAppVersion");export var getDeviceId=createConstantBridge("getDeviceId");export var getGroupId=createConstantBridge("getGroupId");export var contactsViral=createEventBridge("contactsViral");export var startUpdateLocation=createEventBridge("startUpdateLocation");export var onVisibilityChangedByTransparentServiceWeb=createEventBridge("onVisibilityChangedByTransparentServiceWeb");
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @category 사용자 데이터
|
|
4
|
+
* @name GetConsentedUserDataErrorCode
|
|
5
|
+
* @description `getConsentedUserData` 호출이 실패했을 때 반환될 수 있는 에러 코드예요.
|
|
6
|
+
*/
|
|
7
|
+
export type GetConsentedUserDataErrorCode = "USER_DECLINED" | "UNAVAILABLE" | "TERMS_NOT_SET" | "INVALID_REQUEST" | "CANCELED" | "CONSENTED_USER_DATA_AGREEMENT_FAILED" | "CONSENTED_USER_DATA_INVALID_DATA";
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
* @category 사용자 데이터
|
|
11
|
+
* @name GetConsentedUserDataOptions
|
|
12
|
+
* @description 사용자 동의 기반 데이터를 요청할 때 사용하는 옵션이에요.
|
|
13
|
+
* @property {string} consentedUserDataKey - 서버가 사용자 데이터 제공 동의문과 데이터 묶음을 찾을 때 쓰는 key예요. 예: `cud_delivery`.
|
|
14
|
+
* @property {boolean} [shouldRequestAgreementWhenUserDeclined=false] - `USER_DECLINED` 상태에서도 다시 약관 웹뷰를 띄울지 여부예요. 기본값은 `false`예요.
|
|
15
|
+
*/
|
|
16
|
+
export interface GetConsentedUserDataOptions {
|
|
17
|
+
consentedUserDataKey: string;
|
|
18
|
+
shouldRequestAgreementWhenUserDeclined?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export type ConsentedUserDataKey = "USER_NAME" | "USER_GENDER" | "USER_NATIONALITY" | "USER_BIRTHDAY" | "USER_PHONE" | "USER_ADDRESS" | "USER_EMAIL" | "USER_CONSUMPTION_HISTORY";
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
* @category 사용자 데이터
|
|
24
|
+
* @name ConsentedUserData
|
|
25
|
+
* @description 사용자가 동의한 후 서버에서 제공하는 데이터예요. 요청한 항목에 해당하는 키만 포함될 수 있어요.
|
|
26
|
+
*/
|
|
27
|
+
export type ConsentedUserData = Partial<Record<ConsentedUserDataKey, string>>;
|
|
28
|
+
/**
|
|
29
|
+
* @public
|
|
30
|
+
* @category 사용자 데이터
|
|
31
|
+
* @name getConsentedUserData
|
|
32
|
+
* @description
|
|
33
|
+
* 사용자 동의 기반 데이터를 요청해요.
|
|
34
|
+
* 동의가 필요한 경우 약관 웹뷰를 띄우고, 동의가 완료되면 서버에서 조회한 데이터를 반환해요.
|
|
35
|
+
*
|
|
36
|
+
* @param {GetConsentedUserDataOptions} options - 동의 데이터 요청 옵션이에요.
|
|
37
|
+
* @returns {Promise<ConsentedUserData | undefined>} 서버에서 제공하는 사용자 데이터를 반환해요. 토스앱 버전이 `5.264.0` 미만이면 `undefined`를 반환해요.
|
|
38
|
+
*
|
|
39
|
+
* @throws
|
|
40
|
+
* - {code: `USER_DECLINED`}: 사용자가 명시적으로 거부했고 재요청 옵션이 없거나, 약관 웹뷰에서 동의를 거부한 경우예요.
|
|
41
|
+
* - {code: `UNAVAILABLE`}: 서버가 사용자 동의 여부를 판단할 수 없는 경우예요.
|
|
42
|
+
* - {code: `TERMS_NOT_SET`}: 미니앱에 사용자 데이터 제공 동의문이 설정되지 않은 경우예요.
|
|
43
|
+
* - {code: `INVALID_REQUEST`}: `consentedUserDataKey`가 비어 있거나, `termsUrl`이 없거나, HTTPS 회사 도메인이 아닌 경우예요.
|
|
44
|
+
* - {code: `CANCELED`}: 약관 웹뷰가 결과를 보내기 전에 닫힌 경우예요.
|
|
45
|
+
* - {code: `CONSENTED_USER_DATA_AGREEMENT_FAILED`}: 약관 웹뷰 처리 중 오류가 발생한 경우예요.
|
|
46
|
+
* - {code: `CONSENTED_USER_DATA_INVALID_DATA`}: `PROVIDED`인데 `data`가 없거나, 동의 성공 후 재조회 결과가 `PROVIDED`가 아닌 경우예요.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* import { getConsentedUserData } from '@apps-in-toss/web-framework';
|
|
51
|
+
*
|
|
52
|
+
* async function fetchDeliveryUserData() {
|
|
53
|
+
* try {
|
|
54
|
+
* const data = await getConsentedUserData({
|
|
55
|
+
* consentedUserDataKey: 'cud_delivery',
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* console.log('사용자 이름:', data?.USER_NAME);
|
|
59
|
+
* console.log('전화번호:', data?.USER_PHONE);
|
|
60
|
+
* } catch (error) {
|
|
61
|
+
* console.error('동의 데이터 조회 실패:', error);
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function getConsentedUserData(options: GetConsentedUserDataOptions): Promise<Partial<Record<ConsentedUserDataKey, string>> | undefined>;
|
|
67
|
+
|
|
68
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/web-bridge",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.7.0",
|
|
5
5
|
"description": "Web Bridge for Apps In Toss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"typecheck": "tsc --noEmit",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@apps-in-toss/types": "2.
|
|
30
|
+
"@apps-in-toss/types": "2.7.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@apps-in-toss/bridge-core": "2.
|
|
34
|
-
"@apps-in-toss/native-modules": "^2.
|
|
33
|
+
"@apps-in-toss/bridge-core": "2.7.0",
|
|
34
|
+
"@apps-in-toss/native-modules": "^2.7.0",
|
|
35
35
|
"@swc/core": "^1.12.7",
|
|
36
36
|
"picocolors": "^1.1.1",
|
|
37
37
|
"ts-morph": "^26.0.0",
|