@oxyhq/services 5.15.8 → 5.16.0

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 (148) hide show
  1. package/lib/commonjs/core/OxyServices.js +0 -1
  2. package/lib/commonjs/core/OxyServices.js.map +1 -1
  3. package/lib/commonjs/core/mixins/OxyServices.auth.js +3 -6
  4. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  5. package/lib/commonjs/core/mixins/OxyServices.devices.js +1 -1
  6. package/lib/commonjs/core/mixins/OxyServices.devices.js.map +1 -1
  7. package/lib/commonjs/core/mixins/index.js +11 -12
  8. package/lib/commonjs/core/mixins/index.js.map +1 -1
  9. package/lib/commonjs/crypto/signatureService.js +3 -2
  10. package/lib/commonjs/crypto/signatureService.js.map +1 -1
  11. package/lib/commonjs/i18n/locales/ar-SA.json +1 -9
  12. package/lib/commonjs/i18n/locales/ca-ES.json +1 -9
  13. package/lib/commonjs/i18n/locales/de-DE.json +1 -9
  14. package/lib/commonjs/i18n/locales/en-US.json +3 -21
  15. package/lib/commonjs/i18n/locales/es-ES.json +3 -21
  16. package/lib/commonjs/i18n/locales/fr-FR.json +1 -9
  17. package/lib/commonjs/i18n/locales/it-IT.json +1 -9
  18. package/lib/commonjs/i18n/locales/ja-JP.json +1 -9
  19. package/lib/commonjs/i18n/locales/ko-KR.json +1 -9
  20. package/lib/commonjs/i18n/locales/pt-PT.json +1 -9
  21. package/lib/commonjs/i18n/locales/zh-CN.json +1 -9
  22. package/lib/commonjs/ui/context/OxyContext.js +24 -4
  23. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  24. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +217 -100
  25. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  26. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -319
  27. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  28. package/lib/commonjs/ui/screens/OxyAuthScreen.js +178 -77
  29. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  30. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +0 -1
  31. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  32. package/lib/commonjs/ui/screens/SessionManagementScreen.js +43 -29
  33. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  34. package/lib/commonjs/ui/stores/authStore.js +14 -1
  35. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  36. package/lib/module/core/OxyServices.js +0 -1
  37. package/lib/module/core/OxyServices.js.map +1 -1
  38. package/lib/module/core/mixins/OxyServices.auth.js +3 -6
  39. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  40. package/lib/module/core/mixins/OxyServices.devices.js +1 -1
  41. package/lib/module/core/mixins/OxyServices.devices.js.map +1 -1
  42. package/lib/module/core/mixins/index.js +1 -2
  43. package/lib/module/core/mixins/index.js.map +1 -1
  44. package/lib/module/crypto/signatureService.js +3 -2
  45. package/lib/module/crypto/signatureService.js.map +1 -1
  46. package/lib/module/i18n/locales/ar-SA.json +1 -9
  47. package/lib/module/i18n/locales/ca-ES.json +1 -9
  48. package/lib/module/i18n/locales/de-DE.json +1 -9
  49. package/lib/module/i18n/locales/en-US.json +3 -21
  50. package/lib/module/i18n/locales/es-ES.json +3 -21
  51. package/lib/module/i18n/locales/fr-FR.json +1 -9
  52. package/lib/module/i18n/locales/it-IT.json +1 -9
  53. package/lib/module/i18n/locales/ja-JP.json +1 -9
  54. package/lib/module/i18n/locales/ko-KR.json +1 -9
  55. package/lib/module/i18n/locales/pt-PT.json +1 -9
  56. package/lib/module/i18n/locales/zh-CN.json +1 -9
  57. package/lib/module/ui/context/OxyContext.js +24 -4
  58. package/lib/module/ui/context/OxyContext.js.map +1 -1
  59. package/lib/module/ui/context/hooks/useAuthOperations.js +217 -100
  60. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  61. package/lib/module/ui/screens/AccountSettingsScreen.js +2 -319
  62. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  63. package/lib/module/ui/screens/OxyAuthScreen.js +179 -78
  64. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  65. package/lib/module/ui/screens/PrivacySettingsScreen.js +0 -1
  66. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  67. package/lib/module/ui/screens/SessionManagementScreen.js +44 -29
  68. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  69. package/lib/module/ui/stores/authStore.js +14 -1
  70. package/lib/module/ui/stores/authStore.js.map +1 -1
  71. package/lib/typescript/core/OxyServices.d.ts +0 -1
  72. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  73. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +3 -4
  74. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  75. package/lib/typescript/core/mixins/OxyServices.devices.d.ts +1 -4
  76. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  77. package/lib/typescript/core/mixins/index.d.ts +1 -64
  78. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  79. package/lib/typescript/crypto/signatureService.d.ts +2 -1
  80. package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
  81. package/lib/typescript/models/interfaces.d.ts +1 -1
  82. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  83. package/lib/typescript/types/bip39.d.ts +1 -0
  84. package/lib/typescript/types/buffer.d.ts +1 -0
  85. package/lib/typescript/types/color.d.ts +1 -0
  86. package/lib/typescript/types/elliptic.d.ts +1 -0
  87. package/lib/typescript/types/expo-crypto.d.ts +1 -0
  88. package/lib/typescript/types/expo-secure-store.d.ts +1 -0
  89. package/lib/typescript/ui/context/OxyContext.d.ts +11 -3
  90. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  91. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +13 -5
  92. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  93. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  94. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -0
  95. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  96. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  97. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  98. package/lib/typescript/ui/stores/authStore.d.ts +4 -0
  99. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  100. package/package.json +6 -5
  101. package/src/core/OxyServices.ts +0 -1
  102. package/src/core/mixins/OxyServices.auth.ts +3 -8
  103. package/src/core/mixins/OxyServices.devices.ts +1 -4
  104. package/src/core/mixins/index.ts +2 -5
  105. package/src/crypto/index.ts +1 -0
  106. package/src/crypto/keyManager.ts +1 -0
  107. package/src/crypto/polyfill.ts +1 -0
  108. package/src/crypto/recoveryPhrase.ts +1 -0
  109. package/src/crypto/signatureService.ts +4 -5
  110. package/src/i18n/locales/ar-SA.json +1 -9
  111. package/src/i18n/locales/ca-ES.json +1 -9
  112. package/src/i18n/locales/de-DE.json +1 -9
  113. package/src/i18n/locales/en-US.json +3 -21
  114. package/src/i18n/locales/es-ES.json +3 -21
  115. package/src/i18n/locales/fr-FR.json +1 -9
  116. package/src/i18n/locales/it-IT.json +1 -9
  117. package/src/i18n/locales/ja-JP.json +1 -9
  118. package/src/i18n/locales/ko-KR.json +1 -9
  119. package/src/i18n/locales/pt-PT.json +1 -9
  120. package/src/i18n/locales/zh-CN.json +1 -9
  121. package/src/models/interfaces.ts +1 -1
  122. package/src/types/bip39.d.ts +1 -0
  123. package/src/types/buffer.d.ts +1 -0
  124. package/src/types/color.d.ts +1 -0
  125. package/src/types/elliptic.d.ts +1 -0
  126. package/src/types/expo-crypto.d.ts +1 -0
  127. package/src/types/expo-secure-store.d.ts +1 -0
  128. package/src/ui/context/OxyContext.tsx +35 -3
  129. package/src/ui/context/hooks/useAuthOperations.ts +212 -98
  130. package/src/ui/screens/AccountSettingsScreen.tsx +1 -201
  131. package/src/ui/screens/OxyAuthScreen.tsx +193 -69
  132. package/src/ui/screens/PrivacySettingsScreen.tsx +0 -2
  133. package/src/ui/screens/SessionManagementScreen.tsx +43 -26
  134. package/src/ui/stores/authStore.ts +31 -2
  135. package/lib/commonjs/core/mixins/OxyServices.totp.js +0 -53
  136. package/lib/commonjs/core/mixins/OxyServices.totp.js.map +0 -1
  137. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +0 -467
  138. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
  139. package/lib/module/core/mixins/OxyServices.totp.js +0 -49
  140. package/lib/module/core/mixins/OxyServices.totp.js.map +0 -1
  141. package/lib/module/ui/components/profile/TwoFactorSetupModal.js +0 -460
  142. package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
  143. package/lib/typescript/core/mixins/OxyServices.totp.d.ts +0 -66
  144. package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +0 -1
  145. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +0 -11
  146. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +0 -1
  147. package/src/core/mixins/OxyServices.totp.ts +0 -36
  148. package/src/ui/components/profile/TwoFactorSetupModal.tsx +0 -442
