@ethora/chat-component-rn 26.6.12 → 26.7.1
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/CHANGELOG.md +12 -0
- package/README.md +2 -2
- package/lib/commonjs/components/AuthForms/Login.js +4 -4
- package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +4 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +14 -13
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LoginWrapper.js +2 -1
- package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +17 -6
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +9 -8
- package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +8 -7
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +2 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +2 -1
- package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
- package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +7 -21
- package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +5 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +10 -2
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +4 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +4 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/commonjs/components/styled/AudioMessage.js +2 -1
- package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
- package/lib/commonjs/components/styled/MessageImage.js +34 -8
- package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
- package/lib/commonjs/components/styled/VideoMessage.js +7 -1
- package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +46 -21
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
- package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
- package/lib/commonjs/helpers/initXmppRooms.js +5 -1
- package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
- package/lib/commonjs/helpers/persistCrypto.js +122 -0
- package/lib/commonjs/helpers/persistCrypto.js.map +1 -0
- package/lib/commonjs/helpers/pickImageAsset.js +68 -0
- package/lib/commonjs/helpers/pickImageAsset.js.map +1 -0
- package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +130 -17
- package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
- package/lib/commonjs/helpers/secureFileUrl.js +101 -0
- package/lib/commonjs/helpers/secureFileUrl.js.map +1 -0
- package/lib/commonjs/helpers/secureKeyValue.js +83 -0
- package/lib/commonjs/helpers/secureKeyValue.js.map +1 -0
- package/lib/commonjs/helpers/secureStoreRuntime.js +59 -0
- package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -0
- package/lib/commonjs/helpers/secureUserStorage.js +75 -0
- package/lib/commonjs/helpers/secureUserStorage.js.map +1 -0
- package/lib/commonjs/hooks/useChatWrapperInit.js +3 -3
- package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/commonjs/hooks/useFileToken.js +10 -0
- package/lib/commonjs/hooks/useFileToken.js.map +1 -0
- package/lib/commonjs/hooks/useLogout.js +15 -7
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +23 -13
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/main.js +25 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/auth.api.js +99 -54
- package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
- package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/user.api.js +9 -9
- package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
- package/lib/commonjs/networking/apiClient.js +62 -112
- package/lib/commonjs/networking/apiClient.js.map +1 -1
- package/lib/commonjs/networking/authRefresh.js +322 -0
- package/lib/commonjs/networking/authRefresh.js.map +1 -0
- package/lib/commonjs/networking/xmppClient.js +33 -5
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/chatSettingsSlice.js +23 -6
- package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +29 -15
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +2 -0
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/components/AuthForms/Login.js +4 -4
- package/lib/module/components/AuthForms/Login.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +4 -1
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +14 -13
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/LoginWrapper.js +2 -1
- package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +17 -6
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +9 -8
- package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +8 -7
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js +2 -1
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -1
- package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
- package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +9 -23
- package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +5 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js +10 -2
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +4 -1
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +4 -1
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/module/components/styled/AudioMessage.js +2 -1
- package/lib/module/components/styled/AudioMessage.js.map +1 -1
- package/lib/module/components/styled/MessageImage.js +34 -8
- package/lib/module/components/styled/MessageImage.js.map +1 -1
- package/lib/module/components/styled/VideoMessage.js +7 -1
- package/lib/module/components/styled/VideoMessage.js.map +1 -1
- package/lib/module/context/xmppProvider.js +45 -21
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/ensureScopedChatCache.js +2 -2
- package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
- package/lib/module/helpers/initXmppRooms.js +5 -1
- package/lib/module/helpers/initXmppRooms.js.map +1 -1
- package/lib/module/helpers/persistCrypto.js +115 -0
- package/lib/module/helpers/persistCrypto.js.map +1 -0
- package/lib/module/helpers/pickImageAsset.js +63 -0
- package/lib/module/helpers/pickImageAsset.js.map +1 -0
- package/lib/module/helpers/resolveInitBeforeLoadUser.js +130 -16
- package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
- package/lib/module/helpers/secureFileUrl.js +91 -0
- package/lib/module/helpers/secureFileUrl.js.map +1 -0
- package/lib/module/helpers/secureKeyValue.js +75 -0
- package/lib/module/helpers/secureKeyValue.js.map +1 -0
- package/lib/module/helpers/secureStoreRuntime.js +52 -0
- package/lib/module/helpers/secureStoreRuntime.js.map +1 -0
- package/lib/module/helpers/secureUserStorage.js +72 -0
- package/lib/module/helpers/secureUserStorage.js.map +1 -0
- package/lib/module/hooks/useChatWrapperInit.js +3 -3
- package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/module/hooks/useFileToken.js +5 -0
- package/lib/module/hooks/useFileToken.js.map +1 -0
- package/lib/module/hooks/useLogout.js +15 -7
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +24 -14
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/main.js +12 -1
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/auth.api.js +96 -53
- package/lib/module/networking/api-requests/auth.api.js.map +1 -1
- package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
- package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +9 -9
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/api-requests/user.api.js +8 -7
- package/lib/module/networking/api-requests/user.api.js.map +1 -1
- package/lib/module/networking/apiClient.js +61 -113
- package/lib/module/networking/apiClient.js.map +1 -1
- package/lib/module/networking/authRefresh.js +311 -0
- package/lib/module/networking/authRefresh.js.map +1 -0
- package/lib/module/networking/xmppClient.js +33 -5
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/chatSettingsSlice.js +23 -6
- package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/module/roomStore/persistence.js +30 -15
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +2 -0
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +4 -2
- package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
- package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/styled/MessageImage.d.ts +8 -0
- package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
- package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
- package/lib/typescript/helpers/persistCrypto.d.ts +13 -0
- package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -0
- package/lib/typescript/helpers/pickImageAsset.d.ts +27 -0
- package/lib/typescript/helpers/pickImageAsset.d.ts.map +1 -0
- package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
- package/lib/typescript/helpers/secureFileUrl.d.ts +7 -0
- package/lib/typescript/helpers/secureFileUrl.d.ts.map +1 -0
- package/lib/typescript/helpers/secureKeyValue.d.ts +13 -0
- package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -0
- package/lib/typescript/helpers/secureStoreRuntime.d.ts +29 -0
- package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -0
- package/lib/typescript/helpers/secureUserStorage.d.ts +23 -0
- package/lib/typescript/helpers/secureUserStorage.d.ts.map +1 -0
- package/lib/typescript/hooks/useFileToken.d.ts +2 -0
- package/lib/typescript/hooks/useFileToken.d.ts.map +1 -0
- package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +6 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -27
- package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
- package/lib/typescript/networking/apiClient.d.ts +12 -6
- package/lib/typescript/networking/apiClient.d.ts.map +1 -1
- package/lib/typescript/networking/authRefresh.d.ts +92 -0
- package/lib/typescript/networking/authRefresh.d.ts.map +1 -0
- package/lib/typescript/networking/xmppClient.d.ts +6 -0
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts +16 -0
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +17 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/package.json +8 -1
- package/src/components/AuthForms/Login.tsx +3 -3
- package/src/components/MainComponents/ChatHeader.tsx +4 -1
- package/src/components/MainComponents/ChatWrapper.tsx +14 -19
- package/src/components/MainComponents/LoginWrapper.tsx +1 -0
- package/src/components/MainComponents/MediaMessage.tsx +14 -4
- package/src/components/MainComponents/ProfileImagePlaceholder.tsx +16 -9
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +4 -1
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +8 -7
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +2 -1
- package/src/components/Modals/NewChatModal/ModalContent.tsx +6 -3
- package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +12 -1
- package/src/components/Modals/UserProfileModal/EditUserModal.tsx +9 -25
- package/src/components/RoomComponents/ChatRoomItem.tsx +9 -1
- package/src/components/RoomComponents/styled/LastMessageFile.tsx +14 -2
- package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +4 -1
- package/src/components/RoomComponents/styled/LastMessageVideo.tsx +4 -1
- package/src/components/styled/AudioMessage.tsx +2 -1
- package/src/components/styled/MessageImage.tsx +45 -6
- package/src/components/styled/VideoMessage.tsx +10 -1
- package/src/context/xmppProvider.tsx +47 -23
- package/src/helpers/ensureScopedChatCache.ts +2 -2
- package/src/helpers/initXmppRooms.tsx +5 -1
- package/src/helpers/persistCrypto.ts +127 -0
- package/src/helpers/pickImageAsset.ts +68 -0
- package/src/helpers/resolveInitBeforeLoadUser.ts +125 -18
- package/src/helpers/secureFileUrl.ts +103 -0
- package/src/helpers/secureKeyValue.ts +80 -0
- package/src/helpers/secureStoreRuntime.ts +62 -0
- package/src/helpers/secureUserStorage.ts +80 -0
- package/src/hooks/useChatWrapperInit.ts +3 -3
- package/src/hooks/useFileToken.ts +7 -0
- package/src/hooks/useLogout.tsx +15 -9
- package/src/hooks/useSendMessage.tsx +28 -13
- package/src/main.ts +22 -1
- package/src/networking/api-requests/auth.api.ts +125 -52
- package/src/networking/api-requests/roomMembers.api.ts +1 -1
- package/src/networking/api-requests/rooms.api.ts +9 -9
- package/src/networking/api-requests/user.api.ts +8 -7
- package/src/networking/apiClient.ts +68 -123
- package/src/networking/authRefresh.ts +430 -0
- package/src/networking/xmppClient.ts +37 -5
- package/src/roomStore/chatSettingsSlice.ts +31 -9
- package/src/roomStore/persistence.ts +39 -19
- package/src/roomStore/roomsSlice.ts +2 -0
- package/src/types/types.ts +17 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
+
import { loadSecureStore } from './secureStoreRuntime';
|
|
5
|
+
import { pushLog } from '../utils/devLogger';
|
|
6
|
+
|
|
7
|
+
// Fallback keys are prefixed and namespaced away from every other
|
|
8
|
+
// AsyncStorage key this SDK writes, so a host that never installs
|
|
9
|
+
// expo-secure-store can still be told apart from one that used to lack
|
|
10
|
+
// it and has since added it (see `secureSet`'s stale-fallback cleanup).
|
|
11
|
+
const FALLBACK_PREFIX = '@ethora/secure-fallback:';
|
|
12
|
+
let warnedFallback = false;
|
|
13
|
+
const warnFallbackOnce = () => {
|
|
14
|
+
if (warnedFallback) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
warnedFallback = true;
|
|
18
|
+
pushLog('warn', 'expo-secure-store is not installed — auth tokens, the XMPP ' + 'password, and the message-history cipher key are falling back ' + 'to plain AsyncStorage instead of the platform Keychain/Keystore. ' + 'Add the optional peer dependency `expo-secure-store` to your app ' + 'to store them securely.');
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Small-value secure KV store: platform Keychain/Keystore via
|
|
23
|
+
* expo-secure-store when the host has it installed, plain (but still
|
|
24
|
+
* namespaced) AsyncStorage otherwise. NOT for bulk data — see
|
|
25
|
+
* `persistCrypto.ts`'s size note on why message history goes through
|
|
26
|
+
* AES instead of straight into this store.
|
|
27
|
+
*/
|
|
28
|
+
export async function secureGet(key) {
|
|
29
|
+
const store = loadSecureStore();
|
|
30
|
+
if (store) {
|
|
31
|
+
try {
|
|
32
|
+
return await store.getItemAsync(key);
|
|
33
|
+
} catch (e) {
|
|
34
|
+
pushLog('warn', `secureStore: getItemAsync(${key}) failed`, e);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
warnFallbackOnce();
|
|
39
|
+
return AsyncStorage.getItem(FALLBACK_PREFIX + key);
|
|
40
|
+
}
|
|
41
|
+
export async function secureSet(key, value) {
|
|
42
|
+
const store = loadSecureStore();
|
|
43
|
+
if (store) {
|
|
44
|
+
try {
|
|
45
|
+
await store.setItemAsync(key, value);
|
|
46
|
+
// Clean up a stale plaintext fallback copy from before this host
|
|
47
|
+
// added expo-secure-store — otherwise it sits on disk forever.
|
|
48
|
+
AsyncStorage.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
|
|
49
|
+
return;
|
|
50
|
+
} catch (e) {
|
|
51
|
+
pushLog('warn', `secureStore: setItemAsync(${key}) failed`, e);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
warnFallbackOnce();
|
|
56
|
+
await AsyncStorage.setItem(FALLBACK_PREFIX + key, value);
|
|
57
|
+
}
|
|
58
|
+
export async function secureRemove(key) {
|
|
59
|
+
const store = loadSecureStore();
|
|
60
|
+
if (store) {
|
|
61
|
+
try {
|
|
62
|
+
await store.deleteItemAsync(key);
|
|
63
|
+
} catch {
|
|
64
|
+
// Key may simply not exist — deleteItemAsync throwing here isn't
|
|
65
|
+
// actionable either way.
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
await AsyncStorage.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Test seam only. */
|
|
72
|
+
export const __resetSecureKeyValueWarningForTests = () => {
|
|
73
|
+
warnedFallback = false;
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=secureKeyValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AsyncStorage","loadSecureStore","pushLog","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","secureGet","key","store","getItemAsync","e","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","__resetSecureKeyValueWarningForTests"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG,0BAA0B;AAElD,IAAIC,cAAc,GAAG,KAAK;AAC1B,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,IAAID,cAAc,EAAE;IAAC;EAAO;EAC5BA,cAAc,GAAG,IAAI;EACrBF,OAAO,CACL,MAAM,EACN,6DAA6D,GAC3D,gEAAgE,GAChE,mEAAmE,GACnE,mEAAmE,GACnE,yBACJ,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeI,SAASA,CAACC,GAAW,EAA0B;EACnE,MAAMC,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,OAAO,MAAMA,KAAK,CAACC,YAAY,CAACF,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVR,OAAO,CAAC,MAAM,EAAE,6BAA6BK,GAAG,UAAU,EAAEG,CAAC,CAAC;MAC9D,OAAO,IAAI;IACb;EACF;EACAL,gBAAgB,CAAC,CAAC;EAClB,OAAOL,YAAY,CAACW,OAAO,CAACR,eAAe,GAAGI,GAAG,CAAC;AACpD;AAEA,OAAO,eAAeK,SAASA,CAACL,GAAW,EAAEM,KAAa,EAAiB;EACzE,MAAML,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACM,YAAY,CAACP,GAAG,EAAEM,KAAK,CAAC;MACpC;MACA;MACAb,YAAY,CAACe,UAAU,CAACZ,eAAe,GAAGI,GAAG,CAAC,CAACS,KAAK,CAAC,MAAMC,SAAS,CAAC;MACrE;IACF,CAAC,CAAC,OAAOP,CAAC,EAAE;MACVR,OAAO,CAAC,MAAM,EAAE,6BAA6BK,GAAG,UAAU,EAAEG,CAAC,CAAC;MAC9D;IACF;EACF;EACAL,gBAAgB,CAAC,CAAC;EAClB,MAAML,YAAY,CAACkB,OAAO,CAACf,eAAe,GAAGI,GAAG,EAAEM,KAAK,CAAC;AAC1D;AAEA,OAAO,eAAeM,YAAYA,CAACZ,GAAW,EAAiB;EAC7D,MAAMC,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACY,eAAe,CAACb,GAAG,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IAAA;EAEJ;EACA,MAAMP,YAAY,CAACe,UAAU,CAACZ,eAAe,GAAGI,GAAG,CAAC,CAACS,KAAK,CAAC,MAAMC,SAAS,CAAC;AAC7E;;AAEA;AACA,OAAO,MAAMI,oCAAoC,GAAGA,CAAA,KAAY;EAC9DjB,cAAc,GAAG,KAAK;AACxB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Optional-dependency bridge for `expo-secure-store` — the Keychain
|
|
5
|
+
* (iOS) / Keystore-backed EncryptedSharedPreferences (Android) API.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors `components/VideoCalls/livekitRuntime.ts`: a plain top-level
|
|
8
|
+
* `import ... from 'expo-secure-store'` is not allowed anywhere in the
|
|
9
|
+
* SDK, since Metro resolves imports at bundle time and a host that
|
|
10
|
+
* hasn't added this optional peer dependency would fail to build over
|
|
11
|
+
* a feature it never opted into. Everything goes through
|
|
12
|
+
* `loadSecureStore()`, which requires the module lazily and returns
|
|
13
|
+
* null when it isn't installed — callers fall back to plain
|
|
14
|
+
* AsyncStorage rather than crash (see `secureKeyValue.ts`).
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
let cached;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the SecureStore runtime, or null when the optional native
|
|
21
|
+
* package isn't installed in the host app. Result is memoised
|
|
22
|
+
* (including the failure) so a missing dependency doesn't re-throw on
|
|
23
|
+
* every read/write.
|
|
24
|
+
*/
|
|
25
|
+
export const loadSecureStore = () => {
|
|
26
|
+
if (cached !== undefined) {
|
|
27
|
+
return cached;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
31
|
+
const mod = require('expo-secure-store');
|
|
32
|
+
if (typeof mod?.getItemAsync !== 'function' || typeof mod?.setItemAsync !== 'function' || typeof mod?.deleteItemAsync !== 'function') {
|
|
33
|
+
cached = null;
|
|
34
|
+
} else {
|
|
35
|
+
cached = {
|
|
36
|
+
getItemAsync: mod.getItemAsync,
|
|
37
|
+
setItemAsync: mod.setItemAsync,
|
|
38
|
+
deleteItemAsync: mod.deleteItemAsync
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
} catch {
|
|
42
|
+
cached = null;
|
|
43
|
+
}
|
|
44
|
+
return cached;
|
|
45
|
+
};
|
|
46
|
+
export const isSecureStoreAvailable = () => loadSecureStore() !== null;
|
|
47
|
+
|
|
48
|
+
/** Test seam only. */
|
|
49
|
+
export const __resetSecureStoreRuntimeForTests = () => {
|
|
50
|
+
cached = undefined;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=secureStoreRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cached","loadSecureStore","undefined","mod","require","getItemAsync","setItemAsync","deleteItemAsync","isSecureStoreAvailable","__resetSecureStoreRuntimeForTests"],"sourceRoot":"../../../src","sources":["helpers/secureStoreRuntime.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,IAAIA,MAA6C;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAiC;EAC9D,IAAID,MAAM,KAAKE,SAAS,EAAE;IACxB,OAAOF,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMG,GAAG,GAAGC,OAAO,CAAC,mBAAmB,CAAC;IACxC,IACE,OAAOD,GAAG,EAAEE,YAAY,KAAK,UAAU,IACvC,OAAOF,GAAG,EAAEG,YAAY,KAAK,UAAU,IACvC,OAAOH,GAAG,EAAEI,eAAe,KAAK,UAAU,EAC1C;MACAP,MAAM,GAAG,IAAI;IACf,CAAC,MAAM;MACLA,MAAM,GAAG;QACPK,YAAY,EAAEF,GAAG,CAACE,YAAY;QAC9BC,YAAY,EAAEH,GAAG,CAACG,YAAY;QAC9BC,eAAe,EAAEJ,GAAG,CAACI;MACvB,CAAC;IACH;EACF,CAAC,CAAC,MAAM;IACNP,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAED,OAAO,MAAMQ,sBAAsB,GAAGA,CAAA,KAAeP,eAAe,CAAC,CAAC,KAAK,IAAI;;AAE/E;AACA,OAAO,MAAMQ,iCAAiC,GAAGA,CAAA,KAAY;EAC3DT,MAAM,GAAGE,SAAS;AACpB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { asyncLocalStorage } from '../hooks/useLocalStorage';
|
|
4
|
+
import { localStorageConstants } from './constants/LOCAL_STORAGE';
|
|
5
|
+
import { secureGet, secureSet, secureRemove } from './secureKeyValue';
|
|
6
|
+
|
|
7
|
+
// Keychain (iOS) / Keystore-backed EncryptedSharedPreferences (Android)
|
|
8
|
+
// keys for the four live bearer credentials on `User`. Deliberately one
|
|
9
|
+
// key per field rather than one JSON blob: expo-secure-store historically
|
|
10
|
+
// caps a single value's size on Android, and four short JWTs each stay
|
|
11
|
+
// comfortably under that ceiling where one combined blob might not.
|
|
12
|
+
const SECRET_KEYS = {
|
|
13
|
+
token: 'ethora_auth_token',
|
|
14
|
+
refreshToken: 'ethora_auth_refresh_token',
|
|
15
|
+
xmppPassword: 'ethora_auth_xmpp_password',
|
|
16
|
+
fileToken: 'ethora_auth_file_token'
|
|
17
|
+
};
|
|
18
|
+
const SECRET_FIELDS = Object.keys(SECRET_KEYS);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Persisted-user storage, split across two backends behind the exact
|
|
22
|
+
* same `{ get, set, remove }` shape `asyncLocalStorage<User>(...)`
|
|
23
|
+
* already exposed — every existing call site swaps in by changing only
|
|
24
|
+
* the constructor call, `get()`/`set()`/`remove()` keep returning/taking
|
|
25
|
+
* a complete `User`.
|
|
26
|
+
*
|
|
27
|
+
* The four live credentials (REST access + refresh token, XMPP
|
|
28
|
+
* password, secure-media fileToken) never touch plain AsyncStorage:
|
|
29
|
+
* they go through `secureGet`/`secureSet`/`secureRemove` (platform
|
|
30
|
+
* Keychain/Keystore, falling back to namespaced AsyncStorage only when
|
|
31
|
+
* the host hasn't installed the optional `expo-secure-store` peer dep).
|
|
32
|
+
* Everything else on `User` — name, avatar, ids, xmppUsername, wallet
|
|
33
|
+
* address, none of it a bearer credential — keeps living under the
|
|
34
|
+
* existing `ETHORA_USER` AsyncStorage key, unchanged.
|
|
35
|
+
*/
|
|
36
|
+
export function secureUserStorage() {
|
|
37
|
+
const get = async () => {
|
|
38
|
+
const profile = await asyncLocalStorage(localStorageConstants.ETHORA_USER).get();
|
|
39
|
+
if (!profile) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const secretValues = await Promise.all(SECRET_FIELDS.map(field => secureGet(SECRET_KEYS[field])));
|
|
43
|
+
const merged = {
|
|
44
|
+
...profile
|
|
45
|
+
};
|
|
46
|
+
SECRET_FIELDS.forEach((field, i) => {
|
|
47
|
+
merged[field] = secretValues[i] || '';
|
|
48
|
+
});
|
|
49
|
+
return merged;
|
|
50
|
+
};
|
|
51
|
+
const set = async user => {
|
|
52
|
+
const profile = {
|
|
53
|
+
...user
|
|
54
|
+
};
|
|
55
|
+
for (const field of SECRET_FIELDS) {
|
|
56
|
+
profile[field] = '';
|
|
57
|
+
}
|
|
58
|
+
await Promise.all([asyncLocalStorage(localStorageConstants.ETHORA_USER).set(profile), ...SECRET_FIELDS.map(field => {
|
|
59
|
+
const value = user?.[field];
|
|
60
|
+
return value ? secureSet(SECRET_KEYS[field], value) : secureRemove(SECRET_KEYS[field]);
|
|
61
|
+
})]);
|
|
62
|
+
};
|
|
63
|
+
const remove = async () => {
|
|
64
|
+
await Promise.all([asyncLocalStorage(localStorageConstants.ETHORA_USER).remove(), ...SECRET_FIELDS.map(field => secureRemove(SECRET_KEYS[field]))]);
|
|
65
|
+
};
|
|
66
|
+
return {
|
|
67
|
+
get,
|
|
68
|
+
set,
|
|
69
|
+
remove
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=secureUserStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["asyncLocalStorage","localStorageConstants","secureGet","secureSet","secureRemove","SECRET_KEYS","token","refreshToken","xmppPassword","fileToken","SECRET_FIELDS","Object","keys","secureUserStorage","get","profile","ETHORA_USER","secretValues","Promise","all","map","field","merged","forEach","i","set","user","value","remove"],"sourceRoot":"../../../src","sources":["helpers/secureUserStorage.ts"],"mappings":";;AACA,SAASA,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,qBAAqB,QAAQ,2BAA2B;AACjE,SAASC,SAAS,EAAEC,SAAS,EAAEC,YAAY,QAAQ,kBAAkB;;AAErE;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClBC,KAAK,EAAE,mBAAmB;EAC1BC,YAAY,EAAE,2BAA2B;EACzCC,YAAY,EAAE,2BAA2B;EACzCC,SAAS,EAAE;AACb,CAAU;AAGV,MAAMC,aAAa,GAAGC,MAAM,CAACC,IAAI,CAACP,WAAW,CAAkB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAkC;IAC5C,MAAMC,OAAO,GAAG,MAAMf,iBAAiB,CACrCC,qBAAqB,CAACe,WACxB,CAAC,CAACF,GAAG,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,EAAE;MAAC,OAAO,IAAI;IAAC;IAE3B,MAAME,YAAY,GAAG,MAAMC,OAAO,CAACC,GAAG,CACpCT,aAAa,CAACU,GAAG,CAAEC,KAAK,IAAKnB,SAAS,CAACG,WAAW,CAACgB,KAAK,CAAC,CAAC,CAC5D,CAAC;IAED,MAAMC,MAAY,GAAG;MAAE,GAAGP;IAAQ,CAAC;IACnCL,aAAa,CAACa,OAAO,CAAC,CAACF,KAAK,EAAEG,CAAC,KAAK;MACjCF,MAAM,CAASD,KAAK,CAAC,GAAGJ,YAAY,CAACO,CAAC,CAAC,IAAI,EAAE;IAChD,CAAC,CAAC;IACF,OAAOF,MAAM;EACf,CAAC;EAED,MAAMG,GAAG,GAAG,MAAOC,IAAU,IAAoB;IAC/C,MAAMX,OAAY,GAAG;MAAE,GAAGW;IAAK,CAAC;IAChC,KAAK,MAAML,KAAK,IAAIX,aAAa,EAAE;MACjCK,OAAO,CAACM,KAAK,CAAC,GAAG,EAAE;IACrB;IAEA,MAAMH,OAAO,CAACC,GAAG,CAAC,CAChBnB,iBAAiB,CAAOC,qBAAqB,CAACe,WAAW,CAAC,CAACS,GAAG,CAACV,OAAO,CAAC,EACvE,GAAGL,aAAa,CAACU,GAAG,CAAEC,KAAK,IAAK;MAC9B,MAAMM,KAAK,GAAGD,IAAI,GAAGL,KAAK,CAAuB;MACjD,OAAOM,KAAK,GACRxB,SAAS,CAACE,WAAW,CAACgB,KAAK,CAAC,EAAEM,KAAK,CAAC,GACpCvB,YAAY,CAACC,WAAW,CAACgB,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CACH,CAAC;EACJ,CAAC;EAED,MAAMO,MAAM,GAAG,MAAAA,CAAA,KAA2B;IACxC,MAAMV,OAAO,CAACC,GAAG,CAAC,CAChBnB,iBAAiB,CAACC,qBAAqB,CAACe,WAAW,CAAC,CAACY,MAAM,CAAC,CAAC,EAC7D,GAAGlB,aAAa,CAACU,GAAG,CAAEC,KAAK,IAAKjB,YAAY,CAACC,WAAW,CAACgB,KAAK,CAAC,CAAC,CAAC,CAClE,CAAC;EACJ,CAAC;EAED,OAAO;IAAEP,GAAG;IAAEW,GAAG;IAAEG;EAAO,CAAC;AAC7B","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ import { chatAutoEnterer } from '../helpers/chatAutoEnterer';
|
|
|
9
9
|
import { initRoomsPresence } from '../helpers/initRoomsPresence';
|
|
10
10
|
import { updatedChatLastTimestamps } from '../helpers/updatedChatLastTimestamps';
|
|
11
11
|
import { updateMessagesTillLast } from '../helpers/updateMessagesTillLast';
|
|
12
|
-
import {
|
|
12
|
+
import { refreshAuthTokensQuietly } from '../networking/authRefresh';
|
|
13
13
|
import { setLangSource, setConfig } from '../roomStore/chatSettingsSlice';
|
|
14
14
|
import { setIsLoading } from '../roomStore/roomsSlice';
|
|
15
15
|
import { useRoomState } from './useRoomState';
|
|
@@ -140,7 +140,7 @@ const useChatWrapperInit = ({
|
|
|
140
140
|
setConnectionLost(false);
|
|
141
141
|
}
|
|
142
142
|
{
|
|
143
|
-
config?.refreshTokens?.enabled &&
|
|
143
|
+
config?.refreshTokens?.enabled && refreshAuthTokensQuietly();
|
|
144
144
|
}
|
|
145
145
|
} catch (error) {
|
|
146
146
|
console.error(' Error during initialization', error);
|
|
@@ -179,7 +179,7 @@ const useChatWrapperInit = ({
|
|
|
179
179
|
setConnectionLost(false);
|
|
180
180
|
}
|
|
181
181
|
{
|
|
182
|
-
config?.refreshTokens?.enabled &&
|
|
182
|
+
config?.refreshTokens?.enabled && refreshAuthTokensQuietly();
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","useDispatch","useSelector","useXmppClient","chatAutoEnterer","initRoomsPresence","updatedChatLastTimestamps","updateMessagesTillLast","
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","useDispatch","useSelector","useXmppClient","chatAutoEnterer","initRoomsPresence","updatedChatLastTimestamps","updateMessagesTillLast","refreshAuthTokensQuietly","setLangSource","setConfig","setIsLoading","useRoomState","useChatSettingState","isChatIdPresentInArray","useGetNewArchRoom","getRoomsWithRetry","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","inited","setInited","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","client","initializeClient","setClient","syncRooms","rooms","state","roomsList","user","xmppPassword","console","log","close","getRoomsWithRertyRequest","retryRooms","loadRooms","disableLoad","loading","loadingText","undefined","retryTimeout","initXmmpClient","translates","enabled","translations","xmppUsername","error","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","newArch","loadedRooms","enableRoomsRetry","isSelectedRoomPresent","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","current","err","warn","refreshTokens","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSelector","useFileToken","state","chatSettingStore","user","fileToken"],"sourceRoot":"../../../src","sources":["hooks/useFileToken.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAC1BD,WAAW,CACRE,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,IAAI,EAAEC,SAAS,IAAI,EAClE,CAAC","ignoreList":[]}
|
|
@@ -11,7 +11,7 @@ import { clearHeap } from '../roomStore/roomHeapSlice';
|
|
|
11
11
|
import { pushSubscriptionService } from '../services/pushSubscriptionService';
|
|
12
12
|
import { clearRoomsRestCache } from '../networking/api-requests/rooms.api';
|
|
13
13
|
import { clearPersistedState } from '../roomStore/persistence';
|
|
14
|
-
import {
|
|
14
|
+
import { secureUserStorage } from '../helpers/secureUserStorage';
|
|
15
15
|
|
|
16
16
|
// AsyncStorage keys the library writes but that aren't cleared by any
|
|
17
17
|
// slice reducer. Listed here so a single logout call wipes the full
|
|
@@ -117,15 +117,23 @@ const logoutService = {
|
|
|
117
117
|
|
|
118
118
|
// 6. Stray keys the slices don't touch.
|
|
119
119
|
try {
|
|
120
|
-
await AsyncStorage.multiRemove(
|
|
121
|
-
// Belt-and-suspenders: the chat slice's `logout` reducer
|
|
122
|
-
// schedules an async remove of ETHORA_USER fire-and-forget;
|
|
123
|
-
// re-issue it here so the disk is provably clean before this
|
|
124
|
-
// Promise resolves.
|
|
125
|
-
localStorageConstants.ETHORA_USER]);
|
|
120
|
+
await AsyncStorage.multiRemove(LIBRARY_STRAY_KEYS);
|
|
126
121
|
} catch (e) {
|
|
127
122
|
console.warn('logoutService: stray-key clear failed', e);
|
|
128
123
|
}
|
|
124
|
+
|
|
125
|
+
// 7. Belt-and-suspenders: the chat slice's `logout` reducer already
|
|
126
|
+
// fires an async ETHORA_USER removal, but re-issue it here (via
|
|
127
|
+
// the same secureUserStorage split the reducer uses) so BOTH the
|
|
128
|
+
// plain-AsyncStorage profile half AND the Keychain/Keystore
|
|
129
|
+
// secrets are provably gone before this Promise resolves — a bare
|
|
130
|
+
// `AsyncStorage.removeItem(ETHORA_USER)` here would only clear the
|
|
131
|
+
// profile half and leave the tokens behind.
|
|
132
|
+
try {
|
|
133
|
+
await secureUserStorage().remove();
|
|
134
|
+
} catch (e) {
|
|
135
|
+
console.warn('logoutService: secure user storage clear failed', e);
|
|
136
|
+
}
|
|
129
137
|
}
|
|
130
138
|
};
|
|
131
139
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","clearRoomsRestCache","clearPersistedState","
|
|
1
|
+
{"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","clearRoomsRestCache","clearPersistedState","secureUserStorage","LIBRARY_STRAY_KEYS","logoutService","performLogout","state","getState","client","chatSettingStore","rooms","visibleRoomJID","flushLastViewedToPrivateStoreStanza","Promise","race","onlyIfNoUnread","res","setTimeout","e","console","warn","emit","reset","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import { useXmppClient } from '../context/xmppProvider';
|
|
|
7
7
|
import { useDispatch, useSelector, useStore } from 'react-redux';
|
|
8
8
|
import { addRoomMessage, setEditAction } from '../roomStore/roomsSlice';
|
|
9
9
|
import { addMessageToHeap, clearMessageFailure, markMessageFailed } from '../roomStore/roomHeapSlice';
|
|
10
|
-
import {
|
|
10
|
+
import { uploadFileV2 } from '../networking/api-requests/auth.api';
|
|
11
11
|
import { enqueueOutboundSend } from '../networking/outboundQueue';
|
|
12
12
|
import { store } from '../roomStore';
|
|
13
13
|
import { getGlobalXmppClient } from '../utils/clientRegistry';
|
|
@@ -153,11 +153,29 @@ export const useSendMessage = _configOverride => {
|
|
|
153
153
|
// PENDING_WATCHDOG_MS, flip the bubble to "failed → tap to
|
|
154
154
|
// retry". We check at fire-time whether the message is still
|
|
155
155
|
// pending and not already marked failed by the catch path.
|
|
156
|
-
|
|
156
|
+
// One-shot extension for the case below. Declared outside the
|
|
157
|
+
// timer so the rescheduled run can't extend again.
|
|
158
|
+
let watchdogExtended = false;
|
|
159
|
+
const runWatchdog = () => {
|
|
157
160
|
const state = reduxStore.getState();
|
|
158
161
|
const roomMsgs = state.rooms?.rooms?.[activeRoomJID]?.messages || [];
|
|
159
162
|
const stillPending = roomMsgs.find(m => m.id === optimisticId && m.pending);
|
|
160
163
|
const alreadyFailed = state.roomHeapSlice?.failedMessages?.[optimisticId];
|
|
164
|
+
|
|
165
|
+
// Don't call it a failure while the stream is still coming back.
|
|
166
|
+
// A reconnect tears the old client down and builds a new one, and
|
|
167
|
+
// any echo in flight during that window is simply lost — the
|
|
168
|
+
// message may well have been delivered (it has been observed
|
|
169
|
+
// arriving twice on the receiving side). Failing it here shows a
|
|
170
|
+
// red "tap to retry" under a message that actually went through.
|
|
171
|
+
// Give the reconnect one more window to produce an echo, once.
|
|
172
|
+
const streamOnline = getGlobalXmppClient()?.status === 'online';
|
|
173
|
+
if (stillPending && !alreadyFailed && !streamOnline && !watchdogExtended) {
|
|
174
|
+
watchdogExtended = true;
|
|
175
|
+
console.warn(`Send watchdog — ${optimisticId} still pending but the stream is not online; extending one window`);
|
|
176
|
+
watchdogTimer = setTimeout(runWatchdog, PENDING_WATCHDOG_MS);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
161
179
|
if (stillPending && !alreadyFailed) {
|
|
162
180
|
console.warn(`Send watchdog fired — message ${optimisticId} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
|
|
163
181
|
dispatch(markMessageFailed({
|
|
@@ -176,7 +194,8 @@ export const useSendMessage = _configOverride => {
|
|
|
176
194
|
messageType: 'text'
|
|
177
195
|
});
|
|
178
196
|
}
|
|
179
|
-
}
|
|
197
|
+
};
|
|
198
|
+
let watchdogTimer = setTimeout(runWatchdog, PENDING_WATCHDOG_MS);
|
|
180
199
|
try {
|
|
181
200
|
// The single send closure, used both for the immediate send and for
|
|
182
201
|
// the buffered replay. Passing the optimistic id as the stanza id
|
|
@@ -369,20 +388,11 @@ export const useSendMessage = _configOverride => {
|
|
|
369
388
|
type: data?.type || data?.mimeType || type || 'application/octet-stream',
|
|
370
389
|
name: data?.name || data?.fileName || `media_${Date.now()}`
|
|
371
390
|
};
|
|
372
|
-
|
|
373
|
-
// Mirror the web client: a single multipart POST to /files/ with
|
|
374
|
-
// the file under the plural "files" field. We send it via fetch
|
|
375
|
-
// (not axios) because RN's fetch sets the multipart boundary on the
|
|
376
|
-
// Content-Type header correctly. The previous axios fallback omitted
|
|
377
|
-
// a valid boundary, so the server mis-parsed one file as many and
|
|
378
|
-
// rejected the request with HTTP 413 "TOO_MANY_FILES". The only
|
|
379
|
-
// retry is the documented singular-"file" fallback for deployments
|
|
380
|
-
// that 500 on the plural field (bug #10).
|
|
381
391
|
const tryUpload = async () => {
|
|
382
392
|
const fd = new FormData();
|
|
383
393
|
fd.append('files', fileBlob);
|
|
384
394
|
try {
|
|
385
|
-
return await
|
|
395
|
+
return await uploadFileV2(fd, activeRoomJID);
|
|
386
396
|
} catch (err) {
|
|
387
397
|
if (err?.response?.status === 500) {
|
|
388
398
|
console.warn('upload "files" field returned 500 — retrying with "file" (singular)', {
|
|
@@ -391,7 +401,7 @@ export const useSendMessage = _configOverride => {
|
|
|
391
401
|
});
|
|
392
402
|
const fd2 = new FormData();
|
|
393
403
|
fd2.append('file', fileBlob);
|
|
394
|
-
return await
|
|
404
|
+
return await uploadFileV2(fd2, activeRoomJID);
|
|
395
405
|
}
|
|
396
406
|
throw err;
|
|
397
407
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileMultipart","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","langSource","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","replaySend","c","sendTextMessageWithTranslateTagStanza","enqueuedAt","send","effectiveClient","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileV2","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","langSource","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogExtended","runWatchdog","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","streamOnline","status","console","warn","watchdogTimer","setTimeout","kind","Error","replaySend","c","sendTextMessageWithTranslateTagStanza","enqueuedAt","send","effectiveClient","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/main.js
CHANGED
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
*
|
|
10
10
|
* <Chat
|
|
11
11
|
* config={{
|
|
12
|
-
*
|
|
12
|
+
* // The API ROOT — the SDK versions every path itself
|
|
13
|
+
* // (`/v1/...`, `/v2/...`). A legacy `.../v1` is accepted and
|
|
14
|
+
* // normalised, so existing integrations keep working.
|
|
15
|
+
* baseUrl: 'https://api.chat.ethora.com',
|
|
13
16
|
* xmppSettings: { host: 'xmpp.chat.ethora.com' },
|
|
14
17
|
* jwtLogin: { enabled: true, token: '<paste JWT>' },
|
|
15
18
|
* initBeforeLoad: true,
|
|
@@ -45,4 +48,12 @@ export { BUILTIN_STRINGS, DEFAULT_UI_LANGUAGE, resolveStringTable, toBaseLanguag
|
|
|
45
48
|
|
|
46
49
|
// Public types — needed so consumers can type their `config` prop and
|
|
47
50
|
// any event handlers they pass in.
|
|
51
|
+
|
|
52
|
+
// Auth-token rotation. Exposed so hosts can drive a refresh themselves
|
|
53
|
+
// (it is deduped and shares the SDK's lock) and, more importantly, so
|
|
54
|
+
// they can tell a dead session from a transient failure: only
|
|
55
|
+
// `RefreshFatalError` means "log the user out". Every other rejection —
|
|
56
|
+
// network, 5xx, a lost REFRESH_IN_PROGRESS race — must leave the
|
|
57
|
+
// session alone.
|
|
58
|
+
export { refreshAuthTokens, refreshAuthTokensQuietly, RefreshFatalError, isRefreshFatalError } from './networking/authRefresh';
|
|
48
59
|
//# sourceMappingURL=main.js.map
|
package/lib/module/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","useChatRoomFocus","logoutService","useQRCodeChat","handleQRChatId","resendMessage","useChatFonts","useT","useUiLocale","BUILTIN_STRINGS","DEFAULT_UI_LANGUAGE","resolveStringTable","toBaseLanguage","translateKey"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;AACrD;AACA,SAASC,YAAY,QAAQ,sBAAsB;;AAEnD;AACA;AACA;AACA,SAASC,IAAI,EAAEC,WAAW,QAAQ,aAAa;AAC/C,SACEC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBC,cAAc,EACdC,YAAY,QACP,gBAAgB;;AAGvB;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","useChatRoomFocus","logoutService","useQRCodeChat","handleQRChatId","resendMessage","useChatFonts","useT","useUiLocale","BUILTIN_STRINGS","DEFAULT_UI_LANGUAGE","resolveStringTable","toBaseLanguage","translateKey","refreshAuthTokens","refreshAuthTokensQuietly","RefreshFatalError","isRefreshFatalError"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;AACrD;AACA,SAASC,YAAY,QAAQ,sBAAsB;;AAEnD;AACA;AACA;AACA,SAASC,IAAI,EAAEC,WAAW,QAAQ,aAAa;AAC/C,SACEC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBC,cAAc,EACdC,YAAY,QACP,gBAAgB;;AAGvB;AACA;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA,SACEC,iBAAiB,EACjBC,wBAAwB,EACxBC,iBAAiB,EACjBC,mBAAmB,QACd,0BAA0B","ignoreList":[]}
|