@oxyhq/services 5.16.18 → 5.16.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -8
- package/lib/commonjs/crypto/index.js +0 -7
- package/lib/commonjs/crypto/index.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +2 -2
- package/lib/commonjs/crypto/polyfill.js +4 -4
- package/lib/commonjs/crypto/types.js +2 -0
- package/lib/commonjs/crypto/types.js.map +1 -0
- package/lib/commonjs/i18n/locales/en-US.json +1 -1
- package/lib/commonjs/index.js +0 -7
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +54 -11
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +56 -15
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionSocket.js +52 -2
- package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
- package/lib/module/crypto/index.js +2 -4
- package/lib/module/crypto/index.js.map +1 -1
- package/lib/module/crypto/keyManager.js +2 -2
- package/lib/module/crypto/polyfill.js +4 -4
- package/lib/module/crypto/types.js +2 -0
- package/lib/module/crypto/types.js.map +1 -0
- package/lib/module/i18n/locales/en-US.json +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +49 -6
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +56 -16
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/useSessionSocket.js +52 -2
- package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
- package/lib/typescript/crypto/index.d.ts +2 -2
- package/lib/typescript/crypto/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts +2 -2
- package/lib/typescript/crypto/polyfill.d.ts +2 -2
- package/lib/typescript/crypto/types.d.ts +18 -0
- package/lib/typescript/crypto/types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +2 -2
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +3 -3
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionSocket.d.ts +7 -1
- package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/crypto/index.ts +3 -6
- package/src/crypto/keyManager.ts +2 -2
- package/src/crypto/polyfill.ts +4 -4
- package/src/crypto/types.ts +19 -0
- package/src/i18n/locales/en-US.json +1 -1
- package/src/index.ts +2 -4
- package/src/ui/context/OxyContext.tsx +63 -7
- package/src/ui/context/hooks/useAuthOperations.ts +67 -17
- package/src/ui/hooks/useSessionSocket.ts +62 -2
- package/lib/commonjs/crypto/recoveryPhrase.js +0 -152
- package/lib/commonjs/crypto/recoveryPhrase.js.map +0 -1
- package/lib/commonjs/ui/hooks/useIdentityMutations.js +0 -111
- package/lib/commonjs/ui/hooks/useIdentityMutations.js.map +0 -1
- package/lib/module/crypto/recoveryPhrase.js +0 -147
- package/lib/module/crypto/recoveryPhrase.js.map +0 -1
- package/lib/module/ui/hooks/useIdentityMutations.js +0 -105
- package/lib/module/ui/hooks/useIdentityMutations.js.map +0 -1
- package/lib/typescript/crypto/recoveryPhrase.d.ts +0 -59
- package/lib/typescript/crypto/recoveryPhrase.d.ts.map +0 -1
- package/lib/typescript/types/bip39.d.ts +0 -32
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts +0 -29
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts.map +0 -1
- package/src/crypto/recoveryPhrase.ts +0 -166
- package/src/types/bip39.d.ts +0 -32
- package/src/ui/hooks/useIdentityMutations.ts +0 -115
package/README.md
CHANGED
|
@@ -329,8 +329,7 @@ import {
|
|
|
329
329
|
// Crypto module (for identity management)
|
|
330
330
|
import {
|
|
331
331
|
KeyManager,
|
|
332
|
-
SignatureService
|
|
333
|
-
RecoveryPhraseService
|
|
332
|
+
SignatureService
|
|
334
333
|
} from '@oxyhq/services/crypto';
|
|
335
334
|
```
|
|
336
335
|
|
|
@@ -437,8 +436,8 @@ const {
|
|
|
437
436
|
error,
|
|
438
437
|
|
|
439
438
|
// Identity management (Public Key Authentication)
|
|
440
|
-
createIdentity, // Create new identity
|
|
441
|
-
importIdentity, // Import identity from
|
|
439
|
+
createIdentity, // Create new identity
|
|
440
|
+
importIdentity, // Import identity from backup file
|
|
442
441
|
signIn, // Sign in with stored identity
|
|
443
442
|
hasIdentity, // Check if identity exists on device
|
|
444
443
|
getPublicKey, // Get stored public key
|
|
@@ -501,12 +500,12 @@ function AuthScreen() {
|
|
|
501
500
|
|
|
502
501
|
// Create new identity (in Oxy Accounts app)
|
|
503
502
|
const handleCreate = async () => {
|
|
504
|
-
const {
|
|
505
|
-
//
|
|
503
|
+
const { synced } = await createIdentity();
|
|
504
|
+
// Identity created - user should create backup file
|
|
506
505
|
};
|
|
507
506
|
|
|
508
|
-
// Import existing identity
|
|
509
|
-
const handleImport = async (
|
|
507
|
+
// Import existing identity from backup file
|
|
508
|
+
const handleImport = async (backupData: { encrypted: string; salt: string; iv: string; publicKey: string }, password: string) => {
|
|
510
509
|
const user = await importIdentity(phrase, 'username', 'email');
|
|
511
510
|
};
|
|
512
511
|
|
|
@@ -9,12 +9,6 @@ Object.defineProperty(exports, "KeyManager", {
|
|
|
9
9
|
return _keyManager.KeyManager;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "RecoveryPhraseService", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _recoveryPhrase.RecoveryPhraseService;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
12
|
Object.defineProperty(exports, "SignatureService", {
|
|
19
13
|
enumerable: true,
|
|
20
14
|
get: function () {
|
|
@@ -30,5 +24,4 @@ Object.defineProperty(exports, "default", {
|
|
|
30
24
|
require("./polyfill");
|
|
31
25
|
var _keyManager = require("./keyManager");
|
|
32
26
|
var _signatureService = require("./signatureService");
|
|
33
|
-
var _recoveryPhrase = require("./recoveryPhrase");
|
|
34
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_keyManager","_signatureService"
|
|
1
|
+
{"version":3,"names":["require","_keyManager","_signatureService"],"sourceRoot":"../../../src","sources":["crypto/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQAA,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA","ignoreList":[]}
|
|
@@ -172,7 +172,7 @@ class KeyManager {
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
/**
|
|
175
|
-
* Import an existing key pair (e.g., from
|
|
175
|
+
* Import an existing key pair (e.g., from backup file)
|
|
176
176
|
*/
|
|
177
177
|
static async importKeyPair(privateKey) {
|
|
178
178
|
if (isWebPlatform()) {
|
|
@@ -271,7 +271,7 @@ class KeyManager {
|
|
|
271
271
|
|
|
272
272
|
/**
|
|
273
273
|
* Delete the stored identity (both keys)
|
|
274
|
-
* Use with EXTREME caution - this is irreversible without a
|
|
274
|
+
* Use with EXTREME caution - this is irreversible without a backup file
|
|
275
275
|
* This should ONLY be called when explicitly requested by the user
|
|
276
276
|
* @param skipBackup - If true, skip backup before deletion (default: false)
|
|
277
277
|
* @param force - If true, skip confirmation checks (default: false)
|
|
@@ -17,12 +17,12 @@ var _buffer = require("buffer");
|
|
|
17
17
|
* before any crypto operations are performed.
|
|
18
18
|
*
|
|
19
19
|
* Polyfills included:
|
|
20
|
-
* - Buffer: Required by
|
|
21
|
-
* - crypto.getRandomValues: Required
|
|
20
|
+
* - Buffer: Required by crypto libraries
|
|
21
|
+
* - crypto.getRandomValues: Required for secure random number generation
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
// Import Buffer polyfill for React Native compatibility
|
|
25
|
-
//
|
|
25
|
+
// Some crypto libraries depend on Buffer which isn't available in React Native
|
|
26
26
|
|
|
27
27
|
// Get the global object in a cross-platform way
|
|
28
28
|
const getGlobalObject = () => {
|
|
@@ -40,7 +40,7 @@ if (!globalObject.Buffer) {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
// Polyfill crypto.getRandomValues for React Native
|
|
43
|
-
// This is required by
|
|
43
|
+
// This is required by crypto libraries for secure random number generation
|
|
44
44
|
|
|
45
45
|
// Cache for expo-crypto module
|
|
46
46
|
let expoCryptoModule = null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["crypto/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"enterCode": "Enter the 6‑digit code from your authenticator app.",
|
|
238
238
|
"newPassword": "Set New Password",
|
|
239
239
|
"resetSuccess": "Your password has been reset! You can now sign in.",
|
|
240
|
-
"noEmail": "We no longer send recovery emails. Please use your
|
|
240
|
+
"noEmail": "We no longer send recovery emails. Please use your backup file to restore your identity. Contact support if you need assistance.",
|
|
241
241
|
"password": {
|
|
242
242
|
"minLength": "Password must be at least 8 characters long",
|
|
243
243
|
"mismatch": "Passwords do not match",
|
package/lib/commonjs/index.js
CHANGED
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
KeyManager: true,
|
|
8
8
|
SignatureService: true,
|
|
9
|
-
RecoveryPhraseService: true,
|
|
10
9
|
OxyServices: true,
|
|
11
10
|
OxyAuthenticationError: true,
|
|
12
11
|
OxyAuthenticationTimeoutError: true,
|
|
@@ -165,12 +164,6 @@ Object.defineProperty(exports, "OxySignInButton", {
|
|
|
165
164
|
return _OxySignInButton.OxySignInButton;
|
|
166
165
|
}
|
|
167
166
|
});
|
|
168
|
-
Object.defineProperty(exports, "RecoveryPhraseService", {
|
|
169
|
-
enumerable: true,
|
|
170
|
-
get: function () {
|
|
171
|
-
return _crypto.RecoveryPhraseService;
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
167
|
Object.defineProperty(exports, "SECURITY_EVENT_SEVERITY_MAP", {
|
|
175
168
|
enumerable: true,
|
|
176
169
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_crypto","_core","_OxyContext","_OxyProvider","_interopRequireDefault","_deviceManager","_languageUtils","_interfaces","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_queries","_mutations","_OxySignInButton","_ui","_apiUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_errorUtils","_validationUtils","_loggerUtils","_asyncUtils","_hookUtils","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["require","_crypto","_core","_OxyContext","_OxyProvider","_interopRequireDefault","_deviceManager","_languageUtils","_interfaces","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_queries","_mutations","_OxySignInButton","_ui","_apiUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_errorUtils","_validationUtils","_loggerUtils","_asyncUtils","_hookUtils","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ var _errorHandlers = require("../utils/errorHandlers");
|
|
|
21
21
|
var _bottomSheetManager = require("../navigation/bottomSheetManager");
|
|
22
22
|
var _reactQuery = require("@tanstack/react-query");
|
|
23
23
|
var _queryClient = require("../hooks/queryClient");
|
|
24
|
-
var
|
|
24
|
+
var _crypto = require("../../crypto");
|
|
25
25
|
var _i18n = require("../../i18n");
|
|
26
26
|
var _avatarUtils = require("../utils/avatarUtils");
|
|
27
27
|
var _accountStore = require("../stores/accountStore");
|
|
@@ -128,22 +128,22 @@ const OxyProvider = ({
|
|
|
128
128
|
const checkAndRestoreIdentity = async () => {
|
|
129
129
|
try {
|
|
130
130
|
// Check if identity exists and verify integrity
|
|
131
|
-
const hasIdentity = await
|
|
131
|
+
const hasIdentity = await _crypto.KeyManager.hasIdentity();
|
|
132
132
|
if (hasIdentity) {
|
|
133
|
-
const isValid = await
|
|
133
|
+
const isValid = await _crypto.KeyManager.verifyIdentityIntegrity();
|
|
134
134
|
if (!isValid) {
|
|
135
135
|
// Try to restore from backup
|
|
136
|
-
const restored = await
|
|
136
|
+
const restored = await _crypto.KeyManager.restoreIdentityFromBackup();
|
|
137
137
|
if (__DEV__) {
|
|
138
|
-
logger(restored ? 'Identity restored from backup successfully' : 'Identity integrity check failed - user may need to restore from
|
|
138
|
+
logger(restored ? 'Identity restored from backup successfully' : 'Identity integrity check failed - user may need to restore from backup file');
|
|
139
139
|
}
|
|
140
140
|
} else {
|
|
141
141
|
// Identity is valid - ensure backup is up to date
|
|
142
|
-
await
|
|
142
|
+
await _crypto.KeyManager.backupIdentity();
|
|
143
143
|
}
|
|
144
144
|
} else {
|
|
145
145
|
// No identity - try to restore from backup
|
|
146
|
-
const restored = await
|
|
146
|
+
const restored = await _crypto.KeyManager.restoreIdentityFromBackup();
|
|
147
147
|
if (restored && __DEV__) {
|
|
148
148
|
logger('Identity restored from backup on startup');
|
|
149
149
|
}
|
|
@@ -152,7 +152,7 @@ const OxyProvider = ({
|
|
|
152
152
|
if (__DEV__) {
|
|
153
153
|
logger('Error during identity integrity check', error);
|
|
154
154
|
}
|
|
155
|
-
// Don't block app startup - user can recover with
|
|
155
|
+
// Don't block app startup - user can recover with backup file
|
|
156
156
|
}
|
|
157
157
|
};
|
|
158
158
|
checkAndRestoreIdentity();
|
|
@@ -203,7 +203,7 @@ const OxyProvider = ({
|
|
|
203
203
|
});
|
|
204
204
|
const {
|
|
205
205
|
createIdentity,
|
|
206
|
-
importIdentity,
|
|
206
|
+
importIdentity: importIdentityBase,
|
|
207
207
|
signIn,
|
|
208
208
|
logout,
|
|
209
209
|
logoutAll,
|
|
@@ -236,6 +236,20 @@ const OxyProvider = ({
|
|
|
236
236
|
// syncIdentity - TanStack Query handles offline mutations automatically
|
|
237
237
|
const syncIdentity = (0, _react.useCallback)(() => syncIdentityBase(), [syncIdentityBase]);
|
|
238
238
|
|
|
239
|
+
// Wrapper for importIdentity to handle legacy calls gracefully
|
|
240
|
+
const importIdentity = (0, _react.useCallback)(async (backupData, password) => {
|
|
241
|
+
// Handle legacy calls with single string argument (old recovery phrase signature)
|
|
242
|
+
if (typeof backupData === 'string') {
|
|
243
|
+
throw new Error('Recovery phrase import is no longer supported. Please use backup file import or QR code transfer instead.');
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// Validate that password is provided
|
|
247
|
+
if (!password || typeof password !== 'string') {
|
|
248
|
+
throw new Error('Password is required for backup file import.');
|
|
249
|
+
}
|
|
250
|
+
return importIdentityBase(backupData, password);
|
|
251
|
+
}, [importIdentityBase]);
|
|
252
|
+
|
|
239
253
|
// Clear all account data when identity is lost (for accounts app)
|
|
240
254
|
// In accounts app, identity = account, so losing identity means losing everything
|
|
241
255
|
const clearAllAccountData = (0, _react.useCallback)(async () => {
|
|
@@ -281,7 +295,7 @@ const OxyProvider = ({
|
|
|
281
295
|
await clearAllAccountData();
|
|
282
296
|
|
|
283
297
|
// Then delete the identity keys
|
|
284
|
-
await
|
|
298
|
+
await _crypto.KeyManager.deleteIdentity(skipBackup, force, userConfirmed);
|
|
285
299
|
}, [clearAllAccountData]);
|
|
286
300
|
|
|
287
301
|
// Network reconnect sync - TanStack Query automatically retries mutations on reconnect
|
|
@@ -506,6 +520,34 @@ const OxyProvider = ({
|
|
|
506
520
|
_sonner.toast.info('You have been signed out remotely.');
|
|
507
521
|
logout().catch(remoteError => logger('Failed to process remote sign out', remoteError));
|
|
508
522
|
}, [logger, logout]);
|
|
523
|
+
const handleIdentityTransferComplete = (0, _react.useCallback)(async data => {
|
|
524
|
+
// Show confirmation dialog asking if user wants to delete identity from this device
|
|
525
|
+
return new Promise(resolve => {
|
|
526
|
+
_reactNative.Alert.alert('Identity Transfer Complete', 'Your identity has been successfully transferred to another device. Would you like to remove it from this device?', [{
|
|
527
|
+
text: 'Keep on This Device',
|
|
528
|
+
style: 'cancel',
|
|
529
|
+
onPress: () => resolve()
|
|
530
|
+
}, {
|
|
531
|
+
text: 'Remove from This Device',
|
|
532
|
+
style: 'destructive',
|
|
533
|
+
onPress: async () => {
|
|
534
|
+
try {
|
|
535
|
+
// Delete identity with user confirmation
|
|
536
|
+
await deleteIdentityAndClearAccount(false, false, true);
|
|
537
|
+
_sonner.toast.success('Identity removed from this device');
|
|
538
|
+
} catch (error) {
|
|
539
|
+
logger('Failed to delete identity after transfer', error);
|
|
540
|
+
_sonner.toast.error(error?.message || 'Failed to remove identity from this device');
|
|
541
|
+
} finally {
|
|
542
|
+
resolve();
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}], {
|
|
546
|
+
cancelable: true,
|
|
547
|
+
onDismiss: () => resolve()
|
|
548
|
+
});
|
|
549
|
+
});
|
|
550
|
+
}, [deleteIdentityAndClearAccount, logger]);
|
|
509
551
|
(0, _useSessionSocket.useSessionSocket)({
|
|
510
552
|
userId,
|
|
511
553
|
activeSessionId,
|
|
@@ -515,7 +557,8 @@ const OxyProvider = ({
|
|
|
515
557
|
clearSessionState,
|
|
516
558
|
baseURL: oxyServices.getBaseURL(),
|
|
517
559
|
onRemoteSignOut: handleRemoteSignOut,
|
|
518
|
-
onSessionRemoved: handleSessionRemoved
|
|
560
|
+
onSessionRemoved: handleSessionRemoved,
|
|
561
|
+
onIdentityTransferComplete: handleIdentityTransferComplete
|
|
519
562
|
});
|
|
520
563
|
const switchSessionForContext = (0, _react.useCallback)(async sessionId => {
|
|
521
564
|
await switchSession(sessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_core","_sonner","_authStore","_shallow","_useSessionSocket","_useStorage","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_errorHandlers","_bottomSheetManager","_reactQuery","_queryClient","_keyManager","_i18n","_avatarUtils","_accountStore","_loggerUtils","_jsxRuntime","OxyContext","createContext","cachedUseFollowHook","loadUseFollowHook","useFollow","error","__DEV__","loggerUtil","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","user","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","useAuthStore","useShallow","state","logout","isIdentitySynced","tokenReady","setTokenReady","useState","initializedRef","setAuthState","setState","logger","useCallback","message","err","console","storageKeys","useMemo","getStorageKeys","storage","isReady","isStorageReady","useStorage","useEffect","Platform","OS","checkAndRestoreIdentity","hasIdentity","KeyManager","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","useLanguageManagement","languageKey","language","queryClient","useQueryClient","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","useSessionManagement","setAuthError","createIdentity","importIdentity","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","useAuthOperations","clearAllAccountData","clear","clearQueryCache","removeItem","getState","useAccountStore","reset","clearCache","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","deleteIdentity","wasOffline","checkTimeout","stateRef","consecutiveFailures","currentInterval","baseInterval","maxInterval","maxFailures","scheduleNextCheck","clearTimeout","setTimeout","checkNetworkAndSync","healthCheck","catch","hasIdentityValue","syncStatus","getItem","syncError","code","debug","isTimeoutOrNetworkError","backoffMultiplier","Math","min","pow","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","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","isInvalidSessionError","merge","switchError","filter","session","String","activeSession","find","undefined","currentDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","toast","info","remoteError","useSessionSocket","getBaseURL","onRemoteSignOut","onSessionRemoved","switchSessionForContext","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","openAvatarPicker","screen","props","selectMode","multiSelect","disabledMimeTypes","afterSelect","onSelect","file","contentType","startsWith","translate","updateAvatarVisibility","updateProfileWithAvatar","avatar","success","e","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","showBottomSheet","jsx","Provider","value","exports","OxyContextProvider","useOxy","context","useContext","_default","default"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_core","_sonner","_authStore","_shallow","_useSessionSocket","_useStorage","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_errorHandlers","_bottomSheetManager","_reactQuery","_queryClient","_crypto","_i18n","_avatarUtils","_accountStore","_loggerUtils","_jsxRuntime","OxyContext","createContext","cachedUseFollowHook","loadUseFollowHook","useFollow","error","__DEV__","loggerUtil","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","user","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","useAuthStore","useShallow","state","logout","isIdentitySynced","tokenReady","setTokenReady","useState","initializedRef","setAuthState","setState","logger","useCallback","message","err","console","storageKeys","useMemo","getStorageKeys","storage","isReady","isStorageReady","useStorage","useEffect","Platform","OS","checkAndRestoreIdentity","hasIdentity","KeyManager","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","useLanguageManagement","languageKey","language","queryClient","useQueryClient","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","useSessionManagement","setAuthError","createIdentity","importIdentity","importIdentityBase","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","useAuthOperations","backupData","password","clearAllAccountData","clear","clearQueryCache","removeItem","getState","useAccountStore","reset","clearCache","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","deleteIdentity","wasOffline","checkTimeout","stateRef","consecutiveFailures","currentInterval","baseInterval","maxInterval","maxFailures","scheduleNextCheck","clearTimeout","setTimeout","checkNetworkAndSync","healthCheck","catch","hasIdentityValue","syncStatus","getItem","syncError","code","debug","isTimeoutOrNetworkError","backoffMultiplier","Math","min","pow","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","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","isInvalidSessionError","merge","switchError","filter","session","String","activeSession","find","undefined","currentDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","toast","info","remoteError","handleIdentityTransferComplete","data","Promise","resolve","Alert","alert","text","style","onPress","success","cancelable","onDismiss","useSessionSocket","getBaseURL","onRemoteSignOut","onSessionRemoved","onIdentityTransferComplete","switchSessionForContext","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","openAvatarPicker","screen","props","selectMode","multiSelect","disabledMimeTypes","afterSelect","onSelect","file","contentType","startsWith","translate","updateAvatarVisibility","updateProfileWithAvatar","avatar","e","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","showBottomSheet","jsx","Provider","value","exports","OxyContextProvider","useOxy","context","useContext","_default","default"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ var _deviceManager = require("../../../utils/deviceManager");
|
|
|
9
9
|
var _sessionHelpers = require("../../utils/sessionHelpers");
|
|
10
10
|
var _errorHandlers = require("../../utils/errorHandlers");
|
|
11
11
|
var _crypto = require("../../../crypto");
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
13
|
const LOGIN_ERROR_CODE = 'LOGIN_ERROR';
|
|
13
14
|
const REGISTER_ERROR_CODE = 'REGISTER_ERROR';
|
|
14
15
|
const LOGOUT_ERROR_CODE = 'LOGOUT_ERROR';
|
|
@@ -194,7 +195,7 @@ const useAuthOperations = ({
|
|
|
194
195
|
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions, storage]);
|
|
195
196
|
|
|
196
197
|
/**
|
|
197
|
-
* Create a new identity
|
|
198
|
+
* Create a new identity (offline-first)
|
|
198
199
|
* Identity is purely cryptographic - no username or email required
|
|
199
200
|
*/
|
|
200
201
|
const createIdentity = (0, _react.useCallback)(async () => {
|
|
@@ -204,12 +205,12 @@ const useAuthOperations = ({
|
|
|
204
205
|
error: null
|
|
205
206
|
});
|
|
206
207
|
try {
|
|
207
|
-
// Generate new
|
|
208
|
+
// Generate new key pair directly (works offline)
|
|
208
209
|
const {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
publicKey,
|
|
211
|
+
privateKey
|
|
212
|
+
} = await _crypto.KeyManager.generateKeyPair();
|
|
213
|
+
await _crypto.KeyManager.importKeyPair(privateKey);
|
|
213
214
|
|
|
214
215
|
// Mark as not synced
|
|
215
216
|
await storage.setItem('oxy_identity_synced', 'false');
|
|
@@ -227,7 +228,6 @@ const useAuthOperations = ({
|
|
|
227
228
|
await storage.setItem('oxy_identity_synced', 'true');
|
|
228
229
|
setIdentitySynced(true);
|
|
229
230
|
return {
|
|
230
|
-
recoveryPhrase: words,
|
|
231
231
|
synced: true
|
|
232
232
|
};
|
|
233
233
|
} catch (syncError) {
|
|
@@ -236,13 +236,12 @@ const useAuthOperations = ({
|
|
|
236
236
|
console.log('[Auth] Identity created locally, will sync when online:', syncError);
|
|
237
237
|
}
|
|
238
238
|
return {
|
|
239
|
-
recoveryPhrase: words,
|
|
240
239
|
synced: false
|
|
241
240
|
};
|
|
242
241
|
}
|
|
243
242
|
} catch (error) {
|
|
244
243
|
// CRITICAL: Never delete identity on error - it may have been successfully created
|
|
245
|
-
// Only log the error and let the user recover using their
|
|
244
|
+
// Only log the error and let the user recover using their backup file
|
|
246
245
|
// Identity deletion should ONLY happen when explicitly requested by the user
|
|
247
246
|
if (__DEV__ && logger) {
|
|
248
247
|
logger('Error during identity creation (identity may still exist):', error);
|
|
@@ -255,7 +254,7 @@ const useAuthOperations = ({
|
|
|
255
254
|
await storage.setItem('oxy_identity_synced', 'false').catch(() => {});
|
|
256
255
|
setIdentitySynced(false);
|
|
257
256
|
if (__DEV__ && logger) {
|
|
258
|
-
logger('Identity was created but sync failed - user can sync later using
|
|
257
|
+
logger('Identity was created but sync failed - user can sync later using backup file');
|
|
259
258
|
}
|
|
260
259
|
} else {
|
|
261
260
|
// No identity exists - this was a generation failure, safe to clean up sync flag
|
|
@@ -366,17 +365,59 @@ const useAuthOperations = ({
|
|
|
366
365
|
}, [oxyServices, storage, setAuthState, performSignIn, loginFailure, onError, logger, setSyncing, setIdentitySynced]);
|
|
367
366
|
|
|
368
367
|
/**
|
|
369
|
-
* Import identity from
|
|
368
|
+
* Import identity from backup file data (offline-first)
|
|
370
369
|
*/
|
|
371
|
-
const importIdentity = (0, _react.useCallback)(async
|
|
370
|
+
const importIdentity = (0, _react.useCallback)(async (backupData, password) => {
|
|
372
371
|
if (!storage) throw new Error('Storage not initialized');
|
|
372
|
+
|
|
373
|
+
// Validate arguments - ensure backupData is an object, not a string (old signature)
|
|
374
|
+
if (!backupData || typeof backupData !== 'object' || Array.isArray(backupData)) {
|
|
375
|
+
throw new Error('Invalid backup data. Please use the backup file import feature.');
|
|
376
|
+
}
|
|
377
|
+
if (!backupData.encrypted || !backupData.salt || !backupData.iv || !backupData.publicKey) {
|
|
378
|
+
throw new Error('Invalid backup data structure. Missing required fields.');
|
|
379
|
+
}
|
|
380
|
+
if (!password || typeof password !== 'string') {
|
|
381
|
+
throw new Error('Password is required for backup file import.');
|
|
382
|
+
}
|
|
373
383
|
setAuthState({
|
|
374
384
|
isLoading: true,
|
|
375
385
|
error: null
|
|
376
386
|
});
|
|
377
387
|
try {
|
|
378
|
-
//
|
|
379
|
-
const
|
|
388
|
+
// Decrypt private key from backup data
|
|
389
|
+
const Crypto = await Promise.resolve().then(() => _interopRequireWildcard(require('expo-crypto')));
|
|
390
|
+
|
|
391
|
+
// Convert hex strings to Uint8Array
|
|
392
|
+
const saltBytes = new Uint8Array(backupData.salt.match(/.{1,2}/g)?.map(byte => parseInt(byte, 16)) || []);
|
|
393
|
+
const ivBytes = new Uint8Array(backupData.iv.match(/.{1,2}/g)?.map(byte => parseInt(byte, 16)) || []);
|
|
394
|
+
|
|
395
|
+
// Derive key from password (same algorithm as EncryptedBackupGenerator)
|
|
396
|
+
const saltHex = Array.from(saltBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
397
|
+
let key = password + saltHex;
|
|
398
|
+
for (let i = 0; i < 10000; i++) {
|
|
399
|
+
key = await Crypto.digestStringAsync(Crypto.CryptoDigestAlgorithm.SHA256, key);
|
|
400
|
+
}
|
|
401
|
+
const keyBytes = new Uint8Array(32);
|
|
402
|
+
for (let i = 0; i < 64 && i < key.length; i += 2) {
|
|
403
|
+
keyBytes[i / 2] = parseInt(key.substring(i, i + 2), 16);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// Decrypt private key (XOR decryption - same as encryption)
|
|
407
|
+
const encryptedBytes = Buffer.from(backupData.encrypted, 'base64');
|
|
408
|
+
const decryptedBytes = new Uint8Array(encryptedBytes.length);
|
|
409
|
+
for (let i = 0; i < encryptedBytes.length; i++) {
|
|
410
|
+
decryptedBytes[i] = encryptedBytes[i] ^ keyBytes[i % keyBytes.length] ^ ivBytes[i % ivBytes.length];
|
|
411
|
+
}
|
|
412
|
+
const privateKey = new TextDecoder().decode(decryptedBytes);
|
|
413
|
+
|
|
414
|
+
// Import the key pair
|
|
415
|
+
const publicKey = await _crypto.KeyManager.importKeyPair(privateKey);
|
|
416
|
+
|
|
417
|
+
// Verify public key matches
|
|
418
|
+
if (publicKey !== backupData.publicKey) {
|
|
419
|
+
throw new Error('Backup file is corrupted or password is incorrect');
|
|
420
|
+
}
|
|
380
421
|
|
|
381
422
|
// Mark as not synced
|
|
382
423
|
await storage.setItem('oxy_identity_synced', 'false');
|
|
@@ -419,7 +460,7 @@ const useAuthOperations = ({
|
|
|
419
460
|
}
|
|
420
461
|
} catch (error) {
|
|
421
462
|
const message = (0, _errorHandlers.handleAuthError)(error, {
|
|
422
|
-
defaultMessage: 'Failed to import identity',
|
|
463
|
+
defaultMessage: 'Failed to import identity. Please check your password and backup file.',
|
|
423
464
|
code: REGISTER_ERROR_CODE,
|
|
424
465
|
onError,
|
|
425
466
|
setAuthError: msg => setAuthState({
|