@ethora/chat-component-rn 26.6.13 → 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.
Files changed (115) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/commonjs/components/AuthForms/Login.js +2 -3
  3. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  4. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +9 -8
  5. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  6. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +2 -1
  7. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  8. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  9. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  10. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +7 -21
  11. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  12. package/lib/commonjs/context/xmppProvider.js +2 -3
  13. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  14. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  15. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  16. package/lib/commonjs/helpers/persistCrypto.js +122 -0
  17. package/lib/commonjs/helpers/persistCrypto.js.map +1 -0
  18. package/lib/commonjs/helpers/pickImageAsset.js +68 -0
  19. package/lib/commonjs/helpers/pickImageAsset.js.map +1 -0
  20. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +5 -6
  21. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  22. package/lib/commonjs/helpers/secureKeyValue.js +83 -0
  23. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -0
  24. package/lib/commonjs/helpers/secureStoreRuntime.js +59 -0
  25. package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -0
  26. package/lib/commonjs/helpers/secureUserStorage.js +75 -0
  27. package/lib/commonjs/helpers/secureUserStorage.js.map +1 -0
  28. package/lib/commonjs/hooks/useLogout.js +15 -7
  29. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  30. package/lib/commonjs/networking/authRefresh.js +4 -5
  31. package/lib/commonjs/networking/authRefresh.js.map +1 -1
  32. package/lib/commonjs/roomStore/chatSettingsSlice.js +3 -4
  33. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  34. package/lib/commonjs/roomStore/persistence.js +29 -15
  35. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  36. package/lib/commonjs/roomStore/roomsSlice.js +2 -0
  37. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  38. package/lib/module/components/AuthForms/Login.js +2 -3
  39. package/lib/module/components/AuthForms/Login.js.map +1 -1
  40. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +9 -8
  41. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  42. package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -1
  43. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  44. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  45. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  46. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +9 -23
  47. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  48. package/lib/module/context/xmppProvider.js +2 -3
  49. package/lib/module/context/xmppProvider.js.map +1 -1
  50. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  51. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  52. package/lib/module/helpers/persistCrypto.js +115 -0
  53. package/lib/module/helpers/persistCrypto.js.map +1 -0
  54. package/lib/module/helpers/pickImageAsset.js +63 -0
  55. package/lib/module/helpers/pickImageAsset.js.map +1 -0
  56. package/lib/module/helpers/resolveInitBeforeLoadUser.js +5 -6
  57. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  58. package/lib/module/helpers/secureKeyValue.js +75 -0
  59. package/lib/module/helpers/secureKeyValue.js.map +1 -0
  60. package/lib/module/helpers/secureStoreRuntime.js +52 -0
  61. package/lib/module/helpers/secureStoreRuntime.js.map +1 -0
  62. package/lib/module/helpers/secureUserStorage.js +72 -0
  63. package/lib/module/helpers/secureUserStorage.js.map +1 -0
  64. package/lib/module/hooks/useLogout.js +15 -7
  65. package/lib/module/hooks/useLogout.js.map +1 -1
  66. package/lib/module/networking/authRefresh.js +4 -5
  67. package/lib/module/networking/authRefresh.js.map +1 -1
  68. package/lib/module/roomStore/chatSettingsSlice.js +3 -4
  69. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  70. package/lib/module/roomStore/persistence.js +30 -15
  71. package/lib/module/roomStore/persistence.js.map +1 -1
  72. package/lib/module/roomStore/roomsSlice.js +2 -0
  73. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  74. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  75. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  76. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +4 -2
  77. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  78. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  79. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  80. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  81. package/lib/typescript/helpers/persistCrypto.d.ts +13 -0
  82. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -0
  83. package/lib/typescript/helpers/pickImageAsset.d.ts +27 -0
  84. package/lib/typescript/helpers/pickImageAsset.d.ts.map +1 -0
  85. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  86. package/lib/typescript/helpers/secureKeyValue.d.ts +13 -0
  87. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -0
  88. package/lib/typescript/helpers/secureStoreRuntime.d.ts +29 -0
  89. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -0
  90. package/lib/typescript/helpers/secureUserStorage.d.ts +23 -0
  91. package/lib/typescript/helpers/secureUserStorage.d.ts.map +1 -0
  92. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  93. package/lib/typescript/networking/authRefresh.d.ts.map +1 -1
  94. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  95. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  96. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  97. package/package.json +8 -1
  98. package/src/components/AuthForms/Login.tsx +2 -3
  99. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +16 -9
  100. package/src/components/Modals/NewChatModal/ModalContent.tsx +6 -3
  101. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +12 -1
  102. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +9 -25
  103. package/src/context/xmppProvider.tsx +2 -3
  104. package/src/helpers/ensureScopedChatCache.ts +2 -2
  105. package/src/helpers/persistCrypto.ts +127 -0
  106. package/src/helpers/pickImageAsset.ts +68 -0
  107. package/src/helpers/resolveInitBeforeLoadUser.ts +5 -10
  108. package/src/helpers/secureKeyValue.ts +80 -0
  109. package/src/helpers/secureStoreRuntime.ts +62 -0
  110. package/src/helpers/secureUserStorage.ts +80 -0
  111. package/src/hooks/useLogout.tsx +15 -9
  112. package/src/networking/authRefresh.ts +4 -9
  113. package/src/roomStore/chatSettingsSlice.ts +3 -6
  114. package/src/roomStore/persistence.ts +39 -19
  115. package/src/roomStore/roomsSlice.ts +2 -0
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__resetPersistCryptoKeyForTests = void 0;
7
+ exports.decryptFromPersist = decryptFromPersist;
8
+ exports.encryptForPersist = encryptForPersist;
9
+ var _cryptoJs = _interopRequireDefault(require("crypto-js"));
10
+ var _secureKeyValue = require("./secureKeyValue");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // AES-256-CBC at rest for the bulk persisted state (message history +
13
+ // room list) that `roomStore/persistence.ts` writes to AsyncStorage.
14
+ // This is envelope encryption, not a SecureStore write of the payload
15
+ // itself: expo-secure-store has historically capped a single value's
16
+ // size on Android (chunking exists in newer releases, but the payload
17
+ // here is unbounded — up to MESSAGE_LIMIT messages per room, times
18
+ // every room), so only the small symmetric KEY goes through the
19
+ // platform Keychain/Keystore (`secureKeyValue.ts`); the ciphertext
20
+ // itself stays in plain AsyncStorage, unreadable without that key.
21
+ const CIPHER_KEY_STORE_KEY = 'ethora_history_cipher_key';
22
+ const ENVELOPE_VERSION = 1;
23
+ const KEY_BYTES = 32; // AES-256
24
+ const IV_BYTES = 16; // one AES block
25
+
26
+ /**
27
+ * `crypto-js`'s own `WordArray.random()` falls back to `Math.random()`
28
+ * when it can't detect a browser `window.crypto` — not safe for key/IV
29
+ * material. `react-native-get-random-values` (a REQUIRED peer
30
+ * dependency, imported at the top of `main.ts`/`index.js` before
31
+ * anything else in the SDK runs) polyfills the real thing onto
32
+ * `global.crypto.getRandomValues` instead; source bytes from that and
33
+ * hand them to crypto-js as a WordArray rather than trust its default.
34
+ */
35
+ const randomWordArray = byteLength => {
36
+ const bytes = new Uint8Array(byteLength);
37
+ global.crypto.getRandomValues(bytes);
38
+ const words = [];
39
+ for (let i = 0; i < bytes.length; i += 4) {
40
+ words.push((bytes[i] || 0) << 24 | (bytes[i + 1] || 0) << 16 | (bytes[i + 2] || 0) << 8 | (bytes[i + 3] || 0));
41
+ }
42
+ return _cryptoJs.default.lib.WordArray.create(words, byteLength);
43
+ };
44
+ let cachedKeyPromise = null;
45
+
46
+ /**
47
+ * One AES-256 key per install, generated on first use and persisted
48
+ * through the SecureStore/Keychain bridge. Reused across logins on
49
+ * purpose: the ciphertext it protects is deleted wholesale on logout
50
+ * (`clearPersistedState`), so there is no cross-account data for a
51
+ * stable key to expose — only the encrypted blob of whoever is
52
+ * currently logged in ever exists on disk at a given time.
53
+ */
54
+ const loadOrCreateKey = () => {
55
+ if (cachedKeyPromise) {
56
+ return cachedKeyPromise;
57
+ }
58
+ cachedKeyPromise = (async () => {
59
+ const existing = await (0, _secureKeyValue.secureGet)(CIPHER_KEY_STORE_KEY);
60
+ if (existing) {
61
+ return _cryptoJs.default.enc.Base64.parse(existing);
62
+ }
63
+ const key = randomWordArray(KEY_BYTES);
64
+ await (0, _secureKeyValue.secureSet)(CIPHER_KEY_STORE_KEY, _cryptoJs.default.enc.Base64.stringify(key));
65
+ return key;
66
+ })();
67
+ return cachedKeyPromise;
68
+ };
69
+
70
+ /** Encrypt a JSON-serialisable payload for storage. Returns the string to persist. */
71
+ async function encryptForPersist(plaintext) {
72
+ const key = await loadOrCreateKey();
73
+ const iv = randomWordArray(IV_BYTES);
74
+ const encrypted = _cryptoJs.default.AES.encrypt(plaintext, key, {
75
+ iv,
76
+ mode: _cryptoJs.default.mode.CBC,
77
+ padding: _cryptoJs.default.pad.Pkcs7
78
+ });
79
+ const envelope = {
80
+ v: ENVELOPE_VERSION,
81
+ iv: _cryptoJs.default.enc.Base64.stringify(iv),
82
+ ct: encrypted.ciphertext.toString(_cryptoJs.default.enc.Base64)
83
+ };
84
+ return JSON.stringify(envelope);
85
+ }
86
+
87
+ /**
88
+ * Decrypt a value previously written by `encryptForPersist`. Returns
89
+ * null (never throws) for anything that isn't a valid envelope for the
90
+ * current key — including a plaintext blob from a pre-encryption
91
+ * install: the app just re-hydrates that room/history from the server,
92
+ * same as any other empty-cache cold start.
93
+ */
94
+ async function decryptFromPersist(stored) {
95
+ try {
96
+ const envelope = JSON.parse(stored);
97
+ if (!envelope || envelope.v !== ENVELOPE_VERSION || !envelope.iv || !envelope.ct) {
98
+ return null;
99
+ }
100
+ const key = await loadOrCreateKey();
101
+ const iv = _cryptoJs.default.enc.Base64.parse(envelope.iv);
102
+ const ciphertext = _cryptoJs.default.enc.Base64.parse(envelope.ct);
103
+ const decrypted = _cryptoJs.default.AES.decrypt({
104
+ ciphertext
105
+ }, key, {
106
+ iv,
107
+ mode: _cryptoJs.default.mode.CBC,
108
+ padding: _cryptoJs.default.pad.Pkcs7
109
+ });
110
+ const plaintext = decrypted.toString(_cryptoJs.default.enc.Utf8);
111
+ return plaintext || null;
112
+ } catch {
113
+ return null;
114
+ }
115
+ }
116
+
117
+ /** Test seam only. */
118
+ const __resetPersistCryptoKeyForTests = () => {
119
+ cachedKeyPromise = null;
120
+ };
121
+ exports.__resetPersistCryptoKeyForTests = __resetPersistCryptoKeyForTests;
122
+ //# sourceMappingURL=persistCrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_cryptoJs","_interopRequireDefault","require","_secureKeyValue","e","__esModule","default","CIPHER_KEY_STORE_KEY","ENVELOPE_VERSION","KEY_BYTES","IV_BYTES","randomWordArray","byteLength","bytes","Uint8Array","global","crypto","getRandomValues","words","i","length","push","CryptoJS","lib","WordArray","create","cachedKeyPromise","loadOrCreateKey","existing","secureGet","enc","Base64","parse","key","secureSet","stringify","encryptForPersist","plaintext","iv","encrypted","AES","encrypt","mode","CBC","padding","pad","Pkcs7","envelope","v","ct","ciphertext","toString","JSON","decryptFromPersist","stored","decrypted","decrypt","Utf8","__resetPersistCryptoKeyForTests","exports"],"sourceRoot":"../../../src","sources":["helpers/persistCrypto.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pickImageAsset = void 0;
7
+ var _reactNative = require("react-native");
8
+ var ImagePicker = _interopRequireWildcard(require("expo-image-picker"));
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
+ /**
11
+ * A picked image in the shape React Native's FormData understands.
12
+ *
13
+ * NOT a web `File`: RN streams a multipart part straight from a `file://`
14
+ * uri and has no usable Blob/File/atob path. Screens ported from the web
15
+ * client used to carry base64 -> Blob -> File helpers that could never
16
+ * have run here.
17
+ */
18
+
19
+ /**
20
+ * Ask for library permission, open the picker, and normalise the result.
21
+ *
22
+ * Returns `null` for every non-error outcome — permission refused, user
23
+ * cancelled — so call sites can simply keep their current value.
24
+ *
25
+ * Exists because the avatar pickers are wired to `onPress`, which hands
26
+ * the callback a SyntheticEvent. Storing that event as "the image" (what
27
+ * two screens used to do) rendered a pooled event as an <Image source>
28
+ * and then crashed with "Property is not configurable" when React tried
29
+ * to release it — on top of never letting the user pick anything.
30
+ */
31
+ const pickImageAsset = async () => {
32
+ try {
33
+ // expo-image-picker owns the permission prompt internally and
34
+ // returns a `granted` flag.
35
+ const perm = await ImagePicker.requestMediaLibraryPermissionsAsync();
36
+ if (!perm.granted) {
37
+ _reactNative.Alert.alert('Permission required', 'Photo library permission is needed to select images.', [{
38
+ text: 'Cancel',
39
+ style: 'cancel'
40
+ }, {
41
+ text: 'Open Settings',
42
+ onPress: () => _reactNative.Linking.openSettings()
43
+ }]);
44
+ return null;
45
+ }
46
+ const result = await ImagePicker.launchImageLibraryAsync({
47
+ mediaTypes: ['images'],
48
+ allowsEditing: true,
49
+ aspect: [1, 1],
50
+ quality: 0.8
51
+ });
52
+ if (result.canceled || !result.assets?.[0]) {
53
+ return null;
54
+ }
55
+ const asset = result.assets[0];
56
+ const originalName = asset.fileName || asset.uri.split('/').pop();
57
+ return {
58
+ uri: asset.uri,
59
+ type: asset.mimeType || 'image/jpeg',
60
+ name: originalName || `image_${Date.now()}.jpg`
61
+ };
62
+ } catch (error) {
63
+ console.error('Failed to pick an image:', error);
64
+ return null;
65
+ }
66
+ };
67
+ exports.pickImageAsset = pickImageAsset;
68
+ //# sourceMappingURL=pickImageAsset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","ImagePicker","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","pickImageAsset","perm","requestMediaLibraryPermissionsAsync","granted","Alert","alert","text","style","onPress","Linking","openSettings","result","launchImageLibraryAsync","mediaTypes","allowsEditing","aspect","quality","canceled","assets","asset","originalName","fileName","uri","split","pop","type","mimeType","name","Date","now","error","console","exports"],"sourceRoot":"../../../src","sources":["helpers/pickImageAsset.ts"],"mappings":"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","ignoreList":[]}
@@ -11,8 +11,7 @@ var _user = require("../networking/api-requests/user.api");
11
11
  var _roomStore = require("../roomStore");
