@oxyhq/services 5.16.40 → 5.16.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/adapters/expo/crypto.js +56 -0
- package/lib/commonjs/adapters/expo/crypto.js.map +1 -0
- package/lib/commonjs/adapters/expo/fetch.js +30 -0
- package/lib/commonjs/adapters/expo/fetch.js.map +1 -0
- package/lib/commonjs/adapters/expo/index.js +48 -0
- package/lib/commonjs/adapters/expo/index.js.map +1 -0
- package/lib/commonjs/adapters/expo/storage.js +201 -0
- package/lib/commonjs/adapters/expo/storage.js.map +1 -0
- package/lib/commonjs/adapters/index.js +50 -0
- package/lib/commonjs/adapters/index.js.map +1 -0
- package/lib/commonjs/adapters/node/crypto.js +40 -0
- package/lib/commonjs/adapters/node/crypto.js.map +1 -0
- package/lib/commonjs/adapters/node/fetch.js +62 -0
- package/lib/commonjs/adapters/node/fetch.js.map +1 -0
- package/lib/commonjs/adapters/node/index.js +34 -0
- package/lib/commonjs/adapters/node/index.js.map +1 -0
- package/lib/commonjs/adapters/node/storage.js +163 -0
- package/lib/commonjs/adapters/node/storage.js.map +1 -0
- package/lib/commonjs/core/identity-session/DeviceManager.js +237 -0
- package/lib/commonjs/core/identity-session/DeviceManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/INTEGRATION_GUIDE.md +287 -0
- package/lib/commonjs/core/identity-session/IdentityManager.js +400 -0
- package/lib/commonjs/core/identity-session/IdentityManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/IdentitySessionCore.js +394 -0
- package/lib/commonjs/core/identity-session/IdentitySessionCore.js.map +1 -0
- package/lib/commonjs/core/identity-session/RefreshManager.js +137 -0
- package/lib/commonjs/core/identity-session/RefreshManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/SessionManager.js +427 -0
- package/lib/commonjs/core/identity-session/SessionManager.js.map +1 -0
- package/lib/commonjs/core/identity-session/createIdentitySessionCore.js +24 -0
- package/lib/commonjs/core/identity-session/createIdentitySessionCore.js.map +1 -0
- package/lib/commonjs/core/identity-session/errors.js +176 -0
- package/lib/commonjs/core/identity-session/errors.js.map +1 -0
- package/lib/commonjs/core/identity-session/index.js +80 -0
- package/lib/commonjs/core/identity-session/index.js.map +1 -0
- package/lib/commonjs/core/identity-session/types.js +2 -0
- package/lib/commonjs/core/identity-session/types.js.map +1 -0
- package/lib/commonjs/core/index.js +2 -21
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/commonjs/index.js +58 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/interfaces.js +7 -0
- package/lib/commonjs/models/interfaces.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +434 -820
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAvatarPicker.js +52 -0
- package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -0
- package/lib/commonjs/ui/hooks/useIdentityTransfer.js +125 -0
- package/lib/commonjs/ui/hooks/useIdentityTransfer.js.map +1 -0
- package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js +81 -0
- package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +7 -2
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +12 -5
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -2
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +6 -6
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/sessionHelpers.js +7 -1
- package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/commonjs/utils/index.js +0 -7
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/sessionUtils.js +8 -1
- package/lib/commonjs/utils/sessionUtils.js.map +1 -1
- package/lib/module/adapters/expo/crypto.js +51 -0
- package/lib/module/adapters/expo/crypto.js.map +1 -0
- package/lib/module/adapters/expo/fetch.js +26 -0
- package/lib/module/adapters/expo/fetch.js.map +1 -0
- package/lib/module/adapters/expo/index.js +45 -0
- package/lib/module/adapters/expo/index.js.map +1 -0
- package/lib/module/adapters/expo/storage.js +198 -0
- package/lib/module/adapters/expo/storage.js.map +1 -0
- package/lib/module/adapters/index.js +47 -0
- package/lib/module/adapters/index.js.map +1 -0
- package/lib/module/adapters/node/crypto.js +36 -0
- package/lib/module/adapters/node/crypto.js.map +1 -0
- package/lib/module/adapters/node/fetch.js +57 -0
- package/lib/module/adapters/node/fetch.js.map +1 -0
- package/lib/module/adapters/node/index.js +31 -0
- package/lib/module/adapters/node/index.js.map +1 -0
- package/lib/module/adapters/node/storage.js +159 -0
- package/lib/module/adapters/node/storage.js.map +1 -0
- package/lib/module/core/identity-session/DeviceManager.js +232 -0
- package/lib/module/core/identity-session/DeviceManager.js.map +1 -0
- package/lib/module/core/identity-session/INTEGRATION_GUIDE.md +287 -0
- package/lib/module/core/identity-session/IdentityManager.js +395 -0
- package/lib/module/core/identity-session/IdentityManager.js.map +1 -0
- package/lib/module/core/identity-session/IdentitySessionCore.js +390 -0
- package/lib/module/core/identity-session/IdentitySessionCore.js.map +1 -0
- package/lib/module/core/identity-session/RefreshManager.js +132 -0
- package/lib/module/core/identity-session/RefreshManager.js.map +1 -0
- package/lib/module/core/identity-session/SessionManager.js +422 -0
- package/lib/module/core/identity-session/SessionManager.js.map +1 -0
- package/lib/module/core/identity-session/createIdentitySessionCore.js +21 -0
- package/lib/module/core/identity-session/createIdentitySessionCore.js.map +1 -0
- package/lib/module/core/identity-session/errors.js +170 -0
- package/lib/module/core/identity-session/errors.js.map +1 -0
- package/lib/module/core/identity-session/index.js +17 -0
- package/lib/module/core/identity-session/index.js.map +1 -0
- package/lib/module/core/identity-session/types.js +2 -0
- package/lib/module/core/identity-session/types.js.map +1 -0
- package/lib/module/core/index.js +2 -3
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/index.js +12 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/interfaces.js +7 -0
- package/lib/module/models/interfaces.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +436 -822
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/useAvatarPicker.js +48 -0
- package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -0
- package/lib/module/ui/hooks/useIdentityTransfer.js +121 -0
- package/lib/module/ui/hooks/useIdentityTransfer.js.map +1 -0
- package/lib/module/ui/hooks/useTransferCodesPersistence.js +77 -0
- package/lib/module/ui/hooks/useTransferCodesPersistence.js.map +1 -0
- package/lib/module/ui/screens/AccountCenterScreen.js +7 -2
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +12 -5
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -2
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +6 -6
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/utils/sessionHelpers.js +7 -1
- package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/module/utils/index.js +2 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/sessionUtils.js +8 -1
- package/lib/module/utils/sessionUtils.js.map +1 -1
- package/lib/typescript/adapters/expo/crypto.d.ts +17 -0
- package/lib/typescript/adapters/expo/crypto.d.ts.map +1 -0
- package/lib/typescript/adapters/expo/fetch.d.ts +16 -0
- package/lib/typescript/adapters/expo/fetch.d.ts.map +1 -0
- package/lib/typescript/adapters/expo/index.d.ts +23 -0
- package/lib/typescript/adapters/expo/index.d.ts.map +1 -0
- package/lib/typescript/adapters/expo/storage.d.ts +23 -0
- package/lib/typescript/adapters/expo/storage.d.ts.map +1 -0
- package/lib/typescript/adapters/index.d.ts +19 -0
- package/lib/typescript/adapters/index.d.ts.map +1 -0
- package/lib/typescript/adapters/node/crypto.d.ts +17 -0
- package/lib/typescript/adapters/node/crypto.d.ts.map +1 -0
- package/lib/typescript/adapters/node/fetch.d.ts +16 -0
- package/lib/typescript/adapters/node/fetch.d.ts.map +1 -0
- package/lib/typescript/adapters/node/index.d.ts +23 -0
- package/lib/typescript/adapters/node/index.d.ts.map +1 -0
- package/lib/typescript/adapters/node/storage.d.ts +23 -0
- package/lib/typescript/adapters/node/storage.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/DeviceManager.d.ts +64 -0
- package/lib/typescript/core/identity-session/DeviceManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/IdentityManager.d.ts +88 -0
- package/lib/typescript/core/identity-session/IdentityManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts +141 -0
- package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/RefreshManager.d.ts +36 -0
- package/lib/typescript/core/identity-session/RefreshManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/SessionManager.d.ts +104 -0
- package/lib/typescript/core/identity-session/SessionManager.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts +11 -0
- package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/errors.d.ts +63 -0
- package/lib/typescript/core/identity-session/errors.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/index.d.ts +14 -0
- package/lib/typescript/core/identity-session/index.d.ts.map +1 -0
- package/lib/typescript/core/identity-session/types.d.ts +196 -0
- package/lib/typescript/core/identity-session/types.d.ts.map +1 -0
- package/lib/typescript/core/index.d.ts +1 -3
- package/lib/typescript/core/index.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +2 -2
- package/lib/typescript/index.d.ts +3 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +5 -36
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/models/session.d.ts +3 -16
- package/lib/typescript/models/session.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +2 -25
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +7 -8
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +5 -5
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +18 -0
- package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts +24 -0
- package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts +6 -0
- package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts.map +1 -0
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/utils/sessionHelpers.d.ts +1 -0
- package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +0 -2
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/expo/crypto.ts +55 -0
- package/src/adapters/expo/fetch.ts +28 -0
- package/src/adapters/expo/index.ts +51 -0
- package/src/adapters/expo/storage.ts +228 -0
- package/src/adapters/index.ts +47 -0
- package/src/adapters/node/crypto.ts +39 -0
- package/src/adapters/node/fetch.ts +59 -0
- package/src/adapters/node/index.ts +37 -0
- package/src/adapters/node/storage.ts +170 -0
- package/src/core/identity-session/DeviceManager.ts +273 -0
- package/src/core/identity-session/INTEGRATION_GUIDE.md +287 -0
- package/src/core/identity-session/IdentityManager.ts +474 -0
- package/src/core/identity-session/IdentitySessionCore.ts +464 -0
- package/src/core/identity-session/RefreshManager.ts +189 -0
- package/src/core/identity-session/SessionManager.ts +500 -0
- package/src/core/identity-session/createIdentitySessionCore.ts +19 -0
- package/src/core/identity-session/errors.ts +197 -0
- package/src/core/identity-session/index.ts +15 -0
- package/src/core/identity-session/types.ts +188 -0
- package/src/core/index.ts +3 -4
- package/src/index.ts +28 -3
- package/src/models/interfaces.ts +12 -39
- package/src/models/session.ts +6 -16
- package/src/ui/context/OxyContext.tsx +442 -871
- package/src/ui/hooks/auth/index.ts +1 -0
- package/src/ui/hooks/useAvatarPicker.ts +62 -0
- package/src/ui/hooks/useIdentityTransfer.ts +135 -0
- package/src/ui/hooks/useTransferCodesPersistence.ts +80 -0
- package/src/ui/screens/AccountCenterScreen.tsx +7 -2
- package/src/ui/screens/AccountSettingsScreen.tsx +15 -8
- package/src/ui/screens/AccountSwitcherScreen.tsx +2 -2
- package/src/ui/screens/ProfileScreen.tsx +10 -10
- package/src/ui/utils/sessionHelpers.ts +7 -0
- package/src/utils/index.ts +1 -2
- package/src/utils/sessionUtils.ts +8 -0
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +0 -732
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +0 -1
- package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +0 -73
- package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +0 -1
- package/lib/commonjs/ui/hooks/useDeviceManagement.js +0 -73
- package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +0 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -281
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +0 -1
- package/lib/commonjs/utils/deviceManager.js +0 -177
- package/lib/commonjs/utils/deviceManager.js.map +0 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +0 -726
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +0 -1
- package/lib/module/ui/context/hooks/useDeviceManagement.js +0 -68
- package/lib/module/ui/context/hooks/useDeviceManagement.js.map +0 -1
- package/lib/module/ui/hooks/useDeviceManagement.js +0 -68
- package/lib/module/ui/hooks/useDeviceManagement.js.map +0 -1
- package/lib/module/ui/hooks/useSessionManagement.js +0 -276
- package/lib/module/ui/hooks/useSessionManagement.js.map +0 -1
- package/lib/module/utils/deviceManager.js +0 -171
- package/lib/module/utils/deviceManager.js.map +0 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +0 -59
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +0 -1
- package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +0 -27
- package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +0 -27
- package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +0 -41
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +0 -1
- package/lib/typescript/utils/deviceManager.d.ts +0 -66
- package/lib/typescript/utils/deviceManager.d.ts.map +0 -1
- package/src/ui/context/hooks/useAuthOperations.ts +0 -801
- package/src/ui/context/hooks/useDeviceManagement.ts +0 -108
- package/src/ui/hooks/useDeviceManagement.ts +0 -108
- package/src/ui/hooks/useSessionManagement.ts +0 -401
- 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","providedUsername","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
|