@oxyhq/services 5.16.0 → 5.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/core/mixins/OxyServices.assets.js +15 -0
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.user.js +14 -13
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +164 -3
- package/lib/commonjs/crypto/keyManager.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +26 -0
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +71 -24
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +1 -4
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +177 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +148 -49
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js +22 -2
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/index.js +28 -0
- package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +314 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +193 -0
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/index.js +39 -0
- package/lib/commonjs/ui/hooks/queries/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +85 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +145 -0
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +138 -0
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/queryClient.js +117 -0
- package/lib/commonjs/ui/hooks/queryClient.js.map +1 -0
- package/lib/commonjs/ui/hooks/useIdentityMutations.js +111 -0
- package/lib/commonjs/ui/hooks/useIdentityMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +42 -58
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useQueryClient.js +20 -0
- package/lib/commonjs/ui/hooks/useQueryClient.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js +22 -2
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +43 -42
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +63 -58
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/accountStore.js +57 -42
- package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +4 -25
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.assets.js +15 -0
- package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.user.js +14 -13
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/crypto/keyManager.js +164 -3
- package/lib/module/crypto/keyManager.js.map +1 -1
- package/lib/module/crypto/signatureService.js +26 -0
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/GroupedSection.js +1 -1
- package/lib/module/ui/components/GroupedSection.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +72 -25
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/profile/EditDisplayNameModal.js +1 -4
- package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +176 -4
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +148 -49
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/hooks/useSessionManagement.js +22 -2
- package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/hooks/mutations/index.js +6 -0
- package/lib/module/ui/hooks/mutations/index.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +308 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useServicesMutations.js +185 -0
- package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -0
- package/lib/module/ui/hooks/queries/index.js +7 -0
- package/lib/module/ui/hooks/queries/index.js.map +1 -0
- package/lib/module/ui/hooks/queries/queryKeys.js +78 -0
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js +136 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -0
- package/lib/module/ui/hooks/queries/useServicesQueries.js +130 -0
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -0
- package/lib/module/ui/hooks/queryClient.js +110 -0
- package/lib/module/ui/hooks/queryClient.js.map +1 -0
- package/lib/module/ui/hooks/useIdentityMutations.js +105 -0
- package/lib/module/ui/hooks/useIdentityMutations.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +43 -59
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useQueryClient.js +15 -0
- package/lib/module/ui/hooks/useQueryClient.js.map +1 -0
- package/lib/module/ui/hooks/useSessionManagement.js +22 -2
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +43 -42
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +63 -58
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/stores/accountStore.js +57 -42
- package/lib/module/ui/stores/accountStore.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +4 -25
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts +7 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +1 -1
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts +19 -2
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +5 -0
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +21 -0
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +4 -0
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +3 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/index.d.ts +3 -0
- package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +25 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +23 -0
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/index.d.ts +4 -0
- package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +56 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +41 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts +34 -0
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queryClient.d.ts +19 -0
- package/lib/typescript/ui/hooks/queryClient.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts +29 -0
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useQueryClient.d.ts +7 -0
- package/lib/typescript/ui/hooks/useQueryClient.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +3 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +0 -4
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/core/mixins/OxyServices.assets.ts +16 -1
- package/src/core/mixins/OxyServices.user.ts +17 -10
- package/src/crypto/keyManager.ts +177 -2
- package/src/crypto/signatureService.ts +30 -0
- package/src/index.ts +4 -1
- package/src/models/interfaces.ts +23 -0
- package/src/ui/components/GroupedSection.tsx +1 -1
- package/src/ui/components/OxyProvider.tsx +91 -37
- package/src/ui/components/profile/EditDisplayNameModal.tsx +1 -3
- package/src/ui/context/OxyContext.tsx +185 -2
- package/src/ui/context/hooks/useAuthOperations.ts +171 -58
- package/src/ui/context/hooks/useSessionManagement.ts +24 -1
- package/src/ui/hooks/mutations/index.ts +4 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +277 -0
- package/src/ui/hooks/mutations/useServicesMutations.ts +164 -0
- package/src/ui/hooks/queries/index.ts +5 -0
- package/src/ui/hooks/queries/queryKeys.ts +73 -0
- package/src/ui/hooks/queries/useAccountQueries.ts +126 -0
- package/src/ui/hooks/queries/useServicesQueries.ts +121 -0
- package/src/ui/hooks/queryClient.ts +112 -0
- package/src/ui/hooks/useIdentityMutations.ts +115 -0
- package/src/ui/hooks/useProfileEditing.ts +46 -60
- package/src/ui/hooks/useQueryClient.ts +17 -0
- package/src/ui/hooks/useSessionManagement.ts +24 -1
- package/src/ui/screens/AccountOverviewScreen.tsx +38 -46
- package/src/ui/screens/AccountSettingsScreen.tsx +54 -54
- package/src/ui/screens/WelcomeNewUserScreen.tsx +13 -12
- package/src/ui/stores/accountStore.ts +54 -43
- package/src/ui/stores/authStore.ts +3 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ec","EC","SecureStore","ExpoCrypto","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","initSecureStore","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Crypto","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","error","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","getPublicKey","hasIdentity","deleteIdentity","deleteItemAsync","
|
|
1
|
+
{"version":3,"names":["ec","EC","SecureStore","ExpoCrypto","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","BACKUP_PRIVATE_KEY","BACKUP_PUBLIC_KEY","BACKUP_TIMESTAMP","initSecureStore","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","getSecureRandomBytes","length","Crypto","getRandomBytes","getCrypto","Function","crypto","Uint8Array","randomBytes","error","KeyManager","generateKeyPairSync","keyPair","genKeyPair","privateKey","getPrivate","publicKey","getPublic","generateKeyPair","privateKeyHex","keyFromPrivate","createIdentity","store","setItemAsync","keychainAccessible","WHEN_UNLOCKED_THIS_DEVICE_ONLY","importKeyPair","getPrivateKey","getItemAsync","getPublicKey","hasIdentity","deleteIdentity","skipBackup","force","userConfirmed","Error","backupSuccess","backupIdentity","__DEV__","console","warn","backupError","deleteItemAsync","Date","now","verifyIdentityIntegrity","isValidPrivateKey","isValidPublicKey","derivedPublicKey","derivePublicKey","getKeyPairObject","restoreIdentityFromBackup","backupPrivateKey","backupPublicKey","restored","keyFromPublic","shortenPublicKey","slice"],"sourceRoot":"../../../src","sources":["crypto/keyManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -63,6 +63,32 @@ async function sha256(message) {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
export class SignatureService {
|
|
66
|
+
/**
|
|
67
|
+
* Generate a random challenge string (for offline use)
|
|
68
|
+
* Uses expo-crypto in React Native, crypto.randomBytes in Node.js
|
|
69
|
+
*/
|
|
70
|
+
static async generateChallenge() {
|
|
71
|
+
if (isReactNative() || !isNodeJS()) {
|
|
72
|
+
// Use expo-crypto for React Native (expo-random is deprecated)
|
|
73
|
+
const Crypto = await initExpoCrypto();
|
|
74
|
+
const randomBytes = await Crypto.getRandomBytesAsync(32);
|
|
75
|
+
return Array.from(randomBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Node.js fallback
|
|
79
|
+
try {
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
81
|
+
const getCrypto = new Function('return require("crypto")');
|
|
82
|
+
const crypto = getCrypto();
|
|
83
|
+
return crypto.randomBytes(32).toString('hex');
|
|
84
|
+
} catch (error) {
|
|
85
|
+
// Fallback to expo-crypto if Node crypto fails
|
|
86
|
+
const Crypto = await initExpoCrypto();
|
|
87
|
+
const randomBytes = await Crypto.getRandomBytesAsync(32);
|
|
88
|
+
return Array.from(randomBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
66
92
|
/**
|
|
67
93
|
* Hash a message using SHA-256
|
|
68
94
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ec","EC","KeyManager","ExpoCrypto","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","getCrypto","Function","crypto","createHash","update","digest","error","SignatureService","hashMessage","sign","keyPair","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","key","keyFromPublic","verifySync","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","signRequestData","data","sortedKeys","Object","keys","sort","canonicalParts","
|
|
1
|
+
{"version":3,"names":["ec","EC","KeyManager","ExpoCrypto","isReactNative","navigator","product","isNodeJS","process","versions","node","initExpoCrypto","sha256","message","Crypto","digestStringAsync","CryptoDigestAlgorithm","SHA256","getCrypto","Function","crypto","createHash","update","digest","error","SignatureService","generateChallenge","randomBytes","getRandomBytesAsync","Array","from","map","b","toString","padStart","join","hashMessage","sign","keyPair","getKeyPairObject","Error","messageHash","signature","toDER","signWithKey","privateKey","keyFromPrivate","verify","publicKey","key","keyFromPublic","verifySync","createSignedMessage","getPublicKey","timestamp","Date","now","messageWithTimestamp","verifySignedMessage","signedMessage","maxAgeMs","signChallenge","challenge","verifyChallengeResponse","originalChallenge","response","createRegistrationSignature","signRequestData","data","sortedKeys","Object","keys","sort","canonicalParts","JSON","stringify","canonicalString"],"sourceRoot":"../../../src","sources":["crypto/signatureService.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KeyManager","SignatureService","RecoveryPhraseService","OxyServices","OxyAuthenticationError","OxyAuthenticationTimeoutError","OXY_CLOUD_URL","oxyClient","OxyContextProvider","useOxy","default","OxyProvider","DeviceManager","SUPPORTED_LANGUAGES","getLanguageMetadata","getLanguageName","getNativeLanguageName","normalizeLanguageCode","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","setOxyFileUrlInstance","OxySignInButton","OxyLogo","FollowButton","ErrorCodes","createApiError","handleHttpError","validateRequiredFields","retryWithBackoff","logger","LogLevel","LogContext","logAuth","logApi","logSession","logUser","logDevice","logPayment","logPerformance"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,mBAAmB;;AAE1B;AACA,SACEA,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,QAChB,UAAU;;AAEjB;AACA,SAASC,WAAW,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,QAAQ;AAC3F,SAASC,aAAa,EAAEC,SAAS,QAAQ,QAAQ;AAQjD;AACA,SACEC,kBAAkB;AAAE;AACpBC,MAAM,QACD,yBAAyB;;AAEhC;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,6BAA6B;;AAEpE;AACA,SAASC,aAAa,QAAQ,uBAAuB;AAGrD;AACA,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,EACfC,qBAAqB,EACrBC,qBAAqB,QAChB,uBAAuB;;AAG9B;;
|
|
1
|
+
{"version":3,"names":["KeyManager","SignatureService","RecoveryPhraseService","OxyServices","OxyAuthenticationError","OxyAuthenticationTimeoutError","OXY_CLOUD_URL","oxyClient","OxyContextProvider","useOxy","default","OxyProvider","DeviceManager","SUPPORTED_LANGUAGES","getLanguageMetadata","getLanguageName","getNativeLanguageName","normalizeLanguageCode","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","setOxyFileUrlInstance","OxySignInButton","OxyLogo","FollowButton","ErrorCodes","createApiError","handleHttpError","validateRequiredFields","retryWithBackoff","logger","LogLevel","LogContext","logAuth","logApi","logSession","logUser","logDevice","logPayment","logPerformance"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,mBAAmB;;AAE1B;AACA,SACEA,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,QAChB,UAAU;;AAEjB;AACA,SAASC,WAAW,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,QAAQ;AAC3F,SAASC,aAAa,EAAEC,SAAS,QAAQ,QAAQ;AAQjD;AACA,SACEC,kBAAkB;AAAE;AACpBC,MAAM,QACD,yBAAyB;;AAEhC;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,6BAA6B;;AAEpE;AACA,SAASC,aAAa,QAAQ,uBAAuB;AAGrD;AACA,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,EACfC,qBAAqB,EACrBC,qBAAqB,QAChB,uBAAuB;;AAG9B;;AA8DA;AACA,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,aAAa,EAAEC,SAAS,IAAIC,cAAc,EAAEC,QAAQ,EAAEC,iBAAiB,EAAEC,eAAe,EAAEC,cAAc,EAAEC,cAAc,EAAEC,iBAAiB,EAAEC,kBAAkB,EAAEC,gBAAgB,QAAQ,wBAAwB;AAC1N,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASV,SAAS,EAAEW,mBAAmB,QAAQ,sBAAsB;AACrE,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,+BAA+B;;AAEzF;AACA,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,OAAO,EAAEC,YAAY,QAAQ,MAAM;;AAE5C;AACA,cAAc,kBAAkB;AAChC,SACEC,UAAU,EACVC,cAAc,EACdC,eAAe,EACfC,sBAAsB,EACtBC,gBAAgB,QACX,oBAAoB;AAC3B,cAAc,yBAAyB;AACvC,SACEC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,UAAU,EACVC,cAAc,QACT,qBAAqB;AAC5B,cAAc,oBAAoB;AAClC,cAAc,mBAAmB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","View","GroupedItem","jsx","_jsx","GroupedSectionComponent","items","style","width","children","map","item","index","marginBottom","length","icon","iconColor","title","subtitle","onPress","isFirst","isLast","showChevron","disabled","customContent","customIcon","id","displayName","GroupedSection"],"sourceRoot":"../../../../src","sources":["ui/components/GroupedSection.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,WAAW,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAuB5C,MAAMC,uBAAuB,GAAGA,CAAC;EAAEC;AAA2B,CAAC,KAAK;EAChE,oBACIF,IAAA,CAACH,IAAI;IAACM,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAO,CAAE;IAAAC,QAAA,EAC1BH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACnBR,IAAA,CAACH,IAAI;
|
|
1
|
+
{"version":3,"names":["React","memo","View","GroupedItem","jsx","_jsx","GroupedSectionComponent","items","style","width","children","map","item","index","marginBottom","length","icon","iconColor","title","subtitle","onPress","isFirst","isLast","showChevron","disabled","customContent","customIcon","id","displayName","GroupedSection"],"sourceRoot":"../../../../src","sources":["ui/components/GroupedSection.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,WAAW,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAuB5C,MAAMC,uBAAuB,GAAGA,CAAC;EAAEC;AAA2B,CAAC,KAAK;EAChE,oBACIF,IAAA,CAACH,IAAI;IAACM,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAO,CAAE;IAAAC,QAAA,EAC1BH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACnBR,IAAA,CAACH,IAAI;MAA6BM,KAAK,EAAE;QAAEM,YAAY,EAAED,KAAK,GAAGN,KAAK,CAACQ,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG;MAAE,CAAE;MAAAL,QAAA,eACxFL,IAAA,CAACF,WAAW;QACRa,IAAI,EAAEJ,IAAI,CAACI,IAAK;QAChBC,SAAS,EAAEL,IAAI,CAACK,SAAU;QAC1BC,KAAK,EAAEN,IAAI,CAACM,KAAM;QAClBC,QAAQ,EAAEP,IAAI,CAACO,QAAS;QACxBC,OAAO,EAAER,IAAI,CAACQ,OAAQ;QACtBC,OAAO,EAAER,KAAK,KAAK,CAAE;QACrBS,MAAM,EAAET,KAAK,KAAKN,KAAK,CAACQ,MAAM,GAAG,CAAE;QACnCQ,WAAW,EAAEX,IAAI,CAACW,WAAY;QAC9BC,QAAQ,EAAEZ,IAAI,CAACY,QAAS;QACxBC,aAAa,EAAEb,IAAI,CAACa,aAAc;QAClCC,UAAU,EAAEd,IAAI,CAACc;MAAW,CAC/B;IAAC,GAbK,GAAGd,IAAI,CAACe,EAAE,IAAId,KAAK,EAcxB,CACT;EAAC,CACA,CAAC;AAEf,CAAC;AAEDP,uBAAuB,CAACsB,WAAW,GAAG,gBAAgB;AAEtD,OAAO,MAAMC,cAAc,gBAAG5B,IAAI,CAACK,uBAAuB,CAAC;AAE3D,eAAeuB,cAAc","ignoreList":[]}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { AppState } from 'react-native';
|
|
5
5
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
6
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
7
7
|
import { KeyboardProvider } from 'react-native-keyboard-controller';
|
|
8
8
|
import { OxyContextProvider } from '../context/OxyContext';
|
|
9
|
-
import {
|
|
9
|
+
import { QueryClientProvider, focusManager, onlineManager } from '@tanstack/react-query';
|
|
10
10
|
import { setupFonts } from './FontLoader';
|
|
11
11
|
import BottomSheetRouter from './BottomSheetRouter';
|
|
12
12
|
import { Toaster } from '../../lib/sonner';
|
|
13
|
+
import { createQueryClient } from '../hooks/queryClient';
|
|
14
|
+
import { useStorage } from '../hooks/useStorage';
|
|
13
15
|
|
|
14
16
|
// Initialize fonts automatically
|
|
15
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -28,31 +30,34 @@ const OxyProvider = ({
|
|
|
28
30
|
onAuthStateChange,
|
|
29
31
|
storageKeyPrefix,
|
|
30
32
|
baseURL,
|
|
31
|
-
queryClient
|
|
33
|
+
queryClient: providedQueryClient
|
|
32
34
|
}) => {
|
|
33
35
|
// contextOnly is retained for backwards compatibility while the UI-only
|
|
34
36
|
// bottom sheet experience is removed. At the moment both modes behave the same.
|
|
35
37
|
void contextOnly;
|
|
36
38
|
|
|
37
|
-
//
|
|
39
|
+
// Get storage for query persistence
|
|
40
|
+
const {
|
|
41
|
+
storage,
|
|
42
|
+
isReady: isStorageReady
|
|
43
|
+
} = useStorage();
|
|
44
|
+
|
|
45
|
+
// Initialize React Query Client with persistence
|
|
38
46
|
const queryClientRef = useRef(null);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
retry: 1
|
|
51
|
-
}
|
|
47
|
+
const [queryClient, setQueryClient] = useState(null);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (providedQueryClient) {
|
|
50
|
+
queryClientRef.current = providedQueryClient;
|
|
51
|
+
setQueryClient(providedQueryClient);
|
|
52
|
+
} else if (isStorageReady) {
|
|
53
|
+
// Create query client with persistence once storage is ready
|
|
54
|
+
if (!queryClientRef.current) {
|
|
55
|
+
const client = createQueryClient(storage);
|
|
56
|
+
queryClientRef.current = client;
|
|
57
|
+
setQueryClient(client);
|
|
52
58
|
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}
|
|
59
|
+
}
|
|
60
|
+
}, [providedQueryClient, isStorageReady, storage]);
|
|
56
61
|
|
|
57
62
|
// Hook React Query focus manager into React Native AppState
|
|
58
63
|
useEffect(() => {
|
|
@@ -64,10 +69,52 @@ const OxyProvider = ({
|
|
|
64
69
|
};
|
|
65
70
|
}, []);
|
|
66
71
|
|
|
72
|
+
// Setup network status monitoring for offline detection
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
let cleanup;
|
|
75
|
+
const setupNetworkMonitoring = async () => {
|
|
76
|
+
try {
|
|
77
|
+
// For React Native, try to use NetInfo
|
|
78
|
+
if (typeof window === 'undefined' || typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
|
|
79
|
+
try {
|
|
80
|
+
const NetInfo = await import('@react-native-community/netinfo');
|
|
81
|
+
const state = await NetInfo.default.fetch();
|
|
82
|
+
onlineManager.setOnline(state.isConnected ?? true);
|
|
83
|
+
const unsubscribe = NetInfo.default.addEventListener(state => {
|
|
84
|
+
onlineManager.setOnline(state.isConnected ?? true);
|
|
85
|
+
});
|
|
86
|
+
cleanup = () => unsubscribe();
|
|
87
|
+
} catch {
|
|
88
|
+
// NetInfo not available, default to online
|
|
89
|
+
onlineManager.setOnline(true);
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
// For web, use navigator.onLine
|
|
93
|
+
onlineManager.setOnline(navigator.onLine);
|
|
94
|
+
const handleOnline = () => onlineManager.setOnline(true);
|
|
95
|
+
const handleOffline = () => onlineManager.setOnline(false);
|
|
96
|
+
window.addEventListener('online', handleOnline);
|
|
97
|
+
window.addEventListener('offline', handleOffline);
|
|
98
|
+
cleanup = () => {
|
|
99
|
+
window.removeEventListener('online', handleOnline);
|
|
100
|
+
window.removeEventListener('offline', handleOffline);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
} catch (error) {
|
|
104
|
+
// Default to online if detection fails
|
|
105
|
+
onlineManager.setOnline(true);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
setupNetworkMonitoring();
|
|
109
|
+
return () => {
|
|
110
|
+
cleanup?.();
|
|
111
|
+
};
|
|
112
|
+
}, []);
|
|
113
|
+
|
|
67
114
|
// Ensure we have a valid QueryClient
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
115
|
+
if (!queryClient) {
|
|
116
|
+
// Return loading state or fallback
|
|
117
|
+
return null;
|
|
71
118
|
}
|
|
72
119
|
return /*#__PURE__*/_jsx(SafeAreaProvider, {
|
|
73
120
|
children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
@@ -75,8 +122,8 @@ const OxyProvider = ({
|
|
|
75
122
|
flex: 1
|
|
76
123
|
},
|
|
77
124
|
children: /*#__PURE__*/_jsx(KeyboardProvider, {
|
|
78
|
-
children: /*#__PURE__*/_jsx(QueryClientProvider, {
|
|
79
|
-
client:
|
|
125
|
+
children: queryClient && /*#__PURE__*/_jsx(QueryClientProvider, {
|
|
126
|
+
client: queryClient,
|
|
80
127
|
children: /*#__PURE__*/_jsxs(OxyContextProvider, {
|
|
81
128
|
oxyServices: oxyServices,
|
|
82
129
|
baseURL: baseURL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","AppState","GestureHandlerRootView","SafeAreaProvider","KeyboardProvider","OxyContextProvider","
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","AppState","GestureHandlerRootView","SafeAreaProvider","KeyboardProvider","OxyContextProvider","QueryClientProvider","focusManager","onlineManager","setupFonts","BottomSheetRouter","Toaster","createQueryClient","useStorage","jsx","_jsx","jsxs","_jsxs","OxyProvider","oxyServices","children","contextOnly","onAuthStateChange","storageKeyPrefix","baseURL","queryClient","providedQueryClient","storage","isReady","isStorageReady","queryClientRef","setQueryClient","current","client","subscription","addEventListener","state","setFocused","remove","cleanup","setupNetworkMonitoring","window","navigator","product","NetInfo","default","fetch","setOnline","isConnected","unsubscribe","onLine","handleOnline","handleOffline","removeEventListener","error","style","flex"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,7 +24,7 @@ export const EditDisplayNameModal = ({
|
|
|
24
24
|
const themeStyles = useThemeStyles(theme || 'light', colorScheme);
|
|
25
25
|
const colors = themeStyles.colors;
|
|
26
26
|
const {
|
|
27
|
-
|
|
27
|
+
saveProfile,
|
|
28
28
|
isSaving
|
|
29
29
|
} = useProfileEditing();
|
|
30
30
|
const [displayName, setDisplayName] = useState(initialDisplayName);
|
|
@@ -35,9 +35,6 @@ export const EditDisplayNameModal = ({
|
|
|
35
35
|
setLastName(initialLastName);
|
|
36
36
|
}
|
|
37
37
|
}, [visible, initialDisplayName, initialLastName]);
|
|
38
|
-
const {
|
|
39
|
-
saveProfile
|
|
40
|
-
} = useProfileEditing();
|
|
41
38
|
const handleSave = async () => {
|
|
42
39
|
const updates = {
|
|
43
40
|
displayName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","View","Text","TextInput","TouchableOpacity","StyleSheet","Modal","Platform","Ionicons","useThemeStyles","useColorScheme","useI18n","fontFamilies","useProfileEditing","jsx","_jsx","jsxs","_jsxs","EditDisplayNameModal","visible","onClose","initialDisplayName","initialLastName","theme","onSave","t","colorScheme","themeStyles","colors","
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","View","Text","TextInput","TouchableOpacity","StyleSheet","Modal","Platform","Ionicons","useThemeStyles","useColorScheme","useI18n","fontFamilies","useProfileEditing","jsx","_jsx","jsxs","_jsxs","EditDisplayNameModal","visible","onClose","initialDisplayName","initialLastName","theme","onSave","t","colorScheme","themeStyles","colors","saveProfile","isSaving","displayName","setDisplayName","lastName","setLastName","handleSave","updates","success","animationType","transparent","onRequestClose","children","style","styles","modalOverlay","modalContent","backgroundColor","background","modalHeader","onPress","closeButton","name","size","color","text","modalTitle","disabled","saveButton","opacity","saveButtonText","tint","modalBody","inputGroup","label","input","card","borderColor","border","value","onChangeText","placeholder","placeholderTextColor","secondaryText","autoFocus","selectionColor","create","flex","justifyContent","borderTopLeftRadius","borderTopRightRadius","paddingTop","OS","maxHeight","flexDirection","alignItems","paddingHorizontal","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","width","height","fontSize","fontWeight","fontFamily","phuduSemiBold","textAlign","paddingVertical","padding","gap","borderWidth","borderRadius","minHeight"],"sourceRoot":"../../../../../src","sources":["ui/components/profile/EditDisplayNameModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,9 @@ import { useDeviceManagement } from '../hooks/useDeviceManagement';
|
|
|
14
14
|
import { getStorageKeys } from '../utils/storageHelpers';
|
|
15
15
|
import { isInvalidSessionError } from '../utils/errorHandlers';
|
|
16
16
|
import { showBottomSheet as globalShowBottomSheet } from '../navigation/bottomSheetManager';
|
|
17
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
18
|
+
import { clearQueryCache } from '../hooks/queryClient';
|
|
19
|
+
import { useAccountStore } from '../stores/accountStore';
|
|
17
20
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
21
|
const OxyContext = /*#__PURE__*/createContext(null);
|
|
19
22
|
let cachedUseFollowHook = null;
|
|
@@ -97,11 +100,61 @@ export const OxyProvider = ({
|
|
|
97
100
|
}, []);
|
|
98
101
|
const storageKeys = useMemo(() => getStorageKeys(storageKeyPrefix), [storageKeyPrefix]);
|
|
99
102
|
const {
|
|
100
|
-
storage
|
|
103
|
+
storage,
|
|
104
|
+
isReady: isStorageReady
|
|
101
105
|
} = useStorage({
|
|
102
106
|
onError,
|
|
103
107
|
logger
|
|
104
108
|
});
|
|
109
|
+
|
|
110
|
+
// Identity integrity check and auto-restore on startup
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
if (!storage || !isStorageReady) return;
|
|
113
|
+
const checkAndRestoreIdentity = async () => {
|
|
114
|
+
try {
|
|
115
|
+
const {
|
|
116
|
+
KeyManager
|
|
117
|
+
} = await import('../../crypto/index.js');
|
|
118
|
+
// Check if identity exists and verify integrity
|
|
119
|
+
const hasIdentity = await KeyManager.hasIdentity();
|
|
120
|
+
if (hasIdentity) {
|
|
121
|
+
const isValid = await KeyManager.verifyIdentityIntegrity();
|
|
122
|
+
if (!isValid) {
|
|
123
|
+
// Try to restore from backup
|
|
124
|
+
const restored = await KeyManager.restoreIdentityFromBackup();
|
|
125
|
+
if (restored) {
|
|
126
|
+
if (__DEV__) {
|
|
127
|
+
logger('Identity restored from backup successfully');
|
|
128
|
+
}
|
|
129
|
+
} else {
|
|
130
|
+
if (__DEV__) {
|
|
131
|
+
logger('Identity integrity check failed - user may need to restore from recovery phrase');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
} else {
|
|
135
|
+
// Identity is valid - ensure backup is up to date
|
|
136
|
+
await KeyManager.backupIdentity();
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
// No identity - try to restore from backup
|
|
140
|
+
const restored = await KeyManager.restoreIdentityFromBackup();
|
|
141
|
+
if (restored && __DEV__) {
|
|
142
|
+
logger('Identity restored from backup on startup');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
} catch (error) {
|
|
146
|
+
if (__DEV__) {
|
|
147
|
+
logger('Error during identity integrity check', error);
|
|
148
|
+
}
|
|
149
|
+
// Don't block app startup - user can recover with recovery phrase
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
checkAndRestoreIdentity();
|
|
153
|
+
}, [storage, isStorageReady, logger]);
|
|
154
|
+
|
|
155
|
+
// Offline queuing is now handled by TanStack Query mutations
|
|
156
|
+
// No need for custom offline queue
|
|
157
|
+
|
|
105
158
|
const {
|
|
106
159
|
currentLanguage,
|
|
107
160
|
metadata: currentLanguageMetadata,
|
|
@@ -115,6 +168,7 @@ export const OxyProvider = ({
|
|
|
115
168
|
onError,
|
|
116
169
|
logger
|
|
117
170
|
});
|
|
171
|
+
const queryClient = useQueryClient();
|
|
118
172
|
const {
|
|
119
173
|
sessions,
|
|
120
174
|
activeSessionId,
|
|
@@ -138,7 +192,8 @@ export const OxyProvider = ({
|
|
|
138
192
|
error: message
|
|
139
193
|
}),
|
|
140
194
|
logger,
|
|
141
|
-
setTokenReady
|
|
195
|
+
setTokenReady,
|
|
196
|
+
queryClient
|
|
142
197
|
});
|
|
143
198
|
const {
|
|
144
199
|
createIdentity,
|
|
@@ -149,7 +204,7 @@ export const OxyProvider = ({
|
|
|
149
204
|
hasIdentity,
|
|
150
205
|
getPublicKey,
|
|
151
206
|
isIdentitySynced,
|
|
152
|
-
syncIdentity
|
|
207
|
+
syncIdentity: syncIdentityBase
|
|
153
208
|
} = useAuthOperations({
|
|
154
209
|
oxyServices,
|
|
155
210
|
storage,
|
|
@@ -171,6 +226,119 @@ export const OxyProvider = ({
|
|
|
171
226
|
setSyncing,
|
|
172
227
|
logger
|
|
173
228
|
});
|
|
229
|
+
|
|
230
|
+
// syncIdentity - TanStack Query handles offline mutations automatically
|
|
231
|
+
const syncIdentity = useCallback(async () => {
|
|
232
|
+
return await syncIdentityBase();
|
|
233
|
+
}, [syncIdentityBase]);
|
|
234
|
+
|
|
235
|
+
// Clear all account data when identity is lost (for accounts app)
|
|
236
|
+
// In accounts app, identity = account, so losing identity means losing everything
|
|
237
|
+
const clearAllAccountData = useCallback(async () => {
|
|
238
|
+
// Clear TanStack Query cache (in-memory)
|
|
239
|
+
queryClient.clear();
|
|
240
|
+
|
|
241
|
+
// Clear persisted query cache
|
|
242
|
+
if (storage) {
|
|
243
|
+
try {
|
|
244
|
+
await clearQueryCache(storage);
|
|
245
|
+
} catch (error) {
|
|
246
|
+
if (logger) {
|
|
247
|
+
logger('Failed to clear persisted query cache', error);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// Clear session state (sessions, activeSessionId, storage)
|
|
253
|
+
await clearSessionState();
|
|
254
|
+
|
|
255
|
+
// Clear identity sync state from storage
|
|
256
|
+
if (storage) {
|
|
257
|
+
try {
|
|
258
|
+
await storage.removeItem('oxy_identity_synced');
|
|
259
|
+
} catch (error) {
|
|
260
|
+
if (logger) {
|
|
261
|
+
logger('Failed to clear identity sync state', error);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Reset auth store identity sync state
|
|
267
|
+
useAuthStore.getState().setIdentitySynced(false);
|
|
268
|
+
useAuthStore.getState().setSyncing(false);
|
|
269
|
+
|
|
270
|
+
// Reset account store
|
|
271
|
+
useAccountStore.getState().reset();
|
|
272
|
+
|
|
273
|
+
// Clear HTTP service cache
|
|
274
|
+
oxyServices.clearCache();
|
|
275
|
+
}, [queryClient, storage, clearSessionState, logger, oxyServices]);
|
|
276
|
+
|
|
277
|
+
// Delete identity and clear all account data
|
|
278
|
+
// In accounts app, deleting identity means losing the account completely
|
|
279
|
+
const deleteIdentityAndClearAccount = useCallback(async (skipBackup = false, force = false, userConfirmed = false) => {
|
|
280
|
+
// First, clear all account data
|
|
281
|
+
await clearAllAccountData();
|
|
282
|
+
|
|
283
|
+
// Then delete the identity keys
|
|
284
|
+
const {
|
|
285
|
+
KeyManager
|
|
286
|
+
} = await import('../../crypto/keyManager.js');
|
|
287
|
+
await KeyManager.deleteIdentity(skipBackup, force, userConfirmed);
|
|
288
|
+
}, [clearAllAccountData]);
|
|
289
|
+
|
|
290
|
+
// Network reconnect sync - TanStack Query automatically retries mutations on reconnect
|
|
291
|
+
// We only need to sync identity if it's not synced
|
|
292
|
+
useEffect(() => {
|
|
293
|
+
if (!storage) return;
|
|
294
|
+
let wasOffline = false;
|
|
295
|
+
let checkInterval = null;
|
|
296
|
+
const checkNetworkAndSync = async () => {
|
|
297
|
+
try {
|
|
298
|
+
// Try a lightweight health check to see if we're online
|
|
299
|
+
await oxyServices.healthCheck().catch(() => {
|
|
300
|
+
wasOffline = true;
|
|
301
|
+
return;
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
// If we were offline and now we're online, sync identity if needed
|
|
305
|
+
if (wasOffline) {
|
|
306
|
+
if (__DEV__ && logger) {
|
|
307
|
+
logger('Network reconnected, checking identity sync...');
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Sync identity first (if not synced)
|
|
311
|
+
try {
|
|
312
|
+
const isSynced = await storage.getItem('oxy_identity_synced');
|
|
313
|
+
if (isSynced === 'false') {
|
|
314
|
+
await syncIdentity();
|
|
315
|
+
}
|
|
316
|
+
} catch (syncError) {
|
|
317
|
+
if (__DEV__ && logger) {
|
|
318
|
+
logger('Error syncing identity on reconnect', syncError);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// TanStack Query will automatically retry pending mutations
|
|
323
|
+
wasOffline = false;
|
|
324
|
+
}
|
|
325
|
+
} catch (error) {
|
|
326
|
+
// Network check failed - we're offline
|
|
327
|
+
wasOffline = true;
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
// Check immediately
|
|
332
|
+
checkNetworkAndSync();
|
|
333
|
+
|
|
334
|
+
// Check periodically (every 10 seconds when app is active)
|
|
335
|
+
checkInterval = setInterval(checkNetworkAndSync, 10000);
|
|
336
|
+
return () => {
|
|
337
|
+
if (checkInterval) {
|
|
338
|
+
clearInterval(checkInterval);
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
}, [oxyServices, storage, syncIdentity, logger]);
|
|
174
342
|
const {
|
|
175
343
|
getDeviceSessions,
|
|
176
344
|
logoutAllDeviceSessions,
|
|
@@ -287,6 +455,7 @@ export const OxyProvider = ({
|
|
|
287
455
|
isAuthenticated,
|
|
288
456
|
isLoading,
|
|
289
457
|
isTokenReady: tokenReady,
|
|
458
|
+
isStorageReady,
|
|
290
459
|
error,
|
|
291
460
|
currentLanguage,
|
|
292
461
|
currentLanguageMetadata,
|
|
@@ -299,6 +468,7 @@ export const OxyProvider = ({
|
|
|
299
468
|
getPublicKey,
|
|
300
469
|
isIdentitySynced,
|
|
301
470
|
syncIdentity,
|
|
471
|
+
deleteIdentityAndClearAccount,
|
|
302
472
|
identitySyncState: {
|
|
303
473
|
isSynced: isIdentitySyncedStore ?? true,
|
|
304
474
|
isSyncing: isSyncing ?? false
|
|
@@ -312,10 +482,12 @@ export const OxyProvider = ({
|
|
|
312
482
|
getDeviceSessions,
|
|
313
483
|
logoutAllDeviceSessions,
|
|
314
484
|
updateDeviceName,
|
|
485
|
+
clearSessionState,
|
|
486
|
+
clearAllAccountData,
|
|
315
487
|
oxyServices,
|
|
316
488
|
useFollow: useFollowHook,
|
|
317
489
|
showBottomSheet: showBottomSheetForContext
|
|
318
|
-
}), [activeSessionId, createIdentity, importIdentity, signIn, hasIdentity, getPublicKey, isIdentitySynced, syncIdentity, isIdentitySyncedStore, isSyncing, currentLanguage, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, error, getDeviceSessions, isAuthenticated, isLoading, logout, logoutAll, logoutAllDeviceSessions, oxyServices, refreshSessionsWithUser, sessions, setLanguage, switchSessionForContext, tokenReady, updateDeviceName, useFollowHook, user, showBottomSheetForContext]);
|
|
490
|
+
}), [activeSessionId, createIdentity, importIdentity, signIn, hasIdentity, getPublicKey, isIdentitySynced, syncIdentity, deleteIdentityAndClearAccount, isIdentitySyncedStore, isSyncing, currentLanguage, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, error, getDeviceSessions, isAuthenticated, isLoading, logout, logoutAll, logoutAllDeviceSessions, oxyServices, refreshSessionsWithUser, sessions, setLanguage, switchSessionForContext, tokenReady, isStorageReady, updateDeviceName, clearAllAccountData, useFollowHook, user, showBottomSheetForContext]);
|
|
319
491
|
return /*#__PURE__*/_jsx(OxyContext.Provider, {
|
|
320
492
|
value: contextValue,
|
|
321
493
|
children: children
|