@oxyhq/services 5.17.7 → 5.17.9

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 (119) hide show
  1. package/lib/commonjs/crypto/index.js +0 -23
  2. package/lib/commonjs/crypto/index.js.map +1 -1
  3. package/lib/commonjs/index.js +0 -15
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  6. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -1
  7. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -1
  8. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -1
  9. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -1
  10. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -1
  11. package/lib/commonjs/ui/context/OxyContext.js +37 -589
  12. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  13. package/lib/commonjs/ui/context/OxyContextBase.js.map +1 -1
  14. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +60 -425
  15. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  16. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +8 -112
  17. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  18. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +2 -27
  19. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  20. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +2 -27
  21. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  22. package/lib/commonjs/ui/hooks/useSessionSocket.js +2 -88
  23. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  24. package/lib/commonjs/ui/screens/OxyAuthScreen.js +0 -1
  25. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  26. package/lib/commonjs/ui/stores/authStore.js +52 -15
  27. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  28. package/lib/commonjs/ui/utils/avatarUtils.js +2 -32
  29. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  30. package/lib/module/crypto/index.js +4 -6
  31. package/lib/module/crypto/index.js.map +1 -1
  32. package/lib/module/index.js +6 -3
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/ui/components/Icon.js.map +1 -1
  35. package/lib/module/ui/components/IconButton/utils.js.map +1 -1
  36. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -1
  37. package/lib/module/ui/components/TextField/helpers.js.map +1 -1
  38. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -1
  39. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -1
  40. package/lib/module/ui/context/OxyContext.js +35 -588
  41. package/lib/module/ui/context/OxyContext.js.map +1 -1
  42. package/lib/module/ui/context/OxyContextBase.js.map +1 -1
  43. package/lib/module/ui/context/hooks/useAuthOperations.js +60 -424
  44. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  45. package/lib/module/ui/hooks/mutations/useAccountMutations.js +8 -112
  46. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  47. package/lib/module/ui/hooks/queries/useAccountQueries.js +2 -27
  48. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  49. package/lib/module/ui/hooks/queries/useServicesQueries.js +2 -27
  50. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  51. package/lib/module/ui/hooks/useSessionSocket.js +2 -88
  52. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  53. package/lib/module/ui/screens/OxyAuthScreen.js +0 -1
  54. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  55. package/lib/module/ui/stores/authStore.js +52 -15
  56. package/lib/module/ui/stores/authStore.js.map +1 -1
  57. package/lib/module/ui/utils/avatarUtils.js +2 -32
  58. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  59. package/lib/typescript/crypto/index.d.ts +2 -5
  60. package/lib/typescript/crypto/index.d.ts.map +1 -1
  61. package/lib/typescript/crypto/types.d.ts +6 -2
  62. package/lib/typescript/crypto/types.d.ts.map +1 -1
  63. package/lib/typescript/index.d.ts +4 -2
  64. package/lib/typescript/index.d.ts.map +1 -1
  65. package/lib/typescript/ui/components/IconButton/utils.d.ts +1 -1
  66. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +1 -1
  67. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
  68. package/lib/typescript/ui/components/TextField/helpers.d.ts +6 -6
  69. package/lib/typescript/ui/components/types.d.ts +0 -4
  70. package/lib/typescript/ui/components/types.d.ts.map +1 -1
  71. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  72. package/lib/typescript/ui/context/OxyContextBase.d.ts +2 -39
  73. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +1 -1
  74. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +10 -25
  75. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  76. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  77. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  78. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  79. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -14
  80. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  81. package/lib/typescript/ui/stores/authStore.d.ts +27 -4
  82. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  83. package/lib/typescript/ui/utils/avatarUtils.d.ts +0 -2
  84. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  85. package/package.json +2 -2
  86. package/src/crypto/index.ts +3 -11
  87. package/src/crypto/types.ts +6 -2
  88. package/src/index.ts +6 -11
  89. package/src/ui/components/Icon.tsx +1 -1
  90. package/src/ui/components/IconButton/utils.ts +1 -1
  91. package/src/ui/components/TextField/Adornment/utils.ts +2 -2
  92. package/src/ui/components/TextField/helpers.tsx +8 -8
  93. package/src/ui/components/TouchableRipple/utils.ts +2 -2
  94. package/src/ui/components/Typography/AnimatedText.tsx +2 -2
  95. package/src/ui/components/types.tsx +0 -6
  96. package/src/ui/context/OxyContext.tsx +33 -637
  97. package/src/ui/context/OxyContextBase.tsx +5 -23
  98. package/src/ui/context/hooks/useAuthOperations.ts +84 -460
  99. package/src/ui/hooks/mutations/useAccountMutations.ts +12 -110
  100. package/src/ui/hooks/queries/useAccountQueries.ts +3 -27
  101. package/src/ui/hooks/queries/useServicesQueries.ts +3 -27
  102. package/src/ui/hooks/useSessionSocket.ts +2 -106
  103. package/src/ui/screens/OxyAuthScreen.tsx +1 -1
  104. package/src/ui/stores/authStore.ts +57 -18
  105. package/src/ui/utils/avatarUtils.ts +4 -36
  106. package/lib/commonjs/crypto/keyManager.js +0 -511
  107. package/lib/commonjs/crypto/keyManager.js.map +0 -1
  108. package/lib/commonjs/crypto/signatureService.js +0 -269
  109. package/lib/commonjs/crypto/signatureService.js.map +0 -1
  110. package/lib/module/crypto/keyManager.js +0 -508
  111. package/lib/module/crypto/keyManager.js.map +0 -1
  112. package/lib/module/crypto/signatureService.js +0 -266
  113. package/lib/module/crypto/signatureService.js.map +0 -1
  114. package/lib/typescript/crypto/keyManager.d.ts +0 -97
  115. package/lib/typescript/crypto/keyManager.d.ts.map +0 -1
  116. package/lib/typescript/crypto/signatureService.d.ts +0 -77
  117. package/lib/typescript/crypto/signatureService.d.ts.map +0 -1
  118. package/src/crypto/keyManager.ts +0 -545
  119. package/src/crypto/signatureService.ts +0 -301
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","Platform","OxyServices","toast","useAuthStore","useShallow","useSessionSocket","useStorage","useLanguageManagement","useSessionManagement","useAuthOperations","useDeviceManagement","getStorageKeys","isInvalidSessionError","isTimeoutOrNetworkError","showBottomSheet","globalShowBottomSheet","useQueryClient","useQuery","clearQueryCache","queryKeys","KeyManager","translate","updateAvatarVisibility","updateProfileWithAvatar","useAccountStore","logger","loggerUtil","OxyContext","useOxy","jsx","_jsx","cachedUseFollowHook","loadUseFollowHook","useFollow","require","error","__DEV__","warn","component","method","fallback","Error","IDENTITY_CACHE_KEY","updateIdentityCache","exists","OS","SecureStore","setItemAsync","clearIdentityCache","deleteItemAsync","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","current","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","state","logout","isIdentitySynced","tokenReady","setTokenReady","initializedRef","setAuthState","setState","message","err","undefined","console","storageKeys","storage","isReady","isStorageReady","checkAndRestoreIdentity","hasIdentity","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","languageKey","language","queryClient","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","setAuthError","data","userData","queryKey","accounts","queryFn","getUserBySession","enabled","staleTime","gcTime","retry","user","createIdentity","importIdentity","importIdentityBase","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","wrappedCreateIdentity","result","backupData","password","clearAllAccountData","clear","removeItem","getState","reset","clearCache","getAllPendingTransfers","pending","transferCodesRef","forEach","transferId","push","getActiveTransferId","activeTransferIdRef","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","pendingTransfers","length","activeTransferId","hasActiveTransfer","some","t","deleteIdentity","wasOffline","checkTimeout","lastReconnectionLog","RECONNECTION_LOG_DEBOUNCE_MS","stateRef","consecutiveFailures","currentInterval","baseInterval","maxInterval","maxFailures","scheduleNextCheck","clearTimeout","setTimeout","checkNetworkAndSync","healthCheck","catch","now","Date","timeSinceLastLog","hasIdentityValue","syncStatus","getItem","syncError","code","debug","backoffMultiplier","Math","min","pow","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","sessionId","validation","validateSession","useHeaderValidation","valid","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","merge","switchError","filter","session","String","activeSession","find","currentDeviceId","getCurrentUserId","Map","TRANSFER_CODES_STORAGE_KEY","ACTIVE_TRANSFER_STORAGE_KEY","clearStaleTransfers","persistTransferCodes","codesToStore","value","key","setItem","stringify","cleanup","setInterval","fifteenMinutes","needsPersist","timestamp","delete","has","clearInterval","storeTransferCode","sourceDeviceId","publicKey","transferData","set","substring","getTransferCode","get","updateTransferState","clearTransferCode","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","info","remoteError","handleIdentityTransferComplete","hasActiveSession","storedTransfer","publicKeyMatches","receivedPublicKey","storedPublicKey","deviceIdMatches","receivedDeviceId","storedDeviceId","transferCode","codeMatches","toUpperCase","receivedCode","storedCode","transferAge","tenMinutes","age","ageMinutes","round","identityStillExists","identityDeleted","success","deleteError","getBaseURL","getAccessToken","onRemoteSignOut","onSessionRemoved","onIdentityTransferComplete","switchSessionForContext","showBottomSheetForContext","screenOrConfig","openAvatarPicker","screen","props","selectMode","multiSelect","disabledMimeTypes","afterSelect","onSelect","file","contentType","startsWith","avatar","e","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","Provider","OxyContextProvider"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","OxyServices","toast","useAuthStore","useShallow","useSessionSocket","useStorage","useLanguageManagement","useSessionManagement","useAuthOperations","useDeviceManagement","getStorageKeys","isInvalidSessionError","isTimeoutOrNetworkError","showBottomSheet","globalShowBottomSheet","useQueryClient","useQuery","clearQueryCache","queryKeys","translate","updateAvatarVisibility","updateProfileWithAvatar","useAccountStore","logger","loggerUtil","OxyContext","useOxy","jsx","_jsx","cachedUseFollowHook","loadUseFollowHook","useFollow","require","error","__DEV__","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","current","isAuthenticated","isOnline","isLoading","setOnline","loginSuccess","loginFailure","logoutStore","state","logout","tokenReady","setTokenReady","initializedRef","setAuthState","setState","message","err","undefined","console","storageKeys","storage","isReady","isStorageReady","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","languageKey","language","queryClient","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","setAuthError","data","userData","queryKey","accounts","queryFn","getUserBySession","enabled","staleTime","gcTime","retry","user","completeSignIn","logoutAll","clearAllAccountData","clear","getState","reset","clearCache","wasOffline","checkTimeout","scheduleNextCheck","clearTimeout","setTimeout","checkNetworkStatus","healthCheck","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","getItem","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","length","sessionId","validation","validateSession","useHeaderValidation","valid","now","Date","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","debug","merge","switchError","removeItem","filter","session","String","activeSession","find","currentDeviceId","getCurrentUserId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","info","catch","remoteError","getBaseURL","getAccessToken","onRemoteSignOut","onSessionRemoved","switchSessionForContext","showBottomSheetForContext","screenOrConfig","openAvatarPicker","screen","props","selectMode","multiSelect","disabledMimeTypes","afterSelect","onSelect","file","contentType","startsWith","avatar","success","e","contextValue","isTokenReady","removeSession","Provider","value","OxyContextProvider"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","OxyContext","useOxy","context","Error"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContextBase.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAyEjD,OAAO,MAAMC,UAAU,gBAAGF,aAAa,CAAyB,IAAI,CAAC;AAWrE;AACA;AACA;AACA;AACA,OAAO,MAAMG,MAAM,GAAGA,CAAA,KAAuB;EACzC,MAAMC,OAAO,GAAGH,UAAU,CAACC,UAAU,CAAC;EACtC,IAAI,CAACE,OAAO,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACvE;EACA,OAAOD,OAAO;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","OxyContext","useOxy","context","Error"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContextBase.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAuDjD,OAAO,MAAMC,UAAU,gBAAGF,aAAa,CAAyB,IAAI,CAAC;AAWrE;AACA;AACA;AACA;AACA,OAAO,MAAMG,MAAM,GAAGA,CAAA,KAAuB;EACzC,MAAMC,OAAO,GAAGH,UAAU,CAACC,UAAU,CAAC;EACtC,IAAI,CAACE,OAAO,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACvE;EACA,OAAOD,OAAO;AAClB,CAAC","ignoreList":[]}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback } from 'react';
4
- import { DeviceManager } from '../../../utils/deviceManager';
5
4
  import { fetchSessionsWithFallback } from '../../utils/sessionHelpers';
