@oxyhq/services 5.16.37 → 5.16.39

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 (37) hide show
  1. package/lib/commonjs/core/mixins/OxyServices.auth.js +10 -3
  2. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  3. package/lib/commonjs/index.js +0 -7
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/ui/context/OxyContext.js +84 -14
  6. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  7. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +93 -37
  8. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  9. package/lib/commonjs/ui/stores/transferStore.js +4 -0
  10. package/lib/commonjs/ui/stores/transferStore.js.map +1 -1
  11. package/lib/module/core/mixins/OxyServices.auth.js +10 -3
  12. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  13. package/lib/module/index.js +1 -1
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/ui/context/OxyContext.js +85 -15
  16. package/lib/module/ui/context/OxyContext.js.map +1 -1
  17. package/lib/module/ui/context/hooks/useAuthOperations.js +93 -37
  18. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  19. package/lib/module/ui/stores/transferStore.js +4 -0
  20. package/lib/module/ui/stores/transferStore.js.map +1 -1
  21. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +2 -1
  22. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  23. package/lib/typescript/core/mixins/index.d.ts +1 -1
  24. package/lib/typescript/index.d.ts +2 -1
  25. package/lib/typescript/index.d.ts.map +1 -1
  26. package/lib/typescript/ui/context/OxyContext.d.ts +3 -3
  27. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  28. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +2 -2
  29. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  30. package/lib/typescript/ui/stores/transferStore.d.ts +1 -0
  31. package/lib/typescript/ui/stores/transferStore.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/src/core/mixins/OxyServices.auth.ts +12 -3
  34. package/src/index.ts +1 -1
  35. package/src/ui/context/OxyContext.tsx +84 -17
  36. package/src/ui/context/hooks/useAuthOperations.ts +89 -38
  37. package/src/ui/stores/transferStore.ts +6 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
4
4
  import { Platform } from 'react-native';
5
5
  import { OxyServices } from '../../core';
6
6
  import { toast } from '../../lib/sonner';
@@ -121,6 +121,15 @@ export const OxyProvider = ({
121
121
  logger
122
122
  });
123
123
 
124
+ // Invalidate KeyManager cache on mount to prevent stale cache issues
125
+ // useLayoutEffect runs synchronously after render but before paint, ensuring cache
126
+ // invalidation happens before any async operations start
127
+ useLayoutEffect(() => {
128
+ if (Platform.OS !== 'web') {
129
+ KeyManager.invalidateCache();
130
+ }
131
+ }, []);
132
+
124
133
  // Identity integrity check and auto-restore on startup
125
134
  // Skip on web platform - identity storage is only available on native platforms
