@savers_app/react-native-sdk 1.1.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 (197) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +508 -0
  3. package/lib/module/@types/@react-native-async-storage__async-storage.d.js +2 -0
  4. package/lib/module/@types/@react-native-async-storage__async-storage.d.js.map +1 -0
  5. package/lib/module/@types/@react-native-community__geolocation.d.js +2 -0
  6. package/lib/module/@types/@react-native-community__geolocation.d.js.map +1 -0
  7. package/lib/module/@types/react-native-aes-gcm-crypto.d.js +2 -0
  8. package/lib/module/@types/react-native-aes-gcm-crypto.d.js.map +1 -0
  9. package/lib/module/@types/react-native-device-info.d.js +2 -0
  10. package/lib/module/@types/react-native-device-info.d.js.map +1 -0
  11. package/lib/module/core/runtime.js +67 -0
  12. package/lib/module/core/runtime.js.map +1 -0
  13. package/lib/module/data/models/apiResponse.js +19 -0
  14. package/lib/module/data/models/apiResponse.js.map +1 -0
  15. package/lib/module/data/models/onboardingModel.js +67 -0
  16. package/lib/module/data/models/onboardingModel.js.map +1 -0
  17. package/lib/module/data/network/apiClient.js +109 -0
  18. package/lib/module/data/network/apiClient.js.map +1 -0
  19. package/lib/module/data/network/apiEndpoints.js +6 -0
  20. package/lib/module/data/network/apiEndpoints.js.map +1 -0
  21. package/lib/module/data/network/apiExceptionHandler.js +16 -0
  22. package/lib/module/data/network/apiExceptionHandler.js.map +1 -0
  23. package/lib/module/data/network/apiRepository.js +70 -0
  24. package/lib/module/data/network/apiRepository.js.map +1 -0
  25. package/lib/module/data/network/apiService.js +66 -0
  26. package/lib/module/data/network/apiService.js.map +1 -0
  27. package/lib/module/data/network/dataTypeUtils.js +77 -0
  28. package/lib/module/data/network/dataTypeUtils.js.map +1 -0
  29. package/lib/module/data/network/interceptors/authInterceptor.js +69 -0
  30. package/lib/module/data/network/interceptors/authInterceptor.js.map +1 -0
  31. package/lib/module/data/network/interceptors/errorInterceptor.js +15 -0
  32. package/lib/module/data/network/interceptors/errorInterceptor.js.map +1 -0
  33. package/lib/module/data/network/interceptors/loggingInterceptor.js +17 -0
  34. package/lib/module/data/network/interceptors/loggingInterceptor.js.map +1 -0
  35. package/lib/module/data/network/interceptors/networkInterceptor.js +22 -0
  36. package/lib/module/data/network/interceptors/networkInterceptor.js.map +1 -0
  37. package/lib/module/data/network/interceptors/retryInterceptor.js +22 -0
  38. package/lib/module/data/network/interceptors/retryInterceptor.js.map +1 -0
  39. package/lib/module/data/storage/asyncStorageManager.js +50 -0
  40. package/lib/module/data/storage/asyncStorageManager.js.map +1 -0
  41. package/lib/module/data/storage/deviceIdManager.js +45 -0
  42. package/lib/module/data/storage/deviceIdManager.js.map +1 -0
  43. package/lib/module/data/storage/keysManager.js +70 -0
  44. package/lib/module/data/storage/keysManager.js.map +1 -0
  45. package/lib/module/data/storage/locationManager.js +30 -0
  46. package/lib/module/data/storage/locationManager.js.map +1 -0
  47. package/lib/module/data/storage/sessionManager.js +12 -0
  48. package/lib/module/data/storage/sessionManager.js.map +1 -0
  49. package/lib/module/data/storage/storageKeys.js +7 -0
  50. package/lib/module/data/storage/storageKeys.js.map +1 -0
  51. package/lib/module/data/storage/storageManager.js +76 -0
  52. package/lib/module/data/storage/storageManager.js.map +1 -0
  53. package/lib/module/index.js +20 -0
  54. package/lib/module/index.js.map +1 -0
  55. package/lib/module/package.json +1 -0
  56. package/lib/module/services/device/location.js +47 -0
  57. package/lib/module/services/device/location.js.map +1 -0
  58. package/lib/module/services/navigation/dialPad.js +29 -0
  59. package/lib/module/services/navigation/dialPad.js.map +1 -0
  60. package/lib/module/services/navigation/goBackNavigation.js +22 -0
  61. package/lib/module/services/navigation/goBackNavigation.js.map +1 -0
  62. package/lib/module/services/navigation/openBrowser.js +8 -0
  63. package/lib/module/services/navigation/openBrowser.js.map +1 -0
  64. package/lib/module/services/navigation/openMap.js +26 -0
  65. package/lib/module/services/navigation/openMap.js.map +1 -0
  66. package/lib/module/services/permissions/permissionManager.js +28 -0
  67. package/lib/module/services/permissions/permissionManager.js.map +1 -0
  68. package/lib/module/services/url/urlGenerator.js +90 -0
  69. package/lib/module/services/url/urlGenerator.js.map +1 -0
  70. package/lib/module/services/webview/messageHandler.js +69 -0
  71. package/lib/module/services/webview/messageHandler.js.map +1 -0
  72. package/lib/module/utils/dependencyManager.js +51 -0
  73. package/lib/module/utils/dependencyManager.js.map +1 -0
  74. package/lib/module/utils/encryption.js +43 -0
  75. package/lib/module/utils/encryption.js.map +1 -0
  76. package/lib/module/utils/errors.js +9 -0
  77. package/lib/module/utils/errors.js.map +1 -0
  78. package/lib/module/utils/logger.js +14 -0
  79. package/lib/module/utils/logger.js.map +1 -0
  80. package/lib/module/utils/platformManager.js +14 -0
  81. package/lib/module/utils/platformManager.js.map +1 -0
  82. package/lib/module/utils/validator.js +26 -0
  83. package/lib/module/utils/validator.js.map +1 -0
  84. package/lib/typescript/package.json +1 -0
  85. package/lib/typescript/src/core/runtime.d.ts +10 -0
  86. package/lib/typescript/src/core/runtime.d.ts.map +1 -0
  87. package/lib/typescript/src/data/models/apiResponse.d.ts +9 -0
  88. package/lib/typescript/src/data/models/apiResponse.d.ts.map +1 -0
  89. package/lib/typescript/src/data/models/onboardingModel.d.ts +24 -0
  90. package/lib/typescript/src/data/models/onboardingModel.d.ts.map +1 -0
  91. package/lib/typescript/src/data/network/apiClient.d.ts +17 -0
  92. package/lib/typescript/src/data/network/apiClient.d.ts.map +1 -0
  93. package/lib/typescript/src/data/network/apiEndpoints.d.ts +4 -0
  94. package/lib/typescript/src/data/network/apiEndpoints.d.ts.map +1 -0
  95. package/lib/typescript/src/data/network/apiExceptionHandler.d.ts +3 -0
  96. package/lib/typescript/src/data/network/apiExceptionHandler.d.ts.map +1 -0
  97. package/lib/typescript/src/data/network/apiRepository.d.ts +19 -0
  98. package/lib/typescript/src/data/network/apiRepository.d.ts.map +1 -0
  99. package/lib/typescript/src/data/network/apiService.d.ts +19 -0
  100. package/lib/typescript/src/data/network/apiService.d.ts.map +1 -0
  101. package/lib/typescript/src/data/network/dataTypeUtils.d.ts +10 -0
  102. package/lib/typescript/src/data/network/dataTypeUtils.d.ts.map +1 -0
  103. package/lib/typescript/src/data/network/interceptors/authInterceptor.d.ts +13 -0
  104. package/lib/typescript/src/data/network/interceptors/authInterceptor.d.ts.map +1 -0
  105. package/lib/typescript/src/data/network/interceptors/errorInterceptor.d.ts +4 -0
  106. package/lib/typescript/src/data/network/interceptors/errorInterceptor.d.ts.map +1 -0
  107. package/lib/typescript/src/data/network/interceptors/loggingInterceptor.d.ts +5 -0
  108. package/lib/typescript/src/data/network/interceptors/loggingInterceptor.d.ts.map +1 -0
  109. package/lib/typescript/src/data/network/interceptors/networkInterceptor.d.ts +4 -0
  110. package/lib/typescript/src/data/network/interceptors/networkInterceptor.d.ts.map +1 -0
  111. package/lib/typescript/src/data/network/interceptors/retryInterceptor.d.ts +7 -0
  112. package/lib/typescript/src/data/network/interceptors/retryInterceptor.d.ts.map +1 -0
  113. package/lib/typescript/src/data/storage/asyncStorageManager.d.ts +13 -0
  114. package/lib/typescript/src/data/storage/asyncStorageManager.d.ts.map +1 -0
  115. package/lib/typescript/src/data/storage/deviceIdManager.d.ts +2 -0
  116. package/lib/typescript/src/data/storage/deviceIdManager.d.ts.map +1 -0
  117. package/lib/typescript/src/data/storage/keysManager.d.ts +29 -0
  118. package/lib/typescript/src/data/storage/keysManager.d.ts.map +1 -0
  119. package/lib/typescript/src/data/storage/locationManager.d.ts +21 -0
  120. package/lib/typescript/src/data/storage/locationManager.d.ts.map +1 -0
  121. package/lib/typescript/src/data/storage/sessionManager.d.ts +3 -0
  122. package/lib/typescript/src/data/storage/sessionManager.d.ts.map +1 -0
  123. package/lib/typescript/src/data/storage/storageKeys.d.ts +5 -0
  124. package/lib/typescript/src/data/storage/storageKeys.d.ts.map +1 -0
  125. package/lib/typescript/src/data/storage/storageManager.d.ts +16 -0
  126. package/lib/typescript/src/data/storage/storageManager.d.ts.map +1 -0
  127. package/lib/typescript/src/index.d.ts +18 -0
  128. package/lib/typescript/src/index.d.ts.map +1 -0
  129. package/lib/typescript/src/services/device/location.d.ts +8 -0
  130. package/lib/typescript/src/services/device/location.d.ts.map +1 -0
  131. package/lib/typescript/src/services/navigation/dialPad.d.ts +3 -0
  132. package/lib/typescript/src/services/navigation/dialPad.d.ts.map +1 -0
  133. package/lib/typescript/src/services/navigation/goBackNavigation.d.ts +4 -0
  134. package/lib/typescript/src/services/navigation/goBackNavigation.d.ts.map +1 -0
  135. package/lib/typescript/src/services/navigation/openBrowser.d.ts +2 -0
  136. package/lib/typescript/src/services/navigation/openBrowser.d.ts.map +1 -0
  137. package/lib/typescript/src/services/navigation/openMap.d.ts +2 -0
  138. package/lib/typescript/src/services/navigation/openMap.d.ts.map +1 -0
  139. package/lib/typescript/src/services/permissions/permissionManager.d.ts +4 -0
  140. package/lib/typescript/src/services/permissions/permissionManager.d.ts.map +1 -0
  141. package/lib/typescript/src/services/url/urlGenerator.d.ts +43 -0
  142. package/lib/typescript/src/services/url/urlGenerator.d.ts.map +1 -0
  143. package/lib/typescript/src/services/webview/messageHandler.d.ts +2 -0
  144. package/lib/typescript/src/services/webview/messageHandler.d.ts.map +1 -0
  145. package/lib/typescript/src/utils/dependencyManager.d.ts +31 -0
  146. package/lib/typescript/src/utils/dependencyManager.d.ts.map +1 -0
  147. package/lib/typescript/src/utils/encryption.d.ts +5 -0
  148. package/lib/typescript/src/utils/encryption.d.ts.map +1 -0
  149. package/lib/typescript/src/utils/errors.d.ts +4 -0
  150. package/lib/typescript/src/utils/errors.d.ts.map +1 -0
  151. package/lib/typescript/src/utils/logger.d.ts +6 -0
  152. package/lib/typescript/src/utils/logger.d.ts.map +1 -0
  153. package/lib/typescript/src/utils/platformManager.d.ts +4 -0
  154. package/lib/typescript/src/utils/platformManager.d.ts.map +1 -0
  155. package/lib/typescript/src/utils/validator.d.ts +4 -0
  156. package/lib/typescript/src/utils/validator.d.ts.map +1 -0
  157. package/package.json +176 -0
  158. package/src/@types/@react-native-async-storage__async-storage.d.ts +7 -0
  159. package/src/@types/@react-native-community__geolocation.d.ts +18 -0
  160. package/src/@types/react-native-aes-gcm-crypto.d.ts +22 -0
  161. package/src/@types/react-native-device-info.d.ts +3 -0
  162. package/src/core/runtime.ts +80 -0
  163. package/src/data/models/apiResponse.ts +28 -0
  164. package/src/data/models/onboardingModel.ts +99 -0
  165. package/src/data/network/apiClient.ts +148 -0
  166. package/src/data/network/apiEndpoints.ts +3 -0
  167. package/src/data/network/apiExceptionHandler.ts +16 -0
  168. package/src/data/network/apiRepository.ts +106 -0
  169. package/src/data/network/apiService.ts +72 -0
  170. package/src/data/network/dataTypeUtils.ts +78 -0
  171. package/src/data/network/interceptors/authInterceptor.ts +77 -0
  172. package/src/data/network/interceptors/errorInterceptor.ts +13 -0
  173. package/src/data/network/interceptors/loggingInterceptor.ts +16 -0
  174. package/src/data/network/interceptors/networkInterceptor.ts +20 -0
  175. package/src/data/network/interceptors/retryInterceptor.ts +24 -0
  176. package/src/data/storage/asyncStorageManager.ts +56 -0
  177. package/src/data/storage/deviceIdManager.ts +46 -0
  178. package/src/data/storage/keysManager.ts +89 -0
  179. package/src/data/storage/locationManager.ts +39 -0
  180. package/src/data/storage/sessionManager.ts +11 -0
  181. package/src/data/storage/storageKeys.ts +4 -0
  182. package/src/data/storage/storageManager.ts +83 -0
  183. package/src/index.tsx +17 -0
  184. package/src/services/device/location.ts +51 -0
  185. package/src/services/navigation/dialPad.ts +39 -0
  186. package/src/services/navigation/goBackNavigation.ts +22 -0
  187. package/src/services/navigation/openBrowser.ts +6 -0
  188. package/src/services/navigation/openMap.ts +39 -0
  189. package/src/services/permissions/permissionManager.ts +33 -0
  190. package/src/services/url/urlGenerator.ts +132 -0
  191. package/src/services/webview/messageHandler.ts +48 -0
  192. package/src/utils/dependencyManager.ts +82 -0
  193. package/src/utils/encryption.ts +58 -0
  194. package/src/utils/errors.ts +6 -0
  195. package/src/utils/logger.ts +11 -0
  196. package/src/utils/platformManager.ts +14 -0
  197. package/src/utils/validator.ts +29 -0
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ export function onBoardingImageFromJson(json) {
4
+ return {
5
+ id: typeof json['id'] === 'number' ? json['id'] : null,
6
+ url: typeof json['url'] === 'string' ? json['url'] : null
7
+ };
8
+ }
9
+ export function onBoardingImageListFromJson(list) {
10
+ const out = [];
11
+ for (const item of list) {
12
+ if (item && typeof item === 'object' && !Array.isArray(item)) {
13
+ try {
14
+ out.push(onBoardingImageFromJson(item));
15
+ } catch {}
16
+ }
17
+ }
18
+ return out;
19
+ }
20
+ export function onBoardingThemeFromJson(json) {
21
+ const map = {
22
+ ...json
23
+ };
24
+ const imagesRaw = Array.isArray(map['images']) ? map['images'] : [];
25
+ const images = onBoardingImageListFromJson(imagesRaw);
26
+ const total = typeof map['total'] === 'number' ? map['total'] : typeof map['total'] === 'string' ? Number(map['total']) : null;
27
+ return {
28
+ total: total ?? null,
29
+ images: images.length > 0 ? images : null
30
+ };
31
+ }
32
+ export function onBoardingDataFromJson(json) {
33
+ const map = {
34
+ ...json
35
+ };
36
+ const hasDayNight = 'day' in map || 'night' in map;
37
+ if (hasDayNight) {
38
+ const day = map['day'] ? onBoardingThemeFromJson(map['day']) : null;
39
+ const night = map['night'] ? onBoardingThemeFromJson(map['night']) : null;
40
+ return {
41
+ day,
42
+ night
43
+ };
44
+ }
45
+ const legacyImages = Array.isArray(map['images']) ? onBoardingImageListFromJson(map['images']) : [];
46
+ const legacyTotal = typeof map['total'] === 'number' ? map['total'] : typeof map['total'] === 'string' ? Number(map['total']) : null;
47
+ const legacyTheme = {
48
+ total: legacyTotal ?? null,
49
+ images: legacyImages.length > 0 ? legacyImages : null
50
+ };
51
+ return {
52
+ day: legacyTheme,
53
+ night: null
54
+ };
55
+ }
56
+ export const images = d => d?.day?.images ?? d?.night?.images ?? null;
57
+ export const total = d => d?.day?.total ?? d?.night?.total ?? null;
58
+ export const hasTotal = d => total(d) !== null;
59
+ export const hasImages = d => !!images(d) && (images(d)?.length ?? 0) > 0;
60
+ export const imageCount = d => images(d)?.length ?? 0;
61
+ export const isValid = d => !!(d?.day?.total && d?.day?.images) || !!(d?.night?.total && d?.night?.images);
62
+ export const getImage = (d, index) => {
63
+ const list = images(d);
64
+ if (list && index >= 0 && index < list.length) return list[index] ?? null;
65
+ return null;
66
+ };
67
+ //# sourceMappingURL=onboardingModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["onBoardingImageFromJson","json","id","url","onBoardingImageListFromJson","list","out","item","Array","isArray","push","onBoardingThemeFromJson","map","imagesRaw","images","total","Number","length","onBoardingDataFromJson","hasDayNight","day","night","legacyImages","legacyTotal","legacyTheme","d","hasTotal","hasImages","imageCount","isValid","getImage","index"],"sourceRoot":"../../../../src","sources":["data/models/onboardingModel.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable prettier/prettier */
4
+
5
+ // Utilities / Helpers
6
+ import { logger } from "../../utils/logger.js";
7
+
8
+ // Services / API clients
9
+ import { AuthInterceptor } from "./interceptors/authInterceptor.js";
10
+ import { RetryInterceptor } from "./interceptors/retryInterceptor.js";
11
+ import { ErrorInterceptor } from "./interceptors/errorInterceptor.js";
12
+ import { NetworkInterceptor } from "./interceptors/networkInterceptor.js";
13
+ import { LoggingInterceptor } from "./interceptors/loggingInterceptor.js";
14
+ export let Environment = /*#__PURE__*/function (Environment) {
15
+ Environment["production"] = "production";
16
+ Environment["staging"] = "staging";
17
+ return Environment;
18
+ }({});
19
+ export class ApiClient {
20
+ static baseUrls = {
21
+ [Environment.production]: 'https://....',
22
+ [Environment.staging]: 'https://....'
23
+ };
24
+ interceptors = [];
25
+ constructor(environment = Environment.production) {
26
+ this.baseUrl = ApiClient.baseUrls[environment];
27
+ this.interceptors = [new LoggingInterceptor(), new NetworkInterceptor(), new AuthInterceptor(), new RetryInterceptor(2), new ErrorInterceptor()];
28
+ }
29
+ async get(endpoint, params) {
30
+ return this.request('GET', endpoint, undefined, params);
31
+ }
32
+ async post(endpoint, data, params) {
33
+ return this.request('POST', endpoint, data, params);
34
+ }
35
+ async put(endpoint, data, params) {
36
+ return this.request('PUT', endpoint, data, params);
37
+ }
38
+ async delete(endpoint, data, params) {
39
+ return this.request('DELETE', endpoint, data, params);
40
+ }
41
+ async request(method, endpoint, data, params) {
42
+ const url = this.buildUrl(endpoint, params);
43
+ let options = {
44
+ method,
45
+ url,
46
+ headers: {
47
+ 'Content-Type': 'application/json'
48
+ },
49
+ body: data,
50
+ params // kept for interceptors
51
+ };
52
+
53
+ // Apply request interceptors
54
+ for (const interceptor of this.interceptors) {
55
+ if (interceptor.onRequest) {
56
+ options = await interceptor.onRequest(options);
57
+ if (!options) throw new Error('Interceptor blocked request');
58
+ }
59
+ }
60
+ try {
61
+ const response = await fetch(options.url, {
62
+ method: options.method,
63
+ headers: options.headers,
64
+ body: options.body ? JSON.stringify(options.body) : undefined
65
+ });
66
+ let responseData = null;
67
+ try {
68
+ responseData = await response.json();
69
+ } catch {
70
+ // ignore JSON parse error
71
+ }
72
+
73
+ // Apply response interceptors
74
+ let responseObj = {
75
+ data: responseData,
76
+ status: response.status,
77
+ statusText: response.statusText
78
+ };
79
+ for (const interceptor of this.interceptors) {
80
+ if (interceptor.onResponse) {
81
+ responseObj = await interceptor.onResponse(responseObj);
82
+ }
83
+ }
84
+ return responseObj;
85
+ } catch (error) {
86
+ // Apply error interceptors
87
+ logger.error('API Request failed', error);
88
+ const handledError = error;
89
+ for (const interceptor of this.interceptors) {
90
+ if (interceptor.onError) {
91
+ // This is complex to mock fully without a real handler
92
+ // interceptor.onError(handledError, handler);
93
+ }
94
+ }
95
+ throw handledError;
96
+ }
97
+ }
98
+ buildUrl(endpoint, params) {
99
+ let url = `${this.baseUrl}${endpoint}`;
100
+ if (params) {
101
+ const queryString = Object.keys(params).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join('&');
102
+ if (queryString) {
103
+ url += `?${queryString}`;
104
+ }
105
+ }
106
+ return url;
107
+ }
108
+ }
109
+ //# sourceMappingURL=apiClient.js.map
@@ -0,0 +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":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export const ApiEndpoints = {
4
+ onboarding: '/on-boarding/listings'
5
+ };
6
+ //# sourceMappingURL=apiEndpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ApiEndpoints","onboarding"],"sourceRoot":"../../../../src","sources":["data/network/apiEndpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAG;EAC1BC,UAAU,EAAE;AACd,CAAU","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ export function getErrorMessage(status, type) {
4
+ if (type === 'timeout') return 'Connection timeout. Please try again.';
5
+ if (type === 'sendtimeout') return 'Send timeout. Please try again.';
6
+ if (type === 'receivetimeout') return 'Receive timeout. Please try again.';
7
+ if (typeof status === 'number') {
8
+ if (status >= 400 && status < 500) return `Request error [${status}]. Please check your input.`;
9
+ if (status >= 500) return `Server error [${status}]. Please try again later.`;
10
+ }
11
+ return 'Something went wrong. Please try again.';
12
+ }
13
+ export function noInternetError() {
14
+ return 'No internet connection. Please check your network.';
15
+ }
16
+ //# sourceMappingURL=apiExceptionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getErrorMessage","status","type","noInternetError"],"sourceRoot":"../../../../src","sources":["data/network/apiExceptionHandler.ts"],"mappings":";;AAAA,OAAO,SAASA,eAAeA,CAACC,MAAe,EAAEC,IAAa,EAAU;EACtE,IAAIA,IAAI,KAAK,SAAS,EAAE,OAAO,uCAAuC;EACtE,IAAIA,IAAI,KAAK,aAAa,EAAE,OAAO,iCAAiC;EACpE,IAAIA,IAAI,KAAK,gBAAgB,EAAE,OAAO,oCAAoC;EAC1E,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;IAC9B,IAAIA,MAAM,IAAI,GAAG,IAAIA,MAAM,GAAG,GAAG,EAC/B,OAAO,kBAAkBA,MAAM,6BAA6B;IAC9D,IAAIA,MAAM,IAAI,GAAG,EACf,OAAO,iBAAiBA,MAAM,4BAA4B;EAC9D;EACA,OAAO,yCAAyC;AAClD;AAEA,OAAO,SAASE,eAAeA,CAAA,EAAW;EACxC,OAAO,oDAAoD;AAC7D","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ // Services / API clients
4
+
5
+ // Types / Models
6
+
7
+ import { apiError, apiSuccess } from "../models/apiResponse.js";
8
+
9
+ // Storage
10
+ import { get as storageGet, save as storageSave } from "../storage/storageManager.js";
11
+ export let CacheStrategy = /*#__PURE__*/function (CacheStrategy) {
12
+ CacheStrategy["cache"] = "cache";
13
+ CacheStrategy["cacheOnly"] = "cacheOnly";
14
+ CacheStrategy["network"] = "network";
15
+ CacheStrategy["normal"] = "normal";
16
+ return CacheStrategy;
17
+ }({});
18
+ export class ApiRepository {
19
+ constructor(apiClient) {
20
+ this.apiClient = apiClient;
21
+ }
22
+ async *getData(endpoint, opts) {
23
+ const cacheStrategy = opts?.cacheStrategy ?? CacheStrategy.normal;
24
+ const cacheKey = (opts?.storageKeyPrefix ?? '') + endpoint + JSON.stringify(opts?.params ?? {});
25
+ if (cacheStrategy === CacheStrategy.cache) {
26
+ const cached = await storageGet(cacheKey);
27
+ if (cached !== null && cached !== undefined) {
28
+ yield apiSuccess(cached, 'Data fetched from cache', true);
29
+ } else {
30
+ const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey);
31
+ yield res;
32
+ }
33
+ return;
34
+ }
35
+ if (cacheStrategy === CacheStrategy.cacheOnly) {
36
+ const cached = await storageGet(cacheKey);
37
+ if (cached !== null && cached !== undefined) {
38
+ yield apiSuccess(cached, 'Data fetched from cache', true);
39
+ } else {
40
+ yield apiError('No cached data found');
41
+ }
42
+ return;
43
+ }
44
+ if (cacheStrategy === CacheStrategy.network) {
45
+ const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey);
46
+ yield res;
47
+ return;
48
+ }
49
+ const cached = await storageGet(cacheKey);
50
+ if (cached !== null && cached !== undefined) {
51
+ yield apiSuccess(cached, 'Data fetched from cache', true);
52
+ }
53
+ const res = await this.fetchFromNetwork(endpoint, opts?.params, cacheKey);
54
+ yield res;
55
+ }
56
+ async fetchFromNetwork(endpoint, params, cacheKey) {
57
+ try {
58
+ const response = await this.apiClient.get(endpoint, params);
59
+ const data = response?.data ?? null;
60
+ const message = response?.message ?? response?.statusText ?? 'No message';
61
+ if (data !== null && cacheKey) {
62
+ await storageSave(cacheKey, data);
63
+ }
64
+ return apiSuccess(data, message, false);
65
+ } catch (e) {
66
+ return apiError(`Network request failed: ${e}`);
67
+ }
68
+ }
69
+ }
70
+ //# sourceMappingURL=apiRepository.js.map
@@ -0,0 +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":"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","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ // Utilities
4
+ import { logger } from "../../utils/logger.js";
5
+
6
+ // Types / Models
7
+
8
+ import { onBoardingDataFromJson } from "../models/onboardingModel.js";
9
+
10
+ // Storage
11
+ import { clearAll as storageClearAll } from "../storage/storageManager.js";
12
+
13
+ // API
14
+ import { ApiEndpoints } from "./apiEndpoints.js";
15
+ import { ApiRepository, CacheStrategy } from "./apiRepository.js";
16
+ import { Environment, ApiClient } from "./apiClient.js";
17
+ export class ApiService {
18
+ constructor(environment = Environment.production) {
19
+ const apiClient = new ApiClient(environment);
20
+ this.repository = new ApiRepository(apiClient);
21
+ logger.info(`ApiService initialized with environment: ${environment}`);
22
+ }
23
+
24
+ /**
25
+ * Get onboarding data using GenericRepository with stream
26
+ */
27
+ async *getOnBoarding(opts) {
28
+ const generator = this.repository.getData(ApiEndpoints.onboarding, {
29
+ cacheStrategy: opts?.cacheStrategy ?? CacheStrategy.normal
30
+ });
31
+ for await (const response of generator) {
32
+ if (response.status === true && response.data) {
33
+ try {
34
+ const parsedData = onBoardingDataFromJson(response.data);
35
+ yield {
36
+ ...response,
37
+ data: parsedData
38
+ };
39
+ } catch (e) {
40
+ yield {
41
+ status: false,
42
+ message: `Failed to parse onboarding data: ${e}`,
43
+ data: null,
44
+ fromCache: response.fromCache
45
+ };
46
+ }
47
+ } else {
48
+ yield {
49
+ status: false,
50
+ message: response.message ?? 'Failed to load onboarding data',
51
+ data: null,
52
+ fromCache: response.fromCache
53
+ };
54
+ }
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Clear all cached data
60
+ */
61
+ async clearCache() {
62
+ await storageClearAll();
63
+ logger.info('Cache cleared');
64
+ }
65
+ }
66
+ //# sourceMappingURL=apiService.js.map
@@ -0,0 +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;;AAElC;AACA,SAASC,QAAQ,IAAIC,eAAe,QAAQ,8BAA2B;;AAEvE;AACA,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,aAAa,EAAEC,aAAa,QAAQ,oBAAiB;AAC9D,SAASC,WAAW,EAAEC,SAAS,QAAQ,gBAAa;AAEpD,OAAO,MAAMC,UAAU,CAAC;EAGtBC,WAAWA,CAACC,WAAwB,GAAGJ,WAAW,CAACK,UAAU,EAAE;IAC7D,MAAMC,SAAS,GAAG,IAAIL,SAAS,CAACG,WAAW,CAAC;IAC5C,IAAI,CAACG,UAAU,GAAG,IAAIT,aAAa,CAACQ,SAAS,CAAC;IAC9Cb,MAAM,CAACe,IAAI,CAAC,4CAA4CJ,WAAW,EAAE,CAAC;EACxE;;EAEA;AACF;AACA;EACE,OAAOK,aAAaA,CAACC,IAEpB,EAAqE;IACpE,MAAMC,SAAS,GAAG,IAAI,CAACJ,UAAU,CAACK,OAAO,CAAMf,YAAY,CAACgB,UAAU,EAAE;MACtEC,aAAa,EAAEJ,IAAI,EAAEI,aAAa,IAAIf,aAAa,CAACgB;IACtD,CAAC,CAAC;IAEF,WAAW,MAAMC,QAAQ,IAAIL,SAAS,EAAE;MACtC,IAAIK,QAAQ,CAACC,MAAM,KAAK,IAAI,IAAID,QAAQ,CAACE,IAAI,EAAE;QAC7C,IAAI;UACF,MAAMC,UAAU,GAAGzB,sBAAsB,CAACsB,QAAQ,CAACE,IAAI,CAAC;UACxD,MAAM;YACJ,GAAGF,QAAQ;YACXE,IAAI,EAAEC;UACR,CAAC;QACH,CAAC,CAAC,OAAOC,CAAC,EAAE;UACV,MAAM;YACJH,MAAM,EAAE,KAAK;YACbI,OAAO,EAAE,oCAAoCD,CAAC,EAAE;YAChDF,IAAI,EAAE,IAAI;YACVI,SAAS,EAAEN,QAAQ,CAACM;UACtB,CAAC;QACH;MACF,CAAC,MAAM;QACL,MAAM;UACJL,MAAM,EAAE,KAAK;UACbI,OAAO,EAAEL,QAAQ,CAACK,OAAO,IAAI,gCAAgC;UAC7DH,IAAI,EAAE,IAAI;UACVI,SAAS,EAAEN,QAAQ,CAACM;QACtB,CAAC;MACH;IACF;EACF;;EAEA;AACF;AACA;EACE,MAAMC,UAAUA,CAAA,EAAkB;IAChC,MAAM3B,eAAe,CAAC,CAAC;IACvBH,MAAM,CAACe,IAAI,CAAC,eAAe,CAAC;EAC9B;AACF","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ export function parseToString(value) {
4
+ if (value === null || value === undefined) return null;
5
+ if (typeof value === 'string') return value;
6
+ if (typeof value === 'number') return String(value);
7
+ if (typeof value === 'boolean') return String(value);
8
+ return String(value);
9
+ }
10
+ export function parseToInt(value) {
11
+ if (value === null || value === undefined) return null;
12
+ if (typeof value === 'number') return Math.trunc(value);
13
+ if (typeof value === 'string') {
14
+ const n = Number(value);
15
+ if (!Number.isNaN(n)) return Math.trunc(n);
16
+ }
17
+ return null;
18
+ }
19
+ export function parseToDouble(value) {
20
+ if (value === null || value === undefined) return null;
21
+ if (typeof value === 'number') return value;
22
+ if (typeof value === 'string') {
23
+ const n = Number(value);
24
+ if (!Number.isNaN(n)) return n;
25
+ }
26
+ return null;
27
+ }
28
+ export function parseToBool(value) {
29
+ if (value === null || value === undefined) return null;
30
+ if (typeof value === 'boolean') return value;
31
+ if (typeof value === 'number') return value === 1;
32
+ if (typeof value === 'string') {
33
+ const v = value.toLowerCase();
34
+ if (v === 'true' || v === '1' || v === 'yes') return true;
35
+ if (v === 'false' || v === '0' || v === 'no') return false;
36
+ }
37
+ return null;
38
+ }
39
+ export function parseToMap(value) {
40
+ if (value === null || value === undefined) return null;
41
+ if (typeof value === 'object' && !Array.isArray(value)) {
42
+ return {
43
+ ...value
44
+ };
45
+ }
46
+ return null;
47
+ }
48
+ export function parseToList(value) {
49
+ if (Array.isArray(value)) return value;
50
+ return null;
51
+ }
52
+ export function parseToStringList(value) {
53
+ if (!Array.isArray(value)) return null;
54
+ const out = [];
55
+ for (const item of value) {
56
+ const s = parseToString(item);
57
+ if (s !== null) out.push(s);
58
+ }
59
+ return out;
60
+ }
61
+ export function isNullOrEmpty(value) {
62
+ if (value === null || value === undefined) return true;
63
+ if (typeof value === 'string') return value.length === 0;
64
+ if (Array.isArray(value)) return value.length === 0;
65
+ if (typeof value === 'object') return Object.keys(value).length === 0;
66
+ return false;
67
+ }
68
+ export function safeParseForModel(data) {
69
+ if (data === null || data === undefined) return null;
70
+ if (typeof data === 'object' && !Array.isArray(data)) {
71
+ return {
72
+ ...data
73
+ };
74
+ }
75
+ return data;
76
+ }
77
+ //# sourceMappingURL=dataTypeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseToString","value","undefined","String","parseToInt","Math","trunc","n","Number","isNaN","parseToDouble","parseToBool","v","toLowerCase","parseToMap","Array","isArray","parseToList","parseToStringList","out","item","s","push","isNullOrEmpty","length","Object","keys","safeParseForModel","data"],"sourceRoot":"../../../../src","sources":["data/network/dataTypeUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable no-unreachable */
4
+
5
+ // Utilities
6
+ import { logger } from "../../../utils/logger.js";
7
+ export class AuthInterceptor {
8
+ static oauthSubIdKey = 'oauthSubId';
9
+ static bodyMethods = new Set(['POST', 'PUT', 'PATCH']);
10
+ static excludedApis = new Set();
11
+ async onRequest(options) {
12
+ try {
13
+ if (this.shouldExcludeApi(options.url)) {
14
+ return options;
15
+ }
16
+ const userId = await this.getCurrentUserId();
17
+ if (userId) {
18
+ this.addAuthenticationData(options, userId);
19
+ }
20
+ } catch (e) {
21
+ logger.error('AuthInterceptor error:', e);
22
+ }
23
+ return options;
24
+ }
25
+ addAuthenticationData(options, userId) {
26
+ const method = (options.method || 'GET').toUpperCase();
27
+ if (AuthInterceptor.bodyMethods.has(method)) {
28
+ this.addToQueryParametersAndBody(options, userId);
29
+ } else {
30
+ this.addToQueryParameters(options, userId);
31
+ }
32
+ }
33
+ addToQueryParameters(options, userId) {
34
+ options.params = options.params || {};
35
+ options.params[AuthInterceptor.oauthSubIdKey] = userId;
36
+ }
37
+ addToQueryParametersAndBody(options, userId) {
38
+ this.addToQueryParameters(options, userId);
39
+ this.addToRequestBody(options, userId);
40
+ }
41
+ addToRequestBody(options, userId) {
42
+ if (options.body instanceof FormData) {
43
+ options.body.append(AuthInterceptor.oauthSubIdKey, userId);
44
+ } else if (typeof options.body === 'object' && options.body !== null) {
45
+ options.body[AuthInterceptor.oauthSubIdKey] = userId;
46
+ }
47
+ }
48
+ shouldExcludeApi(apiPath) {
49
+ if (!apiPath) return false;
50
+ for (const excludedPath of AuthInterceptor.excludedApis) {
51
+ if (apiPath.includes(excludedPath)) {
52
+ return true;
53
+ }
54
+ }
55
+ return false;
56
+ }
57
+ async getCurrentUserId() {
58
+ try {
59
+ // Placeholder for Keycloak integration
60
+ // const currentUser = KeycloakWebViewManager.instance.currentUser;
61
+ // return currentUser?.email;
62
+ return null;
63
+ } catch (e) {
64
+ logger.error('Failed to get current user ID:', e);
65
+ return null;
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=authInterceptor.js.map
@@ -0,0 +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,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAAC,CAAC;MAC5C,IAAID,MAAM,EAAE;QACV,IAAI,CAACE,qBAAqB,CAACL,OAAO,EAAEG,MAAM,CAAC;MAC7C;IACF,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVb,MAAM,CAACc,KAAK,CAAC,wBAAwB,EAAED,CAAC,CAAC;IAC3C;IAEA,OAAON,OAAO;EAChB;EAEQK,qBAAqBA,CAACL,OAAY,EAAEG,MAAc,EAAE;IAC1D,MAAMK,MAAM,GAAG,CAACR,OAAO,CAACQ,MAAM,IAAI,KAAK,EAAEC,WAAW,CAAC,CAAC;IAEtD,IAAIf,eAAe,CAACE,WAAW,CAACc,GAAG,CAACF,MAAM,CAAC,EAAE;MAC3C,IAAI,CAACG,2BAA2B,CAACX,OAAO,EAAEG,MAAM,CAAC;IACnD,CAAC,MAAM;MACL,IAAI,CAACS,oBAAoB,CAACZ,OAAO,EAAEG,MAAM,CAAC;IAC5C;EACF;EAEQS,oBAAoBA,CAACZ,OAAY,EAAEG,MAAc,EAAE;IACzDH,OAAO,CAACa,MAAM,GAAGb,OAAO,CAACa,MAAM,IAAI,CAAC,CAAC;IACrCb,OAAO,CAACa,MAAM,CAACnB,eAAe,CAACC,aAAa,CAAC,GAAGQ,MAAM;EACxD;EAEQQ,2BAA2BA,CAACX,OAAY,EAAEG,MAAc,EAAE;IAChE,IAAI,CAACS,oBAAoB,CAACZ,OAAO,EAAEG,MAAM,CAAC;IAC1C,IAAI,CAACW,gBAAgB,CAACd,OAAO,EAAEG,MAAM,CAAC;EACxC;EAEQW,gBAAgBA,CAACd,OAAY,EAAEG,MAAc,EAAE;IACrD,IAAIH,OAAO,CAACe,IAAI,YAAYC,QAAQ,EAAE;MACpChB,OAAO,CAACe,IAAI,CAACE,MAAM,CAACvB,eAAe,CAACC,aAAa,EAAEQ,MAAM,CAAC;IAC5D,CAAC,MAAM,IAAI,OAAOH,OAAO,CAACe,IAAI,KAAK,QAAQ,IAAIf,OAAO,CAACe,IAAI,KAAK,IAAI,EAAE;MACpEf,OAAO,CAACe,IAAI,CAACrB,eAAe,CAACC,aAAa,CAAC,GAAGQ,MAAM;IACtD;EACF;EAEQF,gBAAgBA,CAACiB,OAAe,EAAW;IACjD,IAAI,CAACA,OAAO,EAAE,OAAO,KAAK;IAC1B,KAAK,MAAMC,YAAY,IAAIzB,eAAe,CAACI,YAAY,EAAE;MACvD,IAAIoB,OAAO,CAACE,QAAQ,CAACD,YAAY,CAAC,EAAE;QAClC,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEA,MAAcf,gBAAgBA,CAAA,EAA2B;IACvD,IAAI;MACF;MACA;MACA;MACA,OAAO,IAAI;IACb,CAAC,CAAC,OAAOE,CAAC,EAAE;MACVb,MAAM,CAACc,KAAK,CAAC,gCAAgC,EAAED,CAAC,CAAC;MACjD,OAAO,IAAI;IACb;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ // Utilities / Helpers
4
+ import { getErrorMessage } from "../apiExceptionHandler.js";
5
+ export class ErrorInterceptor {
6
+ onError(err, handler) {
7
+ const unifiedMessage = getErrorMessage(err?.status, err?.type);
8
+ const newError = {
9
+ ...err,
10
+ error: unifiedMessage
11
+ };
12
+ handler.reject(newError);
13
+ }
14
+ }
15
+ //# sourceMappingURL=errorInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getErrorMessage","ErrorInterceptor","onError","err","handler","unifiedMessage","status","type","newError","error","reject"],"sourceRoot":"../../../../../src","sources":["data/network/interceptors/errorInterceptor.ts"],"mappings":";;AAAA;AACA,SAASA,eAAe,QAAQ,2BAAwB;AAExD,OAAO,MAAMC,gBAAgB,CAAC;EAC5BC,OAAOA,CAACC,GAAQ,EAAEC,OAAY,EAAE;IAC9B,MAAMC,cAAc,GAAGL,eAAe,CAACG,GAAG,EAAEG,MAAM,EAAEH,GAAG,EAAEI,IAAI,CAAC;IAC9D,MAAMC,QAAQ,GAAG;MACf,GAAGL,GAAG;MACNM,KAAK,EAAEJ;IACT,CAAC;IACDD,OAAO,CAACM,MAAM,CAACF,QAAQ,CAAC;EAC1B;AACF","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ // Utilities
4
+ import { logger } from "../../../utils/logger.js";
5
+ export class LoggingInterceptor {
6
+ onRequest(options) {
7
+ logger.info(`➡️ [REQUEST] ${options.method} ${options.url}`);
8
+ logger.info('Headers:', options.headers);
9
+ logger.info('Body:', options.body);
10
+ return options;
11
+ }
12
+ onResponse(response) {
13
+ logger.info(`✅ [RESPONSE] ${response.status}:`, response.data);
14
+ return response;
15
+ }
16
+ }
17
+ //# sourceMappingURL=loggingInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["logger","LoggingInterceptor","onRequest","options","info","method","url","headers","body","onResponse","response","status","data"],"sourceRoot":"../../../../../src","sources":["data/network/interceptors/loggingInterceptor.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,0BAAuB;AAE9C,OAAO,MAAMC,kBAAkB,CAAC;EAC9BC,SAASA,CAACC,OAAY,EAAE;IACtBH,MAAM,CAACI,IAAI,CAAC,gBAAgBD,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACG,GAAG,EAAE,CAAC;IAC5DN,MAAM,CAACI,IAAI,CAAC,UAAU,EAAED,OAAO,CAACI,OAAO,CAAC;IACxCP,MAAM,CAACI,IAAI,CAAC,OAAO,EAAED,OAAO,CAACK,IAAI,CAAC;IAClC,OAAOL,OAAO;EAChB;EAEAM,UAAUA,CAACC,QAAa,EAAE;IACxBV,MAAM,CAACI,IAAI,CAAC,gBAAgBM,QAAQ,CAACC,MAAM,GAAG,EAAED,QAAQ,CAACE,IAAI,CAAC;IAC9D,OAAOF,QAAQ;EACjB;AACF","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ // Third-party libraries
4
+ import NetInfo from '@react-native-community/netinfo';
5
+
6
+ // Utilities / Helpers
7
+ import { noInternetError } from "../apiExceptionHandler.js";
8
+ export class NetworkInterceptor {
9
+ async onRequest(options) {
10
+ const state = await NetInfo.fetch();
11
+ if (!state.isConnected) {
12
+ throw {
13
+ requestOptions: options,
14
+ type: 'connectionError',
15
+ error: noInternetError(),
16
+ message: noInternetError() // Unified message
17
+ };
18
+ }
19
+ return options;
20
+ }
21
+ }
22
+ //# sourceMappingURL=networkInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NetInfo","noInternetError","NetworkInterceptor","onRequest","options","state","fetch","isConnected","requestOptions","type","error","message"],"sourceRoot":"../../../../../src","sources":["data/network/interceptors/networkInterceptor.ts"],"mappings":";;AAAA;AACA,OAAOA,OAAO,MAAM,iCAAiC;;AAErD;AACA,SAASC,eAAe,QAAQ,2BAAwB;AAExD,OAAO,MAAMC,kBAAkB,CAAC;EAC9B,MAAMC,SAASA,CAACC,OAAY,EAAgB;IAC1C,MAAMC,KAAK,GAAG,MAAML,OAAO,CAACM,KAAK,CAAC,CAAC;IACnC,IAAI,CAACD,KAAK,CAACE,WAAW,EAAE;MACtB,MAAM;QACJC,cAAc,EAAEJ,OAAO;QACvBK,IAAI,EAAE,iBAAiB;QACvBC,KAAK,EAAET,eAAe,CAAC,CAAC;QACxBU,OAAO,EAAEV,eAAe,CAAC,CAAC,CAAE;MAC9B,CAAC;IACH;IACA,OAAOG,OAAO;EAChB;AACF","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ export class RetryInterceptor {
4
+ constructor(retries = 1) {
5
+ this.retries = retries;
6
+ }
7
+ async onError(err, handler) {
8
+ const attempt = err.config?.retry_attempt ?? 0;
9
+ if (attempt < this.retries && this.shouldRetry(err)) {
10
+ // Retry logic implementation depends on the HTTP client (axios/fetch)
11
+ // This is a placeholder for the logic
12
+ return handler.next(err);
13
+ }
14
+ return handler.next(err);
15
+ }
16
+ shouldRetry(err) {
17
+ // Check for timeout or network errors
18
+ // Placeholder logic
19
+ return err.code === 'ECONNABORTED' || err.message?.includes('timeout');
20
+ }
21
+ }
22
+ //# sourceMappingURL=retryInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RetryInterceptor","constructor","retries","onError","err","handler","attempt","config","retry_attempt","shouldRetry","next","code","message","includes"],"sourceRoot":"../../../../../src","sources":["data/network/interceptors/retryInterceptor.ts"],"mappings":";;AAAA,OAAO,MAAMA,gBAAgB,CAAC;EAG5BC,WAAWA,CAACC,OAAe,GAAG,CAAC,EAAE;IAC/B,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;EAEA,MAAMC,OAAOA,CAACC,GAAQ,EAAEC,OAAY,EAAgB;IAClD,MAAMC,OAAO,GAAGF,GAAG,CAACG,MAAM,EAAEC,aAAa,IAAI,CAAC;IAE9C,IAAIF,OAAO,GAAG,IAAI,CAACJ,OAAO,IAAI,IAAI,CAACO,WAAW,CAACL,GAAG,CAAC,EAAE;MACnD;MACA;MACA,OAAOC,OAAO,CAACK,IAAI,CAACN,GAAG,CAAC;IAC1B;IACA,OAAOC,OAAO,CAACK,IAAI,CAACN,GAAG,CAAC;EAC1B;EAEQK,WAAWA,CAACL,GAAQ,EAAW;IACrC;IACA;IACA,OAAOA,GAAG,CAACO,IAAI,KAAK,cAAc,IAAIP,GAAG,CAACQ,OAAO,EAAEC,QAAQ,CAAC,SAAS,CAAC;EACxE;AACF","ignoreList":[]}