@@ -31,45 +31,138 @@ export const useAuthOperations = ({
31
31
  loginFailure,
32
32
  logoutStore,
33
33
  setAuthState,
34
+ setIdentitySynced,
35
+ setSyncing,
34
36
  logger
35
37
  }) => {
36
38
  /**
37
- * Create a new identity with recovery phrase
39
+ * Internal function to perform challenge-response sign in
38
40
  */
39
- const createIdentity = useCallback(async (username, email) => {
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
+
47
+ // Request challenge
48
+ const {
49
+ challenge
50
+ } = await oxyServices.requestChallenge(publicKey);
51
+
52
+ // Note: Biometric authentication check should be handled by the app layer
53
+ // (e.g., accounts app) before calling signIn. The biometric preference is stored
54
+ // in local storage as 'oxy_biometric_enabled' and can be checked there.
55
+
56
+ // Sign the challenge
57
+ const {
58
+ challenge: signature,
59
+ timestamp
60
+ } = await SignatureService.signChallenge(challenge);
61
+
62
+ // Verify and create session
63
+ const sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
64
+
65
+ // Get token for the session
66
+ await oxyServices.getTokenBySession(sessionResponse.sessionId);
67
+
68
+ // Get full user data
69
+ const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
70
+ await applyLanguagePreference(fullUser);
71
+ loginSuccess(fullUser);
72
+
73
+ // Fetch device sessions
74
+ let allDeviceSessions = [];
75
+ try {
76
+ allDeviceSessions = await fetchSessionsWithFallback(oxyServices, sessionResponse.sessionId, {
77
+ fallbackDeviceId: sessionResponse.deviceId,
78
+ fallbackUserId: fullUser.id,
79
+ logger
80
+ });
81
+ } catch (error) {
82
+ if (__DEV__) {
83
+ console.warn('Failed to fetch device sessions after login:', error);
84
+ }
85
+ }
86
+
87
+ // Check for existing session for same user
88
+ const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
89
+ if (existingSession) {
90
+ // Logout duplicate session
91
+ try {
92
+ await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
93
+ } catch (logoutError) {
94
+ if (__DEV__) {
95
+ console.warn('Failed to logout duplicate session:', logoutError);
96
+ }
97
+ }
98
+ await switchSession(existingSession.sessionId);
99
+ updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
100
+ merge: false
101
+ });
102
+ onAuthStateChange?.(fullUser);
103
+ return fullUser;
104
+ }
105
+ setActiveSessionId(sessionResponse.sessionId);
106
+ await saveActiveSessionId(sessionResponse.sessionId);
107
+ updateSessions(allDeviceSessions, {
108
+ merge: true
109
+ });
110
+ onAuthStateChange?.(fullUser);
111
+ return fullUser;
112
+ }, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
113
+
114
+ /**
115
+ * Create a new identity with recovery phrase (offline-first)
116
+ * Identity is purely cryptographic - no username or email required
117
+ */
118
+ const createIdentity = useCallback(async () => {
40
119
  if (!storage) throw new Error('Storage not initialized');
41
120
  setAuthState({
42
121
  isLoading: true,
43
122
  error: null
44
123
  });
45
124
  try {
46
- // Generate new identity with recovery phrase
125
+ // Generate new identity with recovery phrase (works offline)
47
126
  const {
48
127
  phrase,
49
128
  words,
50
129
  publicKey
51
130
  } = await RecoveryPhraseService.generateIdentityWithRecovery();
52
131
 
53
- // Create registration signature
54
- const {
55
- signature,
56
- timestamp
57
- } = await SignatureService.createRegistrationSignature(username, email);
132
+ // Mark as not synced
133
+ await storage.setItem('oxy_identity_synced', 'false');
134
+ setIdentitySynced(false);
58
135
 
59
- // Register with server
60
- const {
61
- user
62
- } = await oxyServices.register(publicKey, username, signature, timestamp, email);
136
+ // Try to sync with server (will succeed if online)
137
+ try {
138
+ const {
139
+ signature,
140
+ timestamp
141
+ } = await SignatureService.createRegistrationSignature();
142
+ await oxyServices.register(publicKey, signature, timestamp);
63
143
 
64
- // Now sign in to create a session
65
- const fullUser = await performSignIn(publicKey);
66
- return {
67
- user: fullUser,
68
- recoveryPhrase: words
69
- };
144
+ // Mark as synced (Zustand store + storage)
145
+ await storage.setItem('oxy_identity_synced', 'true');
146
+ setIdentitySynced(true);
147
+ return {
148
+ recoveryPhrase: words,
149
+ synced: true
150
+ };
151
+ } catch (syncError) {
152
+ // Offline or server error - identity is created locally but not synced
153
+ if (__DEV__) {
154
+ console.log('[Auth] Identity created locally, will sync when online:', syncError);
155
+ }
156
+ return {
157
+ recoveryPhrase: words,
158
+ synced: false
159
+ };
160
+ }
70
161
  } catch (error) {
71
- // Clean up identity if registration failed
162
+ // Clean up identity if generation failed
72
163
  await KeyManager.deleteIdentity().catch(() => {});
164
+ await storage.removeItem('oxy_identity_synced').catch(() => {});
165
+ setIdentitySynced(true);
73
166
  const message = handleAuthError(error, {
74
167
  defaultMessage: 'Failed to create identity',
75
168
  code: REGISTER_ERROR_CODE,
@@ -86,43 +179,65 @@ export const useAuthOperations = ({
86
179
  isLoading: false
87
180
  });
88
181
  }
89
- }, [oxyServices, storage, setAuthState, loginFailure, onError, logger]);
182
+ }, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
90
183
 
91
184
  /**
92
- * Import identity from recovery phrase
185
+ * Check if identity is synced with server (reads from storage for persistence)
93
186
  */
94
- const importIdentity = useCallback(async (phrase, username, email) => {
187
+ const isIdentitySyncedFn = useCallback(async () => {
188
+ if (!storage) return true;
189
+ const synced = await storage.getItem('oxy_identity_synced');
190
+ const isSynced = synced !== 'false';
191
+ setIdentitySynced(isSynced);
192
+ return isSynced;
193
+ }, [storage, setIdentitySynced]);
194
+
195
+ /**
196
+ * Sync local identity with server (call when online)
197
+ */
198
+ const syncIdentity = useCallback(async () => {
95
199
  if (!storage) throw new Error('Storage not initialized');
96
200
  setAuthState({
97
201
  isLoading: true,
98
202
  error: null
99
203
  });
204
+ setSyncing(true);
100
205
  try {
101
- // Restore identity from phrase
102
- const publicKey = await RecoveryPhraseService.restoreFromPhrase(phrase);
206
+ const publicKey = await KeyManager.getPublicKey();
207
+ if (!publicKey) {
208
+ throw new Error('No identity found on this device');
209
+ }
103
210
 
104
- // Check if this identity is already registered
211
+ // Check if already synced
212
+ const alreadySynced = await storage.getItem('oxy_identity_synced');
213
+ if (alreadySynced === 'true') {
214
+ // Already synced, just sign in
215
+ setIdentitySynced(true);
216
+ return await performSignIn(publicKey);
217
+ }
218
+
219
+ // Check if already registered on server
105
220
  const {
106
221
  registered
107
222
  } = await oxyServices.checkPublicKeyRegistered(publicKey);
108
- if (registered) {
109
- // Identity exists, just sign in
110
- return await performSignIn(publicKey);
111
- } else {
112
- // Need to register this identity
113
- if (!username) {
114
- throw new Error('Username is required for new registration');
115
- }
223
+ if (!registered) {
224
+ // Register with server (identity is just the publicKey)
116
225
  const {
117
226
  signature,
118
227
  timestamp
119
- } = await SignatureService.createRegistrationSignature(username, email);
120
- await oxyServices.register(publicKey, username, signature, timestamp, email);
121
- return await performSignIn(publicKey);
228
+ } = await SignatureService.createRegistrationSignature();
229
+ await oxyServices.register(publicKey, signature, timestamp);
122
230
  }
231
+
232
+ // Mark as synced (Zustand store + storage)
233
+ await storage.setItem('oxy_identity_synced', 'true');
234
+ setIdentitySynced(true);
235
+
236
+ // Sign in
237
+ return await performSignIn(publicKey);
123
238
  } catch (error) {
124
239
  const message = handleAuthError(error, {
125
- defaultMessage: 'Failed to import identity',
240
+ defaultMessage: 'Failed to sync identity',
126
241
  code: REGISTER_ERROR_CODE,
127
242
  onError,
128
243
  setAuthError: msg => setAuthState({
@@ -136,80 +251,80 @@ export const useAuthOperations = ({
136
251
  setAuthState({
137
252
  isLoading: false
138
253
  });
254
+ setSyncing(false);
139
255
  }
140
- }, [oxyServices, storage, setAuthState, loginFailure, onError, logger]);
256
+ }, [oxyServices, storage, setAuthState, performSignIn, loginFailure, onError, logger, setSyncing, setIdentitySynced]);
141
257
 
142
258
  /**
143
- * Internal function to perform challenge-response sign in
259
+ * Import identity from recovery phrase (offline-first)
144
260
  */
145
- const performSignIn = useCallback(async publicKey => {
146
- const deviceFingerprintObj = DeviceManager.getDeviceFingerprint();
147
- const deviceFingerprint = JSON.stringify(deviceFingerprintObj);
148
- const deviceInfo = await DeviceManager.getDeviceInfo();
149
- const deviceName = deviceInfo.deviceName || DeviceManager.getDefaultDeviceName();
150
-
151
- // Request challenge
152
- const {
153
- challenge
154
- } = await oxyServices.requestChallenge(publicKey);
155
-
156
- // Sign the challenge
157
- const {
158
- challenge: signature,
159
- timestamp
160
- } = await SignatureService.signChallenge(challenge);
161
-
162
- // Verify and create session
163
- const sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
164
-
165
- // Get token for the session
166
- await oxyServices.getTokenBySession(sessionResponse.sessionId);
167
-
168
- // Get full user data
169
- const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
170
- await applyLanguagePreference(fullUser);
171
- loginSuccess(fullUser);
172
-
173
- // Fetch device sessions
174
- let allDeviceSessions = [];
261
+ const importIdentity = useCallback(async phrase => {
262
+ if (!storage) throw new Error('Storage not initialized');
263
+ setAuthState({
264
+ isLoading: true,
265
+ error: null
266
+ });
175
267
  try {
176
- allDeviceSessions = await fetchSessionsWithFallback(oxyServices, sessionResponse.sessionId, {
177
- fallbackDeviceId: sessionResponse.deviceId,
178
- fallbackUserId: fullUser.id,
179
- logger
180
- });
181
- } catch (error) {
182
- if (__DEV__) {
183
- console.warn('Failed to fetch device sessions after login:', error);
184
- }
185
- }
268
+ // Restore identity from phrase (works offline)
269
+ const publicKey = await RecoveryPhraseService.restoreFromPhrase(phrase);
186
270
 
187
- // Check for existing session for same user
188
- const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
189
- if (existingSession) {
190
- // Logout duplicate session
271
+ // Mark as not synced
272
+ await storage.setItem('oxy_identity_synced', 'false');
273
+ setIdentitySynced(false);
274
+
275
+ // Try to sync with server
191
276
  try {
192
- await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
193
- } catch (logoutError) {
277
+ // Check if this identity is already registered
278
+ const {
279
+ registered
280
+ } = await oxyServices.checkPublicKeyRegistered(publicKey);
281
+ if (registered) {
282
+ // Identity exists, mark as synced
283
+ await storage.setItem('oxy_identity_synced', 'true');
284
+ setIdentitySynced(true);
285
+ return {
286
+ synced: true
287
+ };
288
+ } else {
289
+ // Need to register this identity (identity is just the publicKey)
290
+ const {
291
+ signature,
292
+ timestamp
293
+ } = await SignatureService.createRegistrationSignature();
294
+ await oxyServices.register(publicKey, signature, timestamp);
295
+ await storage.setItem('oxy_identity_synced', 'true');
296
+ setIdentitySynced(true);
297
+ return {
298
+ synced: true
299
+ };
300
+ }
301
+ } catch (syncError) {
302
+ // Offline - identity restored locally but not synced
194
303
  if (__DEV__) {
195
- console.warn('Failed to logout duplicate session:', logoutError);
304
+ console.log('[Auth] Identity imported locally, will sync when online:', syncError);
196
305
  }
306
+ return {
307
+ synced: false
308
+ };
197
309
  }
198
- await switchSession(existingSession.sessionId);
199
- updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
200
- merge: false
310
+ } catch (error) {
311
+ const message = handleAuthError(error, {
312
+ defaultMessage: 'Failed to import identity',
313
+ code: REGISTER_ERROR_CODE,
314
+ onError,
315
+ setAuthError: msg => setAuthState({
316
+ error: msg
317
+ }),
318
+ logger
319
+ });
320
+ loginFailure(message);
321
+ throw error;
322
+ } finally {
323
+ setAuthState({
324
+ isLoading: false
201
325
  });
202
- onAuthStateChange?.(fullUser);
203
- return fullUser;
204
326
  }
205
- setActiveSessionId(sessionResponse.sessionId);
206
- await saveActiveSessionId(sessionResponse.sessionId);
207
- updateSessions(allDeviceSessions, {
208
- merge: true
209
- });
210
- onAuthStateChange?.(fullUser);
211
- return fullUser;
212
- }, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
327
+ }, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
213
328
 
214
329
  /**
215
330
  * Sign in with existing identity on device
@@ -338,7 +453,9 @@ export const useAuthOperations = ({
338
453
  logout,
339
454
  logoutAll,
340
455
  hasIdentity,
341
- getPublicKey
456
+ getPublicKey,
457
+ isIdentitySynced: isIdentitySyncedFn,
458
+ syncIdentity
342
459
  };
343
460
  };
344
461
  //# sourceMappingURL=useAuthOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","KeyManager","SignatureService","RecoveryPhraseService","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","logger","createIdentity","username","email","Error","isLoading","error","phrase","words","publicKey","generateIdentityWithRecovery","signature","timestamp","createRegistrationSignature","user","register","fullUser","performSignIn","recoveryPhrase","deleteIdentity","catch","message","defaultMessage","code","setAuthError","msg","importIdentity","restoreFromPhrase","registered","checkPublicKeyRegistered","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","requestChallenge","signChallenge","sessionResponse","verifyChallenge","getTokenBySession","sessionId","getUserBySession","allDeviceSessions","fallbackDeviceId","deviceId","fallbackUserId","id","__DEV__","console","warn","existingSession","find","session","userId","toString","logoutSession","logoutError","filter","merge","signIn","getPublicKey","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","status","undefined","logoutAll","logoutAllSessions","hasIdentity"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","KeyManager","SignatureService","RecoveryPhraseService","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","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","requestChallenge","signature","timestamp","signChallenge","sessionResponse","verifyChallenge","getTokenBySession","sessionId","fullUser","getUserBySession","allDeviceSessions","fallbackDeviceId","deviceId","fallbackUserId","id","error","__DEV__","console","warn","existingSession","find","session","userId","toString","logoutSession","logoutError","filter","merge","createIdentity","Error","isLoading","phrase","words","generateIdentityWithRecovery","setItem","createRegistrationSignature","register","recoveryPhrase","synced","syncError","log","deleteIdentity","catch","removeItem","message","defaultMessage","code","setAuthError","msg","isIdentitySyncedFn","getItem","isSynced","syncIdentity","getPublicKey","alreadySynced","registered","checkPublicKeyRegistered","importIdentity","restoreFromPhrase","signIn","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","status","undefined","logoutAll","logoutAllSessions","hasIdentity","isIdentitySynced"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}