@oxyhq/services 5.9.2 → 5.9.4

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 (202) hide show
  1. package/README.md +1 -33
  2. package/lib/commonjs/core/OxyServices.js +322 -0
  3. package/lib/commonjs/core/OxyServices.js.map +1 -0
  4. package/lib/commonjs/core/OxyServicesMain.js +51 -0
  5. package/lib/commonjs/core/OxyServicesMain.js.map +1 -0
  6. package/lib/commonjs/core/analytics/AnalyticsService.js +67 -0
  7. package/lib/commonjs/core/analytics/AnalyticsService.js.map +1 -0
  8. package/lib/commonjs/core/auth/AuthService.js +526 -0
  9. package/lib/commonjs/core/auth/AuthService.js.map +1 -0
  10. package/lib/commonjs/core/devices/DeviceService.js +61 -0
  11. package/lib/commonjs/core/devices/DeviceService.js.map +1 -0
  12. package/lib/commonjs/core/files/FileService.js +176 -0
  13. package/lib/commonjs/core/files/FileService.js.map +1 -0
  14. package/lib/commonjs/core/index.js +103 -1701
  15. package/lib/commonjs/core/index.js.map +1 -1
  16. package/lib/commonjs/core/karma/KarmaService.js +100 -0
  17. package/lib/commonjs/core/karma/KarmaService.js.map +1 -0
  18. package/lib/commonjs/core/locations/LocationService.js +131 -0
  19. package/lib/commonjs/core/locations/LocationService.js.map +1 -0
  20. package/lib/commonjs/core/payments/PaymentService.js +124 -0
  21. package/lib/commonjs/core/payments/PaymentService.js.map +1 -0
  22. package/lib/commonjs/core/users/UserService.js +234 -0
  23. package/lib/commonjs/core/users/UserService.js.map +1 -0
  24. package/lib/commonjs/index.js +164 -3
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/commonjs/models/session.js +2 -0
  27. package/lib/commonjs/{types/middleware.js.map → models/session.js.map} +1 -1
  28. package/lib/commonjs/ui/context/OxyContext.js +28 -24
  29. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  30. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -2
  31. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  32. package/lib/commonjs/ui/screens/FileManagementScreen.js +12 -12
  33. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  34. package/lib/commonjs/ui/screens/ProfileScreen.js +2 -2
  35. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  36. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/SignInScreen.js +1 -1
  38. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +1 -1
  40. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
  42. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +1 -1
  44. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  45. package/lib/commonjs/ui/stores/followStore.js +4 -4
  46. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  47. package/lib/commonjs/utils/apiUtils.js +93 -0
  48. package/lib/commonjs/utils/apiUtils.js.map +1 -0
  49. package/lib/commonjs/utils/asyncUtils.js +219 -0
  50. package/lib/commonjs/utils/asyncUtils.js.map +1 -0
  51. package/lib/commonjs/utils/errorUtils.js +148 -0
  52. package/lib/commonjs/utils/errorUtils.js.map +1 -0
  53. package/lib/commonjs/utils/hookUtils.js +399 -0
  54. package/lib/commonjs/utils/hookUtils.js.map +1 -0
  55. package/lib/commonjs/utils/loggerUtils.js +160 -0
  56. package/lib/commonjs/utils/loggerUtils.js.map +1 -0
  57. package/lib/commonjs/utils/validationUtils.js +174 -0
  58. package/lib/commonjs/utils/validationUtils.js.map +1 -0
  59. package/lib/module/core/OxyServices.js +316 -0
  60. package/lib/module/core/OxyServices.js.map +1 -0
  61. package/lib/module/core/OxyServicesMain.js +47 -0
  62. package/lib/module/core/OxyServicesMain.js.map +1 -0
  63. package/lib/module/core/analytics/AnalyticsService.js +62 -0
  64. package/lib/module/core/analytics/AnalyticsService.js.map +1 -0
  65. package/lib/module/core/auth/AuthService.js +521 -0
  66. package/lib/module/core/auth/AuthService.js.map +1 -0
  67. package/lib/module/core/devices/DeviceService.js +57 -0
  68. package/lib/module/core/devices/DeviceService.js.map +1 -0
  69. package/lib/module/core/files/FileService.js +171 -0
  70. package/lib/module/core/files/FileService.js.map +1 -0
  71. package/lib/module/core/index.js +25 -1690
  72. package/lib/module/core/index.js.map +1 -1
  73. package/lib/module/core/karma/KarmaService.js +95 -0
  74. package/lib/module/core/karma/KarmaService.js.map +1 -0
  75. package/lib/module/core/locations/LocationService.js +127 -0
  76. package/lib/module/core/locations/LocationService.js.map +1 -0
  77. package/lib/module/core/payments/PaymentService.js +119 -0
  78. package/lib/module/core/payments/PaymentService.js.map +1 -0
  79. package/lib/module/core/users/UserService.js +230 -0
  80. package/lib/module/core/users/UserService.js.map +1 -0
  81. package/lib/module/index.js +8 -4
  82. package/lib/module/index.js.map +1 -1
  83. package/lib/module/models/session.js +2 -0
  84. package/lib/module/{types/middleware.js.map → models/session.js.map} +1 -1
  85. package/lib/module/ui/context/OxyContext.js +28 -24
  86. package/lib/module/ui/context/OxyContext.js.map +1 -1
  87. package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -2
  88. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  89. package/lib/module/ui/screens/FileManagementScreen.js +12 -12
  90. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  91. package/lib/module/ui/screens/ProfileScreen.js +2 -2
  92. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  93. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  94. package/lib/module/ui/screens/SignInScreen.js +1 -1
  95. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  96. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +1 -1
  97. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  98. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
  99. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  100. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +1 -1
  101. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  102. package/lib/module/ui/stores/followStore.js +4 -4
  103. package/lib/module/ui/stores/followStore.js.map +1 -1
  104. package/lib/module/utils/apiUtils.js +85 -0
  105. package/lib/module/utils/apiUtils.js.map +1 -0
  106. package/lib/module/utils/asyncUtils.js +202 -0
  107. package/lib/module/utils/asyncUtils.js.map +1 -0
  108. package/lib/module/utils/errorUtils.js +139 -0
  109. package/lib/module/utils/errorUtils.js.map +1 -0
  110. package/lib/module/utils/hookUtils.js +381 -0
  111. package/lib/module/utils/hookUtils.js.map +1 -0
  112. package/lib/module/utils/loggerUtils.js +149 -0
  113. package/lib/module/utils/loggerUtils.js.map +1 -0
  114. package/lib/module/utils/validationUtils.js +154 -0
  115. package/lib/module/utils/validationUtils.js.map +1 -0
  116. package/lib/typescript/core/OxyServices.d.ts +99 -0
  117. package/lib/typescript/core/OxyServices.d.ts.map +1 -0
  118. package/lib/typescript/core/OxyServicesMain.d.ts +33 -0
  119. package/lib/typescript/core/OxyServicesMain.d.ts.map +1 -0
  120. package/lib/typescript/core/analytics/AnalyticsService.d.ts +26 -0
  121. package/lib/typescript/core/analytics/AnalyticsService.d.ts.map +1 -0
  122. package/lib/typescript/core/auth/AuthService.d.ts +165 -0
  123. package/lib/typescript/core/auth/AuthService.d.ts.map +1 -0
  124. package/lib/typescript/core/devices/DeviceService.d.ts +20 -0
  125. package/lib/typescript/core/devices/DeviceService.d.ts.map +1 -0
  126. package/lib/typescript/core/files/FileService.d.ts +59 -0
  127. package/lib/typescript/core/files/FileService.d.ts.map +1 -0
  128. package/lib/typescript/core/index.d.ts +19 -656
  129. package/lib/typescript/core/index.d.ts.map +1 -1
  130. package/lib/typescript/core/karma/KarmaService.d.ts +50 -0
  131. package/lib/typescript/core/karma/KarmaService.d.ts.map +1 -0
  132. package/lib/typescript/core/locations/LocationService.d.ts +39 -0
  133. package/lib/typescript/core/locations/LocationService.d.ts.map +1 -0
  134. package/lib/typescript/core/payments/PaymentService.d.ts +50 -0
  135. package/lib/typescript/core/payments/PaymentService.d.ts.map +1 -0
  136. package/lib/typescript/core/users/UserService.d.ts +111 -0
  137. package/lib/typescript/core/users/UserService.d.ts.map +1 -0
  138. package/lib/typescript/index.d.ts +7 -3
  139. package/lib/typescript/index.d.ts.map +1 -1
  140. package/lib/typescript/models/{secureSession.d.ts → session.d.ts} +4 -4
  141. package/lib/typescript/models/session.d.ts.map +1 -0
  142. package/lib/typescript/ui/context/OxyContext.d.ts +2 -2
  143. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  144. package/lib/typescript/utils/apiUtils.d.ts +61 -0
  145. package/lib/typescript/utils/apiUtils.d.ts.map +1 -0
  146. package/lib/typescript/utils/asyncUtils.d.ts +64 -0
  147. package/lib/typescript/utils/asyncUtils.d.ts.map +1 -0
  148. package/lib/typescript/utils/errorUtils.d.ts +45 -0
  149. package/lib/typescript/utils/errorUtils.d.ts.map +1 -0
  150. package/lib/typescript/utils/hookUtils.d.ts +102 -0
  151. package/lib/typescript/utils/hookUtils.d.ts.map +1 -0
  152. package/lib/typescript/utils/loggerUtils.d.ts +49 -0
  153. package/lib/typescript/utils/loggerUtils.d.ts.map +1 -0
  154. package/lib/typescript/utils/validationUtils.d.ts +80 -0
  155. package/lib/typescript/utils/validationUtils.d.ts.map +1 -0
  156. package/package.json +2 -8
  157. package/src/core/OxyServices.ts +351 -0
  158. package/src/core/OxyServicesMain.ts +57 -0
  159. package/src/core/analytics/AnalyticsService.ts +64 -0
  160. package/src/core/auth/AuthService.ts +544 -0
  161. package/src/core/devices/DeviceService.ts +55 -0
  162. package/src/core/files/FileService.ts +194 -0
  163. package/src/core/index.ts +27 -1765
  164. package/src/core/karma/KarmaService.ts +104 -0
  165. package/src/core/locations/LocationService.ts +141 -0
  166. package/src/core/payments/PaymentService.ts +133 -0
  167. package/src/core/users/UserService.ts +241 -0
  168. package/src/index.ts +29 -8
  169. package/src/models/{secureSession.ts → session.ts} +5 -5
  170. package/src/ui/context/OxyContext.tsx +34 -30
  171. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  172. package/src/ui/screens/FileManagementScreen.tsx +12 -12
  173. package/src/ui/screens/ProfileScreen.tsx +3 -3
  174. package/src/ui/screens/SessionManagementScreen.tsx +2 -2
  175. package/src/ui/screens/SignInScreen.tsx +1 -1
  176. package/src/ui/screens/karma/KarmaCenterScreen.tsx +2 -2
  177. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +3 -3
  178. package/src/ui/screens/karma/KarmaRulesScreen.tsx +3 -3
  179. package/src/ui/stores/followStore.ts +4 -4
  180. package/src/utils/apiUtils.ts +102 -0
  181. package/src/utils/asyncUtils.ts +265 -0
  182. package/src/utils/errorUtils.ts +172 -0
  183. package/src/utils/hookUtils.ts +397 -0
  184. package/src/utils/loggerUtils.ts +153 -0
  185. package/src/utils/validationUtils.ts +158 -0
  186. package/lib/commonjs/middleware.js +0 -17
  187. package/lib/commonjs/middleware.js.map +0 -1
  188. package/lib/commonjs/models/secureSession.js +0 -2
  189. package/lib/commonjs/models/secureSession.js.map +0 -1
  190. package/lib/commonjs/types/middleware.js +0 -6
  191. package/lib/module/middleware.js +0 -12
  192. package/lib/module/middleware.js.map +0 -1
  193. package/lib/module/models/secureSession.js +0 -2
  194. package/lib/module/models/secureSession.js.map +0 -1
  195. package/lib/module/types/middleware.js +0 -4
  196. package/lib/typescript/middleware.d.ts +0 -9
  197. package/lib/typescript/middleware.d.ts.map +0 -1
  198. package/lib/typescript/models/secureSession.d.ts.map +0 -1
  199. package/lib/typescript/types/middleware.d.ts +0 -19
  200. package/lib/typescript/types/middleware.d.ts.map +0 -1
  201. package/src/middleware.ts +0 -11
  202. package/src/types/middleware.ts +0 -20
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.batchAsync = batchAsync;
7
+ exports.createAsyncCache = createAsyncCache;
8
+ exports.createCancellableAsync = createCancellableAsync;
9
+ exports.debounceAsync = debounceAsync;
10
+ exports.delay = void 0;
11
+ exports.parallelWithErrorHandling = parallelWithErrorHandling;
12
+ exports.retryAsync = retryAsync;
13
+ exports.retryOnError = retryOnError;
14
+ exports.sequentialWithProgress = sequentialWithProgress;
15
+ exports.throttleAsync = throttleAsync;
16
+ exports.withErrorHandling = withErrorHandling;
17
+ exports.withLoadingState = withLoadingState;
18
+ exports.withTimeout = withTimeout;
19
+ /**
20
+ * Async utilities for common asynchronous patterns and error handling
21
+ */
22
+
23
+ /**
24
+ * Wrapper for async operations with automatic error handling
25
+ */
26
+ async function withErrorHandling(operation, errorHandler, context) {
27
+ try {
28
+ return await operation();
29
+ } catch (error) {
30
+ if (errorHandler) {
31
+ errorHandler(error);
32
+ } else {
33
+ console.error(`Error in ${context || 'operation'}:`, error);
34
+ }
35
+ return null;
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Execute multiple async operations in parallel with error handling
41
+ */
42
+ async function parallelWithErrorHandling(operations, errorHandler) {
43
+ const results = await Promise.allSettled(operations.map((op, index) => withErrorHandling(op, error => errorHandler?.(error, index))));
44
+ return results.map(result => result.status === 'fulfilled' ? result.value : null);
45
+ }
46
+
47
+ /**
48
+ * Retry an async operation with exponential backoff
49
+ */
50
+ async function retryAsync(operation, maxRetries = 3, baseDelay = 1000, shouldRetry) {
51
+ let lastError;
52
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
53
+ try {
54
+ return await operation();
55
+ } catch (error) {
56
+ lastError = error;
57
+ if (attempt === maxRetries) {
58
+ break;
59
+ }
60
+ if (shouldRetry && !shouldRetry(error)) {
61
+ break;
62
+ }
63
+ const delay = baseDelay * Math.pow(2, attempt);
64
+ await new Promise(resolve => setTimeout(resolve, delay));
65
+ }
66
+ }
67
+ throw lastError;
68
+ }
69
+
70
+ /**
71
+ * Debounce async function calls
72
+ */
73
+ function debounceAsync(func, delay) {
74
+ let timeoutId;
75
+ let lastPromise = null;
76
+ return (...args) => {
77
+ return new Promise((resolve, reject) => {
78
+ clearTimeout(timeoutId);
79
+ timeoutId = setTimeout(async () => {
80
+ try {
81
+ const result = await func(...args);
82
+ resolve(result);
83
+ } catch (error) {
84
+ reject(error);
85
+ }
86
+ }, delay);
87
+ });
88
+ };
89
+ }
90
+
91
+ /**
92
+ * Throttle async function calls
93
+ */
94
+ function throttleAsync(func, limit, interval) {
95
+ let inThrottle = false;
96
+ let lastPromise = null;
97
+ return (...args) => {
98
+ if (inThrottle) {
99
+ return lastPromise;
100
+ }
101
+ inThrottle = true;
102
+ lastPromise = func(...args);
103
+ setTimeout(() => {
104
+ inThrottle = false;
105
+ }, interval);
106
+ return lastPromise;
107
+ };
108
+ }
109
+
110
+ /**
111
+ * Execute async operations sequentially with progress tracking
112
+ */
113
+ async function sequentialWithProgress(operations, onProgress) {
114
+ const results = [];
115
+ for (let i = 0; i < operations.length; i++) {
116
+ const result = await operations[i]();
117
+ results.push(result);
118
+ onProgress?.(i + 1, operations.length);
119
+ }
120
+ return results;
121
+ }
122
+
123
+ /**
124
+ * Batch async operations
125
+ */
126
+ async function batchAsync(items, batchSize, processor) {
127
+ for (let i = 0; i < items.length; i += batchSize) {
128
+ const batch = items.slice(i, i + batchSize);
129
+ await processor(batch);
130
+ }
131
+ }
132
+
133
+ /**
134
+ * Create a cancellable async operation
135
+ */
136
+ function createCancellableAsync(operation) {
137
+ let abortController = null;
138
+ return {
139
+ execute: async () => {
140
+ abortController = new AbortController();
141
+ return await operation(abortController.signal);
142
+ },
143
+ cancel: () => {
144
+ abortController?.abort();
145
+ }
146
+ };
147
+ }
148
+
149
+ /**
150
+ * Timeout wrapper for async operations
151
+ */
152
+ async function withTimeout(operation, timeoutMs, timeoutMessage) {
153
+ const timeoutPromise = new Promise((_, reject) => {
154
+ setTimeout(() => {
155
+ reject(new Error(timeoutMessage || `Operation timed out after ${timeoutMs}ms`));
156
+ }, timeoutMs);
157
+ });
158
+ return Promise.race([operation, timeoutPromise]);
159
+ }
160
+
161
+ /**
162
+ * Cache async operation results
163
+ */
164
+ function createAsyncCache(ttl = 5 * 60 * 1000 // 5 minutes default
165
+ ) {
166
+ const cache = new Map();
167
+ return {
168
+ get: key => {
169
+ const item = cache.get(key);
170
+ if (!item) return null;
171
+ if (Date.now() - item.timestamp > ttl) {
172
+ cache.delete(key);
173
+ return null;
174
+ }
175
+ return item.data;
176
+ },
177
+ set: (key, data) => {
178
+ cache.set(key, {
179
+ data,
180
+ timestamp: Date.now()
181
+ });
182
+ },
183
+ clear: () => {
184
+ cache.clear();
185
+ },
186
+ delete: key => {
187
+ return cache.delete(key);
188
+ }
189
+ };
190
+ }
191
+
192
+ /**
193
+ * Execute async operation with loading state
194
+ */
195
+ async function withLoadingState(operation, setLoading) {
196
+ setLoading(true);
197
+ try {
198
+ return await operation();
199
+ } finally {
200
+ setLoading(false);
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Create a promise that resolves after a delay
206
+ */
207
+ const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
208
+
209
+ /**
210
+ * Execute async operation with retry on specific errors
211
+ */
212
+ exports.delay = delay;
213
+ async function retryOnError(operation, retryableErrors, maxRetries = 3) {
214
+ return retryAsync(operation, maxRetries, 1000, error => {
215
+ const errorCode = error?.code || error?.status || error?.message;
216
+ return retryableErrors.includes(errorCode);
217
+ });
218
+ }
219
+ //# sourceMappingURL=asyncUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["withErrorHandling","operation","errorHandler","context","error","console","parallelWithErrorHandling","operations","results","Promise","allSettled","map","op","index","result","status","value","retryAsync","maxRetries","baseDelay","shouldRetry","lastError","attempt","delay","Math","pow","resolve","setTimeout","debounceAsync","func","timeoutId","lastPromise","args","reject","clearTimeout","throttleAsync","limit","interval","inThrottle","sequentialWithProgress","onProgress","i","length","push","batchAsync","items","batchSize","processor","batch","slice","createCancellableAsync","abortController","execute","AbortController","signal","cancel","abort","withTimeout","timeoutMs","timeoutMessage","timeoutPromise","_","Error","race","createAsyncCache","ttl","cache","Map","get","key","item","Date","now","timestamp","delete","data","set","clear","withLoadingState","setLoading","ms","exports","retryOnError","retryableErrors","errorCode","code","message","includes"],"sourceRoot":"../../../src","sources":["utils/asyncUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ErrorCodes = void 0;
7
+ exports.createApiError = createApiError;
8
+ exports.handleHttpError = handleHttpError;
9
+ exports.logError = logError;
10
+ exports.retryWithBackoff = retryWithBackoff;
11
+ exports.validateRequiredFields = validateRequiredFields;
12
+ /**
13
+ * Error handling utilities for consistent error processing
14
+ */
15
+
16
+ /**
17
+ * Common error codes
18
+ */
19
+ const ErrorCodes = exports.ErrorCodes = {
20
+ // Authentication errors
21
+ UNAUTHORIZED: 'UNAUTHORIZED',
22
+ FORBIDDEN: 'FORBIDDEN',
23
+ INVALID_TOKEN: 'INVALID_TOKEN',
24
+ MISSING_TOKEN: 'MISSING_TOKEN',
25
+ // Validation errors
26
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
27
+ MISSING_PARAMETER: 'MISSING_PARAMETER',
28
+ INVALID_FORMAT: 'INVALID_FORMAT',
29
+ // Resource errors
30
+ NOT_FOUND: 'NOT_FOUND',
31
+ ALREADY_EXISTS: 'ALREADY_EXISTS',
32
+ CONFLICT: 'CONFLICT',
33
+ // Server errors
34
+ INTERNAL_ERROR: 'INTERNAL_ERROR',
35
+ SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
36
+ TIMEOUT: 'TIMEOUT',
37
+ // Network errors
38
+ NETWORK_ERROR: 'NETWORK_ERROR',
39
+ CONNECTION_FAILED: 'CONNECTION_FAILED'
40
+ };
41
+
42
+ /**
43
+ * Create a standardized API error
44
+ */
45
+ function createApiError(message, code = ErrorCodes.INTERNAL_ERROR, status = 500, details) {
46
+ return {
47
+ message,
48
+ code,
49
+ status,
50
+ details
51
+ };
52
+ }
53
+
54
+ /**
55
+ * Handle common HTTP errors and convert to ApiError
56
+ */
57
+ function handleHttpError(error) {
58
+ // If it's already an ApiError, return it
59
+ if (error && typeof error === 'object' && 'code' in error && 'status' in error) {
60
+ return error;
61
+ }
62
+
63
+ // Handle axios errors
64
+ if (error?.response) {
65
+ const {
66
+ status,
67
+ data
68
+ } = error.response;
69
+ return createApiError(data?.message || `HTTP ${status} error`, data?.code || getErrorCodeFromStatus(status), status, data);
70
+ }
71
+
72
+ // Handle network errors
73
+ if (error?.request) {
74
+ return createApiError('Network error - no response received', ErrorCodes.NETWORK_ERROR, 0);
75
+ }
76
+
77
+ // Handle other errors
78
+ return createApiError(error?.message || 'Unknown error occurred', ErrorCodes.INTERNAL_ERROR, 500);
79
+ }
80
+
81
+ /**
82
+ * Get error code from HTTP status
83
+ */
84
+ function getErrorCodeFromStatus(status) {
85
+ switch (status) {
86
+ case 400:
87
+ return ErrorCodes.VALIDATION_ERROR;
88
+ case 401:
89
+ return ErrorCodes.UNAUTHORIZED;
90
+ case 403:
91
+ return ErrorCodes.FORBIDDEN;
92
+ case 404:
93
+ return ErrorCodes.NOT_FOUND;
94
+ case 409:
95
+ return ErrorCodes.CONFLICT;
96
+ case 422:
97
+ return ErrorCodes.VALIDATION_ERROR;
98
+ case 500:
99
+ return ErrorCodes.INTERNAL_ERROR;
100
+ case 503:
101
+ return ErrorCodes.SERVICE_UNAVAILABLE;
102
+ default:
103
+ return ErrorCodes.INTERNAL_ERROR;
104
+ }
105
+ }
106
+
107
+ /**
108
+ * Validate required fields and throw error if missing
109
+ */
110
+ function validateRequiredFields(data, fields) {
111
+ const missing = fields.filter(field => !data[field]);
112
+ if (missing.length > 0) {
113
+ throw createApiError(`Missing required fields: ${missing.join(', ')}`, ErrorCodes.MISSING_PARAMETER, 400);
114
+ }
115
+ }
116
+
117
+ /**
118
+ * Safe error logging with context
119
+ */
120
+ function logError(error, context) {
121
+ const prefix = context ? `[${context}]` : '[Error]';
122
+ if (error instanceof Error) {
123
+ console.error(`${prefix} ${error.message}`, error.stack);
124
+ } else {
125
+ console.error(`${prefix}`, error);
126
+ }
127
+ }
128
+
129
+ /**
130
+ * Retry function with exponential backoff
131
+ */
132
+ async function retryWithBackoff(fn, maxRetries = 3, baseDelay = 1000) {
133
+ let lastError;
134
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
135
+ try {
136
+ return await fn();
137
+ } catch (error) {
138
+ lastError = error;
139
+ if (attempt === maxRetries) {
140
+ break;
141
+ }
142
+ const delay = baseDelay * Math.pow(2, attempt);
143
+ await new Promise(resolve => setTimeout(resolve, delay));
144
+ }
145
+ }
146
+ throw lastError;
147
+ }
148
+ //# sourceMappingURL=errorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ErrorCodes","exports","UNAUTHORIZED","FORBIDDEN","INVALID_TOKEN","MISSING_TOKEN","VALIDATION_ERROR","MISSING_PARAMETER","INVALID_FORMAT","NOT_FOUND","ALREADY_EXISTS","CONFLICT","INTERNAL_ERROR","SERVICE_UNAVAILABLE","TIMEOUT","NETWORK_ERROR","CONNECTION_FAILED","createApiError","message","code","status","details","handleHttpError","error","response","data","getErrorCodeFromStatus","request","validateRequiredFields","fields","missing","filter","field","length","join","logError","context","prefix","Error","console","stack","retryWithBackoff","fn","maxRetries","baseDelay","lastError","attempt","delay","Math","pow","Promise","resolve","setTimeout"],"sourceRoot":"../../../src","sources":["utils/errorUtils.ts"],"mappings":"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","ignoreList":[]}