@oxyhq/services 5.16.39 → 5.16.41

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 (267) hide show
  1. package/lib/commonjs/adapters/expo/crypto.js +56 -0
  2. package/lib/commonjs/adapters/expo/crypto.js.map +1 -0
  3. package/lib/commonjs/adapters/expo/fetch.js +30 -0
  4. package/lib/commonjs/adapters/expo/fetch.js.map +1 -0
  5. package/lib/commonjs/adapters/expo/index.js +48 -0
  6. package/lib/commonjs/adapters/expo/index.js.map +1 -0
  7. package/lib/commonjs/adapters/expo/storage.js +201 -0
  8. package/lib/commonjs/adapters/expo/storage.js.map +1 -0
  9. package/lib/commonjs/adapters/index.js +41 -0
  10. package/lib/commonjs/adapters/index.js.map +1 -0
  11. package/lib/commonjs/adapters/node/crypto.js +40 -0
  12. package/lib/commonjs/adapters/node/crypto.js.map +1 -0
  13. package/lib/commonjs/adapters/node/fetch.js +62 -0
  14. package/lib/commonjs/adapters/node/fetch.js.map +1 -0
  15. package/lib/commonjs/adapters/node/index.js +34 -0
  16. package/lib/commonjs/adapters/node/index.js.map +1 -0
  17. package/lib/commonjs/adapters/node/storage.js +163 -0
  18. package/lib/commonjs/adapters/node/storage.js.map +1 -0
  19. package/lib/commonjs/core/identity-session/DeviceManager.js +237 -0
  20. package/lib/commonjs/core/identity-session/DeviceManager.js.map +1 -0
  21. package/lib/commonjs/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  22. package/lib/commonjs/core/identity-session/IdentityManager.js +400 -0
  23. package/lib/commonjs/core/identity-session/IdentityManager.js.map +1 -0
  24. package/lib/commonjs/core/identity-session/IdentitySessionCore.js +394 -0
  25. package/lib/commonjs/core/identity-session/IdentitySessionCore.js.map +1 -0
  26. package/lib/commonjs/core/identity-session/RefreshManager.js +137 -0
  27. package/lib/commonjs/core/identity-session/RefreshManager.js.map +1 -0
  28. package/lib/commonjs/core/identity-session/SessionManager.js +427 -0
  29. package/lib/commonjs/core/identity-session/SessionManager.js.map +1 -0
  30. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js +24 -0
  31. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js.map +1 -0
  32. package/lib/commonjs/core/identity-session/errors.js +176 -0
  33. package/lib/commonjs/core/identity-session/errors.js.map +1 -0
  34. package/lib/commonjs/core/identity-session/index.js +80 -0
  35. package/lib/commonjs/core/identity-session/index.js.map +1 -0
  36. package/lib/commonjs/core/identity-session/types.js +2 -0
  37. package/lib/commonjs/core/identity-session/types.js.map +1 -0
  38. package/lib/commonjs/core/index.js +2 -21
  39. package/lib/commonjs/core/index.js.map +1 -1
  40. package/lib/commonjs/index.js +58 -8
  41. package/lib/commonjs/index.js.map +1 -1
  42. package/lib/commonjs/models/interfaces.js +7 -0
  43. package/lib/commonjs/models/interfaces.js.map +1 -1
  44. package/lib/commonjs/ui/context/OxyContext.js +434 -820
  45. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  46. package/lib/commonjs/ui/hooks/useAvatarPicker.js +52 -0
  47. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -0
  48. package/lib/commonjs/ui/hooks/useIdentityTransfer.js +125 -0
  49. package/lib/commonjs/ui/hooks/useIdentityTransfer.js.map +1 -0
  50. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js +81 -0
  51. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js.map +1 -0
  52. package/lib/commonjs/ui/screens/AccountCenterScreen.js +7 -2
  53. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  54. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +12 -5
  55. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  56. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -2
  57. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/ProfileScreen.js +6 -6
  59. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  60. package/lib/commonjs/ui/utils/sessionHelpers.js +7 -1
  61. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  62. package/lib/commonjs/utils/index.js +0 -7
  63. package/lib/commonjs/utils/index.js.map +1 -1
  64. package/lib/commonjs/utils/sessionUtils.js +8 -1
  65. package/lib/commonjs/utils/sessionUtils.js.map +1 -1
  66. package/lib/module/adapters/expo/crypto.js +51 -0
  67. package/lib/module/adapters/expo/crypto.js.map +1 -0
  68. package/lib/module/adapters/expo/fetch.js +26 -0
  69. package/lib/module/adapters/expo/fetch.js.map +1 -0
  70. package/lib/module/adapters/expo/index.js +45 -0
  71. package/lib/module/adapters/expo/index.js.map +1 -0
  72. package/lib/module/adapters/expo/storage.js +198 -0
  73. package/lib/module/adapters/expo/storage.js.map +1 -0
  74. package/lib/module/adapters/index.js +38 -0
  75. package/lib/module/adapters/index.js.map +1 -0
  76. package/lib/module/adapters/node/crypto.js +36 -0
  77. package/lib/module/adapters/node/crypto.js.map +1 -0
  78. package/lib/module/adapters/node/fetch.js +57 -0
  79. package/lib/module/adapters/node/fetch.js.map +1 -0
  80. package/lib/module/adapters/node/index.js +31 -0
  81. package/lib/module/adapters/node/index.js.map +1 -0
  82. package/lib/module/adapters/node/storage.js +159 -0
  83. package/lib/module/adapters/node/storage.js.map +1 -0
  84. package/lib/module/core/identity-session/DeviceManager.js +232 -0
  85. package/lib/module/core/identity-session/DeviceManager.js.map +1 -0
  86. package/lib/module/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  87. package/lib/module/core/identity-session/IdentityManager.js +395 -0
  88. package/lib/module/core/identity-session/IdentityManager.js.map +1 -0
  89. package/lib/module/core/identity-session/IdentitySessionCore.js +390 -0
  90. package/lib/module/core/identity-session/IdentitySessionCore.js.map +1 -0
  91. package/lib/module/core/identity-session/RefreshManager.js +132 -0
  92. package/lib/module/core/identity-session/RefreshManager.js.map +1 -0
  93. package/lib/module/core/identity-session/SessionManager.js +422 -0
  94. package/lib/module/core/identity-session/SessionManager.js.map +1 -0
  95. package/lib/module/core/identity-session/createIdentitySessionCore.js +21 -0
  96. package/lib/module/core/identity-session/createIdentitySessionCore.js.map +1 -0
  97. package/lib/module/core/identity-session/errors.js +170 -0
  98. package/lib/module/core/identity-session/errors.js.map +1 -0
  99. package/lib/module/core/identity-session/index.js +17 -0
  100. package/lib/module/core/identity-session/index.js.map +1 -0
  101. package/lib/module/core/identity-session/types.js +2 -0
  102. package/lib/module/core/identity-session/types.js.map +1 -0
  103. package/lib/module/core/index.js +2 -3
  104. package/lib/module/core/index.js.map +1 -1
  105. package/lib/module/index.js +12 -2
  106. package/lib/module/index.js.map +1 -1
  107. package/lib/module/models/interfaces.js +7 -0
  108. package/lib/module/models/interfaces.js.map +1 -1
  109. package/lib/module/ui/context/OxyContext.js +436 -822
  110. package/lib/module/ui/context/OxyContext.js.map +1 -1
  111. package/lib/module/ui/hooks/useAvatarPicker.js +48 -0
  112. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -0
  113. package/lib/module/ui/hooks/useIdentityTransfer.js +121 -0
  114. package/lib/module/ui/hooks/useIdentityTransfer.js.map +1 -0
  115. package/lib/module/ui/hooks/useTransferCodesPersistence.js +77 -0
  116. package/lib/module/ui/hooks/useTransferCodesPersistence.js.map +1 -0
  117. package/lib/module/ui/screens/AccountCenterScreen.js +7 -2
  118. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  119. package/lib/module/ui/screens/AccountSettingsScreen.js +12 -5
  120. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  121. package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -2
  122. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  123. package/lib/module/ui/screens/ProfileScreen.js +6 -6
  124. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  125. package/lib/module/ui/utils/sessionHelpers.js +7 -1
  126. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  127. package/lib/module/utils/index.js +2 -1
  128. package/lib/module/utils/index.js.map +1 -1
  129. package/lib/module/utils/sessionUtils.js +8 -1
  130. package/lib/module/utils/sessionUtils.js.map +1 -1
  131. package/lib/typescript/adapters/expo/crypto.d.ts +17 -0
  132. package/lib/typescript/adapters/expo/crypto.d.ts.map +1 -0
  133. package/lib/typescript/adapters/expo/fetch.d.ts +16 -0
  134. package/lib/typescript/adapters/expo/fetch.d.ts.map +1 -0
  135. package/lib/typescript/adapters/expo/index.d.ts +23 -0
  136. package/lib/typescript/adapters/expo/index.d.ts.map +1 -0
  137. package/lib/typescript/adapters/expo/storage.d.ts +23 -0
  138. package/lib/typescript/adapters/expo/storage.d.ts.map +1 -0
  139. package/lib/typescript/adapters/index.d.ts +13 -0
  140. package/lib/typescript/adapters/index.d.ts.map +1 -0
  141. package/lib/typescript/adapters/node/crypto.d.ts +17 -0
  142. package/lib/typescript/adapters/node/crypto.d.ts.map +1 -0
  143. package/lib/typescript/adapters/node/fetch.d.ts +16 -0
  144. package/lib/typescript/adapters/node/fetch.d.ts.map +1 -0
  145. package/lib/typescript/adapters/node/index.d.ts +23 -0
  146. package/lib/typescript/adapters/node/index.d.ts.map +1 -0
  147. package/lib/typescript/adapters/node/storage.d.ts +23 -0
  148. package/lib/typescript/adapters/node/storage.d.ts.map +1 -0
  149. package/lib/typescript/core/identity-session/DeviceManager.d.ts +64 -0
  150. package/lib/typescript/core/identity-session/DeviceManager.d.ts.map +1 -0
  151. package/lib/typescript/core/identity-session/IdentityManager.d.ts +88 -0
  152. package/lib/typescript/core/identity-session/IdentityManager.d.ts.map +1 -0
  153. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts +141 -0
  154. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts.map +1 -0
  155. package/lib/typescript/core/identity-session/RefreshManager.d.ts +36 -0
  156. package/lib/typescript/core/identity-session/RefreshManager.d.ts.map +1 -0
  157. package/lib/typescript/core/identity-session/SessionManager.d.ts +104 -0
  158. package/lib/typescript/core/identity-session/SessionManager.d.ts.map +1 -0
  159. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts +11 -0
  160. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts.map +1 -0
  161. package/lib/typescript/core/identity-session/errors.d.ts +63 -0
  162. package/lib/typescript/core/identity-session/errors.d.ts.map +1 -0
  163. package/lib/typescript/core/identity-session/index.d.ts +14 -0
  164. package/lib/typescript/core/identity-session/index.d.ts.map +1 -0
  165. package/lib/typescript/core/identity-session/types.d.ts +196 -0
  166. package/lib/typescript/core/identity-session/types.d.ts.map +1 -0
  167. package/lib/typescript/core/index.d.ts +1 -3
  168. package/lib/typescript/core/index.d.ts.map +1 -1
  169. package/lib/typescript/core/mixins/index.d.ts +2 -2
  170. package/lib/typescript/index.d.ts +3 -2
  171. package/lib/typescript/index.d.ts.map +1 -1
  172. package/lib/typescript/models/interfaces.d.ts +5 -36
  173. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  174. package/lib/typescript/models/session.d.ts +3 -16
  175. package/lib/typescript/models/session.d.ts.map +1 -1
  176. package/lib/typescript/ui/context/OxyContext.d.ts +2 -25
  177. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  178. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +7 -8
  179. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  180. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
  181. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  182. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +5 -5
  183. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  184. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +18 -0
  185. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +1 -0
  186. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts +24 -0
  187. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts.map +1 -0
  188. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts +6 -0
  189. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts.map +1 -0
  190. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  191. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  192. package/lib/typescript/ui/utils/sessionHelpers.d.ts +1 -0
  193. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
  194. package/lib/typescript/utils/index.d.ts +0 -2
  195. package/lib/typescript/utils/index.d.ts.map +1 -1
  196. package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
  197. package/package.json +1 -1
  198. package/src/adapters/expo/crypto.ts +55 -0
  199. package/src/adapters/expo/fetch.ts +28 -0
  200. package/src/adapters/expo/index.ts +51 -0
  201. package/src/adapters/expo/storage.ts +228 -0
  202. package/src/adapters/index.ts +40 -0
  203. package/src/adapters/node/crypto.ts +39 -0
  204. package/src/adapters/node/fetch.ts +59 -0
  205. package/src/adapters/node/index.ts +37 -0
  206. package/src/adapters/node/storage.ts +170 -0
  207. package/src/core/identity-session/DeviceManager.ts +273 -0
  208. package/src/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  209. package/src/core/identity-session/IdentityManager.ts +474 -0
  210. package/src/core/identity-session/IdentitySessionCore.ts +464 -0
  211. package/src/core/identity-session/RefreshManager.ts +189 -0
  212. package/src/core/identity-session/SessionManager.ts +500 -0
  213. package/src/core/identity-session/createIdentitySessionCore.ts +19 -0
  214. package/src/core/identity-session/errors.ts +197 -0
  215. package/src/core/identity-session/index.ts +15 -0
  216. package/src/core/identity-session/types.ts +188 -0
  217. package/src/core/index.ts +3 -4
  218. package/src/index.ts +28 -3
  219. package/src/models/interfaces.ts +12 -39
  220. package/src/models/session.ts +6 -16
  221. package/src/ui/context/OxyContext.tsx +442 -871
  222. package/src/ui/hooks/auth/index.ts +1 -0
  223. package/src/ui/hooks/useAvatarPicker.ts +62 -0
  224. package/src/ui/hooks/useIdentityTransfer.ts +135 -0
  225. package/src/ui/hooks/useTransferCodesPersistence.ts +80 -0
  226. package/src/ui/screens/AccountCenterScreen.tsx +7 -2
  227. package/src/ui/screens/AccountSettingsScreen.tsx +15 -8
  228. package/src/ui/screens/AccountSwitcherScreen.tsx +2 -2
  229. package/src/ui/screens/ProfileScreen.tsx +10 -10
  230. package/src/ui/utils/sessionHelpers.ts +7 -0
  231. package/src/utils/index.ts +1 -2
  232. package/src/utils/sessionUtils.ts +8 -0
  233. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +0 -704
  234. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +0 -1
  235. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +0 -73
  236. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +0 -1
  237. package/lib/commonjs/ui/hooks/useDeviceManagement.js +0 -73
  238. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +0 -1
  239. package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -281
  240. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +0 -1
  241. package/lib/commonjs/utils/deviceManager.js +0 -177
  242. package/lib/commonjs/utils/deviceManager.js.map +0 -1
  243. package/lib/module/ui/context/hooks/useAuthOperations.js +0 -698
  244. package/lib/module/ui/context/hooks/useAuthOperations.js.map +0 -1
  245. package/lib/module/ui/context/hooks/useDeviceManagement.js +0 -68
  246. package/lib/module/ui/context/hooks/useDeviceManagement.js.map +0 -1
  247. package/lib/module/ui/hooks/useDeviceManagement.js +0 -68
  248. package/lib/module/ui/hooks/useDeviceManagement.js.map +0 -1
  249. package/lib/module/ui/hooks/useSessionManagement.js +0 -276
  250. package/lib/module/ui/hooks/useSessionManagement.js.map +0 -1
  251. package/lib/module/utils/deviceManager.js +0 -171
  252. package/lib/module/utils/deviceManager.js.map +0 -1
  253. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +0 -59
  254. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +0 -1
  255. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +0 -27
  256. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +0 -1
  257. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +0 -27
  258. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +0 -1
  259. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +0 -41
  260. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +0 -1
  261. package/lib/typescript/utils/deviceManager.d.ts +0 -66
  262. package/lib/typescript/utils/deviceManager.d.ts.map +0 -1
  263. package/src/ui/context/hooks/useAuthOperations.ts +0 -773
  264. package/src/ui/context/hooks/useDeviceManagement.ts +0 -108
  265. package/src/ui/hooks/useDeviceManagement.ts +0 -108
  266. package/src/ui/hooks/useSessionManagement.ts +0 -401
  267. package/src/utils/deviceManager.ts +0 -198
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","KeyManager","SignatureService","LOGIN_ERROR_CODE","REGISTER_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","setIdentitySynced","setSyncing","logger","clearSessionsIfIdentityChanged","oldPublicKey","newPublicKey","__DEV__","substring","invalidateCache","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","isOffline","challengeResponse","requestChallenge","error","errorMessage","Error","message","String","isNetworkError","includes","code","status","generateChallenge","signature","timestamp","signChallenge","fullUser","sessionResponse","localSessionId","Date","now","Math","random","toString","substr","localDeviceId","expiresAt","toISOString","id","username","privacySettings","sessionId","deviceId","user","offlineSession","lastActive","userId","isCurrent","merge","setItem","verifyChallenge","getTokenBySession","getUserBySession","test","console","warn","allDeviceSessions","fallbackDeviceId","fallbackUserId","existingSession","find","session","logoutSession","logoutError","filter","createIdentity","isLoading","getPublicKey","catch","hadPreviousIdentity","privateKey","generateKeyPair","importKeyPair","trimmedUsername","trim","createRegistrationSignature","register","synced","syncError","hasIdentity","removeItem","defaultMessage","setAuthError","msg","isIdentitySyncedFn","getItem","isSynced","syncIdentity","alreadySynced","registered","checkPublicKeyRegistered","importIdentity","backupData","password","Array","isArray","encrypted","salt","iv","backupPublicKey","Crypto","saltBytes","Uint8Array","match","map","byte","parseInt","ivBytes","saltHex","from","b","padStart","join","key","i","digestStringAsync","CryptoDigestAlgorithm","SHA256","keyBytes","length","encryptedBytes","Buffer","decryptedBytes","TextDecoder","decode","log","signIn","logout","targetSessionId","sessionToLogout","filteredSessions","isInvalid","undefined","logoutAll","logoutAllSessions","isIdentitySynced"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- import { useCallback } from 'react';
4
- import { DeviceManager } from '../../../utils/deviceManager';
5
- import { handleAuthError } from '../../utils/errorHandlers';
6
- /**
7
- * Provide device session management helpers tied to the current active session.
8
- *
9
- * @param options - Device management configuration
10
- */
11
- export const useDeviceManagement = ({
12
- oxyServices,
13
- activeSessionId,
14
- onError,
15
- clearSessionState,
16
- logger
17
- }) => {
18
- const getDeviceSessions = useCallback(async () => {
19
- if (!activeSessionId) throw new Error('No active session');
20
- try {
21
- return await oxyServices.getDeviceSessions(activeSessionId);
22
- } catch (error) {
23
- handleAuthError(error, {
24
- defaultMessage: 'Failed to get device sessions',
25
- code: 'GET_DEVICE_SESSIONS_ERROR',
26
- onError,
27
- logger
28
- });
29
- throw error instanceof Error ? error : new Error('Failed to get device sessions');
30
- }
31
- }, [activeSessionId, logger, onError, oxyServices]);
32
- const logoutAllDeviceSessions = useCallback(async () => {
33
- if (!activeSessionId) throw new Error('No active session');
34
- try {
35
- await oxyServices.logoutAllDeviceSessions(activeSessionId);
36
- await clearSessionState();
37
- } catch (error) {
38
- handleAuthError(error, {
39
- defaultMessage: 'Failed to logout all device sessions',
40
- code: 'LOGOUT_ALL_DEVICES_ERROR',
41
- onError,
42
- logger
43
- });
44
- throw error instanceof Error ? error : new Error('Failed to logout all device sessions');
45
- }
46
- }, [activeSessionId, clearSessionState, logger, onError, oxyServices]);
47
- const updateDeviceName = useCallback(async deviceName => {
48
- if (!activeSessionId) throw new Error('No active session');
49
- try {
50
- await oxyServices.updateDeviceName(activeSessionId, deviceName);
51
- await DeviceManager.updateDeviceName(deviceName);
52
- } catch (error) {
53
- handleAuthError(error, {
54
- defaultMessage: 'Failed to update device name',
55
- code: 'UPDATE_DEVICE_NAME_ERROR',
56
- onError,
57
- logger
58
- });
59
- throw error instanceof Error ? error : new Error('Failed to update device name');
60
- }
61
- }, [activeSessionId, logger, onError, oxyServices]);
62
- return {
63
- getDeviceSessions,
64
- logoutAllDeviceSessions,
65
- updateDeviceName
66
- };
67
- };
68
- //# sourceMappingURL=useDeviceManagement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","DeviceManager","handleAuthError","useDeviceManagement","oxyServices","activeSessionId","onError","clearSessionState","logger","getDeviceSessions","Error","error","defaultMessage","code","logoutAllDeviceSessions","updateDeviceName","deviceName"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useDeviceManagement.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,aAAa,QAAQ,8BAA8B;AAE5D,SAASC,eAAe,QAAQ,2BAA2B;AAwB3D;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,WAAW;EACXC,eAAe;EACfC,OAAO;EACPC,iBAAiB;EACjBC;AAC0B,CAAC,KAAgC;EAC3D,MAAMC,iBAAiB,GAAGT,WAAW,CAAC,YAQjC;IACH,IAAI,CAACK,eAAe,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;IAC1D,IAAI;MACF,OAAO,MAAMN,WAAW,CAACK,iBAAiB,CAACJ,eAAe,CAAC;IAC7D,CAAC,CAAC,OAAOM,KAAK,EAAE;MACdT,eAAe,CAACS,KAAK,EAAE;QACrBC,cAAc,EAAE,+BAA+B;QAC/CC,IAAI,EAAE,2BAA2B;QACjCP,OAAO;QACPE;MACF,CAAC,CAAC;MACF,MAAMG,KAAK,YAAYD,KAAK,GAAGC,KAAK,GAAG,IAAID,KAAK,CAAC,+BAA+B,CAAC;IACnF;EACF,CAAC,EAAE,CAACL,eAAe,EAAEG,MAAM,EAAEF,OAAO,EAAEF,WAAW,CAAC,CAAC;EAEnD,MAAMU,uBAAuB,GAAGd,WAAW,CAAC,YAA2B;IACrE,IAAI,CAACK,eAAe,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;IAE1D,IAAI;MACF,MAAMN,WAAW,CAACU,uBAAuB,CAACT,eAAe,CAAC;MAC1D,MAAME,iBAAiB,CAAC,CAAC;IAC3B,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdT,eAAe,CAACS,KAAK,EAAE;QACrBC,cAAc,EAAE,sCAAsC;QACtDC,IAAI,EAAE,0BAA0B;QAChCP,OAAO;QACPE;MACF,CAAC,CAAC;MACF,MAAMG,KAAK,YAAYD,KAAK,GAAGC,KAAK,GAAG,IAAID,KAAK,CAAC,sCAAsC,CAAC;IAC1F;EACF,CAAC,EAAE,CAACL,eAAe,EAAEE,iBAAiB,EAAEC,MAAM,EAAEF,OAAO,EAAEF,WAAW,CAAC,CAAC;EAEtE,MAAMW,gBAAgB,GAAGf,WAAW,CAClC,MAAOgB,UAAkB,IAAoB;IAC3C,IAAI,CAACX,eAAe,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;IAE1D,IAAI;MACF,MAAMN,WAAW,CAACW,gBAAgB,CAACV,eAAe,EAAEW,UAAU,CAAC;MAC/D,MAAMf,aAAa,CAACc,gBAAgB,CAACC,UAAU,CAAC;IAClD,CAAC,CAAC,OAAOL,KAAK,EAAE;MACdT,eAAe,CAACS,KAAK,EAAE;QACrBC,cAAc,EAAE,8BAA8B;QAC9CC,IAAI,EAAE,0BAA0B;QAChCP,OAAO;QACPE;MACF,CAAC,CAAC;MACF,MAAMG,KAAK,YAAYD,KAAK,GAAGC,KAAK,GAAG,IAAID,KAAK,CAAC,8BAA8B,CAAC;IAClF;EACF,CAAC,EACD,CAACL,eAAe,EAAEG,MAAM,EAAEF,OAAO,EAAEF,WAAW,CAChD,CAAC;EAED,OAAO;IACLK,iBAAiB;IACjBK,uBAAuB;IACvBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- import { useCallback } from 'react';
4
- import { DeviceManager } from '../../utils/deviceManager';
5
- import { handleAuthError } from '../utils/errorHandlers';
6
- /**
7
- * Provide device session management helpers tied to the current active session.
8
- *
9
- * @param options - Device management configuration
10
- */
11
- export const useDeviceManagement = ({
12
- oxyServices,
13
- activeSessionId,
14
- onError,
15
- clearSessionState,
16
- logger
17
- }) => {
18
- const getDeviceSessions = useCallback(async () => {
19
- if (!activeSessionId) throw new Error('No active session');
20
- try {
21
- return await oxyServices.getDeviceSessions(activeSessionId);
22
- } catch (error) {
23
- handleAuthError(error, {
24
- defaultMessage: 'Failed to get device sessions',
25
- code: 'GET_DEVICE_SESSIONS_ERROR',
26
- onError,
27
- logger
28
- });
29
- throw error instanceof Error ? error : new Error('Failed to get device sessions');
30
- }
31
- }, [activeSessionId, logger, onError, oxyServices]);
32
- const logoutAllDeviceSessions = useCallback(async () => {
33
- if (!activeSessionId) throw new Error('No active session');
34
- try {
35
- await oxyServices.logoutAllDeviceSessions(activeSessionId);
36
- await clearSessionState();
37
- } catch (error) {
38
- handleAuthError(error, {
39
- defaultMessage: 'Failed to logout all device sessions',
40
- code: 'LOGOUT_ALL_DEVICES_ERROR',
41
- onError,
42
- logger
43
- });
44
- throw error instanceof Error ? error : new Error('Failed to logout all device sessions');
45
- }
46
- }, [activeSessionId, clearSessionState, logger, onError, oxyServices]);
47
- const updateDeviceName = useCallback(async deviceName => {
48
- if (!activeSessionId) throw new Error('No active session');
49
- try {
50
- await oxyServices.updateDeviceName(activeSessionId, deviceName);
51
- await DeviceManager.updateDeviceName(deviceName);
52
- } catch (error) {
53
- handleAuthError(error, {
54
- defaultMessage: 'Failed to update device name',
55
- code: 'UPDATE_DEVICE_NAME_ERROR',
56
- onError,
57
- logger
58
- });
59
- throw error instanceof Error ? error : new Error('Failed to update device name');
60
- }
61
- }, [activeSessionId, logger, onError, oxyServices]);
62
- return {
63
- getDeviceSessions,
64
- logoutAllDeviceSessions,
65
- updateDeviceName
66
- };
67
- };
68
- //# sourceMappingURL=useDeviceManagement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","DeviceManager","handleAuthError","useDeviceManagement","oxyServices","activeSessionId","onError","clearSessionState","logger","getDeviceSessions","Error","error","defaultMessage","code","logoutAllDeviceSessions","updateDeviceName","deviceName"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDeviceManagement.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,eAAe,QAAQ,wBAAwB;AAwBxD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,WAAW;EACXC,eAAe;EACfC,OAAO;EACPC,iBAAiB;EACjBC;AAC0B,CAAC,KAAgC;EAC3D,MAAMC,iBAAiB,GAAGT,WAAW,CAAC,YAQjC;IACH,IAAI,CAACK,eAAe,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;IAC1D,IAAI;MACF,OAAO,MAAMN,WAAW,CAACK,iBAAiB,CAACJ,eAAe,CAAC;IAC7D,CAAC,CAAC,OAAOM,KAAK,EAAE;MACdT,eAAe,CAACS,KAAK,EAAE;QACrBC,cAAc,EAAE,+BAA+B;QAC/CC,IAAI,EAAE,2BAA2B;QACjCP,OAAO;QACPE;MACF,CAAC,CAAC;MACF,MAAMG,KAAK,YAAYD,KAAK,GAAGC,KAAK,GAAG,IAAID,KAAK,CAAC,+BAA+B,CAAC;IACnF;EACF,CAAC,EAAE,CAACL,eAAe,EAAEG,MAAM,EAAEF,OAAO,EAAEF,WAAW,CAAC,CAAC;EAEnD,MAAMU,uBAAuB,GAAGd,WAAW,CAAC,YAA2B;IACrE,IAAI,CAACK,eAAe,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;IAE1D,IAAI;MACF,MAAMN,WAAW,CAACU,uBAAuB,CAACT,eAAe,CAAC;MAC1D,MAAME,iBAAiB,CAAC,CAAC;IAC3B,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdT,eAAe,CAACS,KAAK,EAAE;QACrBC,cAAc,EAAE,sCAAsC;QACtDC,IAAI,EAAE,0BAA0B;QAChCP,OAAO;QACPE;MACF,CAAC,CAAC;MACF,MAAMG,KAAK,YAAYD,KAAK,GAAGC,KAAK,GAAG,IAAID,KAAK,CAAC,sCAAsC,CAAC;IAC1F;EACF,CAAC,EAAE,CAACL,eAAe,EAAEE,iBAAiB,EAAEC,MAAM,EAAEF,OAAO,EAAEF,WAAW,CAAC,CAAC;EAEtE,MAAMW,gBAAgB,GAAGf,WAAW,CAClC,MAAOgB,UAAkB,IAAoB;IAC3C,IAAI,CAACX,eAAe,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;IAE1D,IAAI;MACF,MAAMN,WAAW,CAACW,gBAAgB,CAACV,eAAe,EAAEW,UAAU,CAAC;MAC/D,MAAMf,aAAa,CAACc,gBAAgB,CAACC,UAAU,CAAC;IAClD,CAAC,CAAC,OAAOL,KAAK,EAAE;MACdT,eAAe,CAACS,KAAK,EAAE;QACrBC,cAAc,EAAE,8BAA8B;QAC9CC,IAAI,EAAE,0BAA0B;QAChCP,OAAO;QACPE;MACF,CAAC,CAAC;MACF,MAAMG,KAAK,YAAYD,KAAK,GAAGC,KAAK,GAAG,IAAID,KAAK,CAAC,8BAA8B,CAAC;IAClF;EACF,CAAC,EACD,CAACL,eAAe,EAAEG,MAAM,EAAEF,OAAO,EAAEF,WAAW,CAChD,CAAC;EAED,OAAO;IACLK,iBAAiB;IACjBK,uBAAuB;IACvBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,276 +0,0 @@
1
- "use strict";
2
-
3
- import { useCallback, useMemo, useRef, useState } from 'react';
4
- import { mergeSessions, normalizeAndSortSessions, sessionsArraysEqual } from '../../utils/sessionUtils';
5
- import { fetchSessionsWithFallback, validateSessionBatch } from '../utils/sessionHelpers';
6
- import { getStorageKeys } from '../utils/storageHelpers';
7
- import { handleAuthError, isInvalidSessionError } from '../utils/errorHandlers';
8
- import { clearQueryCache } from './queryClient';
9
- const DEFAULT_SAVE_ERROR_MESSAGE = 'Failed to save session data';
10
- const CLEAR_STORAGE_ERROR = 'Failed to clear storage';
11
-
12
- /**
13
- * Manage session state, persistence, and high-level multi-session operations.
14
- *
15
- * @param options - Session management configuration
16
- */
17
- export const useSessionManagement = ({
18
- oxyServices,
19
- storage,
20
- storageKeyPrefix,
21
- loginSuccess,
22
- logoutStore,
23
- applyLanguagePreference,
24
- onAuthStateChange,
25
- onError,
26
- setAuthError,
27
- logger,
28
- setTokenReady,
29
- queryClient
30
- }) => {
31
- const [sessions, setSessions] = useState([]);
32
- const [activeSessionId, setActiveSessionId] = useState(null);
33
- const refreshInFlightRef = useRef(null);
34
- const removedSessionsRef = useRef(new Set());
35
- const lastRefreshRef = useRef(0);
36
- const storageKeys = useMemo(() => getStorageKeys(storageKeyPrefix), [storageKeyPrefix]);
37
- const saveSessionIds = useCallback(async sessionIds => {
38
- if (!storage) return;
39
- try {
40
- const uniqueIds = Array.from(new Set(sessionIds));
41
- await storage.setItem(storageKeys.sessionIds, JSON.stringify(uniqueIds));
42
- } catch (error) {
43
- if (logger) {
44
- logger(DEFAULT_SAVE_ERROR_MESSAGE, error);
45
- } else if (__DEV__) {
46
- console.warn('Failed to save session IDs:', error);
47
- }
48
- }
49
- }, [logger, storage, storageKeys.sessionIds]);
50
- const updateSessions = useCallback((incoming, options = {}) => {
51
- setSessions(prevSessions => {
52
- const processed = options.merge ? mergeSessions(prevSessions, incoming, activeSessionId, false) : normalizeAndSortSessions(incoming, activeSessionId, false);
53
- if (storage) {
54
- void saveSessionIds(processed.map(session => session.sessionId));
55
- }
56
- if (sessionsArraysEqual(prevSessions, processed)) {
57
- return prevSessions;
58
- }
59
- return processed;
60
- });
61
- }, [activeSessionId, saveSessionIds, storage]);
62
- const saveActiveSessionId = useCallback(async sessionId => {
63
- if (!storage) return;
64
- try {
65
- await storage.setItem(storageKeys.activeSessionId, sessionId);
66
- } catch (error) {
67
- handleAuthError(error, {
68
- defaultMessage: DEFAULT_SAVE_ERROR_MESSAGE,
69
- code: 'SESSION_PERSISTENCE_ERROR',
70
- onError,
71
- setAuthError,
72
- logger
73
- });
74
- }
75
- }, [logger, onError, setAuthError, storage, storageKeys.activeSessionId]);
76
- const removeActiveSessionId = useCallback(async () => {
77
- if (!storage) return;
78
- try {
79
- await storage.removeItem(storageKeys.activeSessionId);
80
- } catch (error) {
81
- handleAuthError(error, {
82
- defaultMessage: DEFAULT_SAVE_ERROR_MESSAGE,
83
- code: 'SESSION_PERSISTENCE_ERROR',
84
- onError,
85
- setAuthError,
86
- logger
87
- });
88
- }
89
- }, [logger, onError, setAuthError, storage, storageKeys.activeSessionId]);
90
- const clearSessionStorage = useCallback(async () => {
91
- if (!storage) return;
92
- try {
93
- await storage.removeItem(storageKeys.activeSessionId);
94
- await storage.removeItem(storageKeys.sessionIds);
95
- // Clear identity sync state
96
- await storage.removeItem('oxy_identity_synced').catch(() => {});
97
- } catch (error) {
98
- handleAuthError(error, {
99
- defaultMessage: CLEAR_STORAGE_ERROR,
100
- code: 'STORAGE_ERROR',
101
- onError,
102
- setAuthError,
103
- logger
104
- });
105
- }
106
- }, [logger, onError, setAuthError, storage, storageKeys.activeSessionId, storageKeys.sessionIds]);
107
- const clearSessionState = useCallback(async () => {
108
- setSessions([]);
109
- setActiveSessionId(null);
110
- logoutStore();
111
-
112
- // Clear TanStack Query cache (in-memory)
113
- if (queryClient) {
114
- queryClient.clear();
115
- }
116
-
117
- // Clear persisted query cache
118
- if (storage) {
119
- try {
120
- await clearQueryCache(storage);
121
- } catch (error) {
122
- if (logger) {
123
- logger('Failed to clear persisted query cache', error);
124
- }
125
- }
126
- }
127
- await clearSessionStorage();
128
- onAuthStateChange?.(null);
129
- }, [clearSessionStorage, logoutStore, onAuthStateChange, queryClient, storage, logger]);
130
- const activateSession = useCallback(async (sessionId, user) => {
131
- await oxyServices.getTokenBySession(sessionId);
132
- setTokenReady?.(true);
133
- setActiveSessionId(sessionId);
134
- loginSuccess(user);
135
- await saveActiveSessionId(sessionId);
136
- await applyLanguagePreference(user);
137
- onAuthStateChange?.(user);
138
- }, [applyLanguagePreference, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setTokenReady]);
139
- const trackRemovedSession = useCallback(sessionId => {
140
- removedSessionsRef.current.add(sessionId);
141
- setTimeout(() => {
142
- removedSessionsRef.current.delete(sessionId);
143
- }, 5000);
144
- }, []);
145
- const findReplacementSession = useCallback(async sessionIds => {
146
- if (!sessionIds.length) {
147
- return null;
148
- }
149
- const validationResults = await validateSessionBatch(oxyServices, sessionIds, {
150
- maxConcurrency: 3
151
- });
152
- const validSession = validationResults.find(result => result.valid);
153
- if (!validSession) {
154
- return null;
155
- }
156
- const validation = await oxyServices.validateSession(validSession.sessionId, {
157
- useHeaderValidation: true
158
- });
159
- if (!validation?.valid || !validation.user) {
160
- return null;
161
- }
162
- const user = validation.user;
163
- await activateSession(validSession.sessionId, user);
164
- return user;
165
- }, [activateSession, oxyServices]);
166
- const switchSession = useCallback(async sessionId => {
167
- try {
168
- const validation = await oxyServices.validateSession(sessionId, {
169
- useHeaderValidation: true
170
- });
171
- if (!validation?.valid) {
172
- throw new Error('Session is invalid or expired');
173
- }
174
- if (!validation.user) {
175
- throw new Error('User data not available from session validation');
176
- }
177
- const user = validation.user;
178
- await activateSession(sessionId, user);
179
- try {
180
- const deviceSessions = await fetchSessionsWithFallback(oxyServices, sessionId, {
181
- fallbackUserId: user.id,
182
- logger
183
- });
184
- updateSessions(deviceSessions, {
185
- merge: true
186
- });
187
- } catch (error) {
188
- if (__DEV__) {
189
- console.warn('Failed to synchronize sessions after switch:', error);
190
- }
191
- }
192
- return user;
193
- } catch (error) {
194
- const invalidSession = isInvalidSessionError(error);
195
- if (invalidSession) {
196
- updateSessions(sessions.filter(session => session.sessionId !== sessionId), {
197
- merge: false
198
- });
199
- if (sessionId === activeSessionId) {
200
- const otherSessionIds = sessions.filter(session => session.sessionId !== sessionId && !removedSessionsRef.current.has(session.sessionId)).map(session => session.sessionId);
201
- const replacementUser = await findReplacementSession(otherSessionIds);
202
- if (replacementUser) {
203
- return replacementUser;
204
- }
205
- }
206
- }
207
- handleAuthError(error, {
208
- defaultMessage: 'Failed to switch session',
209
- code: invalidSession ? 'INVALID_SESSION' : 'SESSION_SWITCH_ERROR',
210
- onError,
211
- setAuthError,
212
- logger
213
- });
214
- throw error instanceof Error ? error : new Error('Failed to switch session');
215
- }
216
- }, [activateSession, activeSessionId, findReplacementSession, logger, loginSuccess, onError, oxyServices, sessions, setAuthError, updateSessions]);
217
- const refreshSessions = useCallback(async activeUserId => {
218
- if (!activeSessionId) return;
219
- if (refreshInFlightRef.current) {
220
- await refreshInFlightRef.current;
221
- return;
222
- }
223
- const now = Date.now();
224
- if (now - lastRefreshRef.current < 500) {
225
- return;
226
- }
227
- lastRefreshRef.current = now;
228
- const refreshPromise = (async () => {
229
- try {
230
- const deviceSessions = await fetchSessionsWithFallback(oxyServices, activeSessionId, {
231
- fallbackUserId: activeUserId,
232
- logger
233
- });
234
- updateSessions(deviceSessions, {
235
- merge: true
236
- });
237
- } catch (error) {
238
- if (isInvalidSessionError(error)) {
239
- const otherSessions = sessions.filter(session => session.sessionId !== activeSessionId && !removedSessionsRef.current.has(session.sessionId)).map(session => session.sessionId);
240
- const replacementUser = await findReplacementSession(otherSessions);
241
- if (!replacementUser) {
242
- await clearSessionState();
243
- }
244
- return;
245
- }
246
- handleAuthError(error, {
247
- defaultMessage: 'Failed to refresh sessions',
248
- code: 'SESSION_REFRESH_ERROR',
249
- onError,
250
- setAuthError,
251
- logger
252
- });
253
- } finally {
254
- refreshInFlightRef.current = null;
255
- lastRefreshRef.current = Date.now();
256
- }
257
- })();
258
- refreshInFlightRef.current = refreshPromise;
259
- await refreshPromise;
260
- }, [activeSessionId, clearSessionState, findReplacementSession, logger, onError, oxyServices, sessions, setAuthError, updateSessions]);
261
- const isRefreshInFlight = Boolean(refreshInFlightRef.current);
262
- return {
263
- sessions,
264
- activeSessionId,
265
- setActiveSessionId,
266
- updateSessions,
267
- switchSession,
268
- refreshSessions,
269
- clearSessionState,
270
- saveActiveSessionId,
271
- trackRemovedSession,
272
- storageKeys,
273
- isRefreshInFlight
274
- };
275
- };
276
- //# sourceMappingURL=useSessionManagement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","useMemo","useRef","useState","mergeSessions","normalizeAndSortSessions","sessionsArraysEqual","fetchSessionsWithFallback","validateSessionBatch","getStorageKeys","handleAuthError","isInvalidSessionError","clearQueryCache","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","activeSessionId","setActiveSessionId","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","saveSessionIds","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","map","session","sessionId","saveActiveSessionId","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","catch","clearSessionState","clear","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fallbackUserId","id","invalidSession","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
@@ -1,171 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Client-side device management utility
5
- * Handles persistent device identification across app sessions
6
- */
7
- export class DeviceManager {
8
- static DEVICE_KEY = 'oxy_device_info';
9
-
10
- /**
11
- * Check if we're in React Native environment
12
- */
13
- static isReactNative() {
14
- return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
15
- }
16
-
17
- /**
18
- * Get appropriate storage for the platform
19
- */
20
- static async getStorage() {
21
- if (this.isReactNative()) {
22
- try {
23
- const asyncStorageModule = await import('@react-native-async-storage/async-storage');
24
- const storage = asyncStorageModule.default;
25
- return {
26
- getItem: storage.getItem.bind(storage),
27
- setItem: storage.setItem.bind(storage),
28
- removeItem: storage.removeItem.bind(storage)
29
- };
30
- } catch (error) {
31
- console.error('AsyncStorage not available in React Native:', error);
32
- throw new Error('AsyncStorage is required in React Native environment');
33
- }
34
- } else {
35
- // Use localStorage for web
36
- return {
37
- getItem: async key => localStorage.getItem(key),
38
- setItem: async (key, value) => localStorage.setItem(key, value),
39
- removeItem: async key => localStorage.removeItem(key)
40
- };
41
- }
42
- }
43
-
44
- /**
45
- * Get or create device fingerprint for current device
46
- */
47
- static getDeviceFingerprint() {
48
- const fingerprint = {
49
- userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : 'unknown',
50
- platform: typeof navigator !== 'undefined' ? navigator.platform : 'unknown',
51
- language: typeof navigator !== 'undefined' ? navigator.language : undefined,
52
- timezone: typeof Intl !== 'undefined' ? Intl.DateTimeFormat().resolvedOptions().timeZone : undefined
53
- };
54
-
55
- // Add screen info if available
56
- if (typeof screen !== 'undefined') {
57
- fingerprint.screen = {
58
- width: screen.width,
59
- height: screen.height,
60
- colorDepth: screen.colorDepth
61
- };
62
- }
63
- return fingerprint;
64
- }
65
-
66
- /**
67
- * Get stored device info or create new one
68
- */
69
- static async getDeviceInfo() {
70
- try {
71
- const storage = await this.getStorage();
72
- const stored = await storage.getItem(this.DEVICE_KEY);
73
- if (stored) {
74
- const deviceInfo = JSON.parse(stored);
75
-
76
- // Update last used timestamp
77
- deviceInfo.lastUsed = new Date().toISOString();
78
- await this.saveDeviceInfo(deviceInfo);
79
- return deviceInfo;
80
- }
81
-
82
- // Create new device info
83
- return await this.createNewDeviceInfo();
84
- } catch (error) {
85
- console.error('Error getting device info:', error);
86
- return await this.createNewDeviceInfo();
87
- }
88
- }
89
-
90
- /**
91
- * Create new device info and store it
92
- */
93
- static async createNewDeviceInfo() {
94
- const deviceInfo = {
95
- deviceId: this.generateDeviceId(),
96
- fingerprint: JSON.stringify(this.getDeviceFingerprint()),
97
- createdAt: new Date().toISOString(),
98
- lastUsed: new Date().toISOString()
99
- };
100
- await this.saveDeviceInfo(deviceInfo);
101
- return deviceInfo;
102
- }
103
-
104
- /**
105
- * Save device info to storage
106
- */
107
- static async saveDeviceInfo(deviceInfo) {
108
- try {
109
- const storage = await this.getStorage();
110
- await storage.setItem(this.DEVICE_KEY, JSON.stringify(deviceInfo));
111
- } catch (error) {
112
- console.error('Error saving device info:', error);
113
- }
114
- }
115
-
116
- /**
117
- * Update device name
118
- */
119
- static async updateDeviceName(deviceName) {
120
- try {
121
- const deviceInfo = await this.getDeviceInfo();
122
- deviceInfo.deviceName = deviceName;
123
- await this.saveDeviceInfo(deviceInfo);
124
- } catch (error) {
125
- console.error('Error updating device name:', error);
126
- }
127
- }
128
-
129
- /**
130
- * Clear stored device info (useful for testing or reset)
131
- */
132
- static async clearDeviceInfo() {
133
- try {
134
- const storage = await this.getStorage();
135
- await storage.removeItem(this.DEVICE_KEY);
136
- } catch (error) {
137
- console.error('Error clearing device info:', error);
138
- }
139
- }
140
-
141
- /**
142
- * Generate a unique device ID
143
- */
144
- static generateDeviceId() {
145
- // Use crypto.getRandomValues if available, otherwise fallback to Math.random
146
- if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
147
- const array = new Uint8Array(32);
148
- crypto.getRandomValues(array);
149
- return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');
150
- } else {
151
- // Fallback for environments without crypto.getRandomValues
152
- return 'device_' + Date.now().toString(36) + Math.random().toString(36).substr(2);
153
- }
154
- }
155
-
156
- /**
157
- * Get a user-friendly device name based on platform
158
- */
159
- static getDefaultDeviceName() {
160
- const fingerprint = this.getDeviceFingerprint();
161
- const platform = (fingerprint.platform || '').toLowerCase();
162
- if (platform.includes('win')) return 'Windows Computer';
163
- if (platform.includes('mac')) return 'Mac Computer';
164
- if (platform.includes('linux')) return 'Linux Computer';
165
- if (platform.includes('iphone')) return 'iPhone';
166
- if (platform.includes('ipad')) return 'iPad';
167
- if (platform.includes('android')) return 'Android Device';
168
- return 'Unknown Device';
169
- }
170
- }
171
- //# sourceMappingURL=deviceManager.js.map