@savers_app/react-native-sdk 1.2.3 → 1.2.5
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/README.md +51 -27
- package/lib/module/core/runtime.js +3 -0
- package/lib/module/core/runtime.js.map +1 -1
- package/lib/module/data/models/tokenModel.js +25 -0
- package/lib/module/data/models/tokenModel.js.map +1 -0
- package/lib/module/data/network/apiClient.js +2 -2
- package/lib/module/data/network/apiClient.js.map +1 -1
- package/lib/module/data/network/apiEndpoints.js +2 -1
- package/lib/module/data/network/apiEndpoints.js.map +1 -1
- package/lib/module/data/network/apiRepository.js +20 -6
- package/lib/module/data/network/apiRepository.js.map +1 -1
- package/lib/module/data/network/apiService.js +36 -0
- package/lib/module/data/network/apiService.js.map +1 -1
- package/lib/module/data/network/interceptors/authInterceptor.js +6 -3
- package/lib/module/data/network/interceptors/authInterceptor.js.map +1 -1
- package/lib/module/data/storage/reactRefManager.js +22 -0
- package/lib/module/data/storage/reactRefManager.js.map +1 -0
- package/lib/module/services/navigation/goBackNavigation.js +5 -7
- package/lib/module/services/navigation/goBackNavigation.js.map +1 -1
- package/lib/module/services/url/urlGenerator.js +7 -3
- package/lib/module/services/url/urlGenerator.js.map +1 -1
- package/lib/module/services/webview/messageHandler.js +5 -2
- package/lib/module/services/webview/messageHandler.js.map +1 -1
- package/lib/module/utils/config.js +34 -0
- package/lib/module/utils/config.js.map +1 -0
- package/lib/typescript/src/core/runtime.d.ts +1 -0
- package/lib/typescript/src/core/runtime.d.ts.map +1 -1
- package/lib/typescript/src/data/models/tokenModel.d.ts +15 -0
- package/lib/typescript/src/data/models/tokenModel.d.ts.map +1 -0
- package/lib/typescript/src/data/network/apiEndpoints.d.ts +2 -1
- package/lib/typescript/src/data/network/apiEndpoints.d.ts.map +1 -1
- package/lib/typescript/src/data/network/apiRepository.d.ts +2 -0
- package/lib/typescript/src/data/network/apiRepository.d.ts.map +1 -1
- package/lib/typescript/src/data/network/apiService.d.ts +6 -0
- package/lib/typescript/src/data/network/apiService.d.ts.map +1 -1
- package/lib/typescript/src/data/network/interceptors/authInterceptor.d.ts +2 -0
- package/lib/typescript/src/data/network/interceptors/authInterceptor.d.ts.map +1 -1
- package/lib/typescript/src/data/storage/reactRefManager.d.ts +11 -0
- package/lib/typescript/src/data/storage/reactRefManager.d.ts.map +1 -0
- package/lib/typescript/src/services/navigation/goBackNavigation.d.ts +0 -1
- package/lib/typescript/src/services/navigation/goBackNavigation.d.ts.map +1 -1
- package/lib/typescript/src/services/url/urlGenerator.d.ts +1 -0
- package/lib/typescript/src/services/url/urlGenerator.d.ts.map +1 -1
- package/lib/typescript/src/services/webview/messageHandler.d.ts.map +1 -1
- package/lib/typescript/src/utils/config.d.ts +5 -0
- package/lib/typescript/src/utils/config.d.ts.map +1 -0
- package/package.json +8 -2
- package/src/core/runtime.ts +4 -0
- package/src/data/models/tokenModel.ts +43 -0
- package/src/data/network/apiClient.ts +2 -2
- package/src/data/network/apiEndpoints.ts +2 -1
- package/src/data/network/apiRepository.ts +30 -6
- package/src/data/network/apiService.ts +41 -0
- package/src/data/network/interceptors/authInterceptor.ts +12 -3
- package/src/data/storage/reactRefManager.ts +25 -0
- package/src/services/navigation/goBackNavigation.ts +6 -8
- package/src/services/url/urlGenerator.ts +9 -1
- package/src/services/webview/messageHandler.ts +5 -8
- package/src/utils/config.ts +35 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ React Native SDK that bridges host app features like maps, dialer, browser, devi
|
|
|
6
6
|
- Open native maps by coordinates with graceful browser fallback
|
|
7
7
|
- Dial pad invocation with optional number and direct call helper
|
|
8
8
|
- External browser navigation from the host app or from web content
|
|
9
|
-
- Close current screen via
|
|
9
|
+
- Close current screen via global `navigationRef` (React Navigation) using **END_SESSION**
|
|
10
10
|
- Device ID retrieval (via `react-native-device-info`)
|
|
11
11
|
- Optional device location retrieval and URL payload enrichment
|
|
12
12
|
- Session and keys management (API key, encryption key, program ref code, auth mode)
|
|
@@ -155,15 +155,48 @@ const url = await generateUrl({
|
|
|
155
155
|
},
|
|
156
156
|
// sessionId is optional; when omitted, the SDK uses its stored session id
|
|
157
157
|
// deviceInfo is optional; the SDK builds it internally using device id (and optional coordinates)
|
|
158
|
+
nonce: '<NONCE_TOKEN>',
|
|
158
159
|
});
|
|
159
160
|
// returns https://m.saversapp.com/?pRefCode=...&qP=...
|
|
160
161
|
```
|
|
161
162
|
|
|
163
|
+
Fetch nonce and call generateUrl:
|
|
164
|
+
|
|
165
|
+
```ts
|
|
166
|
+
import { ApiService, generateUrl } from '@savers_app/react-native-sdk';
|
|
167
|
+
|
|
168
|
+
const generator = new ApiService().getNonce({
|
|
169
|
+
extUserId: '12345',
|
|
170
|
+
partnerCode: 'abcde',
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
const { value } = await generator.next();
|
|
174
|
+
if (value?.error) throw new Error(value.error);
|
|
175
|
+
if (!value?.token) throw new Error('Nonce not received');
|
|
176
|
+
|
|
177
|
+
const url = await generateUrl({
|
|
178
|
+
authType: 'PHONE',
|
|
179
|
+
profile: {
|
|
180
|
+
userId: 'USER_ID',
|
|
181
|
+
email: 'jane@example.com',
|
|
182
|
+
firstname: 'Jane',
|
|
183
|
+
lastname: 'Doe',
|
|
184
|
+
phone: '+15555550100',
|
|
185
|
+
pv: '1',
|
|
186
|
+
ev: '1',
|
|
187
|
+
},
|
|
188
|
+
screen: { name: 'Explore', attributes: [{ key: 'offerId', value: '123' }] },
|
|
189
|
+
nonce: value.token,
|
|
190
|
+
});
|
|
191
|
+
```
|
|
192
|
+
|
|
162
193
|
Profile requirements:
|
|
163
194
|
- `userId` and `email` are mandatory
|
|
164
195
|
- `pv` and `ev` are optional (`'0'` or `'1'`)
|
|
165
196
|
- `phone` is mandatory when `authType` is `'PHONE'`
|
|
166
197
|
- `username` is mandatory when `authType` is `'USERNAME'`
|
|
198
|
+
Nonce requirement:
|
|
199
|
+
- `nonce` is mandatory and should be retrieved using `ApiService.getNonce` before calling `generateUrl`.
|
|
167
200
|
|
|
168
201
|
Screen requirements:
|
|
169
202
|
- `screen.name` is optional, defaults to `'Explore'`
|
|
@@ -183,34 +216,25 @@ Notes:
|
|
|
183
216
|
|
|
184
217
|
The SDK can close the current screen without knowing the host app's navigation structure. This is useful for flows initiated from web content or deep links that need to programmatically exit back to the host app.
|
|
185
218
|
|
|
186
|
-
One-time host app setup
|
|
219
|
+
One-time host app setup using a global `navigationRef`:
|
|
187
220
|
|
|
188
221
|
```tsx
|
|
189
|
-
import {
|
|
190
|
-
import {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
function SaversNavBinder() {
|
|
194
|
-
const navigation = useNavigation();
|
|
195
|
-
useEffect(() => {
|
|
196
|
-
setGoBackImpl(() => {
|
|
197
|
-
if (navigation.canGoBack()) {
|
|
198
|
-
navigation.goBack();
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
return false;
|
|
202
|
-
});
|
|
203
|
-
}, [navigation]);
|
|
204
|
-
return null;
|
|
205
|
-
}
|
|
222
|
+
import { NavigationContainer, createNavigationContainerRef } from '@react-navigation/native';
|
|
223
|
+
import { SaversAppSDK } from '@savers_app/react-native-sdk';
|
|
224
|
+
|
|
225
|
+
export const navigationRef = createNavigationContainerRef();
|
|
206
226
|
|
|
207
227
|
export function App() {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
228
|
+
// Initialize the SDK once (e.g., in a root effect or before rendering)
|
|
229
|
+
SaversAppSDK.initialized({
|
|
230
|
+
apiKey: 'YOUR_API_KEY',
|
|
231
|
+
encryptionKey: 'BASE64_256_BIT_ENCRYPTION_KEY',
|
|
232
|
+
pRefCode: 'PROGRAM_REF_CODE',
|
|
233
|
+
authMode: 'EMAIL', // or 'PHONE'
|
|
234
|
+
navigationRef, // pass the ref to the SDK
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
return <NavigationContainer ref={navigationRef}>{/* your navigators */}</NavigationContainer>;
|
|
214
238
|
}
|
|
215
239
|
```
|
|
216
240
|
|
|
@@ -224,8 +248,8 @@ closeCurrentScreenSafe(); // Android-only fallback to exitApp if it can't goBack
|
|
|
224
248
|
```
|
|
225
249
|
|
|
226
250
|
Notes:
|
|
227
|
-
-
|
|
228
|
-
- The
|
|
251
|
+
- The same `navigationRef` is passed to the `NavigationContainer` and to `SaversAppSDK.initialized`.
|
|
252
|
+
- The SDK stores this ref internally to implement `closeCurrentScreen()` reliably.
|
|
229
253
|
|
|
230
254
|
## WebView Integration
|
|
231
255
|
|
|
@@ -7,6 +7,7 @@ import { SDKRequirements } from "../utils/dependencyManager.js";
|
|
|
7
7
|
// Data / Storage
|
|
8
8
|
import { setApiKey, setEncryptionKey, setPRefCode, setAuthMode } from "../data/storage/keysManager.js";
|
|
9
9
|
import { getDeviceId } from "../data/storage/deviceIdManager.js";
|
|
10
|
+
import { setReactRef } from "../data/storage/reactRefManager.js";
|
|
10
11
|
|
|
11
12
|
// Services
|
|
12
13
|
// import { getDeviceLocation } from '../services/device/location';
|
|
@@ -18,6 +19,7 @@ export function initializeSDK(providedKeys) {
|
|
|
18
19
|
if (!keys.encryptionKey) missing.push('encryptionKey');
|
|
19
20
|
if (!keys.pRefCode) missing.push('pRefCode');
|
|
20
21
|
if (!keys.authMode) missing.push('authMode');
|
|
22
|
+
if (!keys.navigationRef) missing.push('navigationRef');
|
|
21
23
|
if (missing.length) {
|
|
22
24
|
const msg = `[SDK] Missing required keys: ${missing.join(', ')}`;
|
|
23
25
|
logger.warn(msg);
|
|
@@ -27,6 +29,7 @@ export function initializeSDK(providedKeys) {
|
|
|
27
29
|
setEncryptionKey(keys.encryptionKey);
|
|
28
30
|
setPRefCode(keys.pRefCode);
|
|
29
31
|
setAuthMode(keys.authMode);
|
|
32
|
+
setReactRef(keys.navigationRef);
|
|
30
33
|
getDeviceId().then(id => {
|
|
31
34
|
logger.info('[SDK] Device ID availability', {
|
|
32
35
|
deviceId: Boolean(id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","SDKRequirements","setApiKey","setEncryptionKey","setPRefCode","setAuthMode","getDeviceId","initializeSDK","providedKeys","keys","missing","apiKey","push","encryptionKey","pRefCode","authMode","length","msg","join","warn","Error","then","id","info","deviceId","Boolean","catch","asyncStorage","geolocation","deviceInfo","SaversAppSDK","initialized"],"sourceRoot":"../../../src","sources":["core/runtime.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,oBAAiB;AACxC,SAASC,eAAe,QAAQ,+BAA4B;;AAE5D;AACA,SACEC,SAAS,EACTC,gBAAgB,EAChBC,WAAW,EACXC,WAAW,QACN,gCAA6B;AACpC,SAASC,WAAW,QAAQ,oCAAiC;;AAE7D;AACA;;AAEA,OAAO,SAASC,aAAaA,CAACC,
|
|
1
|
+
{"version":3,"names":["logger","SDKRequirements","setApiKey","setEncryptionKey","setPRefCode","setAuthMode","getDeviceId","setReactRef","initializeSDK","providedKeys","keys","missing","apiKey","push","encryptionKey","pRefCode","authMode","navigationRef","length","msg","join","warn","Error","then","id","info","deviceId","Boolean","catch","asyncStorage","geolocation","deviceInfo","SaversAppSDK","initialized"],"sourceRoot":"../../../src","sources":["core/runtime.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,oBAAiB;AACxC,SAASC,eAAe,QAAQ,+BAA4B;;AAE5D;AACA,SACEC,SAAS,EACTC,gBAAgB,EAChBC,WAAW,EACXC,WAAW,QACN,gCAA6B;AACpC,SAASC,WAAW,QAAQ,oCAAiC;AAC7D,SAASC,WAAW,QAAQ,oCAAiC;;AAE7D;AACA;;AAEA,OAAO,SAASC,aAAaA,CAACC,YAM7B,EAAE;EACD,MAAMC,IAAI,GAAGD,YAAY;EACzB,MAAME,OAAiB,GAAG,EAAE;EAC5B,IAAI,CAACD,IAAI,CAACE,MAAM,EAAED,OAAO,CAACE,IAAI,CAAC,QAAQ,CAAC;EACxC,IAAI,CAACH,IAAI,CAACI,aAAa,EAAEH,OAAO,CAACE,IAAI,CAAC,eAAe,CAAC;EACtD,IAAI,CAACH,IAAI,CAACK,QAAQ,EAAEJ,OAAO,CAACE,IAAI,CAAC,UAAU,CAAC;EAC5C,IAAI,CAACH,IAAI,CAACM,QAAQ,EAAEL,OAAO,CAACE,IAAI,CAAC,UAAU,CAAC;EAC5C,IAAI,CAACH,IAAI,CAACO,aAAa,EAAEN,OAAO,CAACE,IAAI,CAAC,eAAe,CAAC;EAEtD,IAAIF,OAAO,CAACO,MAAM,EAAE;IAClB,MAAMC,GAAG,GAAG,gCAAgCR,OAAO,CAACS,IAAI,CAAC,IAAI,CAAC,EAAE;IAChEpB,MAAM,CAACqB,IAAI,CAACF,GAAG,CAAC;IAChB,MAAM,IAAIG,KAAK,CAACH,GAAG,CAAC;EACtB;EACAjB,SAAS,CAACQ,IAAI,CAACE,MAAM,CAAC;EACtBT,gBAAgB,CAACO,IAAI,CAACI,aAAa,CAAC;EACpCV,WAAW,CAACM,IAAI,CAACK,QAAQ,CAAC;EAC1BV,WAAW,CAACK,IAAI,CAACM,QAAQ,CAAC;EAC1BT,WAAW,CAACG,IAAI,CAACO,aAAa,CAAC;EAE/BX,WAAW,CAAC,CAAC,CACViB,IAAI,CAAEC,EAAE,IAAK;IACZxB,MAAM,CAACyB,IAAI,CAAC,8BAA8B,EAAE;MAAEC,QAAQ,EAAEC,OAAO,CAACH,EAAE;IAAE,CAAC,CAAC;EACxE,CAAC,CAAC,CACDI,KAAK,CAAC,MAAM;IACX5B,MAAM,CAACqB,IAAI,CAAC,6BAA6B,CAAC;EAC5C,CAAC,CAAC;;EAEJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,MAAM;IAAEQ,YAAY;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG9B,eAAe;EACjE,IAAI4B,YAAY,IAAIC,WAAW,IAAIC,UAAU,EAAE;EAC/C,IAAI,CAACF,YAAY,EAAE;IACjB7B,MAAM,CAACqB,IAAI,CACT,4GACF,CAAC;EACH;EACA,IAAI,CAACS,WAAW,EAAE;IAChB9B,MAAM,CAACqB,IAAI,CACT,+FACF,CAAC;EACH;EAEA,IAAI,CAACU,UAAU,EAAE;IACf/B,MAAM,CAACqB,IAAI,CACT,uFACF,CAAC;EACH;AACF;AAEA,OAAO,MAAMW,YAAY,GAAG;EAC1BC,WAAW,EAAEzB;AACf,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function tokenResponseFromJson(json) {
|
|
4
|
+
const map = {
|
|
5
|
+
...json
|
|
6
|
+
};
|
|
7
|
+
const token = typeof map.token === 'string' && map.token.length > 0 ? map.token : null;
|
|
8
|
+
const statusCode = typeof map.statusCode === 'number' ? map.statusCode : typeof map.statusCode === 'string' ? Number(map.statusCode) : null;
|
|
9
|
+
const error = typeof map.error === 'string' && map.error.length > 0 ? map.error : null;
|
|
10
|
+
const messages = Array.isArray(map.message) ? map.message.filter(m => typeof m === 'string') : null;
|
|
11
|
+
return {
|
|
12
|
+
token: token ?? null,
|
|
13
|
+
statusCode: statusCode ?? null,
|
|
14
|
+
error: error ?? null,
|
|
15
|
+
messages: messages && messages.length > 0 ? messages : null
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export const token = d => d?.token ?? null;
|
|
19
|
+
export const hasToken = d => !!(d?.token && d.token.length > 0);
|
|
20
|
+
export const isValid = d => hasToken(d);
|
|
21
|
+
export const status = d => d?.statusCode ?? null;
|
|
22
|
+
export const error = d => d?.error ?? null;
|
|
23
|
+
export const messages = d => d?.messages ?? null;
|
|
24
|
+
export const hasError = d => !!(d?.error || d?.messages && d.messages.length > 0 || d?.statusCode);
|
|
25
|
+
//# sourceMappingURL=tokenModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["tokenResponseFromJson","json","map","token","length","statusCode","Number","error","messages","Array","isArray","message","filter","m","d","hasToken","isValid","status","hasError"],"sourceRoot":"../../../../src","sources":["data/models/tokenModel.ts"],"mappings":";;AAOA,OAAO,SAASA,qBAAqBA,CAACC,IAAS,EAAiB;EAC9D,MAAMC,GAAG,GAAG;IAAE,GAAID;EAA6B,CAAC;EAChD,MAAME,KAAK,GACT,OAAOD,GAAG,CAACC,KAAK,KAAK,QAAQ,IAAID,GAAG,CAACC,KAAK,CAACC,MAAM,GAAG,CAAC,GAAGF,GAAG,CAACC,KAAK,GAAG,IAAI;EAC1E,MAAME,UAAU,GACd,OAAOH,GAAG,CAACG,UAAU,KAAK,QAAQ,GAC9BH,GAAG,CAACG,UAAU,GACd,OAAOH,GAAG,CAACG,UAAU,KAAK,QAAQ,GAChCC,MAAM,CAACJ,GAAG,CAACG,UAAU,CAAC,GACtB,IAAI;EACZ,MAAME,KAAK,GACT,OAAOL,GAAG,CAACK,KAAK,KAAK,QAAQ,IAAIL,GAAG,CAACK,KAAK,CAACH,MAAM,GAAG,CAAC,GAAGF,GAAG,CAACK,KAAK,GAAG,IAAI;EAC1E,MAAMC,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAACR,GAAG,CAACS,OAAO,CAAC,GACtCT,GAAG,CAACS,OAAO,CAACC,MAAM,CAAEC,CAAM,IAAK,OAAOA,CAAC,KAAK,QAAQ,CAAC,GACtD,IAAI;EACR,OAAO;IACLV,KAAK,EAAEA,KAAK,IAAI,IAAI;IACpBE,UAAU,EAAEA,UAAU,IAAI,IAAI;IAC9BE,KAAK,EAAEA,KAAK,IAAI,IAAI;IACpBC,QAAQ,EAAEA,QAAQ,IAAIA,QAAQ,CAACJ,MAAM,GAAG,CAAC,GAAGI,QAAQ,GAAG;EACzD,CAAC;AACH;AAEA,OAAO,MAAML,KAAK,GAAIW,CAAwB,IAC5CA,CAAC,EAAEX,KAAK,IAAI,IAAI;AAClB,OAAO,MAAMY,QAAQ,GAAID,CAAwB,IAC/C,CAAC,EAAEA,CAAC,EAAEX,KAAK,IAAIW,CAAC,CAACX,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC;AACpC,OAAO,MAAMY,OAAO,GAAIF,CAAwB,IAAcC,QAAQ,CAACD,CAAC,CAAC;AACzE,OAAO,MAAMG,MAAM,GAAIH,CAAwB,IAC7CA,CAAC,EAAET,UAAU,IAAI,IAAI;AACvB,OAAO,MAAME,KAAK,GAAIO,CAAwB,IAC5CA,CAAC,EAAEP,KAAK,IAAI,IAAI;AAClB,OAAO,MAAMC,QAAQ,GAAIM,CAAwB,IAC/CA,CAAC,EAAEN,QAAQ,IAAI,IAAI;AACrB,OAAO,MAAMU,QAAQ,GAAIJ,CAAwB,IAC/C,CAAC,EAAEA,CAAC,EAAEP,KAAK,IAAKO,CAAC,EAAEN,QAAQ,IAAIM,CAAC,CAACN,QAAQ,CAACJ,MAAM,GAAG,CAAE,IAAIU,CAAC,EAAET,UAAU,CAAC","ignoreList":[]}
|
|
@@ -18,8 +18,8 @@ export let Environment = /*#__PURE__*/function (Environment) {
|
|
|
18
18
|
}({});
|
|
19
19
|
export class ApiClient {
|
|
20
20
|
static baseUrls = {
|
|
21
|
-
[Environment.production]: 'https
|
|
22
|
-
[Environment.staging]: 'https
|
|
21
|
+
[Environment.production]: 'https://devapi.saversapp.com/clo/v1/',
|
|
22
|
+
[Environment.staging]: 'https://devapi.saversapp.com/clo/v1/'
|
|
23
23
|
};
|
|
24
24
|
interceptors = [];
|
|
25
25
|
constructor(environment = Environment.production) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","AuthInterceptor","RetryInterceptor","ErrorInterceptor","NetworkInterceptor","LoggingInterceptor","Environment","ApiClient","baseUrls","production","staging","interceptors","constructor","environment","baseUrl","get","endpoint","params","request","undefined","post","data","put","delete","method","url","buildUrl","options","headers","body","interceptor","onRequest","Error","response","fetch","JSON","stringify","responseData","json","responseObj","status","statusText","onResponse","error","handledError","onError","queryString","Object","keys","map","key","encodeURIComponent","join"],"sourceRoot":"../../../../src","sources":["data/network/apiClient.ts"],"mappings":";;AAAA;;AAEA;AACA,SAASA,MAAM,QAAQ,uBAAoB;;AAE3C;AACA,SAASC,eAAe,QAAQ,mCAAgC;AAChE,SAASC,gBAAgB,QAAQ,oCAAiC;AAClE,SAASC,gBAAgB,QAAQ,oCAAiC;AAClE,SAASC,kBAAkB,QAAQ,sCAAmC;AACtE,SAASC,kBAAkB,QAAQ,sCAAmC;AAEtE,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAKvB,OAAO,MAAMC,SAAS,CAAC;EACrB,OAAwBC,QAAQ,GAAgC;IAC9D,CAACF,WAAW,CAACG,UAAU,GAAG,
|
|
1
|
+
{"version":3,"names":["logger","AuthInterceptor","RetryInterceptor","ErrorInterceptor","NetworkInterceptor","LoggingInterceptor","Environment","ApiClient","baseUrls","production","staging","interceptors","constructor","environment","baseUrl","get","endpoint","params","request","undefined","post","data","put","delete","method","url","buildUrl","options","headers","body","interceptor","onRequest","Error","response","fetch","JSON","stringify","responseData","json","responseObj","status","statusText","onResponse","error","handledError","onError","queryString","Object","keys","map","key","encodeURIComponent","join"],"sourceRoot":"../../../../src","sources":["data/network/apiClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ApiEndpoints","onboarding"],"sourceRoot":"../../../../src","sources":["data/network/apiEndpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAG;EAC1BC,UAAU,EAAE;
|
|
1
|
+
{"version":3,"names":["ApiEndpoints","onboarding","get_nonce"],"sourceRoot":"../../../../src","sources":["data/network/apiEndpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAG;EAC1BC,UAAU,EAAE,sBAAsB;EAClCC,SAAS,EAAE;AACb,CAAU","ignoreList":[]}
|
|
@@ -21,13 +21,17 @@ export class ApiRepository {
|
|
|
21
21
|
}
|
|
22
22
|
async *getData(endpoint, opts) {
|
|
23
23
|
const cacheStrategy = opts?.cacheStrategy ?? CacheStrategy.normal;
|
|
24
|
-
const cacheKey = (opts?.storageKeyPrefix ?? '') + endpoint + JSON.stringify(
|
|
24
|
+
const cacheKey = (opts?.storageKeyPrefix ?? '') + endpoint + JSON.stringify({
|
|
25
|
+
params: opts?.params ?? {},
|
|
26
|
+
method: opts?.method ?? 'GET',
|
|
27
|
+
body: opts?.body ?? null
|
|
28
|
+
});
|
|
25
29
|
if (cacheStrategy === CacheStrategy.cache) {
|
|
26
30
|
const cached = await storageGet(cacheKey);
|
|
27
31
|
if (cached !== null && cached !== undefined) {
|
|
28
32
|
yield apiSuccess(cached, 'Data fetched from cache', true);
|
|
29
33
|
} else {
|
|
30
|
-
const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey);
|
|
34
|
+
const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey, opts?.method, opts?.body);
|
|
31
35
|
yield res;
|
|
32
36
|
}
|
|
33
37
|
return;
|
|
@@ -42,7 +46,7 @@ export class ApiRepository {
|
|
|
42
46
|
return;
|
|
43
47
|
}
|
|
44
48
|
if (cacheStrategy === CacheStrategy.network) {
|
|
45
|
-
const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey);
|
|
49
|
+
const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey, opts?.method, opts?.body);
|
|
46
50
|
yield res;
|
|
47
51
|
return;
|
|
48
52
|
}
|
|
@@ -50,12 +54,22 @@ export class ApiRepository {
|
|
|
50
54
|
if (cached !== null && cached !== undefined) {
|
|
51
55
|
yield apiSuccess(cached, 'Data fetched from cache', true);
|
|
52
56
|
}
|
|
53
|
-
const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey);
|
|
57
|
+
const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey, opts?.method, opts?.body);
|
|
54
58
|
yield res;
|
|
55
59
|
}
|
|
56
|
-
async fetchFromNetwork(endpoint, params, cacheKey) {
|
|
60
|
+
async fetchFromNetwork(endpoint, params, cacheKey, method, body) {
|
|
57
61
|
try {
|
|
58
|
-
const
|
|
62
|
+
const m = (method || 'GET').toUpperCase();
|
|
63
|
+
let response;
|
|
64
|
+
if (m === 'POST') {
|
|
65
|
+
response = await this.apiClient.post(endpoint, body, params);
|
|
66
|
+
} else if (m === 'PUT') {
|
|
67
|
+
response = await this.apiClient.put(endpoint, body, params);
|
|
68
|
+
} else if (m === 'DELETE') {
|
|
69
|
+
response = await this.apiClient.delete(endpoint, body, params);
|
|
70
|
+
} else {
|
|
71
|
+
response = await this.apiClient.get(endpoint, params);
|
|
72
|
+
}
|
|
59
73
|
const data = response?.data ?? null;
|
|
60
74
|
const message = response?.message ?? response?.statusText ?? 'No message';
|
|
61
75
|
if (data !== null && cacheKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["apiError","apiSuccess","get","storageGet","save","storageSave","CacheStrategy","ApiRepository","constructor","apiClient","getData","endpoint","opts","cacheStrategy","normal","cacheKey","storageKeyPrefix","JSON","stringify","params","cache","cached","undefined","res","fetchFromNetwork","cacheOnly","network","response","data","message","statusText","e"],"sourceRoot":"../../../../src","sources":["data/network/apiRepository.ts"],"mappings":";;AAAA;;AAGA;;AAEA,SAASA,QAAQ,EAAEC,UAAU,QAAQ,0BAAuB;;AAE5D;AACA,SACEC,GAAG,IAAIC,UAAU,EACjBC,IAAI,IAAIC,WAAW,QACd,8BAA2B;AAElC,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAOzB,OAAO,MAAMC,aAAa,CAAC;EAGzBC,WAAWA,CAACC,SAAoB,EAAE;IAChC,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC5B;EAEA,OAAOC,OAAOA,CACZC,QAAgB,EAChBC,
|
|
1
|
+
{"version":3,"names":["apiError","apiSuccess","get","storageGet","save","storageSave","CacheStrategy","ApiRepository","constructor","apiClient","getData","endpoint","opts","cacheStrategy","normal","cacheKey","storageKeyPrefix","JSON","stringify","params","method","body","cache","cached","undefined","res","fetchFromNetwork","cacheOnly","network","m","toUpperCase","response","post","put","delete","data","message","statusText","e"],"sourceRoot":"../../../../src","sources":["data/network/apiRepository.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ import { logger } from "../../utils/logger.js";
|
|
|
6
6
|
// Types / Models
|
|
7
7
|
|
|
8
8
|
import { onBoardingDataFromJson } from "../models/onboardingModel.js";
|
|
9
|
+
import { tokenResponseFromJson } from "../models/tokenModel.js";
|
|
9
10
|
|
|
10
11
|
// Storage
|
|
11
12
|
import { clearAll as storageClearAll } from "../storage/storageManager.js";
|
|
@@ -54,6 +55,41 @@ export class ApiService {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
}
|
|
58
|
+
async *getNonce({
|
|
59
|
+
cacheStrategy = CacheStrategy.network,
|
|
60
|
+
extUserId = '',
|
|
61
|
+
partnerCode = ''
|
|
62
|
+
}) {
|
|
63
|
+
const generator = this.repository.getData(ApiEndpoints.get_nonce, {
|
|
64
|
+
cacheStrategy,
|
|
65
|
+
method: 'POST',
|
|
66
|
+
body: {
|
|
67
|
+
extUserId,
|
|
68
|
+
partnerCode
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
for await (const response of generator) {
|
|
72
|
+
if (response.data) {
|
|
73
|
+
try {
|
|
74
|
+
yield tokenResponseFromJson(response.data);
|
|
75
|
+
} catch (e) {
|
|
76
|
+
yield {
|
|
77
|
+
token: null,
|
|
78
|
+
statusCode: null,
|
|
79
|
+
error: `Failed to parse nonce: ${e}`,
|
|
80
|
+
messages: null
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
yield {
|
|
85
|
+
token: null,
|
|
86
|
+
statusCode: null,
|
|
87
|
+
error: response.message ?? 'Failed to load nonce',
|
|
88
|
+
messages: null
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
57
93
|
|
|
58
94
|
/**
|
|
59
95
|
* Clear all cached data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","onBoardingDataFromJson","clearAll","storageClearAll","ApiEndpoints","ApiRepository","CacheStrategy","Environment","ApiClient","ApiService","constructor","environment","production","apiClient","repository","info","getOnBoarding","opts","generator","getData","onboarding","cacheStrategy","normal","response","status","data","parsedData","e","message","fromCache","clearCache"],"sourceRoot":"../../../../src","sources":["data/network/apiService.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,uBAAoB;;AAE3C;;AAEA,SAEEC,sBAAsB,QACjB,8BAA2B;;
|
|
1
|
+
{"version":3,"names":["logger","onBoardingDataFromJson","tokenResponseFromJson","clearAll","storageClearAll","ApiEndpoints","ApiRepository","CacheStrategy","Environment","ApiClient","ApiService","constructor","environment","production","apiClient","repository","info","getOnBoarding","opts","generator","getData","onboarding","cacheStrategy","normal","response","status","data","parsedData","e","message","fromCache","getNonce","network","extUserId","partnerCode","get_nonce","method","body","token","statusCode","error","messages","clearCache"],"sourceRoot":"../../../../src","sources":["data/network/apiService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// Utilities
|
|
6
6
|
import { logger } from "../../../utils/logger.js";
|
|
7
7
|
export class AuthInterceptor {
|
|
8
|
+
static xApiKey = 'x-api-key';
|
|
8
9
|
static oauthSubIdKey = 'oauthSubId';
|
|
9
10
|
static bodyMethods = new Set(['POST', 'PUT', 'PATCH']);
|
|
10
11
|
static excludedApis = new Set();
|
|
@@ -13,6 +14,7 @@ export class AuthInterceptor {
|
|
|
13
14
|
if (this.shouldExcludeApi(options.url)) {
|
|
14
15
|
return options;
|
|
15
16
|
}
|
|
17
|
+
this.addApiKeyHeader(options, AuthInterceptor.xApiKey, '3xqpYp6CPn899166YXbEB1YLJIhfdj08BbCdfQdg');
|
|
16
18
|
const userId = await this.getCurrentUserId();
|
|
17
19
|
if (userId) {
|
|
18
20
|
this.addAuthenticationData(options, userId);
|
|
@@ -45,6 +47,10 @@ export class AuthInterceptor {
|
|
|
45
47
|
options.body[AuthInterceptor.oauthSubIdKey] = userId;
|
|
46
48
|
}
|
|
47
49
|
}
|
|
50
|
+
addApiKeyHeader(options, key, value) {
|
|
51
|
+
options.headers = options.headers || {};
|
|
52
|
+
options.headers[key] = value;
|
|
53
|
+
}
|
|
48
54
|
shouldExcludeApi(apiPath) {
|
|
49
55
|
if (!apiPath) return false;
|
|
50
56
|
for (const excludedPath of AuthInterceptor.excludedApis) {
|
|
@@ -56,9 +62,6 @@ export class AuthInterceptor {
|
|
|
56
62
|
}
|
|
57
63
|
async getCurrentUserId() {
|
|
58
64
|
try {
|
|
59
|
-
// Placeholder for Keycloak integration
|
|
60
|
-
// const currentUser = KeycloakWebViewManager.instance.currentUser;
|
|
61
|
-
// return currentUser?.email;
|
|
62
65
|
return null;
|
|
63
66
|
} catch (e) {
|
|
64
67
|
logger.error('Failed to get current user ID:', e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","AuthInterceptor","oauthSubIdKey","bodyMethods","Set","excludedApis","onRequest","options","shouldExcludeApi","url","userId","getCurrentUserId","addAuthenticationData","e","error","method","toUpperCase","has","addToQueryParametersAndBody","addToQueryParameters","params","addToRequestBody","body","FormData","append","apiPath","excludedPath","includes"],"sourceRoot":"../../../../../src","sources":["data/network/interceptors/authInterceptor.ts"],"mappings":";;AAAA;;AAEA;AACA,SAASA,MAAM,QAAQ,0BAAuB;AAE9C,OAAO,MAAMC,eAAe,CAAC;EAC3B,OAAwBC,aAAa,GAAG,YAAY;EACpD,OAAwBC,WAAW,GAAG,IAAIC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;EACvE,OAAwBC,YAAY,GAAG,IAAID,GAAG,CAAS,CAAC;EAExD,MAAME,SAASA,CAACC,OAAY,EAAgB;IAC1C,IAAI;MACF,IAAI,IAAI,CAACC,gBAAgB,CAACD,OAAO,CAACE,GAAG,CAAC,EAAE;QACtC,OAAOF,OAAO;MAChB;MAEA,
|
|
1
|
+
{"version":3,"names":["logger","AuthInterceptor","xApiKey","oauthSubIdKey","bodyMethods","Set","excludedApis","onRequest","options","shouldExcludeApi","url","addApiKeyHeader","userId","getCurrentUserId","addAuthenticationData","e","error","method","toUpperCase","has","addToQueryParametersAndBody","addToQueryParameters","params","addToRequestBody","body","FormData","append","key","value","headers","apiPath","excludedPath","includes"],"sourceRoot":"../../../../../src","sources":["data/network/interceptors/authInterceptor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
class ReactRefManager {
|
|
4
|
+
ref = null;
|
|
5
|
+
setRef(ref) {
|
|
6
|
+
this.ref = ref;
|
|
7
|
+
}
|
|
8
|
+
getRef() {
|
|
9
|
+
return this.ref;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const reactRefManager = new ReactRefManager();
|
|
13
|
+
export const setReactRef = async ref => {
|
|
14
|
+
reactRefManager.setRef(ref);
|
|
15
|
+
};
|
|
16
|
+
export async function getReactRef() {
|
|
17
|
+
return reactRefManager.getRef();
|
|
18
|
+
}
|
|
19
|
+
export function getReactRefSync() {
|
|
20
|
+
return reactRefManager.getRef();
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=reactRefManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ReactRefManager","ref","setRef","getRef","reactRefManager","setReactRef","getReactRef","getReactRefSync"],"sourceRoot":"../../../../src","sources":["data/storage/reactRefManager.ts"],"mappings":";;AAAA,MAAMA,eAAe,CAAC;EACZC,GAAG,GAAe,IAAI;EAE9BC,MAAMA,CAACD,GAAQ,EAAQ;IACrB,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAEAE,MAAMA,CAAA,EAAe;IACnB,OAAO,IAAI,CAACF,GAAG;EACjB;AACF;AAEA,OAAO,MAAMG,eAAe,GAAG,IAAIJ,eAAe,CAAC,CAAC;AAEpD,OAAO,MAAMK,WAAW,GAAG,MAAOJ,GAAQ,IAAoB;EAC5DG,eAAe,CAACF,MAAM,CAACD,GAAG,CAAC;AAC7B,CAAC;AAED,OAAO,eAAeK,WAAWA,CAAA,EAAwB;EACvD,OAAOF,eAAe,CAACD,MAAM,CAAC,CAAC;AACjC;AAEA,OAAO,SAASI,eAAeA,CAAA,EAAe;EAC5C,OAAOH,eAAe,CAACD,MAAM,CAAC,CAAC;AACjC","ignoreList":[]}
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
// React Native Core
|
|
4
4
|
import { BackHandler, Platform } from 'react-native';
|
|
5
|
-
|
|
6
|
-
export function setGoBackImpl(fn) {
|
|
7
|
-
goBackFn = fn;
|
|
8
|
-
}
|
|
5
|
+
import { getReactRefSync } from "../../data/storage/reactRefManager.js";
|
|
9
6
|
export function closeCurrentScreen() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
if (getReactRefSync().isReady() && getReactRefSync().canGoBack()) {
|
|
8
|
+
getReactRefSync().goBack();
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
13
11
|
return false;
|
|
14
12
|
}
|
|
15
13
|
export function closeCurrentScreenSafe() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BackHandler","Platform","
|
|
1
|
+
{"version":3,"names":["BackHandler","Platform","getReactRefSync","closeCurrentScreen","isReady","canGoBack","goBack","closeCurrentScreenSafe","closed","OS","exitApp"],"sourceRoot":"../../../../src","sources":["services/navigation/goBackNavigation.ts"],"mappings":";;AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AACpD,SAASC,eAAe,QAAQ,uCAAoC;AAEpE,OAAO,SAASC,kBAAkBA,CAAA,EAAY;EAC5C,IAAID,eAAe,CAAC,CAAC,CAACE,OAAO,CAAC,CAAC,IAAIF,eAAe,CAAC,CAAC,CAACG,SAAS,CAAC,CAAC,EAAE;IAChEH,eAAe,CAAC,CAAC,CAACI,MAAM,CAAC,CAAC;IAC1B,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,sBAAsBA,CAAA,EAAS;EAC7C,MAAMC,MAAM,GAAGL,kBAAkB,CAAC,CAAC;EACnC,IAAI,CAACK,MAAM,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IACxCT,WAAW,CAACU,OAAO,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
|
|
@@ -9,12 +9,14 @@ import { getDeviceId } from "../../data/storage/deviceIdManager.js";
|
|
|
9
9
|
import { getSessionId } from "../../data/storage/sessionManager.js";
|
|
10
10
|
import { getLocationCoordinates } from "../../data/storage/locationManager.js";
|
|
11
11
|
import { getEncryptionKey, getPRefCode } from "../../data/storage/keysManager.js";
|
|
12
|
+
import { getBaseUrl } from "../../utils/config.js";
|
|
12
13
|
export function validateInput(input) {
|
|
13
14
|
const errors = [];
|
|
14
15
|
const auth = input.authType ?? 'PHONE';
|
|
15
16
|
if (!input.profile) errors.push('profile is mandatory');
|
|
16
17
|
if (!input.profile?.userId) errors.push('userId is mandatory');
|
|
17
18
|
if (!input.profile?.email) errors.push('email is mandatory');
|
|
19
|
+
if (!input.nonce) errors.push('nonce is mandatory');
|
|
18
20
|
const pv = input.profile?.pv;
|
|
19
21
|
const ev = input.profile?.ev;
|
|
20
22
|
if (typeof pv !== 'undefined' && pv !== '0' && pv !== '1') {
|
|
@@ -57,7 +59,8 @@ export async function generateUrl(input) {
|
|
|
57
59
|
screen: input.screen,
|
|
58
60
|
authType: input.authType ?? 'PHONE',
|
|
59
61
|
sessionId: sessionId ?? '',
|
|
60
|
-
deviceInfo
|
|
62
|
+
deviceInfo,
|
|
63
|
+
nonce: input.nonce
|
|
61
64
|
};
|
|
62
65
|
const validation = validateInput({
|
|
63
66
|
...normalized,
|
|
@@ -73,7 +76,8 @@ export async function generateUrl(input) {
|
|
|
73
76
|
profile: normalized.profile,
|
|
74
77
|
authType: normalized.authType,
|
|
75
78
|
deviceInfo: normalized.deviceInfo,
|
|
76
|
-
sessionId: normalized.sessionId
|
|
79
|
+
sessionId: normalized.sessionId,
|
|
80
|
+
nonce: normalized.nonce
|
|
77
81
|
};
|
|
78
82
|
const json = JSON.stringify(payload);
|
|
79
83
|
const key = await getEncryptionKey();
|
|
@@ -85,6 +89,6 @@ export async function generateUrl(input) {
|
|
|
85
89
|
if (!programCode || programCode === '-') {
|
|
86
90
|
throw new SDKError('pRefCode is mandatory. Initialize SDK with pRefCode.');
|
|
87
91
|
}
|
|
88
|
-
return
|
|
92
|
+
return `${getBaseUrl()}?pRefCode=${encodeURIComponent(programCode)}&qP=${encodeURIComponent(encoded)}`;
|
|
89
93
|
}
|
|
90
94
|
//# sourceMappingURL=urlGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SDKError","aesEncrypt","getDeviceId","getSessionId","getLocationCoordinates","getEncryptionKey","getPRefCode","validateInput","input","errors","auth","authType","profile","push","userId","email","pv","ev","username","phone","screenName","screen","name","attrs","attributes","length","ok","generateUrl","deviceId","storedLocation","sessionId","deviceInfo","dId","location","normalized","validation","join","payload","json","JSON","stringify","key","encoded","programCode","encodeURIComponent"],"sourceRoot":"../../../../src","sources":["services/url/urlGenerator.ts"],"mappings":";;AAAA;AACA,SAASA,QAAQ,QAAQ,uBAAoB;AAC7C,SAASC,UAAU,QAAQ,2BAAwB;;AAEnD;AACA,SAASC,WAAW,QAAQ,uCAAoC;AAChE,SAASC,YAAY,QAAQ,sCAAmC;AAChE,SAASC,sBAAsB,QAAQ,uCAAoC;AAC3E,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,mCAAgC;
|
|
1
|
+
{"version":3,"names":["SDKError","aesEncrypt","getDeviceId","getSessionId","getLocationCoordinates","getEncryptionKey","getPRefCode","getBaseUrl","validateInput","input","errors","auth","authType","profile","push","userId","email","nonce","pv","ev","username","phone","screenName","screen","name","attrs","attributes","length","ok","generateUrl","deviceId","storedLocation","sessionId","deviceInfo","dId","location","normalized","validation","join","payload","json","JSON","stringify","key","encoded","programCode","encodeURIComponent"],"sourceRoot":"../../../../src","sources":["services/url/urlGenerator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
import { openMap } from "../navigation/openMap.js";
|
|
4
|
+
import { openDialPad } from "../navigation/dialPad.js";
|
|
5
|
+
import { openBrowser } from "../navigation/openBrowser.js";
|
|
6
|
+
import { closeCurrentScreenSafe } from "../navigation/goBackNavigation.js";
|
|
7
|
+
import { setSessionId } from "../../data/storage/sessionManager.js";
|
|
5
8
|
export function handleWebMessage(raw, postBack) {
|
|
6
9
|
let msg;
|
|
7
10
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["openMap","openDialPad","openBrowser","closeCurrentScreenSafe","setSessionId","handleWebMessage","raw","postBack","msg","JSON","parse","action","payload","reply","data","lat","lng","label","ok","number","url","sessionId","id","error","e","message","String"],"sourceRoot":"../../../../src","sources":["services/webview/messageHandler.ts"],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"names":["openMap","openDialPad","openBrowser","closeCurrentScreenSafe","setSessionId","handleWebMessage","raw","postBack","msg","JSON","parse","action","payload","reply","data","lat","lng","label","ok","number","url","sessionId","id","error","e","message","String"],"sourceRoot":"../../../../src","sources":["services/webview/messageHandler.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,WAAW,QAAQ,0BAAuB;AACnD,SAASC,WAAW,QAAQ,8BAA2B;AACvD,SAASC,sBAAsB,QAAQ,mCAAgC;AACvE,SAASC,YAAY,QAAQ,sCAAmC;AAEhE,OAAO,SAASC,gBAAgBA,CAACC,GAAW,EAAEC,QAA8B,EAAE;EAC5E,IAAIC,GAAuC;EAC3C,IAAI;IACFA,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC;EACvB,CAAC,CAAC,MAAM;IACN;EACF;EACA,MAAMK,MAAM,GAAGH,GAAG,EAAEG,MAAM;EAC1B,MAAMC,OAAO,GAAGJ,GAAG,EAAEI,OAAO;EAE5B,MAAMC,KAAK,GAAIC,IAAS,IAAKP,QAAQ,GAAGO,IAAI,CAAC;EAE7C,CAAC,YAAY;IACX,IAAI;MACF,IAAIH,MAAM,KAAK,UAAU,EAAE;QACzB,MAAM;UAAEI,GAAG;UAAEC,GAAG;UAAEC;QAAM,CAAC,GAAGL,OAAO,IAAI,CAAC,CAAC;QACzC,MAAMZ,OAAO,CAACe,GAAG,EAAEC,GAAG,EAAEC,KAAK,CAAC;QAC9BJ,KAAK,CAAC;UAAEK,EAAE,EAAE,IAAI;UAAEP;QAAO,CAAC,CAAC;MAC7B,CAAC,MAAM,IAAIA,MAAM,KAAK,eAAe,EAAE;QACrC,MAAMV,WAAW,CAACW,OAAO,EAAEO,MAAM,CAAC;QAClCN,KAAK,CAAC;UAAEK,EAAE,EAAE,IAAI;UAAEP;QAAO,CAAC,CAAC;MAC7B,CAAC,MAAM,IAAIA,MAAM,KAAK,0BAA0B,EAAE;QAChD,MAAMT,WAAW,CAACU,OAAO,EAAEQ,GAAG,CAAC;QAC/BP,KAAK,CAAC;UAAEK,EAAE,EAAE,IAAI;UAAEP;QAAO,CAAC,CAAC;MAC7B,CAAC,MAAM,IAAIA,MAAM,KAAK,YAAY,EAAE;QAClC,MAAM;UAAEU;QAAU,CAAC,GAAGT,OAAO,IAAI,CAAC,CAAC;QACnC,MAAMU,EAAE,GAAG,MAAMlB,YAAY,CAACiB,SAAS,CAAC;QACxCR,KAAK,CAAC;UAAEK,EAAE,EAAE,IAAI;UAAEP,MAAM;UAAEU,SAAS,EAAEC;QAAG,CAAC,CAAC;MAC5C,CAAC,MAAM,IAAIX,MAAM,KAAK,aAAa,EAAE;QACnCR,sBAAsB,CAAC,CAAC;QACxB;MACF,CAAC,MAAM;QACLU,KAAK,CAAC;UAAEK,EAAE,EAAE,KAAK;UAAEK,KAAK,EAAE,gBAAgB;UAAEZ;QAAO,CAAC,CAAC;MACvD;IACF,CAAC,CAAC,OAAOa,CAAM,EAAE;MACfX,KAAK,CAAC;QAAEK,EAAE,EAAE,KAAK;QAAEK,KAAK,EAAEC,CAAC,EAAEC,OAAO,IAAIC,MAAM,CAACF,CAAC,CAAC;QAAEb;MAAO,CAAC,CAAC;IAC9D;EACF,CAAC,EAAE,CAAC;AACN","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// config.ts
|
|
4
|
+
|
|
5
|
+
// Default environment (build-time injected)
|
|
6
|
+
const injectedEnv = 'production';
|
|
7
|
+
const DEFAULT_ENVIRONMENT = injectedEnv === 'production' ? 'production' : 'sandbox';
|
|
8
|
+
const ENV_URLS = {
|
|
9
|
+
sandbox: 'https://testm.saversapp.com/',
|
|
10
|
+
production: 'https://m.saversapp.com/'
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// Current environment
|
|
14
|
+
let currentEnvironment = DEFAULT_ENVIRONMENT;
|
|
15
|
+
|
|
16
|
+
// Current base URL
|
|
17
|
+
let BASE_URL = ENV_URLS[currentEnvironment];
|
|
18
|
+
|
|
19
|
+
// Change environment
|
|
20
|
+
export const setEnvironment = env => {
|
|
21
|
+
currentEnvironment = env;
|
|
22
|
+
BASE_URL = ENV_URLS[env];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Get current environment
|
|
26
|
+
export const getEnvironment = () => {
|
|
27
|
+
return currentEnvironment;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// Get base URL
|
|
31
|
+
export const getBaseUrl = () => {
|
|
32
|
+
return BASE_URL;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=config.js.map
|