126
135
  useEffect(() => {
@@ -129,9 +138,7 @@ export const OxyProvider = ({
129
138
 
130
139
  const checkAndRestoreIdentity = async () => {
131
140
  try {
132
- // CRITICAL: Invalidate cache on app startup to ensure fresh state check
133
- // This prevents stale cache from previous session from showing incorrect state
134
- KeyManager.invalidateCache();
141
+ // Cache was already invalidated synchronously above
135
142
 
136
143
  // Check if identity exists and verify integrity
137
144
  const hasIdentity = await KeyManager.hasIdentity();
@@ -252,9 +259,17 @@ export const OxyProvider = ({
252
259
  return importIdentityBase(backupData, password);
253
260
  }, [importIdentityBase]);
254
261
 
262
+ // Storage keys for transfer codes
263
+ const TRANSFER_CODES_STORAGE_KEY = `${storageKeyPrefix}_transfer_codes`;
264
+ const ACTIVE_TRANSFER_STORAGE_KEY = `${storageKeyPrefix}_active_transfer_id`;
265
+
255
266
  // Clear all account data when identity is lost (for accounts app)
256
267
  // In accounts app, identity = account, so losing identity means losing everything
257
268
  const clearAllAccountData = useCallback(async () => {
269
+ if (__DEV__) {
270
+ logger('Clearing all account data - identity changed or lost');
271
+ }
272
+
258
273
  // Clear TanStack Query cache (in-memory)
259
274
  queryClient.clear();
260
275
 
@@ -286,9 +301,29 @@ export const OxyProvider = ({
286
301
  // Reset account store
287
302
  useAccountStore.getState().reset();
288
303
 
304
+ // CRITICAL: Clear ALL transfer codes and active transfer state
305
+ // This prevents transfer state from previous identity from lingering
306
+ if (storage) {
307
+ try {
308
+ await storage.removeItem(TRANSFER_CODES_STORAGE_KEY);
309
+ await storage.removeItem(ACTIVE_TRANSFER_STORAGE_KEY);
310
+
311
+ // Also clear Zustand transfer store
312
+ useTransferStore.getState().clearAll();
313
+ if (__DEV__) {
314
+ logger('Cleared all transfer state');
315
+ }
316
+ } catch (error) {
317
+ logger('Failed to clear transfer state', error);
318
+ }
319
+ }
320
+
289
321
  // Clear HTTP service cache
290
322
  oxyServices.clearCache();
291
- }, [queryClient, storage, clearSessionState, logger, oxyServices]);
323
+
324
+ // Force KeyManager cache invalidation
325
+ KeyManager.invalidateCache();
326
+ }, [queryClient, storage, clearSessionState, logger, oxyServices, TRANSFER_CODES_STORAGE_KEY, ACTIVE_TRANSFER_STORAGE_KEY]);
292
327
 
293
328
  // Extract Zustand store functions early (before they're used in callbacks)
294
329
  const getAllPendingTransfersStore = useTransferStore(state => state.getAllPendingTransfers);
@@ -469,6 +504,8 @@ export const OxyProvider = ({
469
504
  try {
470
505
  // CRITICAL: Get current identity's public key first
471
506
  // Only restore sessions that belong to this identity
507
+ // Force cache invalidation to ensure we get the actual current identity
508
+ KeyManager.invalidateCache();
472
509
  const currentPublicKey = await KeyManager.getPublicKey().catch(() => null);
473
510
  const storedSessionIdsJson = await storage.getItem(storageKeys.sessionIds);
474
511
  const storedSessionIds = storedSessionIdsJson ? JSON.parse(storedSessionIdsJson) : [];
@@ -477,12 +514,23 @@ export const OxyProvider = ({
477
514
  // If no identity exists, clear all sessions and return
478
515
  if (!currentPublicKey) {
479
516
  if (storedSessionIds.length > 0 || storedActiveSessionId) {
517
+ if (__DEV__) {
518
+ logger('No identity found - clearing all stored sessions to prevent cross-identity data leak');
519
+ }
480
520
  await clearSessionState();
481
521
  }
482
522
  setTokenReady(true);
483
523
  return;
484
524
  }
525
+ if (__DEV__) {
526
+ logger('Restoring sessions for identity', {
527
+ publicKey: currentPublicKey.substring(0, 16) + '...',
528
+ sessionCount: storedSessionIds.length
529
+ });
530
+ }
485
531
  const validSessions = [];
532
+ const invalidSessionIds = []; // Track invalid sessions for batch removal
533
+
486
534
  if (storedSessionIds.length > 0) {
487
535
  for (const sessionId of storedSessionIds) {
488
536
  try {
@@ -491,14 +539,18 @@ export const OxyProvider = ({
491
539
  });
492
540
  if (validation?.valid && validation.user) {
493
541
  // CRITICAL: Verify session belongs to current identity
494
- // IMPORTANT: In OxyAccounts, user.id is set to the publicKey (as confirmed by line 754 comment below)
495
- // This is different from the JWT's userId field which contains MongoDB ObjectId
496
- // We compare user.id (publicKey) to currentPublicKey to ensure session ownership
497
- if (validation.user.id !== currentPublicKey) {
498
- // Session belongs to different identity - skip it
542
+ // Compare session's publicKey to current identity's publicKey
543
+ if (validation.user.publicKey !== currentPublicKey) {
544
+ // Session belongs to different identity - skip it and log warning
499
545
  if (__DEV__) {
500
- logger('Skipping session from different identity during restoration');
546
+ logger('CRITICAL: Skipping session from different identity during restoration', {
547
+ sessionPublicKey: validation.user.publicKey?.substring(0, 16) + '...',
548
+ currentPublicKey: currentPublicKey.substring(0, 16) + '...',
549
+ sessionId: sessionId.substring(0, 16) + '...'
550
+ });
501
551
  }
552
+ // Mark for batch removal
553
+ invalidSessionIds.push(sessionId);
502
554
  continue;
503
555
  }
504
556
  const now = new Date();
@@ -525,6 +577,26 @@ export const OxyProvider = ({
525
577
  }
526
578
  }
527
579
  }
580
+
581
+ // Batch remove invalid sessions from storage (performance optimization)
582
+ if (invalidSessionIds.length > 0) {
583
+ try {
584
+ // Use Set for O(n) lookup instead of O(n²) with includes()
585
+ const invalidSessionSet = new Set(invalidSessionIds);
586
+ const updatedIds = storedSessionIds.filter(id => !invalidSessionSet.has(id));
587
+ await storage.setItem(storageKeys.sessionIds, JSON.stringify(updatedIds));
588
+ if (__DEV__) {
589
+ logger('Removed invalid sessions from storage', {
590
+ count: invalidSessionIds.length
591
+ });
592
+ }
593
+ } catch (cleanupError) {
594
+ // Ignore cleanup errors - will be cleaned on next restart
595
+ if (__DEV__) {
596
+ logger('Failed to remove invalid sessions from storage', cleanupError);
597
+ }
598
+ }
599
+ }
528
600
  if (validSessions.length > 0) {
529
601
  updateSessions(validSessions, {
530
602
  merge: false
@@ -633,13 +705,11 @@ export const OxyProvider = ({
633
705
  }, [isAuthenticatedFromStore, isAuthenticatedFromSessions]);
634
706
 
635
707
  // Get userId from JWT token (MongoDB ObjectId) for socket room matching
636
- // user.id is set to publicKey for compatibility, but socket rooms use MongoDB ObjectId
637
- // The JWT token's userId field contains the MongoDB ObjectId
708
+ // user.id contains the MongoDB ObjectId, user.publicKey contains the cryptographic public key
638
709
  const userId = oxyServices.getCurrentUserId() || user?.id;
639
710
 
640
711
  // Use Zustand store for transfer state management
641
- const TRANSFER_CODES_STORAGE_KEY = `${storageKeyPrefix}_transfer_codes`;
642
- const ACTIVE_TRANSFER_STORAGE_KEY = `${storageKeyPrefix}_active_transfer_id`;
712
+ // Storage keys are defined above (TRANSFER_CODES_STORAGE_KEY, ACTIVE_TRANSFER_STORAGE_KEY)
643
713
  const isRestored = useTransferStore(state => state.isRestored);
644
714
  const restoreFromStorage = useTransferStore(state => state.restoreFromStorage);
645
715
  const markRestored = useTransferStore(state => state.markRestored);
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","Platform","OxyServices","toast","useAuthStore","useShallow","useSessionSocket","useStorage","useLanguageManagement","useSessionManagement","useAuthOperations","useDeviceManagement","getStorageKeys","isInvalidSessionError","isTimeoutOrNetworkError","showBottomSheet","globalShowBottomSheet","useQueryClient","clearQueryCache","KeyManager","translate","updateAvatarVisibility","updateProfileWithAvatar","useAccountStore","logger","loggerUtil","useTransferStore","useTransferCodesForPersistence","useCheckPendingTransfers","jsx","_jsx","OxyContext","cachedUseFollowHook","loadUseFollowHook","useFollow","require","error","__DEV__","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","current","user","isAuthenticated","isAuthenticatedFromStore","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","state","logout","isIdentitySynced","tokenReady","setTokenReady","initializedRef","setAuthState","setState","message","err","undefined","console","storageKeys","storage","isReady","isStorageReady","OS","checkAndRestoreIdentity","invalidateCache","hasIdentity","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","languageKey","language","queryClient","sessions","activeSessionId","setActiveSessionId","setActiveSessionIdFromHook","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","setAuthError","createIdentity","importIdentity","importIdentityBase","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","backupData","password","clearAllAccountData","clear","removeItem","getState","reset","clearCache","getAllPendingTransfersStore","getAllPendingTransfers","getActiveTransferIdStore","getActiveTransferId","storeTransferCodeStore","storeTransferCode","getTransferCodeStore","getTransferCode","updateTransferStateStore","updateTransferState","clearTransferCodeStore","clearTransferCode","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","pendingTransfers","length","activeTransferId","hasActiveTransfer","some","t","transferId","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","currentPublicKey","storedSessionIdsJson","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","sessionId","validation","validateSession","useHeaderValidation","valid","id","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","toString","isCurrent","validationError","merge","switchError","filter","session","matchingSession","find","s","firstSession","String","activeSession","currentDeviceId","isAuthenticatedFromSessions","computedIsAuthenticated","getCurrentUserId","TRANSFER_CODES_STORAGE_KEY","ACTIVE_TRANSFER_STORAGE_KEY","isRestored","restoreFromStorage","markRestored","cleanupExpired","loadTransferCodes","storedCodes","storedActiveTransferId","parsedCodes","Object","keys","count","transferCodes","persistTransferCodes","setItem","stringify","cleanup","setInterval","clearInterval","sourceDeviceId","publicKey","substring","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","info","remoteError","handleIdentityTransferComplete","data","hasActiveSession","storedTransfer","publicKeyMatches","receivedPublicKey","storedPublicKey","deviceIdMatches","receivedDeviceId","storedDeviceId","transferCode","codeMatches","toUpperCase","receivedCode","storedCode","transferAge","timestamp","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","value","OxyContextProvider","useOxy","context"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","Platform","OxyServices","toast","useAuthStore","useShallow","useSessionSocket","useStorage","useLanguageManagement","useSessionManagement","useAuthOperations","useDeviceManagement","getStorageKeys","isInvalidSessionError","isTimeoutOrNetworkError","showBottomSheet","globalShowBottomSheet","useQueryClient","clearQueryCache","KeyManager","translate","updateAvatarVisibility","updateProfileWithAvatar","useAccountStore","logger","loggerUtil","useTransferStore","useTransferCodesForPersistence","useCheckPendingTransfers","jsx","_jsx","OxyContext","cachedUseFollowHook","loadUseFollowHook","useFollow","require","error","__DEV__","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","current","user","isAuthenticated","isAuthenticatedFromStore","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","state","logout","isIdentitySynced","tokenReady","setTokenReady","initializedRef","setAuthState","setState","message","err","undefined","console","storageKeys","storage","isReady","isStorageReady","OS","invalidateCache","checkAndRestoreIdentity","hasIdentity","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","languageKey","language","queryClient","sessions","activeSessionId","setActiveSessionId","setActiveSessionIdFromHook","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","setAuthError","createIdentity","importIdentity","importIdentityBase","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","backupData","password","TRANSFER_CODES_STORAGE_KEY","ACTIVE_TRANSFER_STORAGE_KEY","clearAllAccountData","clear","removeItem","getState","reset","clearAll","clearCache","getAllPendingTransfersStore","getAllPendingTransfers","getActiveTransferIdStore","getActiveTransferId","storeTransferCodeStore","storeTransferCode","getTransferCodeStore","getTransferCode","updateTransferStateStore","updateTransferState","clearTransferCodeStore","clearTransferCode","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","pendingTransfers","length","activeTransferId","hasActiveTransfer","some","t","transferId","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","currentPublicKey","storedSessionIdsJson","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","publicKey","substring","sessionCount","validSessions","invalidSessionIds","sessionId","validation","validateSession","useHeaderValidation","valid","sessionPublicKey","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","invalidSessionSet","Set","updatedIds","filter","has","setItem","stringify","count","cleanupError","merge","switchError","session","matchingSession","find","s","firstSession","String","activeSession","currentDeviceId","isAuthenticatedFromSessions","computedIsAuthenticated","getCurrentUserId","isRestored","restoreFromStorage","markRestored","cleanupExpired","loadTransferCodes","storedCodes","storedActiveTransferId","parsedCodes","Object","keys","transferCodes","persistTransferCodes","cleanup","setInterval","clearInterval","sourceDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","info","remoteError","handleIdentityTransferComplete","data","hasActiveSession","storedTransfer","publicKeyMatches","receivedPublicKey","storedPublicKey","deviceIdMatches","receivedDeviceId","storedDeviceId","transferCode","codeMatches","toUpperCase","receivedCode","storedCode","transferAge","timestamp","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","value","OxyContextProvider","useOxy","context"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -41,12 +41,26 @@ export const useAuthOperations = ({
41
41
  */
42
42
  const clearSessionsIfIdentityChanged = useCallback(async (oldPublicKey, newPublicKey) => {
43
43
  if (oldPublicKey && oldPublicKey !== newPublicKey) {
44
+ if (__DEV__ && logger) {
45
+ logger('CRITICAL: Identity changed - clearing all session data', {
46
+ oldPublicKey: oldPublicKey.substring(0, 16) + '...',
47
+ newPublicKey: newPublicKey.substring(0, 16) + '...'
48
+ });
49
+ }
50
+
44
51
  // Clear all session state to prevent old identity's data from showing up
45
52
  await clearSessionState();
46
- // Logout from auth store
53
+
54
+ // Logout from auth store (clears user, isAuthenticated, etc.)
47
55
  logoutStore();
56
+
57
+ // Force KeyManager cache invalidation
58
+ KeyManager.invalidateCache();
59
+ if (__DEV__ && logger) {
60
+ logger('Session state cleared for new identity');
61
+ }
48
62
  }
49
- }, [clearSessionState, logoutStore]);
63
+ }, [clearSessionState, logoutStore, logger]);
50
64
 
51
65
  /**
52
66
  * Internal function to perform challenge-response sign in (works offline)
@@ -213,8 +227,13 @@ export const useAuthOperations = ({
213
227
  /**
214
228
  * Create a new identity (offline-first)
215
229
  * Identity is purely cryptographic - no username or email required
230
+ *
231
+ * This function generates keys locally and does NOT register with the server yet.
232
+ * Registration will happen during syncIdentity() or when username is provided.
233
+ *
234
+ * @param username - Optional username to set during registration (if online)
216
235
  */
217
- const createIdentity = useCallback(async () => {
236
+ const createIdentity = useCallback(async username => {
218
237
  if (!storage) throw new Error('Storage not initialized');
219
238
  setAuthState({
220
239
  isLoading: true,
@@ -224,6 +243,11 @@ export const useAuthOperations = ({
224
243
  // CRITICAL: Get old public key before creating new identity
225
244
  // If identity changes, we must clear all session data to prevent data leakage
226
245
  const oldPublicKey = await KeyManager.getPublicKey().catch(() => null);
246
+ if (__DEV__ && logger) {
247
+ logger('Creating new identity', {
248
+ hadPreviousIdentity: !!oldPublicKey
249
+ });
250
+ }
227
251
 
228
252
  // Generate new key pair directly (works offline)
229
253
  const {
@@ -231,37 +255,59 @@ export const useAuthOperations = ({
231
255
  privateKey
232
256
  } = await KeyManager.generateKeyPair();
233
257
  await KeyManager.importKeyPair(privateKey);
258
+ if (__DEV__ && logger) {
259
+ logger('Identity keys generated', {
260
+ publicKey: publicKey.substring(0, 16) + '...'
261
+ });
262
+ }
234
263
 
235
264
  // Clear sessions if identity changed (prevents data leakage)
236
265
  await clearSessionsIfIdentityChanged(oldPublicKey, publicKey);
237
266
 
238
- // Mark as not synced
267
+ // Mark as not synced initially
239
268
  await storage.setItem('oxy_identity_synced', 'false');
240
269
  setIdentitySynced(false);
241
270
 
242
- // Try to sync with server (will succeed if online)
243
- try {
244
- const {
245
- signature,
246
- timestamp
247
- } = await SignatureService.createRegistrationSignature();
248
- await oxyServices.register(publicKey, signature, timestamp);
249
-
250
- // Mark as synced (Zustand store + storage)
251
- await storage.setItem('oxy_identity_synced', 'true');
252
- setIdentitySynced(true);
253
- return {
254
- synced: true
255
- };
256
- } catch (syncError) {
257
- // Offline or server error - identity is created locally but not synced
258
- if (__DEV__) {
259
- console.log('[Auth] Identity created locally, will sync when online:', syncError);
271
+ // If username provided, try to register immediately (online only)
272
+ if (username) {
273
+ // Validate username format before attempting registration
274
+ const trimmedUsername = username.trim();
275
+ if (trimmedUsername && /^[a-zA-Z0-9]{3,30}$/.test(trimmedUsername)) {
276
+ try {
277
+ const {
278
+ signature,
279
+ timestamp
280
+ } = await SignatureService.createRegistrationSignature();
281
+ await oxyServices.register(publicKey, signature, timestamp, trimmedUsername);
282
+
283
+ // Mark as synced (Zustand store + storage)
284
+ await storage.setItem('oxy_identity_synced', 'true');
285
+ setIdentitySynced(true);
286
+ if (__DEV__ && logger) {
287
+ logger('Identity synced with server successfully with username');
288
+ }
289
+ return {
290
+ synced: true
291
+ };
292
+ } catch (syncError) {
293
+ // Offline or server error - identity created locally but not synced
294
+ if (__DEV__ && logger) {
295
+ logger('Identity created locally with username (offline), will sync when online', syncError);
296
+ }
297
+ return {
298
+ synced: false
299
+ };
300
+ }
260
301
  }
261
- return {
262
- synced: false
263
- };
264
302
  }
303
+
304
+ // No username provided - defer registration until later
305
+ if (__DEV__ && logger) {
306
+ logger('Identity created locally without username, will register during sync');
307
+ }
308
+ return {
309
+ synced: false
310
+ };
265
311
  } catch (error) {
266
312
  // CRITICAL: Never delete identity on error - it may have been successfully created
267
313
  // Only log the error and let the user recover using their backup file
@@ -277,7 +323,7 @@ export const useAuthOperations = ({
277
323
  await storage.setItem('oxy_identity_synced', 'false').catch(() => {});
278
324
  setIdentitySynced(false);
279
325
  if (__DEV__ && logger) {
280
- logger('Identity was created but sync failed - user can sync later using backup file');
326
+ logger('Identity was created but sync failed - user can sync later');
281
327
  }
282
328
  } else {
283
329
  // No identity exists - this was a generation failure, safe to clean up sync flag
@@ -316,8 +362,10 @@ export const useAuthOperations = ({
316
362
  /**
317
363
  * Sync local identity with server (call when online)
318
364
  * TanStack Query handles offline mutations automatically
365
+ *
366
+ * @param username - Optional username to set during sync
319
367
  */
320
- const syncIdentity = useCallback(async () => {
368
+ const syncIdentity = useCallback(async username => {
321
369
  if (!storage) throw new Error('Storage not initialized');
322
370
  setAuthState({
323
371
  isLoading: true,
@@ -347,7 +395,7 @@ export const useAuthOperations = ({
347
395
  signature,
348
396
  timestamp
349
397
  } = await SignatureService.createRegistrationSignature();
350
- await oxyServices.register(publicKey, signature, timestamp);
398
+ await oxyServices.register(publicKey, signature, timestamp, username);
351
399
  }
352
400
 
353
401
  // Mark as synced (Zustand store + storage)
@@ -357,13 +405,6 @@ export const useAuthOperations = ({
357
405
  // Sign in
358
406
  const user = await performSignIn(publicKey);
359
407
 
360
- // Check if user has username - required for syncing
361
- if (!user.username) {
362
- const usernameError = new Error('USERNAME_REQUIRED');
363
- usernameError.code = 'USERNAME_REQUIRED';
364
- throw usernameError;
365
- }
366
-
367
408
  // TanStack Query will automatically retry any pending mutations
368
409
 
369
410
  return user;
@@ -389,8 +430,12 @@ export const useAuthOperations = ({
389
430
 
390
431
  /**
391
432
  * Import identity from backup file data (offline-first)
433
+ *
434
+ * @param backupData - The backup data to import
435
+ * @param password - Password to decrypt the backup
436
+ * @param username - Optional username to set during registration
392
437
  */
393
- const importIdentity = useCallback(async (backupData, password) => {
438
+ const importIdentity = useCallback(async (backupData, password, username) => {
394
439
  if (!storage) throw new Error('Storage not initialized');
395
440
 
396
441
  // Validate arguments - ensure backupData is an object, not a string (old signature)
@@ -411,6 +456,12 @@ export const useAuthOperations = ({
411
456
  // CRITICAL: Get old public key before importing new identity
412
457
  // If identity changes, we must clear all session data to prevent data leakage
413
458
  const oldPublicKey = await KeyManager.getPublicKey().catch(() => null);
459
+ if (__DEV__ && logger) {
460
+ logger('Importing identity from backup', {
461
+ hadPreviousIdentity: !!oldPublicKey,
462
+ backupPublicKey: backupData.publicKey.substring(0, 16) + '...'
463
+ });
464
+ }
414
465
 
415
466
  // Decrypt private key from backup data
416
467
  const Crypto = await import('expo-crypto');
@@ -440,6 +491,11 @@ export const useAuthOperations = ({
440
491
 
441
492
  // Import the key pair
442
493
  const publicKey = await KeyManager.importKeyPair(privateKey);
494
+ if (__DEV__ && logger) {
495
+ logger('Identity keys imported', {
496
+ publicKey: publicKey.substring(0, 16) + '...'
497
+ });
498
+ }
443
499
 
444
500
  // Verify public key matches
445
501
  if (publicKey !== backupData.publicKey) {
@@ -472,7 +528,7 @@ export const useAuthOperations = ({
472
528
  signature,
473
529
  timestamp
474
530
  } = await SignatureService.createRegistrationSignature();
475
- await oxyServices.register(publicKey, signature, timestamp);
531
+ await oxyServices.register(publicKey, signature, timestamp, username);
476
532
  await storage.setItem('oxy_identity_synced', 'true');
477
533
  setIdentitySynced(true);
478
534
  return {