@adstage/react-native-sdk 1.0.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.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +327 -0
  3. package/adstage-react-native.podspec +24 -0
  4. package/android/build.gradle +66 -0
  5. package/android/src/main/AndroidManifest.xml +4 -0
  6. package/android/src/main/java/io/nbase/adstage/reactnative/AdStageModule.kt +701 -0
  7. package/android/src/main/java/io/nbase/adstage/reactnative/AdStagePackage.kt +24 -0
  8. package/ios/AdStageModule.m +70 -0
  9. package/ios/AdStageModule.swift +457 -0
  10. package/lib/commonjs/AdStage.js +213 -0
  11. package/lib/commonjs/AdStage.js.map +1 -0
  12. package/lib/commonjs/deeplink/AdStageDeepLink.js +235 -0
  13. package/lib/commonjs/deeplink/AdStageDeepLink.js.map +1 -0
  14. package/lib/commonjs/event/AdStageEvent.js +689 -0
  15. package/lib/commonjs/event/AdStageEvent.js.map +1 -0
  16. package/lib/commonjs/index.js +34 -0
  17. package/lib/commonjs/index.js.map +1 -0
  18. package/lib/commonjs/promotion/AdStagePromotion.js +158 -0
  19. package/lib/commonjs/promotion/AdStagePromotion.js.map +1 -0
  20. package/lib/commonjs/types.js +2 -0
  21. package/lib/commonjs/types.js.map +1 -0
  22. package/lib/module/AdStage.js +206 -0
  23. package/lib/module/AdStage.js.map +1 -0
  24. package/lib/module/deeplink/AdStageDeepLink.js +228 -0
  25. package/lib/module/deeplink/AdStageDeepLink.js.map +1 -0
  26. package/lib/module/event/AdStageEvent.js +682 -0
  27. package/lib/module/event/AdStageEvent.js.map +1 -0
  28. package/lib/module/index.js +15 -0
  29. package/lib/module/index.js.map +1 -0
  30. package/lib/module/promotion/AdStagePromotion.js +151 -0
  31. package/lib/module/promotion/AdStagePromotion.js.map +1 -0
  32. package/lib/module/types.js +2 -0
  33. package/lib/module/types.js.map +1 -0
  34. package/lib/typescript/src/AdStage.d.ts +124 -0
  35. package/lib/typescript/src/AdStage.d.ts.map +1 -0
  36. package/lib/typescript/src/deeplink/AdStageDeepLink.d.ts +154 -0
  37. package/lib/typescript/src/deeplink/AdStageDeepLink.d.ts.map +1 -0
  38. package/lib/typescript/src/event/AdStageEvent.d.ts +426 -0
  39. package/lib/typescript/src/event/AdStageEvent.d.ts.map +1 -0
  40. package/lib/typescript/src/index.d.ts +13 -0
  41. package/lib/typescript/src/index.d.ts.map +1 -0
  42. package/lib/typescript/src/promotion/AdStagePromotion.d.ts +98 -0
  43. package/lib/typescript/src/promotion/AdStagePromotion.d.ts.map +1 -0
  44. package/lib/typescript/src/types.d.ts +305 -0
  45. package/lib/typescript/src/types.d.ts.map +1 -0
  46. package/package.json +105 -0
  47. package/src/AdStage.ts +212 -0
  48. package/src/deeplink/AdStageDeepLink.ts +246 -0
  49. package/src/event/AdStageEvent.ts +844 -0
  50. package/src/index.ts +48 -0
  51. package/src/promotion/AdStagePromotion.ts +162 -0
  52. package/src/types.ts +392 -0
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AdStage = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _AdStageDeepLink = require("./deeplink/AdStageDeepLink");
9
+ var _AdStagePromotion = require("./promotion/AdStagePromotion");
10
+ var _AdStageEvent = require("./event/AdStageEvent");
11
+ /**
12
+ * AdStage SDK 메인 클래스
13
+ *
14
+ * React Native용 AdStage SDK의 통합 진입점입니다.
15
+ * Android/iOS 네이티브 SDK(AdStage, AdStageManager)와 동일한 API를 제공합니다.
16
+ *
17
+ * @since 3.0.0
18
+ */
19
+
20
+ const {
21
+ AdStageModule
22
+ } = _reactNative.NativeModules;
23
+
24
+ /**
25
+ * AdStage SDK
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * // 초기화
30
+ * await AdStage.initialize({
31
+ * apiKey: 'your-api-key',
32
+ * serverUrl: 'https://api.adstage.app'
33
+ * });
34
+ *
35
+ * // 딥링크 리스너 설정
36
+ * AdStage.deepLink.setListener((data) => {
37
+ * console.log('딥링크 수신:', data.shortPath);
38
+ * });
39
+ *
40
+ * // 프로모션 조회
41
+ * const promotions = await AdStage.promotion.getList({ bannerType: 'NATIVE' });
42
+ *
43
+ * // 이벤트 전송
44
+ * await AdStage.event.trackPurchase({
45
+ * value: 29.99,
46
+ * currency: 'USD',
47
+ * transactionId: 'TX_123'
48
+ * });
49
+ * ```
50
+ */
51
+ class AdStage {
52
+ // ============================================
53
+ // Static Properties
54
+ // ============================================
55
+
56
+ static _isInitialized = false;
57
+ static _config = null;
58
+
59
+ // ============================================
60
+ // Sub-modules
61
+ // ============================================
62
+
63
+ /** 딥링크 관련 기능 */
64
+ static deepLink = _AdStageDeepLink.AdStageDeepLink;
65
+
66
+ /** 프로모션 관련 기능 */
67
+ static promotion = _AdStagePromotion.AdStagePromotion;
68
+
69
+ /** 이벤트 트래킹 관련 기능 */
70
+ static event = _AdStageEvent.AdStageEvent;
71
+
72
+ // ============================================
73
+ // Initialization
74
+ // ============================================
75
+
76
+ /**
77
+ * AdStage SDK 초기화
78
+ *
79
+ * 앱 시작 시 가장 먼저 호출해야 합니다.
80
+ *
81
+ * @param config - SDK 설정
82
+ * @throws SDK 초기화 실패 시 에러
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * await AdStage.initialize({
87
+ * apiKey: 'your-api-key',
88
+ * serverUrl: 'https://your-server.com' // 선택사항, 없으면 네이티브 SDK 기본값 사용
89
+ * });
90
+ * ```
91
+ */
92
+ static async initialize(config) {
93
+ if (!config.apiKey) {
94
+ throw new Error('AdStage: apiKey is required');
95
+ }
96
+ if (this._isInitialized) {
97
+ console.warn('AdStage: SDK is already initialized');
98
+ return;
99
+ }
100
+ if (!AdStageModule) {
101
+ throw new Error('AdStage: Native module is not available');
102
+ }
103
+
104
+ // serverUrl이 없으면 빈 문자열 전달 - 네이티브 SDK에서 기본값 사용
105
+ const serverUrl = config.serverUrl ?? '';
106
+ await AdStageModule.initialize(config.apiKey, serverUrl);
107
+ this._config = config;
108
+ this._isInitialized = true;
109
+ console.log(`AdStage: SDK initialized (${_reactNative.Platform.OS})`);
110
+ }
111
+
112
+ /**
113
+ * SDK 초기화 여부 확인
114
+ *
115
+ * @returns 초기화되었으면 true
116
+ */
117
+ static isInitialized() {
118
+ return this._isInitialized;
119
+ }
120
+
121
+ /**
122
+ * SDK 버전 조회
123
+ *
124
+ * @returns SDK 버전 문자열
125
+ */
126
+ static async getVersion() {
127
+ if (!AdStageModule) {
128
+ return '3.0.0';
129
+ }
130
+ return AdStageModule.getVersion();
131
+ }
132
+
133
+ // ============================================
134
+ // User Attributes
135
+ // ============================================
136
+
137
+ /**
138
+ * 전역 사용자 속성 설정
139
+ *
140
+ * 설정된 사용자 속성은 이후 모든 이벤트에 자동으로 포함됩니다.
141
+ *
142
+ * @param attributes - 사용자 속성
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * AdStage.setUserAttributes({
147
+ * gender: 'female',
148
+ * country: 'KR',
149
+ * city: 'Seoul',
150
+ * age: '28',
151
+ * language: 'ko-KR'
152
+ * });
153
+ * ```
154
+ */
155
+ static async setUserAttributes(attributes) {
156
+ if (!AdStageModule) {
157
+ throw new Error('AdStage: Native module is not available');
158
+ }
159
+ await AdStageModule.setUserAttributes(attributes);
160
+ }
161
+
162
+ /**
163
+ * 전역 사용자 속성 조회
164
+ *
165
+ * @returns 설정된 사용자 속성 또는 null
166
+ */
167
+ static async getUserAttributes() {
168
+ if (!AdStageModule) {
169
+ return null;
170
+ }
171
+ return AdStageModule.getUserAttributes();
172
+ }
173
+
174
+ /**
175
+ * 전역 사용자 속성 초기화
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * // 로그아웃 시
180
+ * await AdStage.clearUserAttributes();
181
+ * ```
182
+ */
183
+ static async clearUserAttributes() {
184
+ if (!AdStageModule) {
185
+ return;
186
+ }
187
+ await AdStageModule.clearUserAttributes();
188
+ }
189
+
190
+ // ============================================
191
+ // Internal
192
+ // ============================================
193
+
194
+ /**
195
+ * 초기화 상태 검증
196
+ * @internal
197
+ */
198
+ static ensureInitialized() {
199
+ if (!this._isInitialized) {
200
+ throw new Error('AdStage: SDK is not initialized. Call AdStage.initialize() first.');
201
+ }
202
+ }
203
+
204
+ /**
205
+ * 현재 설정 조회
206
+ * @internal
207
+ */
208
+ static getConfig() {
209
+ return this._config;
210
+ }
211
+ }
212
+ exports.AdStage = AdStage;
213
+ //# sourceMappingURL=AdStage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_AdStageDeepLink","_AdStagePromotion","_AdStageEvent","AdStageModule","NativeModules","AdStage","_isInitialized","_config","deepLink","AdStageDeepLink","promotion","AdStagePromotion","event","AdStageEvent","initialize","config","apiKey","Error","console","warn","serverUrl","log","Platform","OS","isInitialized","getVersion","setUserAttributes","attributes","getUserAttributes","clearUserAttributes","ensureInitialized","getConfig","exports"],"sourceRoot":"../../src","sources":["AdStage.ts"],"mappings":";;;;;;AASA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,MAAM;EAAEI;AAAc,CAAC,GAAGC,0BAAa;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,OAAO,CAAC;EACnB;EACA;EACA;;EAEA,OAAeC,cAAc,GAAG,KAAK;EACrC,OAAeC,OAAO,GAAyB,IAAI;;EAEnD;EACA;EACA;;EAEA;EACA,OAAgBC,QAAQ,GAAGC,gCAAe;;EAE1C;EACA,OAAgBC,SAAS,GAAGC,kCAAgB;;EAE5C;EACA,OAAgBC,KAAK,GAAGC,0BAAY;;EAEpC;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,UAAUA,CAACC,MAAqB,EAAiB;IAC5D,IAAI,CAACA,MAAM,CAACC,MAAM,EAAE;MAClB,MAAM,IAAIC,KAAK,CAAC,6BAA6B,CAAC;IAChD;IAEA,IAAI,IAAI,CAACX,cAAc,EAAE;MACvBY,OAAO,CAACC,IAAI,CAAC,qCAAqC,CAAC;MACnD;IACF;IAEA,IAAI,CAAChB,aAAa,EAAE;MAClB,MAAM,IAAIc,KAAK,CAAC,yCAAyC,CAAC;IAC5D;;IAEA;IACA,MAAMG,SAAS,GAAGL,MAAM,CAACK,SAAS,IAAI,EAAE;IAExC,MAAMjB,aAAa,CAACW,UAAU,CAACC,MAAM,CAACC,MAAM,EAAEI,SAAS,CAAC;IAExD,IAAI,CAACb,OAAO,GAAGQ,MAAM;IACrB,IAAI,CAACT,cAAc,GAAG,IAAI;IAE1BY,OAAO,CAACG,GAAG,CAAC,6BAA6BC,qBAAQ,CAACC,EAAE,GAAG,CAAC;EAC1D;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,aAAaA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAAClB,cAAc;EAC5B;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAamB,UAAUA,CAAA,EAAoB;IACzC,IAAI,CAACtB,aAAa,EAAE;MAClB,OAAO,OAAO;IAChB;IACA,OAAOA,aAAa,CAACsB,UAAU,CAAC,CAAC;EACnC;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,iBAAiBA,CAACC,UAA0B,EAAiB;IACxE,IAAI,CAACxB,aAAa,EAAE;MAClB,MAAM,IAAIc,KAAK,CAAC,yCAAyC,CAAC;IAC5D;IACA,MAAMd,aAAa,CAACuB,iBAAiB,CAACC,UAAU,CAAC;EACnD;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAaC,iBAAiBA,CAAA,EAAmC;IAC/D,IAAI,CAACzB,aAAa,EAAE;MAClB,OAAO,IAAI;IACb;IACA,OAAOA,aAAa,CAACyB,iBAAiB,CAAC,CAAC;EAC1C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,mBAAmBA,CAAA,EAAkB;IAChD,IAAI,CAAC1B,aAAa,EAAE;MAClB;IACF;IACA,MAAMA,aAAa,CAAC0B,mBAAmB,CAAC,CAAC;EAC3C;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;EACE,OAAOC,iBAAiBA,CAAA,EAAS;IAC/B,IAAI,CAAC,IAAI,CAACxB,cAAc,EAAE;MACxB,MAAM,IAAIW,KAAK,CACb,mEACF,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;EACE,OAAOc,SAASA,CAAA,EAAyB;IACvC,OAAO,IAAI,CAACxB,OAAO;EACrB;AACF;AAACyB,OAAA,CAAA3B,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AdStageDeepLink = void 0;
7
+ var _reactNative = require("react-native");
8
+ /**
9
+ * AdStage DeepLink 모듈
10
+ *
11
+ * 딥링크 생성, 수신, 처리를 담당합니다.
12
+ * Android DeeplinkHandler, iOS DeepLinkManager와 동일한 API를 제공합니다.
13
+ *
14
+ * @since 3.0.0
15
+ */
16
+
17
+ const {
18
+ AdStageModule
19
+ } = _reactNative.NativeModules;
20
+ const eventEmitter = AdStageModule ? new _reactNative.NativeEventEmitter(AdStageModule) : null;
21
+
22
+ /**
23
+ * AdStage DeepLink 클래스
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // 딥링크 리스너 설정
28
+ * const unsubscribe = AdStage.deepLink.setListener((data) => {
29
+ * console.log('딥링크 수신:', data.shortPath);
30
+ * console.log('파라미터:', data.parameters);
31
+ * });
32
+ *
33
+ * // 딥링크 생성
34
+ * const result = await AdStage.deepLink.create({
35
+ * name: '여름 프로모션',
36
+ * channel: 'google-ads',
37
+ * campaign: 'summer_2024'
38
+ * });
39
+ * console.log('Short URL:', result.shortUrl);
40
+ *
41
+ * // 리스너 해제
42
+ * unsubscribe();
43
+ * ```
44
+ */
45
+ class AdStageDeepLink {
46
+ static subscription = null;
47
+
48
+ // ============================================
49
+ // Listener Management
50
+ // ============================================
51
+
52
+ /**
53
+ * 딥링크 리스너 설정
54
+ *
55
+ * 딥링크가 수신되면 콜백이 호출됩니다.
56
+ * 반환된 함수를 호출하면 리스너가 해제됩니다.
57
+ *
58
+ * @param listener - 딥링크 수신 콜백
59
+ * @returns 리스너 해제 함수
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const unsubscribe = AdStage.deepLink.setListener((data) => {
64
+ * // URL Scheme: myapp://adstage.net/ABCDEF
65
+ * // Universal Link: https://adstage.net/ABCDEF
66
+ * console.log('Short Path:', data.shortPath); // "ABCDEF"
67
+ * console.log('Link ID:', data.linkId);
68
+ * console.log('Parameters:', data.parameters);
69
+ * console.log('Source:', data.source); // "realtime" | "install"
70
+ * console.log('Event Type:', data.eventType); // "OPEN" | "INSTALL"
71
+ * });
72
+ *
73
+ * // 컴포넌트 unmount 시
74
+ * unsubscribe();
75
+ * ```
76
+ */
77
+ static setListener(listener) {
78
+ if (!eventEmitter) {
79
+ console.warn('AdStage: Native event emitter is not available');
80
+ return () => {};
81
+ }
82
+
83
+ // 기존 리스너 제거
84
+ this.removeListener();
85
+ this.subscription = eventEmitter.addListener('onDeepLinkReceived', event => {
86
+ listener(event);
87
+ });
88
+
89
+ // 네이티브에 리스너 설정 알림
90
+ AdStageModule?.setDeepLinkListener?.();
91
+ return () => this.removeListener();
92
+ }
93
+
94
+ /**
95
+ * 딥링크 리스너 제거
96
+ */
97
+ static removeListener() {
98
+ if (this.subscription) {
99
+ this.subscription.remove();
100
+ this.subscription = null;
101
+ }
102
+ AdStageModule?.removeDeepLinkListener?.();
103
+ }
104
+
105
+ // ============================================
106
+ // DeepLink Creation
107
+ // ============================================
108
+
109
+ /**
110
+ * 딥링크 생성
111
+ *
112
+ * @param request - 딥링크 생성 요청
113
+ * @returns 생성된 딥링크 정보
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const result = await AdStage.deepLink.create({
118
+ * name: '여름 프로모션 링크',
119
+ * description: '2024년 여름 시즌용',
120
+ * channel: 'google-ads',
121
+ * campaign: 'summer_promotion_2024',
122
+ * redirectConfig: {
123
+ * type: 'STORE',
124
+ * android: {
125
+ * packageName: 'com.example.app',
126
+ * appScheme: 'myapp://promo'
127
+ * },
128
+ * ios: {
129
+ * appStoreId: '123456789',
130
+ * appScheme: 'myapp://promo'
131
+ * }
132
+ * },
133
+ * parameters: {
134
+ * productId: 'SUMMER_2024',
135
+ * discount: '20'
136
+ * }
137
+ * });
138
+ *
139
+ * console.log('Short URL:', result.shortUrl); // https://adstage.net/ABCDEF
140
+ * console.log('Short Path:', result.shortPath); // ABCDEF
141
+ * ```
142
+ */
143
+ static async create(request) {
144
+ if (!AdStageModule) {
145
+ throw new Error('AdStage: Native module is not available');
146
+ }
147
+ if (!request.name) {
148
+ throw new Error('AdStage: name is required for creating a deep link');
149
+ }
150
+ const result = await AdStageModule.createDeepLink(request);
151
+ return {
152
+ shortUrl: result.shortUrl,
153
+ shortPath: result.shortPath,
154
+ linkId: result.linkId
155
+ };
156
+ }
157
+
158
+ // ============================================
159
+ // DeepLink Handling
160
+ // ============================================
161
+
162
+ /**
163
+ * Pending 딥링크 확인 및 처리
164
+ *
165
+ * 앱이 종료된 상태에서 딥링크로 실행된 경우,
166
+ * SDK 초기화 후 이 메서드를 호출하여 pending 딥링크를 처리합니다.
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * // SDK 초기화 후
171
+ * await AdStage.initialize({ apiKey: '...' });
172
+ *
173
+ * // 리스너 설정
174
+ * AdStage.deepLink.setListener((data) => {
175
+ * console.log('딥링크:', data);
176
+ * });
177
+ *
178
+ * // Pending 딥링크 확인
179
+ * AdStage.deepLink.checkPendingDeepLink();
180
+ * ```
181
+ */
182
+ static checkPendingDeepLink() {
183
+ AdStageModule?.checkPendingDeepLink?.();
184
+ }
185
+
186
+ /**
187
+ * Intent 처리 (Android 전용)
188
+ *
189
+ * MainActivity에서 새로운 Intent가 들어올 때 호출합니다.
190
+ * iOS에서는 호출해도 무시됩니다.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * // React Native에서 AppState 변경 감지
195
+ * import { Linking } from 'react-native';
196
+ *
197
+ * Linking.addEventListener('url', ({ url }) => {
198
+ * // Android에서는 네이티브에서 자동 처리되므로 필요 없음
199
+ * // 필요한 경우 수동 호출
200
+ * AdStage.deepLink.handleIntent();
201
+ * });
202
+ * ```
203
+ */
204
+ static handleIntent() {
205
+ if (_reactNative.Platform.OS === 'android') {
206
+ AdStageModule?.handleIntent?.();
207
+ }
208
+ }
209
+
210
+ /**
211
+ * URL에서 Short Path 추출
212
+ *
213
+ * @param url - 딥링크 URL
214
+ * @returns Short Path 또는 null
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * const shortPath = AdStage.deepLink.extractShortPath('https://adstage.net/ABCDEF');
219
+ * console.log(shortPath); // "ABCDEF"
220
+ * ```
221
+ */
222
+ static extractShortPath(url) {
223
+ try {
224
+ const urlObj = new URL(url);
225
+ const pathParts = urlObj.pathname.split('/').filter(Boolean);
226
+ return pathParts[0] ?? null;
227
+ } catch {
228
+ // URL Scheme인 경우
229
+ const match = url.match(/adstage\.(?:net|app)\/([A-Za-z0-9]+)/);
230
+ return match?.[1] ?? null;
231
+ }
232
+ }
233
+ }
234
+ exports.AdStageDeepLink = AdStageDeepLink;
235
+ //# sourceMappingURL=AdStageDeepLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","AdStageModule","NativeModules","eventEmitter","NativeEventEmitter","AdStageDeepLink","subscription","setListener","listener","console","warn","removeListener","addListener","event","setDeepLinkListener","remove","removeDeepLinkListener","create","request","Error","name","result","createDeepLink","shortUrl","shortPath","linkId","checkPendingDeepLink","handleIntent","Platform","OS","extractShortPath","url","urlObj","URL","pathParts","pathname","split","filter","Boolean","match","exports"],"sourceRoot":"../../../src","sources":["deeplink/AdStageDeepLink.ts"],"mappings":";;;;;;AASA,IAAAA,YAAA,GAAAC,OAAA;AATA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,MAAM;EAAEC;AAAc,CAAC,GAAGC,0BAAa;AACvC,MAAMC,YAAY,GAAGF,aAAa,GAC9B,IAAIG,+BAAkB,CAACH,aAAa,CAAC,GACrC,IAAI;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,eAAe,CAAC;EAC3B,OAAeC,YAAY,GAEhB,IAAI;;EAEf;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,WAAWA,CAACC,QAA0B,EAAc;IACzD,IAAI,CAACL,YAAY,EAAE;MACjBM,OAAO,CAACC,IAAI,CAAC,gDAAgD,CAAC;MAC9D,OAAO,MAAM,CAAC,CAAC;IACjB;;IAEA;IACA,IAAI,CAACC,cAAc,CAAC,CAAC;IAErB,IAAI,CAACL,YAAY,GAAGH,YAAY,CAACS,WAAW,CAC1C,oBAAoB,EACnBC,KAAmB,IAAK;MACvBL,QAAQ,CAACK,KAAK,CAAC;IACjB,CACF,CAAC;;IAED;IACAZ,aAAa,EAAEa,mBAAmB,GAAG,CAAC;IAEtC,OAAO,MAAM,IAAI,CAACH,cAAc,CAAC,CAAC;EACpC;;EAEA;AACF;AACA;EACE,OAAOA,cAAcA,CAAA,EAAS;IAC5B,IAAI,IAAI,CAACL,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAACS,MAAM,CAAC,CAAC;MAC1B,IAAI,CAACT,YAAY,GAAG,IAAI;IAC1B;IACAL,aAAa,EAAEe,sBAAsB,GAAG,CAAC;EAC3C;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,MAAMA,CACjBC,OAA8B,EACG;IACjC,IAAI,CAACjB,aAAa,EAAE;MAClB,MAAM,IAAIkB,KAAK,CAAC,yCAAyC,CAAC;IAC5D;IAEA,IAAI,CAACD,OAAO,CAACE,IAAI,EAAE;MACjB,MAAM,IAAID,KAAK,CAAC,oDAAoD,CAAC;IACvE;IAEA,MAAME,MAAM,GAAG,MAAMpB,aAAa,CAACqB,cAAc,CAACJ,OAAO,CAAC;IAE1D,OAAO;MACLK,QAAQ,EAAEF,MAAM,CAACE,QAAQ;MACzBC,SAAS,EAAEH,MAAM,CAACG,SAAS;MAC3BC,MAAM,EAAEJ,MAAM,CAACI;IACjB,CAAC;EACH;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,oBAAoBA,CAAA,EAAS;IAClCzB,aAAa,EAAEyB,oBAAoB,GAAG,CAAC;EACzC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,YAAYA,CAAA,EAAS;IAC1B,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7B5B,aAAa,EAAE0B,YAAY,GAAG,CAAC;IACjC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOG,gBAAgBA,CAACC,GAAW,EAAiB;IAClD,IAAI;MACF,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAACF,GAAG,CAAC;MAC3B,MAAMG,SAAS,GAAGF,MAAM,CAACG,QAAQ,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;MAC5D,OAAOJ,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI;IAC7B,CAAC,CAAC,MAAM;MACN;MACA,MAAMK,KAAK,GAAGR,GAAG,CAACQ,KAAK,CAAC,sCAAsC,CAAC;MAC/D,OAAOA,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;IAC3B;EACF;AACF;AAACC,OAAA,CAAAnC,eAAA,GAAAA,eAAA","ignoreList":[]}