6
5
  import { handleAuthError, isInvalidSessionError } from '../../utils/errorHandlers';
7
- import { KeyManager, SignatureService } from '../../../crypto';
8
- const LOGIN_ERROR_CODE = 'LOGIN_ERROR';
9
- const REGISTER_ERROR_CODE = 'REGISTER_ERROR';
10
6
  const LOGOUT_ERROR_CODE = 'LOGOUT_ERROR';
11
7
  const LOGOUT_ALL_ERROR_CODE = 'LOGOUT_ALL_ERROR';
12
8
 
13
9
  /**
14
- * Authentication operations using public key cryptography.
15
- * No passwords required - identity is based on ECDSA key pairs.
10
+ * Authentication operations for Services SDK.
11
+ *
12
+ * ARCHITECTURE:
13
+ * - Services SDK only handles tokens/sessions (NOT identity)
14
+ * - Accounts app handles identity (KeyManager, SignatureService, challenge signing)
15
+ * - completeSignIn() accepts already-verified session from Accounts app
16
16
  */
17
17
  export const useAuthOperations = ({
18
18
  oxyServices,
@@ -31,422 +31,78 @@ export const useAuthOperations = ({
31
31
  loginFailure,
32
32
  logoutStore,
33
33
  setAuthState,
34
- setIdentitySynced,
35
- setSyncing,
36
34
  logger
37
35
  }) => {
38
36
  /**
39
- * Internal function to perform challenge-response sign in (works offline)
37
+ * Complete sign-in after external authentication.
38
+ *
39
+ * This is called by Accounts app AFTER it has:
40
+ * 1. Requested challenge from backend
41
+ * 2. Signed challenge locally with private key
42
+ * 3. Verified challenge with backend to get sessionResponse
43
+ *
44
+ * Services SDK only stores tokens and manages session state.
45
+ *
46
+ * @param sessionResponse - Session data from verifyChallenge API call
40
47
  */
41
- const performSignIn = useCallback(async publicKey => {
42
- const deviceFingerprintObj = DeviceManager.getDeviceFingerprint();
43
- const deviceFingerprint = JSON.stringify(deviceFingerprintObj);
44
- const deviceInfo = await DeviceManager.getDeviceInfo();
45
- const deviceName = deviceInfo.deviceName || DeviceManager.getDefaultDeviceName();
46
- const USER_ID_STORAGE_KEY = 'oxy_user_id';
47
-
48
- // Online-only sign-in: require backend availability
49
- // First, look up the user by public key to get the correct userId
50
- // This ensures we always use the userId that matches the current identity's public key
51
- let userId = null;
52
-
53
- // Always verify the userId matches the current public key
54
- // This prevents auth failures when identity has changed
55
- const userLookup = await oxyServices.getUserByPublicKey(publicKey);
56
- userId = userLookup.id;
57
-
58
- // Update stored userId to match current identity
59
- if (storage && userId) {
60
- await storage.setItem(USER_ID_STORAGE_KEY, userId).catch(() => {});
61
- }
62
- const challengeResponse = await oxyServices.requestChallenge(userId);
63
- const challenge = challengeResponse.challenge;
64
-
65
- // Note: Biometric authentication check should be handled by the app layer
66
- // (e.g., accounts app) before calling signIn. The biometric preference is stored
67
- // in local storage as 'oxy_biometric_enabled' and can be checked there.
68
-
69
- // Sign the challenge
70
- const {
71
- challenge: signature,
72
- timestamp
73
- } = await SignatureService.signChallenge(challenge);
74
-
75
- // Online sign-in: use normal flow
76
- if (!userId) {
77
- throw new Error('User ID not found');
78
- }
79
-
80
- // Verify and create session using userId
81
- let sessionResponse;
82
- try {
83
- sessionResponse = await oxyServices.verifyChallenge(userId, challenge, signature, timestamp, deviceName, deviceFingerprint);
84
- } catch (verifyError) {
85
- // Add detailed logging for 401 errors to help diagnose auth failures
86
- if (__DEV__) {
87
- console.error('[useAuthOperations] verifyChallenge failed:', {
88
- error: verifyError,
89
- userId,
90
- challengeLength: challenge?.length,
91
- signatureLength: signature?.length,
92
- timestamp,
93
- timeSinceChallenge: Date.now() - timestamp
94
- });
95
- }
96
- throw verifyError;
97
- }
98
-
99
- // Store tokens immediately (no extra round-trip)
100
- oxyServices.setTokens(sessionResponse.accessToken, sessionResponse.refreshToken);
101
-
102
- // Get full user data
103
- const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
104
-
105
- // IMPORTANT: user.id should be MongoDB ObjectId, not publicKey
106
- // The API should return the correct id (ObjectId) from the database
107
- // If it doesn't, we need to fix the API, not work around it here
108
- // Validate that id is ObjectId format (24 hex characters)
109
- if (fullUser.id && !/^[0-9a-fA-F]{24}$/.test(fullUser.id)) {
110
- console.warn('[useAuthOperations] User.id is not MongoDB ObjectId format:', {
111
- id: fullUser.id.substring(0, 20),
112
- publicKey: fullUser.publicKey.substring(0, 20),
113
- message: 'API should return MongoDB ObjectId as user.id, not publicKey'
114
- });
115
- // Don't override - let the API fix this issue
116
- }
117
-
118
- // Fetch device sessions
119
- let allDeviceSessions = [];
120
- try {
121
- allDeviceSessions = await fetchSessionsWithFallback(oxyServices, sessionResponse.sessionId, {
122
- fallbackDeviceId: sessionResponse.deviceId,
123
- fallbackUserId: fullUser.id,
124
- logger
125
- });
126
- } catch (error) {
127
- if (__DEV__) {
128
- console.warn('Failed to fetch device sessions after login:', error);
129
- }
130
- }
131
-
132
- // Check for existing session for same user
133
- const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
134
- if (existingSession) {
135
- // Logout duplicate session
136
- try {
137
- await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
138
- } catch (logoutError) {
139
- if (__DEV__) {
140
- console.warn('Failed to logout duplicate session:', logoutError);
141
- }
142
- }
143
- await switchSession(existingSession.sessionId);
144
- updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
145
- merge: false
146
- });
147
- onAuthStateChange?.(fullUser);
148
- return fullUser;
149
- }
150
- setActiveSessionId(sessionResponse.sessionId);
151
- await saveActiveSessionId(sessionResponse.sessionId);
152
- updateSessions(allDeviceSessions, {
153
- merge: true
154
- });
155
- await applyLanguagePreference(fullUser);
156
- loginSuccess(); // Services never caches profile - only tokens
157
- onAuthStateChange?.(fullUser);
158
- if (storage) {
159
- await storage.setItem('oxy_identity_synced', 'true').catch(() => {});
160
- }
161
- setIdentitySynced(true);
162
- return fullUser;
163
- }, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, setIdentitySynced, switchSession, updateSessions, storage]);
164
-
165
- /**
166
- * Create a new identity (offline-first)
167
- * Identity is purely cryptographic - no username or email required
168
- */
169
- const createIdentity = useCallback(async () => {
48
+ const completeSignIn = useCallback(async sessionResponse => {
170
49
  if (!storage) throw new Error('Storage not initialized');
171
50
  setAuthState({
172
51
  isLoading: true,
173
52
  error: null
174
53
  });
175
54
  try {
176
- // Generate new key pair directly (works offline)
177
- const {
178
- publicKey,
179
- privateKey
180
- } = await KeyManager.generateKeyPair();
181
- await KeyManager.importKeyPair(privateKey);
55
+ // Store tokens (Services' only responsibility)
56
+ oxyServices.setTokens(sessionResponse.accessToken, sessionResponse.refreshToken);
182
57
 
183
- // Mark as not synced
184
- // Note: createIdentity only creates the key locally (offline-first)
185
- // Registration with server (registerIdentity) must be done by the app (Accounts) with profile data
186
- await storage.setItem('oxy_identity_synced', 'false');
187
- setIdentitySynced(false);
188
- return {
189
- synced: false // Always false - registration must be done separately by Accounts app
190
- };
191
- } catch (error) {
192
- // CRITICAL: Never delete identity on error - it may have been successfully created
193
- // Only log the error and let the user recover using their backup file
194
- // Identity deletion should ONLY happen when explicitly requested by the user
195
- if (__DEV__ && logger) {
196
- logger('Error during identity creation (identity may still exist):', error);
197
- }
198
-
199
- // Check if identity was actually created (keys exist)
200
- const hasIdentity = await KeyManager.hasIdentity().catch(() => false);
201
- if (hasIdentity) {
202
- // Identity exists - don't delete it! Just mark as not synced
203
- await storage.setItem('oxy_identity_synced', 'false').catch(() => {});
204
- setIdentitySynced(false);
205
- if (__DEV__ && logger) {
206
- logger('Identity was created but sync failed - user can sync later using backup file');
207
- }
208
- } else {
209
- // No identity exists - this was a generation failure, safe to clean up sync flag
210
- await storage.removeItem('oxy_identity_synced').catch(() => {});
211
- setIdentitySynced(false);
212
- }
213
- const message = handleAuthError(error, {
214
- defaultMessage: 'Failed to create identity',
215
- code: REGISTER_ERROR_CODE,
216
- onError,
217
- setAuthError: msg => setAuthState({
218
- error: msg
219
- }),
220
- logger
221
- });
222
- loginFailure(message);
223
- throw error;
224
- } finally {
225
- setAuthState({
226
- isLoading: false
227
- });
228
- }
229
- }, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
230
-
231
- /**
232
- * Check if identity is synced with server (reads from storage for persistence)
233
- */
234
- const isIdentitySyncedFn = useCallback(async () => {
235
- if (!storage) return true;
236
- const synced = await storage.getItem('oxy_identity_synced');
237
- const isSynced = synced !== 'false';
238
- setIdentitySynced(isSynced);
239
- return isSynced;
240
- }, [storage, setIdentitySynced]);
241
-
242
- /**
243
- * Sync local identity with server (call when online)
244
- * TanStack Query handles offline mutations automatically
245
- */
246
- const syncIdentity = useCallback(async () => {
247
- if (!storage) throw new Error('Storage not initialized');
248
- setAuthState({
249
- isLoading: true,
250
- error: null
251
- });
252
- setSyncing(true);
253
- try {
254
- const publicKey = await KeyManager.getPublicKey();
255
- if (!publicKey) {
256
- throw new Error('No identity found on this device');
257
- }
258
-
259
- // Check if already synced
260
- const alreadySynced = await storage.getItem('oxy_identity_synced');
261
- if (alreadySynced === 'true') {
262
- setIdentitySynced(true);
263
- return await performSignIn(publicKey);
264
- }
265
-
266
- // Check if already registered on server
267
- const {
268
- registered
269
- } = await oxyServices.checkPublicKeyRegistered(publicKey);
270
- if (!registered) {
271
- // Identity is not registered - registration must be done by Accounts app with profile data
272
- // syncIdentity only syncs already-registered identities
273
- throw new Error('Identity is not registered. Please register your identity first using the Accounts app.');
274
- }
275
-
276
- // Mark as synced (Zustand store + storage)
277
- await storage.setItem('oxy_identity_synced', 'true');
278
- setIdentitySynced(true);
279
-
280
- // Sign in (Services never caches profile - only tokens)
281
- const user = await performSignIn(publicKey);
282
-
283
- // Check if user has username - required for syncing
284
- if (!user.username) {
285
- const usernameError = new Error('USERNAME_REQUIRED');
286
- usernameError.code = 'USERNAME_REQUIRED';
287
- throw usernameError;
288
- }
58
+ // Get full user data
59
+ const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
289
60
 
290
- // TanStack Query will automatically retry any pending mutations
291
-
292
- return user;
293
- } catch (error) {
294
- const message = handleAuthError(error, {
295
- defaultMessage: 'Failed to sync identity',
296
- code: REGISTER_ERROR_CODE,
297
- onError,
298
- setAuthError: msg => setAuthState({
299
- error: msg
300
- }),
301
- logger
302
- });
303
- loginFailure(message);
304
- throw error;
305
- } finally {
306
- setAuthState({
307
- isLoading: false
308
- });
309
- setSyncing(false);
310
- }
311
- }, [oxyServices, storage, setAuthState, performSignIn, loginFailure, onError, logger, setSyncing, setIdentitySynced]);
312
-
313
- /**
314
- * Import identity from backup file data (offline-first)
315
- */
316
- const importIdentity = useCallback(async (backupData, password) => {
317
- if (!storage) throw new Error('Storage not initialized');
318
-
319
- // Validate arguments - ensure backupData is an object, not a string (old signature)
320
- if (!backupData || typeof backupData !== 'object' || Array.isArray(backupData)) {
321
- throw new Error('Invalid backup data. Please use the backup file import feature.');
322
- }
323
- if (!backupData.encrypted || !backupData.salt || !backupData.iv || !backupData.publicKey) {
324
- throw new Error('Invalid backup data structure. Missing required fields.');
325
- }
326
- if (!password || typeof password !== 'string') {
327
- throw new Error('Password is required for backup file import.');
328
- }
329
- setAuthState({
330
- isLoading: true,
331
- error: null
332
- });
333
- try {
334
- // Decrypt private key from backup data
335
- const Crypto = await import('expo-crypto');
336
-
337
- // Convert hex strings to Uint8Array
338
- const saltBytes = new Uint8Array(backupData.salt.match(/.{1,2}/g)?.map(byte => parseInt(byte, 16)) || []);
339
- const ivBytes = new Uint8Array(backupData.iv.match(/.{1,2}/g)?.map(byte => parseInt(byte, 16)) || []);
340
-
341
- // Derive key from password (same algorithm as EncryptedBackupGenerator)
342
- const saltHex = Array.from(saltBytes).map(b => b.toString(16).padStart(2, '0')).join('');
343
- let key = password + saltHex;
344
- for (let i = 0; i < 10000; i++) {
345
- key = await Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, key);
346
- }
347
- const keyBytes = new Uint8Array(32);
348
- for (let i = 0; i < 64 && i < key.length; i += 2) {
349
- keyBytes[i / 2] = parseInt(key.substring(i, i + 2), 16);
350
- }
351
-
352
- // Decrypt private key (XOR decryption - same as encryption)
353
- const encryptedBytes = Buffer.from(backupData.encrypted, 'base64');
354
- const decryptedBytes = new Uint8Array(encryptedBytes.length);
355
- for (let i = 0; i < encryptedBytes.length; i++) {
356
- decryptedBytes[i] = encryptedBytes[i] ^ keyBytes[i % keyBytes.length] ^ ivBytes[i % ivBytes.length];
357
- }
358
- const privateKey = new TextDecoder().decode(decryptedBytes);
359
-
360
- // Import the key pair
361
- const publicKey = await KeyManager.importKeyPair(privateKey);
362
-
363
- // Verify public key matches
364
- if (publicKey !== backupData.publicKey) {
365
- throw new Error('Backup file is corrupted or password is incorrect');
366
- }
367
-
368
- // Mark as not synced
369
- await storage.setItem('oxy_identity_synced', 'false');
370
- setIdentitySynced(false);
371
-
372
- // Try to sync with server
61
+ // Fetch device sessions
62
+ let allDeviceSessions = [];
373
63
  try {
374
- // Check if this identity is already registered
375
- const {
376
- registered
377
- } = await oxyServices.checkPublicKeyRegistered(publicKey);
378
- if (registered) {
379
- // Identity exists, mark as synced
380
- await storage.setItem('oxy_identity_synced', 'true');
381
- setIdentitySynced(true);
382
- return {
383
- synced: true
384
- };
385
- } else {
386
- // Identity is not registered - registration must be done by Accounts app with profile data
387
- // importIdentity only imports already-registered identities
388
- await storage.setItem('oxy_identity_synced', 'false');
389
- setIdentitySynced(false);
390
- return {
391
- synced: false
392
- };
393
- }
394
- } catch (syncError) {
395
- // Offline - identity restored locally but not synced
64
+ allDeviceSessions = await fetchSessionsWithFallback(oxyServices, sessionResponse.sessionId, {
65
+ fallbackDeviceId: sessionResponse.deviceId,
66
+ fallbackUserId: fullUser.id,
67
+ logger
68
+ });
69
+ } catch (error) {
396
70
  if (__DEV__) {
397
- console.log('[Auth] Identity imported locally, will sync when online:', syncError);
71
+ console.warn('Failed to fetch device sessions after login:', error);
398
72
  }
399
- return {
400
- synced: false
401
- };
402
73
  }
403
- } catch (error) {
404
- const message = handleAuthError(error, {
405
- defaultMessage: 'Failed to import identity. Please check your password and backup file.',
406
- code: REGISTER_ERROR_CODE,
407
- onError,
408
- setAuthError: msg => setAuthState({
409
- error: msg
410
- }),
411
- logger
412
- });
413
- loginFailure(message);
414
- throw error;
415
- } finally {
416
- setAuthState({
417
- isLoading: false
418
- });
419
- }
420
- }, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
421
74
 
422
- /**
423
- * Sign in with existing identity on device
424
- */
425
- const signIn = useCallback(async deviceName => {
426
- if (!storage) throw new Error('Storage not initialized');
427
- setAuthState({
428
- isLoading: true,
429
- error: null
430
- });
431
- try {
432
- // Get stored public key
433
- const publicKey = await KeyManager.getPublicKey();
434
- if (!publicKey) {
435
- throw new Error('No identity found on this device. Please create or import an identity.');
436
- }
437
-
438
- // Ensure identity is registered before attempting sign-in
439
- const {
440
- registered
441
- } = await oxyServices.checkPublicKeyRegistered(publicKey);
442
- if (!registered) {
443
- throw new Error('Identity is not registered. Please register your identity in the Accounts app before signing in.');
75
+ // Check for existing session for same user
76
+ const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
77
+ if (existingSession) {
78
+ // Logout duplicate session
79
+ try {
80
+ await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
81
+ } catch (logoutError) {
82
+ if (__DEV__) {
83
+ console.warn('Failed to logout duplicate session:', logoutError);
84
+ }
85
+ }
86
+ await switchSession(existingSession.sessionId);
87
+ updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
88
+ merge: false
89
+ });
90
+ onAuthStateChange?.(fullUser);
91
+ return fullUser;
444
92
  }
445
- return await performSignIn(publicKey);
93
+ setActiveSessionId(sessionResponse.sessionId);
94
+ await saveActiveSessionId(sessionResponse.sessionId);
95
+ updateSessions(allDeviceSessions, {
96
+ merge: true
97
+ });
98
+ await applyLanguagePreference(fullUser);
99
+ loginSuccess();
100
+ onAuthStateChange?.(fullUser);
101
+ return fullUser;
446
102
  } catch (error) {
447
103
  const message = handleAuthError(error, {
448
104
  defaultMessage: 'Sign in failed',
449
- code: LOGIN_ERROR_CODE,
105
+ code: 'COMPLETE_SIGNIN_ERROR',
450
106
  onError,
451
107
  setAuthError: msg => setAuthState({
452
108
  error: msg
@@ -460,7 +116,7 @@ export const useAuthOperations = ({
460
116
  isLoading: false
461
117
  });
462
118
  }
463
- }, [storage, setAuthState, performSignIn, loginFailure, onError, logger, oxyServices]);
119
+ }, [storage, setAuthState, oxyServices, logger, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions, applyLanguagePreference, loginSuccess, onAuthStateChange, onError, loginFailure]);
464
120
 
465
121
  /**
466
122
  * Logout from session
@@ -533,30 +189,10 @@ export const useAuthOperations = ({
533
189
  throw error instanceof Error ? error : new Error('Logout all failed');
534
190
  }
535
191
  }, [activeSessionId, clearSessionState, logger, onError, oxyServices, setAuthState]);
536
-
537
- /**
538
- * Check if device has an identity stored
539
- */
540
- const hasIdentity = useCallback(async () => {
541
- return KeyManager.hasIdentity();
542
- }, []);
543
-
544
- /**
545
- * Get the public key of the stored identity
546
- */
547
- const getPublicKey = useCallback(async () => {
548
- return KeyManager.getPublicKey();
549
- }, []);
550
192
  return {
551
- createIdentity,
552
- importIdentity,
553
- signIn,
193
+ completeSignIn,
554
194
  logout,
555
- logoutAll,
556
- hasIdentity,
557
- getPublicKey,
558
- isIdentitySynced: isIdentitySyncedFn,
559
- syncIdentity
195
+ logoutAll
560
196
  };
561
197
  };
562
198
  //# sourceMappingURL=useAuthOperations.js.map