@oxyhq/services 5.9.2 → 5.9.3

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 +159 -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 +153 -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 +64 -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 +168 -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,526 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AuthService = void 0;
7
+ var _jwtDecode = require("jwt-decode");
8
+ var _OxyServices = require("../OxyServices");
9
+ /**
10
+ * Authentication service for handling login, signup, and session management
11
+ */
12
+ class AuthService extends _OxyServices.OxyServices {
13
+ /**
14
+ * Sign up a new user
15
+ */
16
+ async signUp(username, email, password) {
17
+ try {
18
+ const res = await this.getClient().post('/auth/signup', {
19
+ username,
20
+ email,
21
+ password
22
+ });
23
+ return res.data;
24
+ } catch (error) {
25
+ throw this.handleError(error);
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Sign in with device management
31
+ */
32
+ async signIn(username, password, deviceName, deviceFingerprint) {
33
+ try {
34
+ const res = await this.getClient().post('/auth/login', {
35
+ username,
36
+ password,
37
+ deviceName,
38
+ deviceFingerprint
39
+ });
40
+ return res.data;
41
+ } catch (error) {
42
+ throw this.handleError(error);
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Get user by session ID
48
+ */
49
+ async getUserBySession(sessionId) {
50
+ try {
51
+ const res = await this.getClient().get(`/session/user/${sessionId}`);
52
+ return res.data;
53
+ } catch (error) {
54
+ throw this.handleError(error);
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Get access token by session ID
60
+ */
61
+ async getTokenBySession(sessionId) {
62
+ try {
63
+ const res = await this.getClient().get(`/session/token/${sessionId}`);
64
+ return res.data;
65
+ } catch (error) {
66
+ throw this.handleError(error);
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Get sessions by session ID
72
+ */
73
+ async getSessionsBySessionId(sessionId) {
74
+ try {
75
+ const res = await this.getClient().get(`/session/sessions/${sessionId}`);
76
+ return res.data;
77
+ } catch (error) {
78
+ throw this.handleError(error);
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Logout from a specific session
84
+ */
85
+ async logoutSession(sessionId, targetSessionId) {
86
+ try {
87
+ await this.getClient().delete(`/session/logout/${sessionId}`, {
88
+ data: {
89
+ targetSessionId
90
+ }
91
+ });
92
+ } catch (error) {
93
+ throw this.handleError(error);
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Logout from all sessions
99
+ */
100
+ async logoutAllSessions(sessionId) {
101
+ try {
102
+ await this.getClient().delete(`/session/logout-all/${sessionId}`);
103
+ } catch (error) {
104
+ throw this.handleError(error);
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Validate a session with optional device fingerprint
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * // Basic session validation
114
+ * const result = await authService.validateSession('session-id');
115
+ *
116
+ * // With device fingerprint for enhanced security
117
+ * const result = await authService.validateSession('session-id', {
118
+ * deviceFingerprint: 'device-fingerprint',
119
+ * useHeaderValidation: true
120
+ * });
121
+ * ```
122
+ *
123
+ * @param sessionId The session ID to validate
124
+ * @param options Validation options
125
+ * @param options.deviceFingerprint Optional device fingerprint for enhanced validation
126
+ * @param options.useHeaderValidation Whether to use header-based validation (default: false)
127
+ * @returns Session validation result
128
+ */
129
+ async validateSession(sessionId, options = {}) {
130
+ const {
131
+ deviceFingerprint,
132
+ useHeaderValidation = false
133
+ } = options;
134
+ try {
135
+ if (useHeaderValidation) {
136
+ // Use header-based validation with device fingerprint
137
+ const res = await this.getClient().get(`/session/validate-header/${sessionId}`, {
138
+ headers: deviceFingerprint ? {
139
+ 'X-Device-Fingerprint': deviceFingerprint
140
+ } : {}
141
+ });
142
+ return {
143
+ ...res.data,
144
+ source: 'header'
145
+ };
146
+ } else {
147
+ // Use standard session validation
148
+ const res = await this.getClient().get(`/session/validate/${sessionId}`);
149
+ return {
150
+ ...res.data,
151
+ source: 'standard'
152
+ };
153
+ }
154
+ } catch (error) {
155
+ throw this.handleError(error);
156
+ }
157
+ }
158
+
159
+ /**
160
+ * Express.js authentication middleware
161
+ *
162
+ * A simple, efficient, and debuggable authentication middleware that supports both
163
+ * session-based and legacy token-based authentication.
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * // Basic usage
168
+ * app.use('/api/protected', authService.authenticateToken());
169
+ *
170
+ * // With debug logging
171
+ * app.use('/api/protected', authService.authenticateToken({ debug: true }));
172
+ *
173
+ * // Without loading full user data (faster)
174
+ * app.use('/api/protected', authService.authenticateToken({ loadFullUser: false }));
175
+ *
176
+ * // With custom error handling
177
+ * app.use('/api/protected', authService.authenticateToken({
178
+ * onError: (error) => {
179
+ * console.error('Auth error:', error);
180
+ * // Custom error handling logic
181
+ * }
182
+ * }));
183
+ * ```
184
+ *
185
+ * @param options Configuration options
186
+ * @param options.loadFullUser Whether to load complete user data (default: true)
187
+ * @param options.onError Custom error handler function
188
+ * @param options.debug Enable debug logging (default: false)
189
+ * @returns Express middleware function
190
+ */
191
+ authenticateToken(options = {}) {
192
+ const {
193
+ loadFullUser = true,
194
+ onError,
195
+ debug = false
196
+ } = options;
197
+ return async (req, res, next) => {
198
+ const startTime = Date.now();
199
+ try {
200
+ // Extract token from Authorization header
201
+ const authHeader = req.headers['authorization'];
202
+ const token = authHeader?.startsWith('Bearer ') ? authHeader.substring(7) : null;
203
+ if (debug) {
204
+ console.log(`🔐 Auth Middleware: Processing request to ${req.method} ${req.path}`);
205
+ console.log(`🔐 Auth Middleware: Token present: ${!!token}`);
206
+ }
207
+ if (!token) {
208
+ const error = {
209
+ message: 'Access token required',
210
+ code: 'MISSING_TOKEN',
211
+ status: 401
212
+ };
213
+ if (debug) console.log(`❌ Auth Middleware: Missing token`);
214
+ if (onError) return onError(error);
215
+ return res.status(401).json(error);
216
+ }
217
+
218
+ // Decode and validate token
219
+ let decoded;
220
+ try {
221
+ decoded = (0, _jwtDecode.jwtDecode)(token);
222
+ if (debug) {
223
+ console.log(`🔐 Auth Middleware: Token decoded successfully`);
224
+ console.log(`🔐 Auth Middleware: User ID: ${decoded.userId || decoded.id}`);
225
+ console.log(`🔐 Auth Middleware: Has session ID: ${!!decoded.sessionId}`);
226
+ }
227
+ } catch (decodeError) {
228
+ const error = {
229
+ message: 'Invalid token format',
230
+ code: 'INVALID_TOKEN_FORMAT',
231
+ status: 403
232
+ };
233
+ if (debug) console.log(`❌ Auth Middleware: Token decode failed:`, decodeError);
234
+ if (onError) return onError(error);
235
+ return res.status(403).json(error);
236
+ }
237
+ const userId = decoded.userId || decoded.id;
238
+ if (!userId) {
239
+ const error = {
240
+ message: 'Token missing user ID',
241
+ code: 'INVALID_TOKEN_PAYLOAD',
242
+ status: 403
243
+ };
244
+ if (debug) console.log(`❌ Auth Middleware: Token missing user ID`);
245
+ if (onError) return onError(error);
246
+ return res.status(403).json(error);
247
+ }
248
+
249
+ // Validate session or token
250
+ let isValid = false;
251
+ let user = null;
252
+ if (decoded.sessionId) {
253
+ // Session-based validation
254
+ if (debug) console.log(`🔐 Auth Middleware: Using session validation for session: ${decoded.sessionId}`);
255
+ try {
256
+ const validation = await this.validateSession(decoded.sessionId, {
257
+ useHeaderValidation: true
258
+ });
259
+ isValid = validation.valid;
260
+ user = validation.user;
261
+ if (debug) {
262
+ console.log(`🔐 Auth Middleware: Session validation result: ${isValid}`);
263
+ console.log(`🔐 Auth Middleware: User loaded: ${!!user}`);
264
+ }
265
+ } catch (sessionError) {
266
+ if (debug) console.log(`❌ Auth Middleware: Session validation failed:`, sessionError);
267
+ isValid = false;
268
+ }
269
+ } else {
270
+ // Legacy token validation
271
+ if (debug) console.log(`🔐 Auth Middleware: Using legacy token validation`);
272
+ try {
273
+ isValid = await this.validate();
274
+ if (isValid && loadFullUser) {
275
+ // Use minimal user data for performance - full user can be loaded separately if needed
276
+ user = {
277
+ id: userId
278
+ };
279
+ }
280
+ if (debug) {
281
+ console.log(`🔐 Auth Middleware: Legacy validation result: ${isValid}`);
282
+ console.log(`🔐 Auth Middleware: User loaded: ${!!user}`);
283
+ }
284
+ } catch (validationError) {
285
+ if (debug) console.log(`❌ Auth Middleware: Legacy validation failed:`, validationError);
286
+ isValid = false;
287
+ }
288
+ }
289
+ if (!isValid) {
290
+ const error = {
291
+ message: 'Invalid or expired token',
292
+ code: 'INVALID_TOKEN',
293
+ status: 403
294
+ };
295
+ if (debug) console.log(`❌ Auth Middleware: Token validation failed`);
296
+ if (onError) return onError(error);
297
+ return res.status(403).json(error);
298
+ }
299
+
300
+ // Set request properties
301
+ req.userId = userId;
302
+ req.accessToken = token;
303
+ req.user = user || {
304
+ id: userId
305
+ };
306
+ if (debug) {
307
+ const duration = Date.now() - startTime;
308
+ console.log(`✅ Auth Middleware: Authentication successful in ${duration}ms`);
309
+ console.log(`✅ Auth Middleware: User ID: ${userId}`);
310
+ console.log(`✅ Auth Middleware: Full user loaded: ${loadFullUser && !!user}`);
311
+ }
312
+ next();
313
+ } catch (error) {
314
+ const duration = Date.now() - startTime;
315
+ const apiError = this.handleError(error);
316
+ if (debug) {
317
+ console.log(`❌ Auth Middleware: Unexpected error after ${duration}ms:`, error);
318
+ console.log(`❌ Auth Middleware: API Error:`, apiError);
319
+ }
320
+ if (onError) return onError(apiError);
321
+ return res.status(apiError.status || 500).json(apiError);
322
+ }
323
+ };
324
+ }
325
+
326
+ /**
327
+ * Helper method for validating tokens without Express middleware
328
+ *
329
+ * Use this method when you need to validate tokens programmatically
330
+ * outside of Express middleware context.
331
+ *
332
+ * @example
333
+ * ```typescript
334
+ * const result = await authService.validateToken(token);
335
+ * if (result.valid) {
336
+ * console.log('User ID:', result.userId);
337
+ * console.log('User data:', result.user);
338
+ * } else {
339
+ * console.log('Validation failed:', result.error);
340
+ * }
341
+ * ```
342
+ *
343
+ * @param token JWT token to validate
344
+ * @returns Validation result with user data if valid
345
+ */
346
+ async validateToken(token) {
347
+ try {
348
+ if (!token) {
349
+ return {
350
+ valid: false,
351
+ error: 'Token is required'
352
+ };
353
+ }
354
+
355
+ // Decode token
356
+ let decoded;
357
+ try {
358
+ decoded = (0, _jwtDecode.jwtDecode)(token);
359
+ } catch (decodeError) {
360
+ return {
361
+ valid: false,
362
+ error: 'Invalid token format'
363
+ };
364
+ }
365
+ const userId = decoded.userId || decoded.id;
366
+ if (!userId) {
367
+ return {
368
+ valid: false,
369
+ error: 'Token missing user ID'
370
+ };
371
+ }
372
+
373
+ // Validate based on token type
374
+ if (decoded.sessionId) {
375
+ // Session-based validation
376
+ try {
377
+ const validation = await this.validateSession(decoded.sessionId, {
378
+ useHeaderValidation: true
379
+ });
380
+ return {
381
+ valid: validation.valid,
382
+ userId,
383
+ user: validation.user,
384
+ error: validation.valid ? undefined : 'Invalid or expired session'
385
+ };
386
+ } catch (sessionError) {
387
+ return {
388
+ valid: false,
389
+ userId,
390
+ error: 'Session validation failed'
391
+ };
392
+ }
393
+ } else {
394
+ // Legacy token validation
395
+ try {
396
+ const isValid = await this.validate();
397
+ if (!isValid) {
398
+ return {
399
+ valid: false,
400
+ userId,
401
+ error: 'Invalid or expired token'
402
+ };
403
+ }
404
+
405
+ // Use minimal user data for performance
406
+ const user = {
407
+ id: userId
408
+ };
409
+ return {
410
+ valid: true,
411
+ userId,
412
+ user
413
+ };
414
+ } catch (validationError) {
415
+ return {
416
+ valid: false,
417
+ userId,
418
+ error: 'Token validation failed'
419
+ };
420
+ }
421
+ }
422
+ } catch (error) {
423
+ return {
424
+ valid: false,
425
+ error: error instanceof Error ? error.message : 'Token validation failed'
426
+ };
427
+ }
428
+ }
429
+
430
+ /**
431
+ * Get device sessions (delegates to DeviceService)
432
+ */
433
+ async getDeviceSessions(sessionId) {
434
+ try {
435
+ const res = await this.getClient().get(`/session/device/sessions/${sessionId}`);
436
+ return res.data;
437
+ } catch (error) {
438
+ throw this.handleError(error);
439
+ }
440
+ }
441
+
442
+ /**
443
+ * Logout from all device sessions (delegates to DeviceService)
444
+ */
445
+ async logoutAllDeviceSessions(sessionId) {
446
+ try {
447
+ await this.getClient().delete(`/session/device/logout-all/${sessionId}`);
448
+ } catch (error) {
449
+ throw this.handleError(error);
450
+ }
451
+ }
452
+
453
+ /**
454
+ * Update device name (delegates to DeviceService)
455
+ */
456
+ async updateDeviceName(sessionId, deviceName) {
457
+ try {
458
+ await this.getClient().put(`/session/device/name/${sessionId}`, {
459
+ deviceName
460
+ });
461
+ } catch (error) {
462
+ throw this.handleError(error);
463
+ }
464
+ }
465
+
466
+ /**
467
+ * Check username availability
468
+ */
469
+ async checkUsernameAvailability(username) {
470
+ try {
471
+ const res = await this.getClient().get(`/auth/check-username/${username}`);
472
+ return res.data;
473
+ } catch (error) {
474
+ // If the endpoint doesn't exist, fall back to basic validation
475
+ if (error.response?.status === 404) {
476
+ console.warn('Username validation endpoint not found, using fallback validation');
477
+ return {
478
+ available: true,
479
+ message: 'Username validation not available'
480
+ };
481
+ }
482
+
483
+ // If it's a validation error (400), return the error message
484
+ if (error.response?.status === 400) {
485
+ return {
486
+ available: false,
487
+ message: error.response.data.message || 'Username not available'
488
+ };
489
+ }
490
+ throw this.handleError(error);
491
+ }
492
+ }
493
+
494
+ /**
495
+ * Check email availability
496
+ */
497
+ async checkEmailAvailability(email) {
498
+ try {
499
+ const res = await this.getClient().get(`/auth/check-email/${email}`);
500
+ return res.data;
501
+ } catch (error) {
502
+ // If the endpoint doesn't exist, fall back to basic validation
503
+ if (error.response?.status === 404) {
504
+ console.warn('Email validation endpoint not found, using fallback validation');
505
+ return {
506
+ available: true,
507
+ message: 'Email validation not available'
508
+ };
509
+ }
510
+
511
+ // If it's a validation error (400), return the error message
512
+ if (error.response?.status === 400) {
513
+ return {
514
+ available: false,
515
+ message: error.response.data.message || 'Email not available'
516
+ };
517
+ }
518
+ throw this.handleError(error);
519
+ }
520
+ }
521
+
522
+ // Note: getUserById and getUserProfileByUsername methods have been moved to UserService
523
+ // Use oxyServices.users.getUserById() and oxyServices.users.getProfileByUsername() instead
524
+ }
525
+ exports.AuthService = AuthService;
526
+ //# sourceMappingURL=AuthService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_jwtDecode","require","_OxyServices","AuthService","OxyServices","signUp","username","email","password","res","getClient","post","data","error","handleError","signIn","deviceName","deviceFingerprint","getUserBySession","sessionId","get","getTokenBySession","getSessionsBySessionId","logoutSession","targetSessionId","delete","logoutAllSessions","validateSession","options","useHeaderValidation","headers","source","authenticateToken","loadFullUser","onError","debug","req","next","startTime","Date","now","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decoded","jwtDecode","userId","id","decodeError","isValid","user","validation","valid","sessionError","validate","validationError","accessToken","duration","apiError","validateToken","undefined","Error","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","put","checkUsernameAvailability","response","warn","available","checkEmailAvailability","exports"],"sourceRoot":"../../../../src","sources":["core/auth/AuthService.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAYA;AACA;AACA;AACO,MAAME,WAAW,SAASC,wBAAW,CAAC;EAC3C;AACF;AACA;EACE,MAAMC,MAAMA,CAACC,QAAgB,EAAEC,KAAa,EAAEC,QAAgB,EAA2D;IACvH,IAAI;MACF,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACC,IAAI,CAAC,cAAc,EAAE;QACtDL,QAAQ;QACRC,KAAK;QACLC;MACF,CAAC,CAAC;MACF,OAAOC,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAME,MAAMA,CAACT,QAAgB,EAAEE,QAAgB,EAAEQ,UAAmB,EAAEC,iBAAuB,EAAiC;IAC5H,IAAI;MACF,MAAMR,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACC,IAAI,CAAC,aAAa,EAAE;QACrDL,QAAQ;QACRE,QAAQ;QACRQ,UAAU;QACVC;MACF,CAAC,CAAC;MACF,OAAOR,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMK,gBAAgBA,CAACC,SAAiB,EAAiB;IACvD,IAAI;MACF,MAAMV,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,iBAAiBD,SAAS,EAAE,CAAC;MACpE,OAAOV,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMQ,iBAAiBA,CAACF,SAAiB,EAAuD;IAC9F,IAAI;MACF,MAAMV,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,kBAAkBD,SAAS,EAAE,CAAC;MACrE,OAAOV,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMS,sBAAsBA,CAACH,SAAiB,EAAkB;IAC9D,IAAI;MACF,MAAMV,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,qBAAqBD,SAAS,EAAE,CAAC;MACxE,OAAOV,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMU,aAAaA,CAACJ,SAAiB,EAAEK,eAAwB,EAAiB;IAC9E,IAAI;MACF,MAAM,IAAI,CAACd,SAAS,CAAC,CAAC,CAACe,MAAM,CAAC,mBAAmBN,SAAS,EAAE,EAAE;QAC5DP,IAAI,EAAE;UAAEY;QAAgB;MAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOX,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMa,iBAAiBA,CAACP,SAAiB,EAAiB;IACxD,IAAI;MACF,MAAM,IAAI,CAACT,SAAS,CAAC,CAAC,CAACe,MAAM,CAAC,uBAAuBN,SAAS,EAAE,CAAC;IACnE,CAAC,CAAC,OAAON,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMc,eAAeA,CACnBR,SAAiB,EACjBS,OAGC,GAAG,CAAC,CAAC,EAQL;IACD,MAAM;MAAEX,iBAAiB;MAAEY,mBAAmB,GAAG;IAAM,CAAC,GAAGD,OAAO;IAElE,IAAI;MACF,IAAIC,mBAAmB,EAAE;QACvB;QACA,MAAMpB,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,4BAA4BD,SAAS,EAAE,EAAE;UAC9EW,OAAO,EAAEb,iBAAiB,GAAG;YAAE,sBAAsB,EAAEA;UAAkB,CAAC,GAAG,CAAC;QAChF,CAAC,CAAC;QACF,OAAO;UAAE,GAAGR,GAAG,CAACG,IAAI;UAAEmB,MAAM,EAAE;QAAS,CAAC;MAC1C,CAAC,MAAM;QACL;QACA,MAAMtB,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,qBAAqBD,SAAS,EAAE,CAAC;QACxE,OAAO;UAAE,GAAGV,GAAG,CAACG,IAAI;UAAEmB,MAAM,EAAE;QAAW,CAAC;MAC5C;IACF,CAAC,CAAC,OAAOlB,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEmB,iBAAiBA,CAACJ,OAIjB,GAAG,CAAC,CAAC,EAAE;IACN,MAAM;MAAEK,YAAY,GAAG,IAAI;MAAEC,OAAO;MAAEC,KAAK,GAAG;IAAM,CAAC,GAAGP,OAAO;IAE/D,OAAO,OAAOQ,GAAQ,EAAE3B,GAAQ,EAAE4B,IAAS,KAAK;MAC9C,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAE5B,IAAI;QACF;QACA,MAAMC,UAAU,GAAGL,GAAG,CAACN,OAAO,CAAC,eAAe,CAAC;QAC/C,MAAMY,KAAK,GAAGD,UAAU,EAAEE,UAAU,CAAC,SAAS,CAAC,GAAGF,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;QAEhF,IAAIT,KAAK,EAAE;UACTU,OAAO,CAACC,GAAG,CAAC,6CAA6CV,GAAG,CAACW,MAAM,IAAIX,GAAG,CAACY,IAAI,EAAE,CAAC;UAClFH,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC,CAACJ,KAAK,EAAE,CAAC;QAC9D;QAEA,IAAI,CAACA,KAAK,EAAE;UACV,MAAM7B,KAAK,GAAG;YACZoC,OAAO,EAAE,uBAAuB;YAChCC,IAAI,EAAE,eAAe;YACrBC,MAAM,EAAE;UACV,CAAC;UAED,IAAIhB,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,kCAAkC,CAAC;UAE1D,IAAIZ,OAAO,EAAE,OAAOA,OAAO,CAACrB,KAAK,CAAC;UAClC,OAAOJ,GAAG,CAAC0C,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAACvC,KAAK,CAAC;QACpC;;QAEA;QACA,IAAIwC,OAAmB;QACvB,IAAI;UACFA,OAAO,GAAG,IAAAC,oBAAS,EAAaZ,KAAK,CAAC;UAEtC,IAAIP,KAAK,EAAE;YACTU,OAAO,CAACC,GAAG,CAAC,gDAAgD,CAAC;YAC7DD,OAAO,CAACC,GAAG,CAAC,gCAAgCO,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACG,EAAE,EAAE,CAAC;YAC3EX,OAAO,CAACC,GAAG,CAAC,uCAAuC,CAAC,CAACO,OAAO,CAAClC,SAAS,EAAE,CAAC;UAC3E;QACF,CAAC,CAAC,OAAOsC,WAAW,EAAE;UACpB,MAAM5C,KAAK,GAAG;YACZoC,OAAO,EAAE,sBAAsB;YAC/BC,IAAI,EAAE,sBAAsB;YAC5BC,MAAM,EAAE;UACV,CAAC;UAED,IAAIhB,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,yCAAyC,EAAEW,WAAW,CAAC;UAE9E,IAAIvB,OAAO,EAAE,OAAOA,OAAO,CAACrB,KAAK,CAAC;UAClC,OAAOJ,GAAG,CAAC0C,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAACvC,KAAK,CAAC;QACpC;QAEA,MAAM0C,MAAM,GAAGF,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACG,EAAE;QAC3C,IAAI,CAACD,MAAM,EAAE;UACX,MAAM1C,KAAK,GAAG;YACZoC,OAAO,EAAE,uBAAuB;YAChCC,IAAI,EAAE,uBAAuB;YAC7BC,MAAM,EAAE;UACV,CAAC;UAED,IAAIhB,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;UAElE,IAAIZ,OAAO,EAAE,OAAOA,OAAO,CAACrB,KAAK,CAAC;UAClC,OAAOJ,GAAG,CAAC0C,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAACvC,KAAK,CAAC;QACpC;;QAEA;QACA,IAAI6C,OAAO,GAAG,KAAK;QACnB,IAAIC,IAAiB,GAAG,IAAI;QAE5B,IAAIN,OAAO,CAAClC,SAAS,EAAE;UACrB;UACA,IAAIgB,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,6DAA6DO,OAAO,CAAClC,SAAS,EAAE,CAAC;UAExG,IAAI;YACF,MAAMyC,UAAU,GAAG,MAAM,IAAI,CAACjC,eAAe,CAAC0B,OAAO,CAAClC,SAAS,EAAE;cAC/DU,mBAAmB,EAAE;YACvB,CAAC,CAAC;YACF6B,OAAO,GAAGE,UAAU,CAACC,KAAK;YAC1BF,IAAI,GAAGC,UAAU,CAACD,IAAI;YAEtB,IAAIxB,KAAK,EAAE;cACTU,OAAO,CAACC,GAAG,CAAC,kDAAkDY,OAAO,EAAE,CAAC;cACxEb,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC,CAACa,IAAI,EAAE,CAAC;YAC3D;UACF,CAAC,CAAC,OAAOG,YAAY,EAAE;YACrB,IAAI3B,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAEgB,YAAY,CAAC;YACrFJ,OAAO,GAAG,KAAK;UACjB;QACF,CAAC,MAAM;UACL;UACA,IAAIvB,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,mDAAmD,CAAC;UAE3E,IAAI;YACFY,OAAO,GAAG,MAAM,IAAI,CAACK,QAAQ,CAAC,CAAC;YAE/B,IAAIL,OAAO,IAAIzB,YAAY,EAAE;cAC3B;cACA0B,IAAI,GAAG;gBAAEH,EAAE,EAAED;cAAO,CAAS;YAC/B;YAEA,IAAIpB,KAAK,EAAE;cACTU,OAAO,CAACC,GAAG,CAAC,iDAAiDY,OAAO,EAAE,CAAC;cACvEb,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC,CAACa,IAAI,EAAE,CAAC;YAC3D;UACF,CAAC,CAAC,OAAOK,eAAe,EAAE;YACxB,IAAI7B,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAEkB,eAAe,CAAC;YACvFN,OAAO,GAAG,KAAK;UACjB;QACF;QAEA,IAAI,CAACA,OAAO,EAAE;UACZ,MAAM7C,KAAK,GAAG;YACZoC,OAAO,EAAE,0BAA0B;YACnCC,IAAI,EAAE,eAAe;YACrBC,MAAM,EAAE;UACV,CAAC;UAED,IAAIhB,KAAK,EAAEU,OAAO,CAACC,GAAG,CAAC,4CAA4C,CAAC;UAEpE,IAAIZ,OAAO,EAAE,OAAOA,OAAO,CAACrB,KAAK,CAAC;UAClC,OAAOJ,GAAG,CAAC0C,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAACvC,KAAK,CAAC;QACpC;;QAEA;QACAuB,GAAG,CAACmB,MAAM,GAAGA,MAAM;QACnBnB,GAAG,CAAC6B,WAAW,GAAGvB,KAAK;QACvBN,GAAG,CAACuB,IAAI,GAAGA,IAAI,IAAI;UAAEH,EAAE,EAAED;QAAO,CAAC;QAEjC,IAAIpB,KAAK,EAAE;UACT,MAAM+B,QAAQ,GAAG3B,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS;UACvCO,OAAO,CAACC,GAAG,CAAC,mDAAmDoB,QAAQ,IAAI,CAAC;UAC5ErB,OAAO,CAACC,GAAG,CAAC,+BAA+BS,MAAM,EAAE,CAAC;UACpDV,OAAO,CAACC,GAAG,CAAC,wCAAwCb,YAAY,IAAI,CAAC,CAAC0B,IAAI,EAAE,CAAC;QAC/E;QAEAtB,IAAI,CAAC,CAAC;MACR,CAAC,CAAC,OAAOxB,KAAK,EAAE;QACd,MAAMqD,QAAQ,GAAG3B,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS;QACvC,MAAM6B,QAAQ,GAAG,IAAI,CAACrD,WAAW,CAACD,KAAK,CAAC;QAExC,IAAIsB,KAAK,EAAE;UACTU,OAAO,CAACC,GAAG,CAAC,6CAA6CoB,QAAQ,KAAK,EAAErD,KAAK,CAAC;UAC9EgC,OAAO,CAACC,GAAG,CAAC,+BAA+B,EAAEqB,QAAQ,CAAC;QACxD;QAEA,IAAIjC,OAAO,EAAE,OAAOA,OAAO,CAACiC,QAAQ,CAAC;QACrC,OAAO1D,GAAG,CAAC0C,MAAM,CAACgB,QAAQ,CAAChB,MAAM,IAAI,GAAG,CAAC,CAACC,IAAI,CAACe,QAAQ,CAAC;MAC1D;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,aAAaA,CAAC1B,KAAa,EAK9B;IACD,IAAI;MACF,IAAI,CAACA,KAAK,EAAE;QACV,OAAO;UACLmB,KAAK,EAAE,KAAK;UACZhD,KAAK,EAAE;QACT,CAAC;MACH;;MAEA;MACA,IAAIwC,OAAmB;MACvB,IAAI;QACFA,OAAO,GAAG,IAAAC,oBAAS,EAAaZ,KAAK,CAAC;MACxC,CAAC,CAAC,OAAOe,WAAW,EAAE;QACpB,OAAO;UACLI,KAAK,EAAE,KAAK;UACZhD,KAAK,EAAE;QACT,CAAC;MACH;MAEA,MAAM0C,MAAM,GAAGF,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACG,EAAE;MAC3C,IAAI,CAACD,MAAM,EAAE;QACX,OAAO;UACLM,KAAK,EAAE,KAAK;UACZhD,KAAK,EAAE;QACT,CAAC;MACH;;MAEA;MACA,IAAIwC,OAAO,CAAClC,SAAS,EAAE;QACrB;QACA,IAAI;UACF,MAAMyC,UAAU,GAAG,MAAM,IAAI,CAACjC,eAAe,CAAC0B,OAAO,CAAClC,SAAS,EAAE;YAC/DU,mBAAmB,EAAE;UACvB,CAAC,CAAC;UACF,OAAO;YACLgC,KAAK,EAAED,UAAU,CAACC,KAAK;YACvBN,MAAM;YACNI,IAAI,EAAEC,UAAU,CAACD,IAAI;YACrB9C,KAAK,EAAE+C,UAAU,CAACC,KAAK,GAAGQ,SAAS,GAAG;UACxC,CAAC;QACH,CAAC,CAAC,OAAOP,YAAY,EAAE;UACrB,OAAO;YACLD,KAAK,EAAE,KAAK;YACZN,MAAM;YACN1C,KAAK,EAAE;UACT,CAAC;QACH;MACF,CAAC,MAAM;QACL;QACA,IAAI;UACF,MAAM6C,OAAO,GAAG,MAAM,IAAI,CAACK,QAAQ,CAAC,CAAC;UACrC,IAAI,CAACL,OAAO,EAAE;YACZ,OAAO;cACLG,KAAK,EAAE,KAAK;cACZN,MAAM;cACN1C,KAAK,EAAE;YACT,CAAC;UACH;;UAEA;UACA,MAAM8C,IAAI,GAAG;YAAEH,EAAE,EAAED;UAAO,CAAS;UAEnC,OAAO;YACLM,KAAK,EAAE,IAAI;YACXN,MAAM;YACNI;UACF,CAAC;QACH,CAAC,CAAC,OAAOK,eAAe,EAAE;UACxB,OAAO;YACLH,KAAK,EAAE,KAAK;YACZN,MAAM;YACN1C,KAAK,EAAE;UACT,CAAC;QACH;MACF;IACF,CAAC,CAAC,OAAOA,KAAK,EAAE;MACd,OAAO;QACLgD,KAAK,EAAE,KAAK;QACZhD,KAAK,EAAEA,KAAK,YAAYyD,KAAK,GAAGzD,KAAK,CAACoC,OAAO,GAAG;MAClD,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACE,MAAMsB,iBAAiBA,CAACpD,SAAiB,EAAkB;IACzD,IAAI;MACF,MAAMV,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,4BAA4BD,SAAS,EAAE,CAAC;MAC/E,OAAOV,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAM2D,uBAAuBA,CAACrD,SAAiB,EAAiB;IAC9D,IAAI;MACF,MAAM,IAAI,CAACT,SAAS,CAAC,CAAC,CAACe,MAAM,CAAC,8BAA8BN,SAAS,EAAE,CAAC;IAC1E,CAAC,CAAC,OAAON,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAM4D,gBAAgBA,CAACtD,SAAiB,EAAEH,UAAkB,EAAiB;IAC3E,IAAI;MACF,MAAM,IAAI,CAACN,SAAS,CAAC,CAAC,CAACgE,GAAG,CAAC,wBAAwBvD,SAAS,EAAE,EAAE;QAAEH;MAAW,CAAC,CAAC;IACjF,CAAC,CAAC,OAAOH,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAM8D,yBAAyBA,CAACrE,QAAgB,EAAoD;IAClG,IAAI;MACF,MAAMG,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,wBAAwBd,QAAQ,EAAE,CAAC;MAC1E,OAAOG,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAU,EAAE;MACnB;MACA,IAAIA,KAAK,CAAC+D,QAAQ,EAAEzB,MAAM,KAAK,GAAG,EAAE;QAClCN,OAAO,CAACgC,IAAI,CAAC,mEAAmE,CAAC;QACjF,OAAO;UAAEC,SAAS,EAAE,IAAI;UAAE7B,OAAO,EAAE;QAAoC,CAAC;MAC1E;;MAEA;MACA,IAAIpC,KAAK,CAAC+D,QAAQ,EAAEzB,MAAM,KAAK,GAAG,EAAE;QAClC,OAAO;UAAE2B,SAAS,EAAE,KAAK;UAAE7B,OAAO,EAAEpC,KAAK,CAAC+D,QAAQ,CAAChE,IAAI,CAACqC,OAAO,IAAI;QAAyB,CAAC;MAC/F;MAEA,MAAM,IAAI,CAACnC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMkE,sBAAsBA,CAACxE,KAAa,EAAoD;IAC5F,IAAI;MACF,MAAME,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACU,GAAG,CAAC,qBAAqBb,KAAK,EAAE,CAAC;MACpE,OAAOE,GAAG,CAACG,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAU,EAAE;MACnB;MACA,IAAIA,KAAK,CAAC+D,QAAQ,EAAEzB,MAAM,KAAK,GAAG,EAAE;QAClCN,OAAO,CAACgC,IAAI,CAAC,gEAAgE,CAAC;QAC9E,OAAO;UAAEC,SAAS,EAAE,IAAI;UAAE7B,OAAO,EAAE;QAAiC,CAAC;MACvE;;MAEA;MACA,IAAIpC,KAAK,CAAC+D,QAAQ,EAAEzB,MAAM,KAAK,GAAG,EAAE;QAClC,OAAO;UAAE2B,SAAS,EAAE,KAAK;UAAE7B,OAAO,EAAEpC,KAAK,CAAC+D,QAAQ,CAAChE,IAAI,CAACqC,OAAO,IAAI;QAAsB,CAAC;MAC5F;MAEA,MAAM,IAAI,CAACnC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;EACA;AACF;AAACmE,OAAA,CAAA7E,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DeviceService = void 0;
7
+ var _OxyServices = require("../OxyServices");
8
+ var _apiUtils = require("../../utils/apiUtils");
9
+ /**
10
+ * Device service for handling device session management
11
+ */
12
+ class DeviceService extends _OxyServices.OxyServices {
13
+ /**
14
+ * Get device sessions
15
+ */
16
+ async getDeviceSessions(sessionId, deviceId) {
17
+ try {
18
+ const params = {
19
+ deviceId
20
+ };
21
+ const searchParams = (0, _apiUtils.buildSearchParams)(params);
22
+ const res = await this.getClient().get(`/devices/sessions/${sessionId}?${searchParams.toString()}`);
23
+ return res.data;
24
+ } catch (error) {
25
+ throw this.handleError(error);
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Logout from all device sessions
31
+ */
32
+ async logoutAllDeviceSessions(sessionId, deviceId, excludeCurrent) {
33
+ try {
34
+ const params = {
35
+ deviceId,
36
+ excludeCurrent
37
+ };
38
+ const searchParams = (0, _apiUtils.buildSearchParams)(params);
39
+ const res = await this.getClient().delete(`/devices/sessions/${sessionId}/logout-all?${searchParams.toString()}`);
40
+ return res.data;
41
+ } catch (error) {
42
+ throw this.handleError(error);
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Update device name
48
+ */
49
+ async updateDeviceName(sessionId, deviceName) {
50
+ try {
51
+ const res = await this.getClient().put(`/devices/sessions/${sessionId}/name`, {
52
+ deviceName
53
+ });
54
+ return res.data;
55
+ } catch (error) {
56
+ throw this.handleError(error);
57
+ }
58
+ }
59
+ }
60
+ exports.DeviceService = DeviceService;
61
+ //# sourceMappingURL=DeviceService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_OxyServices","require","_apiUtils","DeviceService","OxyServices","getDeviceSessions","sessionId","deviceId","params","searchParams","buildSearchParams","res","getClient","get","toString","data","error","handleError","logoutAllDeviceSessions","excludeCurrent","delete","updateDeviceName","deviceName","put","exports"],"sourceRoot":"../../../../src","sources":["core/devices/DeviceService.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,SAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,MAAME,aAAa,SAASC,wBAAW,CAAC;EAC7C;AACF;AACA;EACE,MAAMC,iBAAiBA,CAACC,SAAiB,EAAEC,QAAiB,EAA4B;IACtF,IAAI;MACF,MAAMC,MAAM,GAAG;QAAED;MAAS,CAAC;MAC3B,MAAME,YAAY,GAAG,IAAAC,2BAAiB,EAACF,MAAM,CAAC;MAE9C,MAAMG,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACC,GAAG,CAAC,qBAAqBP,SAAS,IAAIG,YAAY,CAACK,QAAQ,CAAC,CAAC,EAAE,CAAC;MACnG,OAAOH,GAAG,CAACI,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAME,uBAAuBA,CAACZ,SAAiB,EAAEC,QAAiB,EAAEY,cAAwB,EAAwC;IAClI,IAAI;MACF,MAAMX,MAAM,GAAG;QAAED,QAAQ;QAAEY;MAAe,CAAC;MAC3C,MAAMV,YAAY,GAAG,IAAAC,2BAAiB,EAACF,MAAM,CAAC;MAE9C,MAAMG,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACQ,MAAM,CAAC,qBAAqBd,SAAS,eAAeG,YAAY,CAACK,QAAQ,CAAC,CAAC,EAAE,CAAC;MACjH,OAAOH,GAAG,CAACI,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;EACE,MAAMK,gBAAgBA,CAACf,SAAiB,EAAEgB,UAAkB,EAAqC;IAC/F,IAAI;MACF,MAAMX,GAAG,GAAG,MAAM,IAAI,CAACC,SAAS,CAAC,CAAC,CAACW,GAAG,CAAC,qBAAqBjB,SAAS,OAAO,EAAE;QAAEgB;MAAW,CAAC,CAAC;MAC7F,OAAOX,GAAG,CAACI,IAAI;IACjB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;IAC/B;EACF;AACF;AAACQ,OAAA,CAAArB,aAAA,GAAAA,aAAA","ignoreList":[]}