@nexus-cross/crossx-sdk-core 1.3.5 → 1.3.7
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/__tests__/services/TokenMemoryStore.test.d.ts +2 -0
- package/dist/__tests__/services/TokenMemoryStore.test.d.ts.map +1 -0
- package/dist/__tests__/utils/parseOAuthDeeplink.test.d.ts +4 -1
- package/dist/__tests__/utils/parseOAuthDeeplink.test.d.ts.map +1 -1
- package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts +16 -1
- package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts.map +1 -1
- package/dist/core/constants.d.ts +2 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/ports/WalletProviderPort.d.ts +10 -0
- package/dist/core/ports/WalletProviderPort.d.ts.map +1 -1
- package/dist/core/services/TokenMemoryStore.d.ts +7 -0
- package/dist/core/services/TokenMemoryStore.d.ts.map +1 -1
- package/dist/core/usecases/SignInUseCase.d.ts +9 -0
- package/dist/core/usecases/SignInUseCase.d.ts.map +1 -1
- package/dist/core/utils/parseOAuthDeeplink.d.ts +12 -5
- package/dist/core/utils/parseOAuthDeeplink.d.ts.map +1 -1
- package/dist/crossx.global +37 -37
- package/dist/index.cjs +36 -36
- package/dist/index.js +560 -496
- package/dist/sdk/CROSSxSDK.d.ts.map +1 -1
- package/dist/sdk/factory.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenMemoryStore.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/services/TokenMemoryStore.test.ts"],"names":[],"mappings":""}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 실제 OAuth deeplink 데이터로 파싱·추출을 검증합니다.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* 지원 형식:
|
|
7
|
+
* 1. (Legacy) Base64( encodeURIComponent( JSON ) ) — `data` 파라미터
|
|
8
|
+
* 2. (New) encodeURIComponent( JSON ) — `crossx_oauth_result` 파라미터
|
|
7
9
|
*
|
|
8
10
|
* 검증 항목:
|
|
9
11
|
* 1. Google deeplink 파싱 (accessToken === idToken, tokenType/expiresIn/scope 포함)
|
|
@@ -12,6 +14,7 @@
|
|
|
12
14
|
* 4. Firebase JWT payload 에서 sign_in_provider, identities 추출
|
|
13
15
|
* 5. Apple ID Token payload 에서 apple-specific 필드 검증
|
|
14
16
|
* 6. 에러 케이스 (잘못된 base64, 누락 필드 등)
|
|
17
|
+
* 7. 새 형식 (crossx_oauth_result) URL 및 직접 전달 파싱
|
|
15
18
|
*/
|
|
16
19
|
export {};
|
|
17
20
|
//# sourceMappingURL=parseOAuthDeeplink.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseOAuthDeeplink.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/parseOAuthDeeplink.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"parseOAuthDeeplink.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/parseOAuthDeeplink.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -20,13 +20,28 @@ export declare class RemoteWalletProviderAdapter implements WalletProviderPort {
|
|
|
20
20
|
private readonly pinStore;
|
|
21
21
|
/** Gateway -10002 발생 시 호출할 강제 로그아웃 콜백 */
|
|
22
22
|
private _onUnauthorized?;
|
|
23
|
+
/** 토큰 만료 시 자동 갱신 콜백 (SDK가 등록) */
|
|
24
|
+
private _onTokenRefresh?;
|
|
25
|
+
/** 토큰 갱신 진행 중 Promise — 동시 호출 deduplicate */
|
|
26
|
+
private _refreshPromise;
|
|
23
27
|
/** checkWallet 결과 1회용 캐시 — getOrCreateWallet에서 소비 후 null로 초기화 */
|
|
24
28
|
private _walletStatusCache;
|
|
25
29
|
constructor(config: RemoteWalletProviderConfig, storage: StoragePort, transport: TransportPort, tokenStore: TokenMemoryStore, pinStore?: PinMemoryStore);
|
|
26
30
|
setOnUnauthorized(callback: () => void): void;
|
|
31
|
+
setTokenRefresher(refresher: () => Promise<boolean>): void;
|
|
27
32
|
private getPin;
|
|
28
33
|
private get baseUrl();
|
|
29
|
-
|
|
34
|
+
/**
|
|
35
|
+
* 유효한 access_token을 확보합니다.
|
|
36
|
+
*
|
|
37
|
+
* 1. 토큰이 있고 만료 임박하지 않으면 즉시 반환
|
|
38
|
+
* 2. 만료 임박/만료 시 → 자동 갱신 시도 (동시 호출 deduplicate)
|
|
39
|
+
* 3. 갱신 실패 시 기존 토큰이라도 있으면 반환 (서버가 최종 판단)
|
|
40
|
+
* 4. 토큰 자체가 없으면 AUTH_NOT_AUTHENTICATED throw
|
|
41
|
+
*/
|
|
42
|
+
private ensureValidToken;
|
|
43
|
+
/** 동시 갱신 요청을 단일 Promise로 합칩니다. */
|
|
44
|
+
private deduplicatedRefresh;
|
|
30
45
|
private request;
|
|
31
46
|
/**
|
|
32
47
|
* GET /mnemonic/check — 지갑 존재 여부 확인 (비밀번호 불필요)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/RemoteWalletProviderAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"RemoteWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/RemoteWalletProviderAdapter.ts"],"names":[],"mappings":"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"}
|
package/dist/core/constants.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export declare const ECDSA_SIGNATURE_HEX_LENGTH = 130;
|
|
|
20
20
|
export declare const WEI_DISPLAY_DECIMALS = 6;
|
|
21
21
|
/** ETH 기본 소수점 자릿수 */
|
|
22
22
|
export declare const ETH_DECIMALS = 18;
|
|
23
|
+
/** Gateway 요청 전 토큰 선제 갱신 여유 시간 (ms) — 만료 30초 전부터 갱신 시도 */
|
|
24
|
+
export declare const TOKEN_REFRESH_BUFFER_MS = 30000;
|
|
23
25
|
/** 체인 레지스트리 API 성공 시 캐시 유효 기간 (5분) */
|
|
24
26
|
export declare const CHAIN_CACHE_TTL_MS: number;
|
|
25
27
|
/** 체인 레지스트리 API 실패(fallback) 후 재시도 간격 (30초) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,4BAA4B;AAC5B,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,+BAA+B;AAC/B,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAItD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAI9C,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,qBAAqB;AACrB,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,sCAAsC;AACtC,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,QAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,4BAA4B;AAC5B,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,+BAA+B;AAC/B,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAItD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAI9C,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,qBAAqB;AACrB,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,sCAAsC;AACtC,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,QAAY,CAAC"}
|
|
@@ -109,6 +109,16 @@ export interface WalletProviderPort {
|
|
|
109
109
|
* 어댑터가 이 기능을 지원하지 않아도 동작에는 영향이 없습니다.
|
|
110
110
|
*/
|
|
111
111
|
setOnUnauthorized?(callback: () => void): void;
|
|
112
|
+
/**
|
|
113
|
+
* 토큰 자동 갱신 콜백을 등록합니다.
|
|
114
|
+
*
|
|
115
|
+
* Gateway 요청 전 토큰이 만료되었거나 만료 임박 시, 어댑터가 이 콜백을 호출하여
|
|
116
|
+
* access_token을 갱신합니다. SDK는 SignInUseCase.refreshAccessToken()을
|
|
117
|
+
* 이 콜백에 바인딩합니다.
|
|
118
|
+
*
|
|
119
|
+
* @param refresher 토큰 갱신 함수. 성공 시 true, 실패 시 false 반환.
|
|
120
|
+
*/
|
|
121
|
+
setTokenRefresher?(refresher: () => Promise<boolean>): void;
|
|
112
122
|
}
|
|
113
123
|
/**
|
|
114
124
|
* 지갑 데이터
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/WalletProviderPort.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/WalletProviderPort.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,12 @@ export declare class TokenMemoryStore {
|
|
|
14
14
|
get(): string | null;
|
|
15
15
|
clear(): void;
|
|
16
16
|
has(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 토큰이 곧 만료되는지 확인합니다.
|
|
19
|
+
* 토큰이 없거나 `exp`가 설정되지 않은 경우에도 true를 반환합니다.
|
|
20
|
+
*
|
|
21
|
+
* @param bufferMs 만료 전 여유 시간 (ms). 기본 30초.
|
|
22
|
+
*/
|
|
23
|
+
isExpiringSoon(bufferMs?: number): boolean;
|
|
17
24
|
}
|
|
18
25
|
//# sourceMappingURL=TokenMemoryStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/core/services/TokenMemoryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAK;IAEvB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUxB,GAAG,IAAI,MAAM,GAAG,IAAI;IAQpB,KAAK,IAAI,IAAI;IAKb,GAAG,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"TokenMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/core/services/TokenMemoryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAK;IAEvB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUxB,GAAG,IAAI,MAAM,GAAG,IAAI;IAQpB,KAAK,IAAI,IAAI;IAKb,GAAG,IAAI,OAAO;IAId;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,GAAE,MAAe,GAAG,OAAO;CAInD"}
|
|
@@ -78,6 +78,15 @@ export declare class SignInUseCase {
|
|
|
78
78
|
private _lastRefreshToken;
|
|
79
79
|
private silentRefresh;
|
|
80
80
|
private _doSilentRefresh;
|
|
81
|
+
/**
|
|
82
|
+
* access_token을 자동 갱신합니다.
|
|
83
|
+
*
|
|
84
|
+
* Gateway 요청 전 토큰이 만료되었거나 곧 만료될 때 호출됩니다.
|
|
85
|
+
* 내부적으로 silentRefresh를 실행하고, 새 토큰을 TokenMemoryStore에 저장합니다.
|
|
86
|
+
*
|
|
87
|
+
* @returns 갱신 성공 시 true, 실패 시 false
|
|
88
|
+
*/
|
|
89
|
+
refreshAccessToken(): Promise<boolean>;
|
|
81
90
|
/**
|
|
82
91
|
* 외부에서 발급된 CROSSx JWT를 직접 주입하여 로그인합니다.
|
|
83
92
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInUseCase.d.ts","sourceRoot":"","sources":["../../../src/core/usecases/SignInUseCase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,qBAAa,aAAa;IAStB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAdpB,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAGhC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,kBAAkB,EAClC,UAAU,EAAE,gBAAgB;IAQtC,OAAO,KAAK,aAAa,GAExB;IAED;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAmBpB,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC3D;;;;;;;;OAQG;IACG,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKvE;;;OAGG;YACW,oBAAoB;IAwFlC;;;;OAIG;YACW,qBAAqB;IAkDnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,WAAW;IAInB;;;;;;;;OAQG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAsElD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,aAAa;YAUP,gBAAgB;IAuD9B;;;;;;;;OAQG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmErF;;;OAGG;YACW,kBAAkB;YAwBlB,UAAU;CA2DzB"}
|
|
1
|
+
{"version":3,"file":"SignInUseCase.d.ts","sourceRoot":"","sources":["../../../src/core/usecases/SignInUseCase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,qBAAa,aAAa;IAStB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAdpB,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAGhC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,kBAAkB,EAClC,UAAU,EAAE,gBAAgB;IAQtC,OAAO,KAAK,aAAa,GAExB;IAED;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAmBpB,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC3D;;;;;;;;OAQG;IACG,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKvE;;;OAGG;YACW,oBAAoB;IAwFlC;;;;OAIG;YACW,qBAAqB;IAkDnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,WAAW;IAInB;;;;;;;;OAQG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAsElD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,aAAa;YAUP,gBAAgB;IAuD9B;;;;;;;OAOG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB5C;;;;;;;;OAQG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmErF;;;OAGG;YACW,kBAAkB;YAwBlB,UAAU;CA2DzB"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OAuth Deeplink Parser
|
|
3
3
|
*
|
|
4
|
-
* RN 앱이 OAuth deeplink
|
|
5
|
-
*
|
|
4
|
+
* RN 앱이 OAuth deeplink를 수신한 뒤 SDK에 전달하기 전에
|
|
5
|
+
* 인증 데이터를 파싱하는 유틸리티.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* 지원하는 URL 형식:
|
|
8
|
+
* 1. (Legacy) crossx://oauth-callback?status=success&data=<Base64(encodeURIComponent(JSON))>
|
|
9
|
+
* 2. (New) crossx://oauth-callback?crossx_oauth_result=<encodeURIComponent(JSON)>
|
|
10
|
+
*
|
|
11
|
+
* URL 없이 인코딩된 값만 직접 전달해도 동작합니다:
|
|
12
|
+
* - Base64 문자열 (Legacy)
|
|
13
|
+
* - JSON 문자열 또는 URL-encoded JSON 문자열 (New)
|
|
8
14
|
*
|
|
9
15
|
* @example
|
|
10
16
|
* // RN에서 deeplink 수신 → 파서 사용 → SDK 호출
|
|
@@ -53,9 +59,10 @@ export interface DeeplinkOAuthData {
|
|
|
53
59
|
[key: string]: unknown;
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
|
-
* OAuth deeplink URL 또는
|
|
62
|
+
* OAuth deeplink URL 또는 인코딩된 값을 파싱합니다.
|
|
57
63
|
*
|
|
58
|
-
* @param input 전체 deeplink URL (`crossx://oauth-callback?...`)
|
|
64
|
+
* @param input 전체 deeplink URL (`crossx://oauth-callback?...`),
|
|
65
|
+
* Base64 인코딩된 data 값, JSON 문자열, 또는 URL-encoded JSON
|
|
59
66
|
* @returns 파싱된 인증 정보
|
|
60
67
|
* @throws 디코딩/파싱 실패 시 Error
|
|
61
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseOAuthDeeplink.d.ts","sourceRoot":"","sources":["../../../src/core/utils/parseOAuthDeeplink.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"parseOAuthDeeplink.d.ts","sourceRoot":"","sources":["../../../src/core/utils/parseOAuthDeeplink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,GAAG,EAAE,eAAe,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAoBrE"}
|