12
12
  var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
13
13
  var _walletUsername = require("./walletUsername");
14
- var _useLocalStorage = require("../hooks/useLocalStorage");
15
- var _LOCAL_STORAGE = require("./constants/LOCAL_STORAGE");
14
+ var _secureUserStorage = require("./secureUserStorage");
16
15
  const getStatusCode = error => {
17
16
  const status = error?.response?.status;
18
17
  return typeof status === 'number' ? status : null;
@@ -89,7 +88,7 @@ const readJwtIat = token => {
89
88
  */
90
89
  const adoptFresherPersistedSession = async candidate => {
91
90
  try {
92
- const stored = await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).get();
91
+ const stored = await (0, _secureUserStorage.secureUserStorage)().get();
93
92
  if (!stored) {
94
93
  return candidate;
95
94
  }
@@ -338,13 +337,13 @@ const resolveInitBeforeLoadUser = async options => {
338
337
 
339
338
  // Priority 5: persisted user in AsyncStorage
340
339
  try {
341
- const storedUser = await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).get();
340
+ const storedUser = await (0, _secureUserStorage.secureUserStorage)().get();
342
341
  if (storedUser && (storedUser.token || storedUser.refreshToken || storedUser.xmppPassword)) {
343
342
  const hydrated = await tryHydrateViaMy(storedUser, myEndpoint, signal).catch(() => null);
344
343
  if (hydrated && hasXmppCredentials(hydrated)) {
345
344
  return hydrated;
346
345
  }
347
- await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).remove();
346
+ await (0, _secureUserStorage.secureUserStorage)().remove();
348
347
  }
349
348
  } catch {
350
349
  // ignore storage errors
@@ -418,7 +417,7 @@ const refreshUserCredentialsForXmpp = async (config, signal) => {
418
417
  // should already mirror this, but if the redux state got cleared
419
418
  // mid-session (logout race) this gives us one last shot.
420
419
  try {
421
- const storedUser = await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).get();
420
+ const storedUser = await (0, _secureUserStorage.secureUserStorage)().get();
422
421
  if (storedUser && (storedUser.token || storedUser.refreshToken || storedUser.xmppPassword)) {
423
422
  const hydrated = await tryHydrateViaMy(storedUser, myEndpoint, signal).catch(() => null);
424
423
  if (hydrated && hasXmppCredentials(hydrated)) {
@@ -1 +1 @@
1
- {"version":3,"names":["_apiClient","require","_authRefresh","_auth","_user","_roomStore","_chatSettingsSlice","_walletUsername","_useLocalStorage","_LOCAL_STORAGE","getStatusCode","error","status","response","isAuthError","code","isAbortError","message","toLowerCase","includes","hasXmppCredentials","user","Boolean","xmppPassword","xmppUsername","defaultWallet","walletAddress","normalizeUserForXmpp","normalizedXmppUsername","walletToUsername","B64_ALPHABET","readJwtIat","token","part","split","clean","replace","out","buffer","bits","i","length","idx","indexOf","String","fromCharCode","iat","JSON","parse","adoptFresherPersistedSession","candidate","stored","asyncLocalStorage","localStorageConstants","ETHORA_USER","get","sameUser","_id","merged","refreshToken","fileToken","refreshWithToken","result","refreshAuthTokens","mergeUsers","base","patch","tryHydrateViaMy","myEndpoint","signal","aborted","mergedCandidate","workingToken","workingRefresh","rotatedXmppPassword","workingFileToken","candidateWithCurrentTokens","fallbackWithCreds","normalized","myUser","getMyUser","endpoint","fallback","refreshed","myError","isRefreshFatalError","resolveInitBeforeLoadUser","options","config","baseUrl","setBaseURL","customAppToken","initBeforeLoadAuth","explicitUser","userLogin","enabled","hydrated","catch","customLogin","loginFunction","customUser","jwtLogin","jwtUser","loginViaJwt","currentUser","store","getState","chatSettingStore","storedUser","remove","exports","applyResolvedUserToStore","dispatch","setUser","refreshUserCredentialsForXmpp","fresh","_default","default"],"sourceRoot":"../../../src","sources":["helpers/resolveInitBeforeLoadUser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_apiClient","require","_authRefresh","_auth","_user","_roomStore","_chatSettingsSlice","_walletUsername","_secureUserStorage","getStatusCode","error","status","response","isAuthError","code","isAbortError","message","toLowerCase","includes","hasXmppCredentials","user","Boolean","xmppPassword","xmppUsername","defaultWallet","walletAddress","normalizeUserForXmpp","normalizedXmppUsername","walletToUsername","B64_ALPHABET","readJwtIat","token","part","split","clean","replace","out","buffer","bits","i","length","idx","indexOf","String","fromCharCode","iat","JSON","parse","adoptFresherPersistedSession","candidate","stored","secureUserStorage","get","sameUser","_id","merged","refreshToken","fileToken","refreshWithToken","result","refreshAuthTokens","mergeUsers","base","patch","tryHydrateViaMy","myEndpoint","signal","aborted","mergedCandidate","workingToken","workingRefresh","rotatedXmppPassword","workingFileToken","candidateWithCurrentTokens","fallbackWithCreds","normalized","myUser","getMyUser","endpoint","fallback","refreshed","myError","isRefreshFatalError","resolveInitBeforeLoadUser","options","config","baseUrl","setBaseURL","customAppToken","initBeforeLoadAuth","explicitUser","userLogin","enabled","hydrated","catch","customLogin","loginFunction","customUser","jwtLogin","jwtUser","loginViaJwt","currentUser","store","getState","chatSettingStore","storedUser","remove","exports","applyResolvedUserToStore","dispatch","setUser","refreshUserCredentialsForXmpp","fresh","_default","default"],"sourceRoot":"../../../src","sources":["helpers/resolveInitBeforeLoadUser.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__resetSecureKeyValueWarningForTests = void 0;
7
+ exports.secureGet = secureGet;
8
+ exports.secureRemove = secureRemove;
9
+ exports.secureSet = secureSet;
10
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
11
+ var _secureStoreRuntime = require("./secureStoreRuntime");
12
+ var _devLogger = require("../utils/devLogger");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ // Fallback keys are prefixed and namespaced away from every other
15
+ // AsyncStorage key this SDK writes, so a host that never installs
16
+ // expo-secure-store can still be told apart from one that used to lack
17
+ // it and has since added it (see `secureSet`'s stale-fallback cleanup).
18
+ const FALLBACK_PREFIX = '@ethora/secure-fallback:';
19
+ let warnedFallback = false;
20
+ const warnFallbackOnce = () => {
21
+ if (warnedFallback) {
22
+ return;
23
+ }
24
+ warnedFallback = true;
25
+ (0, _devLogger.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.');
26
+ };
27
+
28
+ /**
29
+ * Small-value secure KV store: platform Keychain/Keystore via
30
+ * expo-secure-store when the host has it installed, plain (but still
31
+ * namespaced) AsyncStorage otherwise. NOT for bulk data — see
32
+ * `persistCrypto.ts`'s size note on why message history goes through
33
+ * AES instead of straight into this store.
34
+ */
35
+ async function secureGet(key) {
36
+ const store = (0, _secureStoreRuntime.loadSecureStore)();
37
+ if (store) {
38
+ try {
39
+ return await store.getItemAsync(key);
40
+ } catch (e) {
41
+ (0, _devLogger.pushLog)('warn', `secureStore: getItemAsync(${key}) failed`, e);
42
+ return null;
43
+ }
44
+ }
45
+ warnFallbackOnce();
46
+ return _asyncStorage.default.getItem(FALLBACK_PREFIX + key);
47
+ }
48
+ async function secureSet(key, value) {
49
+ const store = (0, _secureStoreRuntime.loadSecureStore)();
50
+ if (store) {
51
+ try {
52
+ await store.setItemAsync(key, value);
53
+ // Clean up a stale plaintext fallback copy from before this host
54
+ // added expo-secure-store — otherwise it sits on disk forever.
55
+ _asyncStorage.default.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
56
+ return;
57
+ } catch (e) {
58
+ (0, _devLogger.pushLog)('warn', `secureStore: setItemAsync(${key}) failed`, e);
59
+ return;
60
+ }
61
+ }
62
+ warnFallbackOnce();
63
+ await _asyncStorage.default.setItem(FALLBACK_PREFIX + key, value);
64
+ }
65
+ async function secureRemove(key) {
66
+ const store = (0, _secureStoreRuntime.loadSecureStore)();
67
+ if (store) {
68
+ try {
69
+ await store.deleteItemAsync(key);
70
+ } catch {
71
+ // Key may simply not exist — deleteItemAsync throwing here isn't
72
+ // actionable either way.
73
+ }
74
+ }
75
+ await _asyncStorage.default.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
76
+ }
77
+
78
+ /** Test seam only. */
79
+ const __resetSecureKeyValueWarningForTests = () => {
80
+ warnedFallback = false;
81
+ };
82
+ exports.__resetSecureKeyValueWarningForTests = __resetSecureKeyValueWarningForTests;
83
+ //# sourceMappingURL=secureKeyValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureStoreRuntime","_devLogger","e","__esModule","default","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","pushLog","secureGet","key","store","loadSecureStore","getItemAsync","AsyncStorage","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","__resetSecureKeyValueWarningForTests","exports"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAA6C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7C;AACA;AACA;AACA;AACA,MAAMG,eAAe,GAAG,0BAA0B;AAElD,IAAIC,cAAc,GAAG,KAAK;AAC1B,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,IAAID,cAAc,EAAE;IAAC;EAAO;EAC5BA,cAAc,GAAG,IAAI;EACrB,IAAAE,kBAAO,EACL,MAAM,EACN,6DAA6D,GAC3D,gEAAgE,GAChE,mEAAmE,GACnE,mEAAmE,GACnE,yBACJ,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,SAASA,CAACC,GAAW,EAA0B;EACnE,MAAMC,KAAK,GAAG,IAAAC,mCAAe,EAAC,CAAC;EAC/B,IAAID,KAAK,EAAE;IACT,IAAI;MACF,OAAO,MAAMA,KAAK,CAACE,YAAY,CAACH,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOR,CAAC,EAAE;MACV,IAAAM,kBAAO,EAAC,MAAM,EAAE,6BAA6BE,GAAG,UAAU,EAAER,CAAC,CAAC;MAC9D,OAAO,IAAI;IACb;EACF;EACAK,gBAAgB,CAAC,CAAC;EAClB,OAAOO,qBAAY,CAACC,OAAO,CAACV,eAAe,GAAGK,GAAG,CAAC;AACpD;AAEO,eAAeM,SAASA,CAACN,GAAW,EAAEO,KAAa,EAAiB;EACzE,MAAMN,KAAK,GAAG,IAAAC,mCAAe,EAAC,CAAC;EAC/B,IAAID,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACO,YAAY,CAACR,GAAG,EAAEO,KAAK,CAAC;MACpC;MACA;MACAH,qBAAY,CAACK,UAAU,CAACd,eAAe,GAAGK,GAAG,CAAC,CAACU,KAAK,CAAC,MAAMC,SAAS,CAAC;MACrE;IACF,CAAC,CAAC,OAAOnB,CAAC,EAAE;MACV,IAAAM,kBAAO,EAAC,MAAM,EAAE,6BAA6BE,GAAG,UAAU,EAAER,CAAC,CAAC;MAC9D;IACF;EACF;EACAK,gBAAgB,CAAC,CAAC;EAClB,MAAMO,qBAAY,CAACQ,OAAO,CAACjB,eAAe,GAAGK,GAAG,EAAEO,KAAK,CAAC;AAC1D;AAEO,eAAeM,YAAYA,CAACb,GAAW,EAAiB;EAC7D,MAAMC,KAAK,GAAG,IAAAC,mCAAe,EAAC,CAAC;EAC/B,IAAID,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACa,eAAe,CAACd,GAAG,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IAAA;EAEJ;EACA,MAAMI,qBAAY,CAACK,UAAU,CAACd,eAAe,GAAGK,GAAG,CAAC,CAACU,KAAK,CAAC,MAAMC,SAAS,CAAC;AAC7E;;AAEA;AACO,MAAMI,oCAAoC,GAAGA,CAAA,KAAY;EAC9DnB,cAAc,GAAG,KAAK;AACxB,CAAC;AAACoB,OAAA,CAAAD,oCAAA,GAAAA,oCAAA","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loadSecureStore = exports.isSecureStoreAvailable = exports.__resetSecureStoreRuntimeForTests = void 0;
7
+ /**
8
+ * Optional-dependency bridge for `expo-secure-store` — the Keychain
9
+ * (iOS) / Keystore-backed EncryptedSharedPreferences (Android) API.
10
+ *
11
+ * Mirrors `components/VideoCalls/livekitRuntime.ts`: a plain top-level
12
+ * `import ... from 'expo-secure-store'` is not allowed anywhere in the
13
+ * SDK, since Metro resolves imports at bundle time and a host that
14
+ * hasn't added this optional peer dependency would fail to build over
15
+ * a feature it never opted into. Everything goes through
16
+ * `loadSecureStore()`, which requires the module lazily and returns
17
+ * null when it isn't installed — callers fall back to plain
18
+ * AsyncStorage rather than crash (see `secureKeyValue.ts`).
19
+ */
20
+
21
+ let cached;
22
+
23
+ /**
24
+ * Resolve the SecureStore runtime, or null when the optional native
25
+ * package isn't installed in the host app. Result is memoised
26
+ * (including the failure) so a missing dependency doesn't re-throw on
27
+ * every read/write.
28
+ */
29
+ const loadSecureStore = () => {
30
+ if (cached !== undefined) {
31
+ return cached;
32
+ }
33
+ try {
34
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
35
+ const mod = require('expo-secure-store');
36
+ if (typeof mod?.getItemAsync !== 'function' || typeof mod?.setItemAsync !== 'function' || typeof mod?.deleteItemAsync !== 'function') {
37
+ cached = null;
38
+ } else {
39
+ cached = {
40
+ getItemAsync: mod.getItemAsync,
41
+ setItemAsync: mod.setItemAsync,
42
+ deleteItemAsync: mod.deleteItemAsync
43
+ };
44
+ }
45
+ } catch {
46
+ cached = null;
47
+ }
48
+ return cached;
49
+ };
50
+ exports.loadSecureStore = loadSecureStore;
51
+ const isSecureStoreAvailable = () => loadSecureStore() !== null;
52
+
53
+ /** Test seam only. */
54
+ exports.isSecureStoreAvailable = isSecureStoreAvailable;
55
+ const __resetSecureStoreRuntimeForTests = () => {
56
+ cached = undefined;
57
+ };
58
+ exports.__resetSecureStoreRuntimeForTests = __resetSecureStoreRuntimeForTests;
59
+ //# sourceMappingURL=secureStoreRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cached","loadSecureStore","undefined","mod","require","getItemAsync","setItemAsync","deleteItemAsync","exports","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;AACO,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;AAACQ,OAAA,CAAAP,eAAA,GAAAA,eAAA;AAEK,MAAMQ,sBAAsB,GAAGA,CAAA,KAAeR,eAAe,CAAC,CAAC,KAAK,IAAI;;AAE/E;AAAAO,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AACO,MAAMC,iCAAiC,GAAGA,CAAA,KAAY;EAC3DV,MAAM,GAAGE,SAAS;AACpB,CAAC;AAACM,OAAA,CAAAE,iCAAA,GAAAA,iCAAA","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.secureUserStorage = secureUserStorage;
7
+ var _useLocalStorage = require("../hooks/useLocalStorage");
8
+ var _LOCAL_STORAGE = require("./constants/LOCAL_STORAGE");
9
+ var _secureKeyValue = require("./secureKeyValue");
10
+ // Keychain (iOS) / Keystore-backed EncryptedSharedPreferences (Android)
11
+ // keys for the four live bearer credentials on `User`. Deliberately one
12
+ // key per field rather than one JSON blob: expo-secure-store historically
13
+ // caps a single value's size on Android, and four short JWTs each stay
14
+ // comfortably under that ceiling where one combined blob might not.
15
+ const SECRET_KEYS = {
16
+ token: 'ethora_auth_token',
17
+ refreshToken: 'ethora_auth_refresh_token',
18
+ xmppPassword: 'ethora_auth_xmpp_password',
19
+ fileToken: 'ethora_auth_file_token'
20
+ };
21
+ const SECRET_FIELDS = Object.keys(SECRET_KEYS);
22
+
23
+ /**
24
+ * Persisted-user storage, split across two backends behind the exact
25
+ * same `{ get, set, remove }` shape `asyncLocalStorage<User>(...)`
26
+ * already exposed — every existing call site swaps in by changing only
27
+ * the constructor call, `get()`/`set()`/`remove()` keep returning/taking
28
+ * a complete `User`.
29
+ *
30
+ * The four live credentials (REST access + refresh token, XMPP
31
+ * password, secure-media fileToken) never touch plain AsyncStorage:
32
+ * they go through `secureGet`/`secureSet`/`secureRemove` (platform
33
+ * Keychain/Keystore, falling back to namespaced AsyncStorage only when
34
+ * the host hasn't installed the optional `expo-secure-store` peer dep).
35
+ * Everything else on `User` — name, avatar, ids, xmppUsername, wallet
36
+ * address, none of it a bearer credential — keeps living under the
37
+ * existing `ETHORA_USER` AsyncStorage key, unchanged.
38
+ */
39
+ function secureUserStorage() {
40
+ const get = async () => {
41
+ const profile = await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).get();
42
+ if (!profile) {
43
+ return null;
44
+ }
45
+ const secretValues = await Promise.all(SECRET_FIELDS.map(field => (0, _secureKeyValue.secureGet)(SECRET_KEYS[field])));
46
+ const merged = {
47
+ ...profile
48
+ };
49
+ SECRET_FIELDS.forEach((field, i) => {
50
+ merged[field] = secretValues[i] || '';
51
+ });
52
+ return merged;
53
+ };
54
+ const set = async user => {
55
+ const profile = {
56
+ ...user
57
+ };
58
+ for (const field of SECRET_FIELDS) {
59
+ profile[field] = '';
60
+ }
61
+ await Promise.all([(0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).set(profile), ...SECRET_FIELDS.map(field => {
62
+ const value = user?.[field];
63
+ return value ? (0, _secureKeyValue.secureSet)(SECRET_KEYS[field], value) : (0, _secureKeyValue.secureRemove)(SECRET_KEYS[field]);
64
+ })]);
65
+ };
66
+ const remove = async () => {
67
+ await Promise.all([(0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).remove(), ...SECRET_FIELDS.map(field => (0, _secureKeyValue.secureRemove)(SECRET_KEYS[field]))]);
68
+ };
69
+ return {
70
+ get,
71
+ set,
72
+ remove
73
+ };
74
+ }
75
+ //# sourceMappingURL=secureUserStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useLocalStorage","require","_LOCAL_STORAGE","_secureKeyValue","SECRET_KEYS","token","refreshToken","xmppPassword","fileToken","SECRET_FIELDS","Object","keys","secureUserStorage","get","profile","asyncLocalStorage","localStorageConstants","ETHORA_USER","secretValues","Promise","all","map","field","secureGet","merged","forEach","i","set","user","value","secureSet","secureRemove","remove"],"sourceRoot":"../../../src","sources":["helpers/secureUserStorage.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMG,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;AACO,SAASQ,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAkC;IAC5C,MAAMC,OAAO,GAAG,MAAM,IAAAC,kCAAiB,EACrCC,oCAAqB,CAACC,WACxB,CAAC,CAACJ,GAAG,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,EAAE;MAAC,OAAO,IAAI;IAAC;IAE3B,MAAMI,YAAY,GAAG,MAAMC,OAAO,CAACC,GAAG,CACpCX,aAAa,CAACY,GAAG,CAAEC,KAAK,IAAK,IAAAC,yBAAS,EAACnB,WAAW,CAACkB,KAAK,CAAC,CAAC,CAC5D,CAAC;IAED,MAAME,MAAY,GAAG;MAAE,GAAGV;IAAQ,CAAC;IACnCL,aAAa,CAACgB,OAAO,CAAC,CAACH,KAAK,EAAEI,CAAC,KAAK;MACjCF,MAAM,CAASF,KAAK,CAAC,GAAGJ,YAAY,CAACQ,CAAC,CAAC,IAAI,EAAE;IAChD,CAAC,CAAC;IACF,OAAOF,MAAM;EACf,CAAC;EAED,MAAMG,GAAG,GAAG,MAAOC,IAAU,IAAoB;IAC/C,MAAMd,OAAY,GAAG;MAAE,GAAGc;IAAK,CAAC;IAChC,KAAK,MAAMN,KAAK,IAAIb,aAAa,EAAE;MACjCK,OAAO,CAACQ,KAAK,CAAC,GAAG,EAAE;IACrB;IAEA,MAAMH,OAAO,CAACC,GAAG,CAAC,CAChB,IAAAL,kCAAiB,EAAOC,oCAAqB,CAACC,WAAW,CAAC,CAACU,GAAG,CAACb,OAAO,CAAC,EACvE,GAAGL,aAAa,CAACY,GAAG,CAAEC,KAAK,IAAK;MAC9B,MAAMO,KAAK,GAAGD,IAAI,GAAGN,KAAK,CAAuB;MACjD,OAAOO,KAAK,GACR,IAAAC,yBAAS,EAAC1B,WAAW,CAACkB,KAAK,CAAC,EAAEO,KAAK,CAAC,GACpC,IAAAE,4BAAY,EAAC3B,WAAW,CAACkB,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CACH,CAAC;EACJ,CAAC;EAED,MAAMU,MAAM,GAAG,MAAAA,CAAA,KAA2B;IACxC,MAAMb,OAAO,CAACC,GAAG,CAAC,CAChB,IAAAL,kCAAiB,EAACC,oCAAqB,CAACC,WAAW,CAAC,CAACe,MAAM,CAAC,CAAC,EAC7D,GAAGvB,aAAa,CAACY,GAAG,CAAEC,KAAK,IAAK,IAAAS,4BAAY,EAAC3B,WAAW,CAACkB,KAAK,CAAC,CAAC,CAAC,CAClE,CAAC;EACJ,CAAC;EAED,OAAO;IAAET,GAAG;IAAEc,GAAG;IAAEK;EAAO,CAAC;AAC7B","ignoreList":[]}
@@ -15,7 +15,7 @@ var _roomHeapSlice = require("../roomStore/roomHeapSlice");
15
15
  var _pushSubscriptionService = require("../services/pushSubscriptionService");
16
16
  var _rooms = require("../networking/api-requests/rooms.api");
17
17
  var _persistence = require("../roomStore/persistence");
18
- var _LOCAL_STORAGE = require("../helpers/constants/LOCAL_STORAGE");
18
+ var _secureUserStorage = require("../helpers/secureUserStorage");
19
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
20
  // AsyncStorage keys the library writes but that aren't cleared by any
21
21
  // slice reducer. Listed here so a single logout call wipes the full
@@ -121,15 +121,23 @@ const logoutService = exports.logoutService = {
121
121
 
122
122
  // 6. Stray keys the slices don't touch.
123
123
  try {
124
- await _asyncStorage.default.multiRemove([...LIBRARY_STRAY_KEYS,
125
- // Belt-and-suspenders: the chat slice's `logout` reducer
126
- // schedules an async remove of ETHORA_USER fire-and-forget;
127
- // re-issue it here so the disk is provably clean before this
128
- // Promise resolves.
129
- _LOCAL_STORAGE.localStorageConstants.ETHORA_USER]);
124
+ await _asyncStorage.default.multiRemove(LIBRARY_STRAY_KEYS);
130
125
  } catch (e) {
131
126
  console.warn('logoutService: stray-key clear failed', e);
132
127
  }
128
+
129
+ // 7. Belt-and-suspenders: the chat slice's `logout` reducer already
130
+ // fires an async ETHORA_USER removal, but re-issue it here (via
131
+ // the same secureUserStorage split the reducer uses) so BOTH the
132
+ // plain-AsyncStorage profile half AND the Keychain/Keystore
133
+ // secrets are provably gone before this Promise resolves — a bare
134
+ // `AsyncStorage.removeItem(ETHORA_USER)` here would only clear the
135
+ // profile half and leave the tokens behind.
136
+ try {
137
+ await (0, _secureUserStorage.secureUserStorage)().remove();
138
+ } catch (e) {
139
+ console.warn('logoutService: secure user storage clear failed', e);
140
+ }
133
141
  }
134
142
  };
135
143
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_rooms","_persistence","_LOCAL_STORAGE","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","flushLastViewedToPrivateStoreStanza","Promise","race","onlyIfNoUnread","res","setTimeout","console","warn","DeviceEventEmitter","emit","pushSubscriptionService","reset","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","localStorageConstants","ETHORA_USER","useLogout","useDispatch","useCallback","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_rooms","_persistence","_secureUserStorage","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","flushLastViewedToPrivateStoreStanza","Promise","race","onlyIfNoUnread","res","setTimeout","console","warn","DeviceEventEmitter","emit","pushSubscriptionService","reset","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","secureUserStorage","remove","useLogout","useDispatch","useCallback","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}