@ethora/chat-component-rn 26.8.1 → 26.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +43 -10
  3. package/lib/commonjs/assets/icons.js +7 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/AuthForms/Login.js +4 -4
  6. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  7. package/lib/commonjs/components/Header/HeaderRoomList.js +29 -8
  8. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js +9 -3
  10. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js +150 -14
  12. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js +34 -13
  14. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/LoginWrapper.js +2 -1
  16. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +29 -9
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +5 -1
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +13 -5
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  24. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +208 -35
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +317 -98
  28. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  29. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +322 -110
  30. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  31. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +546 -203
  32. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  33. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +226 -0
  34. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  35. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +69 -27
  36. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +2 -1
  38. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  39. package/lib/commonjs/components/Modals/Modal/Modal.js +8 -0
  40. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +2 -1
  42. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  43. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +202 -106
  44. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  45. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  46. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  47. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +563 -0
  48. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  49. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +210 -0
  50. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  51. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -2
  52. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  53. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +7 -21
  54. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +507 -244
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +74 -46
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/styledModalComponents.js +9 -2
  60. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +21 -7
  62. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +22 -3
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +6 -3
  70. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  71. package/lib/commonjs/components/styled/AudioMessage.js +2 -1
  72. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  73. package/lib/commonjs/components/styled/MessageImage.js +37 -9
  74. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  75. package/lib/commonjs/components/styled/SendInput.js +80 -11
  76. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  77. package/lib/commonjs/components/styled/StyledComponents.js +9 -3
  78. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  79. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +11 -4
  80. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  81. package/lib/commonjs/components/styled/UnsupportedType.js +14 -4
  82. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  83. package/lib/commonjs/components/styled/VideoMessage.js +119 -61
  84. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  85. package/lib/commonjs/context/xmppProvider.js +184 -59
  86. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  87. package/lib/commonjs/helpers/createMessageFromXml.js +19 -1
  88. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  89. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  90. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  91. package/lib/commonjs/helpers/getChatBackground.js +23 -0
  92. package/lib/commonjs/helpers/getChatBackground.js.map +1 -0
  93. package/lib/commonjs/helpers/getDisplayFileName.js +79 -0
  94. package/lib/commonjs/helpers/getDisplayFileName.js.map +1 -0
  95. package/lib/commonjs/helpers/getServerReadTimestamp.js +188 -0
  96. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -0
  97. package/lib/commonjs/helpers/historyPreloadScheduler.js +65 -2
  98. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  99. package/lib/commonjs/helpers/initXmppRooms.js +14 -8
  100. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  101. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +51 -9
  102. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  103. package/lib/commonjs/helpers/isOwnMessage.js +75 -0
  104. package/lib/commonjs/helpers/isOwnMessage.js.map +1 -0
  105. package/lib/commonjs/helpers/keyboardLayout.js +12 -2
  106. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
  107. package/lib/commonjs/helpers/mediaLibraryRuntime.js +31 -0
  108. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +1 -0
  109. package/lib/commonjs/helpers/mimeToExtension.js +6 -14
  110. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  111. package/lib/commonjs/helpers/msgSortableMs.js +37 -0
  112. package/lib/commonjs/helpers/msgSortableMs.js.map +1 -0
  113. package/lib/commonjs/helpers/persistCrypto.js +122 -0
  114. package/lib/commonjs/helpers/persistCrypto.js.map +1 -0
  115. package/lib/commonjs/helpers/pickImageAsset.js +68 -0
  116. package/lib/commonjs/helpers/pickImageAsset.js.map +1 -0
  117. package/lib/commonjs/helpers/pushPayload.js +71 -0
  118. package/lib/commonjs/helpers/pushPayload.js.map +1 -0
  119. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +130 -17
  120. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  121. package/lib/commonjs/helpers/secureFileUrl.js +101 -0
  122. package/lib/commonjs/helpers/secureFileUrl.js.map +1 -0
  123. package/lib/commonjs/helpers/secureKeyValue.js +83 -0
  124. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -0
  125. package/lib/commonjs/helpers/secureStoreRuntime.js +59 -0
  126. package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -0
  127. package/lib/commonjs/helpers/secureUserStorage.js +75 -0
  128. package/lib/commonjs/helpers/secureUserStorage.js.map +1 -0
  129. package/lib/commonjs/helpers/shallowEqual.js +36 -0
  130. package/lib/commonjs/helpers/shallowEqual.js.map +1 -0
  131. package/lib/commonjs/helpers/sheetGestures.js +32 -0
  132. package/lib/commonjs/helpers/sheetGestures.js.map +1 -0
  133. package/lib/commonjs/hooks/useChatRoomFocus.js +45 -12
  134. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  135. package/lib/commonjs/hooks/useChatWrapperInit.js +30 -10
  136. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  137. package/lib/commonjs/hooks/useComposing.js +27 -0
  138. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  139. package/lib/commonjs/hooks/useFileToken.js +10 -0
  140. package/lib/commonjs/hooks/useFileToken.js.map +1 -0
  141. package/lib/commonjs/hooks/useLogout.js +23 -7
  142. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  143. package/lib/commonjs/hooks/usePendingNotification.js +8 -11
  144. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  145. package/lib/commonjs/hooks/useSendMessage.js +50 -14
  146. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  147. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +6 -1
  148. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  149. package/lib/commonjs/i18n/strings.js +145 -37
  150. package/lib/commonjs/i18n/strings.js.map +1 -1
  151. package/lib/commonjs/main.js +44 -0
  152. package/lib/commonjs/main.js.map +1 -1
  153. package/lib/commonjs/networking/api-requests/auth.api.js +134 -60
  154. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  155. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  156. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  157. package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
  158. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  159. package/lib/commonjs/networking/api-requests/user.api.js +68 -9
  160. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  161. package/lib/commonjs/networking/apiClient.js +62 -112
  162. package/lib/commonjs/networking/apiClient.js.map +1 -1
  163. package/lib/commonjs/networking/authRefresh.js +332 -0
  164. package/lib/commonjs/networking/authRefresh.js.map +1 -0
  165. package/lib/commonjs/networking/stanzaHandlers.js +41 -28
  166. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  167. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  168. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  169. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  170. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  171. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  172. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  173. package/lib/commonjs/networking/xmppClient.js +124 -8
  174. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  175. package/lib/commonjs/roomStore/chatSettingsSlice.js +26 -7
  176. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  177. package/lib/commonjs/roomStore/index.js +35 -2
  178. package/lib/commonjs/roomStore/index.js.map +1 -1
  179. package/lib/commonjs/roomStore/persistence.js +226 -23
  180. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  181. package/lib/commonjs/roomStore/roomsSlice.js +151 -38
  182. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  183. package/lib/commonjs/services/pushSubscriptionService.js +15 -13
  184. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  185. package/lib/commonjs/version.js +1 -1
  186. package/lib/module/assets/icons.js +6 -1
  187. package/lib/module/assets/icons.js.map +1 -1
  188. package/lib/module/components/AuthForms/Login.js +4 -4
  189. package/lib/module/components/AuthForms/Login.js.map +1 -1
  190. package/lib/module/components/Header/HeaderRoomList.js +29 -8
  191. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  192. package/lib/module/components/MainComponents/ChatHeader.js +9 -3
  193. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  194. package/lib/module/components/MainComponents/ChatRoom.js +152 -16
  195. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  196. package/lib/module/components/MainComponents/ChatWrapper.js +35 -14
  197. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  198. package/lib/module/components/MainComponents/LoginWrapper.js +2 -1
  199. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  200. package/lib/module/components/MainComponents/MediaMessage.js +30 -10
  201. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  202. package/lib/module/components/MainComponents/MessageContainer.js +5 -1
  203. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  204. package/lib/module/components/MainComponents/MessageList.js +13 -5
  205. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  206. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  207. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  208. package/lib/module/components/MainComponents/RoomList.js +207 -35
  209. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  210. package/lib/module/components/Menu/HeaderRoomListMenu.js +319 -101
  211. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  212. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +313 -113
  213. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  214. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +549 -207
  215. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  216. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +223 -0
  217. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  218. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +70 -28
  219. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  220. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +2 -1
  221. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  222. package/lib/module/components/Modals/Modal/Modal.js +9 -1
  223. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  224. package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -1
  225. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  226. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +205 -108
  227. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  228. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  229. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  230. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +555 -0
  231. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  232. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +205 -0
  233. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  234. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -2
  235. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  236. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +9 -23
  237. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  238. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +509 -248
  239. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  240. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +76 -48
  241. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  242. package/lib/module/components/Modals/styledModalComponents.js +9 -2
  243. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  244. package/lib/module/components/RoomComponents/ChatRoomItem.js +21 -7
  245. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  246. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +22 -3
  247. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  248. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  249. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  250. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  251. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  252. package/lib/module/components/VideoCalls/VideoCallSession.js +6 -3
  253. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  254. package/lib/module/components/styled/AudioMessage.js +2 -1
  255. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  256. package/lib/module/components/styled/MessageImage.js +37 -9
  257. package/lib/module/components/styled/MessageImage.js.map +1 -1
  258. package/lib/module/components/styled/SendInput.js +81 -12
  259. package/lib/module/components/styled/SendInput.js.map +1 -1
  260. package/lib/module/components/styled/StyledComponents.js +9 -3
  261. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  262. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +11 -4
  263. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  264. package/lib/module/components/styled/UnsupportedType.js +14 -4
  265. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  266. package/lib/module/components/styled/VideoMessage.js +120 -62
  267. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  268. package/lib/module/context/xmppProvider.js +184 -60
  269. package/lib/module/context/xmppProvider.js.map +1 -1
  270. package/lib/module/helpers/createMessageFromXml.js +19 -1
  271. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  272. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  273. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  274. package/lib/module/helpers/getChatBackground.js +18 -0
  275. package/lib/module/helpers/getChatBackground.js.map +1 -0
  276. package/lib/module/helpers/getDisplayFileName.js +73 -0
  277. package/lib/module/helpers/getDisplayFileName.js.map +1 -0
  278. package/lib/module/helpers/getServerReadTimestamp.js +181 -0
  279. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -0
  280. package/lib/module/helpers/historyPreloadScheduler.js +66 -3
  281. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  282. package/lib/module/helpers/initXmppRooms.js +14 -8
  283. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  284. package/lib/module/helpers/insertMessageWithDelimiter.js +52 -9
  285. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  286. package/lib/module/helpers/isOwnMessage.js +70 -0
  287. package/lib/module/helpers/isOwnMessage.js.map +1 -0
  288. package/lib/module/helpers/keyboardLayout.js +12 -2
  289. package/lib/module/helpers/keyboardLayout.js.map +1 -1
  290. package/lib/module/helpers/mediaLibraryRuntime.js +25 -0
  291. package/lib/module/helpers/mediaLibraryRuntime.js.map +1 -0
  292. package/lib/module/helpers/mimeToExtension.js +6 -13
  293. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  294. package/lib/module/helpers/msgSortableMs.js +32 -0
  295. package/lib/module/helpers/msgSortableMs.js.map +1 -0
  296. package/lib/module/helpers/persistCrypto.js +115 -0
  297. package/lib/module/helpers/persistCrypto.js.map +1 -0
  298. package/lib/module/helpers/pickImageAsset.js +63 -0
  299. package/lib/module/helpers/pickImageAsset.js.map +1 -0
  300. package/lib/module/helpers/pushPayload.js +63 -0
  301. package/lib/module/helpers/pushPayload.js.map +1 -0
  302. package/lib/module/helpers/resolveInitBeforeLoadUser.js +130 -16
  303. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  304. package/lib/module/helpers/secureFileUrl.js +91 -0
  305. package/lib/module/helpers/secureFileUrl.js.map +1 -0
  306. package/lib/module/helpers/secureKeyValue.js +75 -0
  307. package/lib/module/helpers/secureKeyValue.js.map +1 -0
  308. package/lib/module/helpers/secureStoreRuntime.js +52 -0
  309. package/lib/module/helpers/secureStoreRuntime.js.map +1 -0
  310. package/lib/module/helpers/secureUserStorage.js +72 -0
  311. package/lib/module/helpers/secureUserStorage.js.map +1 -0
  312. package/lib/module/helpers/shallowEqual.js +31 -0
  313. package/lib/module/helpers/shallowEqual.js.map +1 -0
  314. package/lib/module/helpers/sheetGestures.js +26 -0
  315. package/lib/module/helpers/sheetGestures.js.map +1 -0
  316. package/lib/module/hooks/useChatRoomFocus.js +46 -13
  317. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  318. package/lib/module/hooks/useChatWrapperInit.js +30 -10
  319. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  320. package/lib/module/hooks/useComposing.js +28 -1
  321. package/lib/module/hooks/useComposing.js.map +1 -1
  322. package/lib/module/hooks/useFileToken.js +5 -0
  323. package/lib/module/hooks/useFileToken.js.map +1 -0
  324. package/lib/module/hooks/useLogout.js +23 -7
  325. package/lib/module/hooks/useLogout.js.map +1 -1
  326. package/lib/module/hooks/usePendingNotification.js +8 -11
  327. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  328. package/lib/module/hooks/useSendMessage.js +52 -16
  329. package/lib/module/hooks/useSendMessage.js.map +1 -1
  330. package/lib/module/hooks/useUnreadMessagesCounter.js +6 -1
  331. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  332. package/lib/module/i18n/strings.js +145 -37
  333. package/lib/module/i18n/strings.js.map +1 -1
  334. package/lib/module/main.js +14 -2
  335. package/lib/module/main.js.map +1 -1
  336. package/lib/module/networking/api-requests/auth.api.js +131 -59
  337. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  338. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  339. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  340. package/lib/module/networking/api-requests/rooms.api.js +9 -9
  341. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  342. package/lib/module/networking/api-requests/user.api.js +64 -7
  343. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  344. package/lib/module/networking/apiClient.js +61 -113
  345. package/lib/module/networking/apiClient.js.map +1 -1
  346. package/lib/module/networking/authRefresh.js +321 -0
  347. package/lib/module/networking/authRefresh.js.map +1 -0
  348. package/lib/module/networking/stanzaHandlers.js +41 -28
  349. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  350. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  351. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  352. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  353. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  354. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  355. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  356. package/lib/module/networking/xmppClient.js +124 -8
  357. package/lib/module/networking/xmppClient.js.map +1 -1
  358. package/lib/module/roomStore/chatSettingsSlice.js +26 -7
  359. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  360. package/lib/module/roomStore/index.js +37 -4
  361. package/lib/module/roomStore/index.js.map +1 -1
  362. package/lib/module/roomStore/persistence.js +223 -22
  363. package/lib/module/roomStore/persistence.js.map +1 -1
  364. package/lib/module/roomStore/roomsSlice.js +139 -34
  365. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  366. package/lib/module/services/pushSubscriptionService.js +15 -13
  367. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  368. package/lib/module/version.js +1 -1
  369. package/lib/typescript/assets/icons.d.ts +16 -0
  370. package/lib/typescript/assets/icons.d.ts.map +1 -1
  371. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  372. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  373. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  374. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  375. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  376. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  377. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  378. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  379. package/lib/typescript/components/MainComponents/MessageList.d.ts +10 -1
  380. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  381. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  382. package/lib/typescript/components/MainComponents/RoomList.d.ts +7 -0
  383. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  384. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +3 -0
  385. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  386. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +9 -0
  387. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  388. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +10 -0
  389. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  390. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +9 -0
  391. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -0
  392. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  393. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  394. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  395. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +4 -2
  396. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  397. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  398. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  399. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  400. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +75 -0
  401. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +1 -0
  402. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +25 -0
  403. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -0
  404. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +6 -1
  405. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  406. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  407. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +16 -0
  408. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  409. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +1 -0
  410. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  411. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  412. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  413. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  414. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  415. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  416. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  417. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  418. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  419. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  420. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  421. package/lib/typescript/components/styled/MessageImage.d.ts +14 -0
  422. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  423. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  424. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  425. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  426. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  427. package/lib/typescript/components/styled/VideoMessage.d.ts +8 -0
  428. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  429. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  430. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  431. package/lib/typescript/helpers/getChatBackground.d.ts +15 -0
  432. package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -0
  433. package/lib/typescript/helpers/getDisplayFileName.d.ts +49 -0
  434. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +1 -0
  435. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +108 -0
  436. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -0
  437. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  438. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  439. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts +1 -1
  440. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  441. package/lib/typescript/helpers/isOwnMessage.d.ts +36 -0
  442. package/lib/typescript/helpers/isOwnMessage.d.ts.map +1 -0
  443. package/lib/typescript/helpers/keyboardLayout.d.ts +5 -1
  444. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
  445. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +3 -0
  446. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +1 -0
  447. package/lib/typescript/helpers/mimeToExtension.d.ts +0 -15
  448. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  449. package/lib/typescript/helpers/msgSortableMs.d.ts +2 -0
  450. package/lib/typescript/helpers/msgSortableMs.d.ts.map +1 -0
  451. package/lib/typescript/helpers/persistCrypto.d.ts +13 -0
  452. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -0
  453. package/lib/typescript/helpers/pickImageAsset.d.ts +27 -0
  454. package/lib/typescript/helpers/pickImageAsset.d.ts.map +1 -0
  455. package/lib/typescript/helpers/pushPayload.d.ts +7 -0
  456. package/lib/typescript/helpers/pushPayload.d.ts.map +1 -0
  457. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  458. package/lib/typescript/helpers/secureFileUrl.d.ts +7 -0
  459. package/lib/typescript/helpers/secureFileUrl.d.ts.map +1 -0
  460. package/lib/typescript/helpers/secureKeyValue.d.ts +13 -0
  461. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -0
  462. package/lib/typescript/helpers/secureStoreRuntime.d.ts +29 -0
  463. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -0
  464. package/lib/typescript/helpers/secureUserStorage.d.ts +23 -0
  465. package/lib/typescript/helpers/secureUserStorage.d.ts.map +1 -0
  466. package/lib/typescript/helpers/shallowEqual.d.ts +11 -0
  467. package/lib/typescript/helpers/shallowEqual.d.ts.map +1 -0
  468. package/lib/typescript/helpers/sheetGestures.d.ts +20 -0
  469. package/lib/typescript/helpers/sheetGestures.d.ts.map +1 -0
  470. package/lib/typescript/hooks/useChatRoomFocus.d.ts +4 -1
  471. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  472. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  473. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  474. package/lib/typescript/hooks/useFileToken.d.ts +2 -0
  475. package/lib/typescript/hooks/useFileToken.d.ts.map +1 -0
  476. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  477. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  478. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  479. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  480. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  481. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  482. package/lib/typescript/main.d.ts +9 -2
  483. package/lib/typescript/main.d.ts.map +1 -1
  484. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -1
  485. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  486. package/lib/typescript/networking/api-requests/user.api.d.ts +27 -0
  487. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  488. package/lib/typescript/networking/apiClient.d.ts +12 -6
  489. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  490. package/lib/typescript/networking/authRefresh.d.ts +95 -0
  491. package/lib/typescript/networking/authRefresh.d.ts.map +1 -0
  492. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  493. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +10 -2
  494. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  495. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  496. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  497. package/lib/typescript/networking/xmppClient.d.ts +14 -0
  498. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  499. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +16 -0
  500. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  501. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  502. package/lib/typescript/roomStore/persistence.d.ts +18 -1
  503. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  504. package/lib/typescript/roomStore/roomsSlice.d.ts +43 -3
  505. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  506. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -1
  507. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  508. package/lib/typescript/types/types.d.ts +50 -5
  509. package/lib/typescript/types/types.d.ts.map +1 -1
  510. package/lib/typescript/version.d.ts +1 -1
  511. package/package.json +41 -28
  512. package/src/assets/icons.tsx +48 -9
  513. package/src/components/AuthForms/Login.tsx +3 -3
  514. package/src/components/Header/HeaderRoomList.tsx +29 -7
  515. package/src/components/MainComponents/ChatHeader.tsx +9 -3
  516. package/src/components/MainComponents/ChatRoom.tsx +161 -15
  517. package/src/components/MainComponents/ChatWrapper.tsx +36 -20
  518. package/src/components/MainComponents/LoginWrapper.tsx +1 -0
  519. package/src/components/MainComponents/MediaMessage.tsx +26 -8
  520. package/src/components/MainComponents/MessageContainer.tsx +5 -1
  521. package/src/components/MainComponents/MessageList.tsx +23 -4
  522. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +21 -14
  523. package/src/components/MainComponents/RoomList.tsx +236 -39
  524. package/src/components/Menu/HeaderRoomListMenu.tsx +328 -75
  525. package/src/components/Modals/AttachSheet/AttachSheet.tsx +333 -97
  526. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +600 -282
  527. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +244 -0
  528. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +79 -38
  529. package/src/components/Modals/FilePreviewModal/PdfView.tsx +2 -1
  530. package/src/components/Modals/Modal/Modal.tsx +7 -0
  531. package/src/components/Modals/NewChatModal/ModalContent.tsx +6 -3
  532. package/src/components/Modals/NewChatModal/NewChatModal.tsx +219 -119
  533. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +12 -1
  534. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +624 -0
  535. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +217 -0
  536. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +14 -4
  537. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +9 -25
  538. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +617 -307
  539. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +75 -58
  540. package/src/components/Modals/styledModalComponents.tsx +9 -2
  541. package/src/components/RoomComponents/ChatRoomItem.tsx +18 -3
  542. package/src/components/RoomComponents/styled/LastMessageFile.tsx +28 -4
  543. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +18 -3
  544. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +18 -3
  545. package/src/components/VideoCalls/VideoCallSession.tsx +8 -3
  546. package/src/components/styled/AudioMessage.tsx +2 -1
  547. package/src/components/styled/MessageImage.tsx +53 -7
  548. package/src/components/styled/SendInput.tsx +83 -12
  549. package/src/components/styled/StyledComponents.ts +9 -3
  550. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +11 -4
  551. package/src/components/styled/UnsupportedType.tsx +14 -4
  552. package/src/components/styled/VideoMessage.tsx +131 -54
  553. package/src/context/xmppProvider.tsx +216 -57
  554. package/src/helpers/createMessageFromXml.ts +20 -1
  555. package/src/helpers/ensureScopedChatCache.ts +2 -2
  556. package/src/helpers/getChatBackground.ts +18 -0
  557. package/src/helpers/getDisplayFileName.ts +87 -0
  558. package/src/helpers/getServerReadTimestamp.ts +197 -0
  559. package/src/helpers/historyPreloadScheduler.ts +80 -3
  560. package/src/helpers/initXmppRooms.tsx +14 -10
  561. package/src/helpers/insertMessageWithDelimiter.ts +55 -19
  562. package/src/helpers/isOwnMessage.ts +90 -0
  563. package/src/helpers/keyboardLayout.ts +23 -2
  564. package/src/helpers/mediaLibraryRuntime.ts +25 -0
  565. package/src/helpers/mimeToExtension.ts +6 -22
  566. package/src/helpers/msgSortableMs.ts +25 -0
  567. package/src/helpers/persistCrypto.ts +127 -0
  568. package/src/helpers/pickImageAsset.ts +68 -0
  569. package/src/helpers/pushPayload.ts +62 -0
  570. package/src/helpers/resolveInitBeforeLoadUser.ts +125 -18
  571. package/src/helpers/secureFileUrl.ts +103 -0
  572. package/src/helpers/secureKeyValue.ts +80 -0
  573. package/src/helpers/secureStoreRuntime.ts +62 -0
  574. package/src/helpers/secureUserStorage.ts +80 -0
  575. package/src/helpers/shallowEqual.ts +33 -0
  576. package/src/helpers/sheetGestures.ts +25 -0
  577. package/src/hooks/useChatRoomFocus.ts +49 -9
  578. package/src/hooks/useChatWrapperInit.ts +30 -10
  579. package/src/hooks/useComposing.tsx +37 -1
  580. package/src/hooks/useFileToken.ts +7 -0
  581. package/src/hooks/useLogout.tsx +29 -9
  582. package/src/hooks/usePendingNotification.ts +5 -11
  583. package/src/hooks/useSendMessage.tsx +60 -15
  584. package/src/hooks/useUnreadMessagesCounter.ts +11 -0
  585. package/src/i18n/strings.ts +145 -37
  586. package/src/main.ts +26 -2
  587. package/src/networking/api-requests/auth.api.ts +156 -48
  588. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  589. package/src/networking/api-requests/rooms.api.ts +9 -9
  590. package/src/networking/api-requests/user.api.ts +79 -7
  591. package/src/networking/apiClient.ts +68 -123
  592. package/src/networking/authRefresh.ts +451 -0
  593. package/src/networking/stanzaHandlers.ts +44 -28
  594. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +71 -10
  595. package/src/networking/xmpp/presenceInRoom.xmpp.ts +6 -1
  596. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +12 -1
  597. package/src/networking/xmppClient.ts +141 -9
  598. package/src/roomStore/chatSettingsSlice.ts +34 -10
  599. package/src/roomStore/index.ts +40 -4
  600. package/src/roomStore/persistence.ts +234 -24
  601. package/src/roomStore/roomsSlice.ts +161 -29
  602. package/src/services/pushSubscriptionService.ts +18 -13
  603. package/src/types/types.ts +72 -5
  604. package/src/version.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isOwnMessage.d.ts","sourceRoot":"","sources":["../../../src/helpers/isOwnMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,MAAM,GACN,IAAI,GACJ,SAAS,CAAC;AAkCd;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EAClD,aAAa,qBAAqB,KACjC,OAYF,CAAC"}
@@ -6,6 +6,10 @@ type KeyboardLayoutArgs = {
6
6
  };
7
7
  export declare const ANDROID_INPUT_DOCK_GAP = 12;
8
8
  export declare const getKeyboardVerticalOffset: ({ platform, configuredOffset, bottomInset, }: KeyboardLayoutArgs) => number;
9
- export declare const getInputDockPaddingBottom: ({ platform, bottomInset, keyboardVisible, }: Omit<KeyboardLayoutArgs, "configuredOffset">) => number;
9
+ type InputDockPaddingArgs = Omit<KeyboardLayoutArgs, 'configuredOffset'> & {
10
+ configuredPadding?: number;
11
+ hostOwnsLayout?: boolean;
12
+ };
13
+ export declare const getInputDockPaddingBottom: ({ platform, bottomInset, keyboardVisible, configuredPadding, hostOwnsLayout, }: InputDockPaddingArgs) => number;
10
14
  export {};
11
15
  //# sourceMappingURL=keyboardLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboardLayout.d.ts","sourceRoot":"","sources":["../../../src/helpers/keyboardLayout.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,yBAAyB,GAAI,8CAIvC,kBAAkB,KAAG,MACmC,CAAC;AAE5D,eAAO,MAAM,yBAAyB,GAAI,6CAIvC,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,KAAG,MACS,CAAC"}
1
+ {"version":3,"file":"keyboardLayout.d.ts","sourceRoot":"","sources":["../../../src/helpers/keyboardLayout.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,yBAAyB,GAAI,8CAIvC,kBAAkB,KAAG,MACmC,CAAC;AAE5D,KAAK,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG;IAIzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAK3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,gFAMvC,oBAAoB,KAAG,MAQzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const getMediaLibrary: () => any | null;
2
+ export declare const __resetMediaLibraryCache: () => void;
3
+ //# sourceMappingURL=mediaLibraryRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaLibraryRuntime.d.ts","sourceRoot":"","sources":["../../../src/helpers/mediaLibraryRuntime.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,QAAO,GAAG,GAAG,IAkBxC,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAEpC,CAAC"}
@@ -57,19 +57,4 @@ export declare function isUnsupportedAudioForIosPlayback(opts: {
57
57
  * extension is appended so callers always get a usable filename.
58
58
  */
59
59
  export declare function ensureFilenameHasExtension(fileName: string | undefined | null, mime: string | undefined | null): string;
60
- /**
61
- * Best-effort filename derivation for a message bubble:
62
- * - server-provided `fileName`
63
- * - server-provided `originalName`
64
- * - URL pathname
65
- * - generic `media_<timestamp>` so we never render an empty label
66
- *
67
- * Always returns a string with a valid extension.
68
- */
69
- export declare function deriveDisplayFilename(opts: {
70
- fileName?: string | null;
71
- originalName?: string | null;
72
- url?: string | null;
73
- mime?: string | null;
74
- }): string;
75
60
  //# sourceMappingURL=mimeToExtension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mimeToExtension.d.ts","sourceRoot":"","sources":["../../../src/helpers/mimeToExtension.ts"],"names":[],"mappings":"AAkGA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,OAAO,CA8CT;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAWtE;AAQD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAiBV;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,MAAM,CAcT;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAgBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC9B,MAAM,CAKR;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GAAG,MAAM,CAOT"}
1
+ {"version":3,"file":"mimeToExtension.d.ts","sourceRoot":"","sources":["../../../src/helpers/mimeToExtension.ts"],"names":[],"mappings":"AAkGA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,OAAO,CA8CT;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAWtE;AAQD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAiBV;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,MAAM,CAcT;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAgBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC9B,MAAM,CAKR"}
@@ -0,0 +1,2 @@
1
+ export declare const msgSortableMs: (msg: any) => number;
2
+ //# sourceMappingURL=msgSortableMs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msgSortableMs.d.ts","sourceRoot":"","sources":["../../../src/helpers/msgSortableMs.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa,GAAI,KAAK,GAAG,KAAG,MASxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** Encrypt a JSON-serialisable payload for storage. Returns the string to persist. */
2
+ export declare function encryptForPersist(plaintext: string): Promise<string>;
3
+ /**
4
+ * Decrypt a value previously written by `encryptForPersist`. Returns
5
+ * null (never throws) for anything that isn't a valid envelope for the
6
+ * current key — including a plaintext blob from a pre-encryption
7
+ * install: the app just re-hydrates that room/history from the server,
8
+ * same as any other empty-cache cold start.
9
+ */
10
+ export declare function decryptFromPersist(stored: string): Promise<string | null>;
11
+ /** Test seam only. */
12
+ export declare const __resetPersistCryptoKeyForTests: () => void;
13
+ //# sourceMappingURL=persistCrypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistCrypto.d.ts","sourceRoot":"","sources":["../../../src/helpers/persistCrypto.ts"],"names":[],"mappings":"AAuEA,sFAAsF;AACtF,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc1E;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB;AAED,sBAAsB;AACtB,eAAO,MAAM,+BAA+B,QAAO,IAElD,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * A picked image in the shape React Native's FormData understands.
3
+ *
4
+ * NOT a web `File`: RN streams a multipart part straight from a `file://`
5
+ * uri and has no usable Blob/File/atob path. Screens ported from the web
6
+ * client used to carry base64 -> Blob -> File helpers that could never
7
+ * have run here.
8
+ */
9
+ export interface PickedImage {
10
+ uri: string;
11
+ type: string;
12
+ name: string;
13
+ }
14
+ /**
15
+ * Ask for library permission, open the picker, and normalise the result.
16
+ *
17
+ * Returns `null` for every non-error outcome — permission refused, user
18
+ * cancelled — so call sites can simply keep their current value.
19
+ *
20
+ * Exists because the avatar pickers are wired to `onPress`, which hands
21
+ * the callback a SyntheticEvent. Storing that event as "the image" (what
22
+ * two screens used to do) rendered a pooled event as an <Image source>
23
+ * and then crashed with "Property is not configurable" when React tried
24
+ * to release it — on top of never letting the user pick anything.
25
+ */
26
+ export declare const pickImageAsset: () => Promise<PickedImage | null>;
27
+ //# sourceMappingURL=pickImageAsset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickImageAsset.d.ts","sourceRoot":"","sources":["../../../src/helpers/pickImageAsset.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,WAAW,GAAG,IAAI,CAsCjE,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type PushPayloadOutcome = 'call' | 'room' | 'pending' | 'unknown';
2
+ export declare const PENDING_NOTIFICATION_JID_KEY = "ethora_pending_notification_jid";
3
+ export declare const PENDING_NOTIFICATION_TTL_MS: number;
4
+ export declare const readPendingJid: () => Promise<string | null>;
5
+ export declare const openRoomFromPush: (jid: string) => "room" | "pending";
6
+ export declare const handlePushPayload: (data: Record<string, unknown> | null | undefined) => PushPayloadOutcome;
7
+ //# sourceMappingURL=pushPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushPayload.d.ts","sourceRoot":"","sources":["../../../src/helpers/pushPayload.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzE,eAAO,MAAM,4BAA4B,oCAAoC,CAAC;AAC9E,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AAEzD,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAgB5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAgBvD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAC/C,kBAQF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveInitBeforeLoadUser.d.ts","sourceRoot":"","sources":["../../../src/helpers/resolveInitBeforeLoadUser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAO/C,UAAU,gCAAgC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA6ID,eAAO,MAAM,yBAAyB,GACpC,UAAU,gCAAgC,KACzC,OAAO,CAAC,IAAI,GAAG,IAAI,CA4ErB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,IAAI,GAAG,IAAI,SAG1D,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,OAAO,EAChB,SAAS,WAAW,KACnB,OAAO,CAAC,IAAI,GAAG,IAAI,CAyDrB,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"resolveInitBeforeLoadUser.d.ts","sourceRoot":"","sources":["../../../src/helpers/resolveInitBeforeLoadUser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAM/C,UAAU,gCAAgC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwPD,eAAO,MAAM,yBAAyB,GACpC,UAAU,gCAAgC,KACzC,OAAO,CAAC,IAAI,GAAG,IAAI,CA8ErB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,OAAO,IAAI,GAAG,IAAI,SAG1D,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,OAAO,EAChB,SAAS,WAAW,KACnB,OAAO,CAAC,IAAI,GAAG,IAAI,CAuDrB,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const resolveFileUrl: (url?: string | null) => string;
2
+ export declare const isSecureFileUrl: (url?: string | null) => boolean;
3
+ export declare const appendFileToken: (url: string | null | undefined, fileToken: string | null | undefined) => string;
4
+ export declare const withFileToken: (url?: string | null) => string;
5
+ export declare const requestFileTokenRecovery: () => Promise<boolean>;
6
+ export declare const __resetFileTokenRecoveryForTests: () => void;
7
+ //# sourceMappingURL=secureFileUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secureFileUrl.d.ts","sourceRoot":"","sources":["../../../src/helpers/secureFileUrl.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,MAQpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,OASrD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9B,WAAW,MAAM,GAAG,IAAI,GAAG,SAAS,KACnC,MAuBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,MAIjD,CAAC;AAMJ,eAAO,MAAM,wBAAwB,QAAO,OAAO,CAAC,OAAO,CA6B1D,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAAO,IAGnD,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Small-value secure KV store: platform Keychain/Keystore via
3
+ * expo-secure-store when the host has it installed, plain (but still
4
+ * namespaced) AsyncStorage otherwise. NOT for bulk data — see
5
+ * `persistCrypto.ts`'s size note on why message history goes through
6
+ * AES instead of straight into this store.
7
+ */
8
+ export declare function secureGet(key: string): Promise<string | null>;
9
+ export declare function secureSet(key: string, value: string): Promise<void>;
10
+ export declare function secureRemove(key: string): Promise<void>;
11
+ /** Test seam only. */
12
+ export declare const __resetSecureKeyValueWarningForTests: () => void;
13
+ //# sourceMappingURL=secureKeyValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secureKeyValue.d.ts","sourceRoot":"","sources":["../../../src/helpers/secureKeyValue.ts"],"names":[],"mappings":"AAwBA;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYnE;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzE;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7D;AAED,sBAAsB;AACtB,eAAO,MAAM,oCAAoC,QAAO,IAEvD,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Optional-dependency bridge for `expo-secure-store` — the Keychain
3
+ * (iOS) / Keystore-backed EncryptedSharedPreferences (Android) API.
4
+ *
5
+ * Mirrors `components/VideoCalls/livekitRuntime.ts`: a plain top-level
6
+ * `import ... from 'expo-secure-store'` is not allowed anywhere in the
7
+ * SDK, since Metro resolves imports at bundle time and a host that
8
+ * hasn't added this optional peer dependency would fail to build over
9
+ * a feature it never opted into. Everything goes through
10
+ * `loadSecureStore()`, which requires the module lazily and returns
11
+ * null when it isn't installed — callers fall back to plain
12
+ * AsyncStorage rather than crash (see `secureKeyValue.ts`).
13
+ */
14
+ export interface SecureStoreRuntime {
15
+ getItemAsync: (key: string) => Promise<string | null>;
16
+ setItemAsync: (key: string, value: string) => Promise<void>;
17
+ deleteItemAsync: (key: string) => Promise<void>;
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 declare const loadSecureStore: () => SecureStoreRuntime | null;
26
+ export declare const isSecureStoreAvailable: () => boolean;
27
+ /** Test seam only. */
28
+ export declare const __resetSecureStoreRuntimeForTests: () => void;
29
+ //# sourceMappingURL=secureStoreRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secureStoreRuntime.d.ts","sourceRoot":"","sources":["../../../src/helpers/secureStoreRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAID;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,kBAAkB,GAAG,IA0BvD,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,OAAqC,CAAC;AAEhF,sBAAsB;AACtB,eAAO,MAAM,iCAAiC,QAAO,IAEpD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { User } from '../types/types';
2
+ /**
3
+ * Persisted-user storage, split across two backends behind the exact
4
+ * same `{ get, set, remove }` shape `asyncLocalStorage<User>(...)`
5
+ * already exposed — every existing call site swaps in by changing only
6
+ * the constructor call, `get()`/`set()`/`remove()` keep returning/taking
7
+ * a complete `User`.
8
+ *
9
+ * The four live credentials (REST access + refresh token, XMPP
10
+ * password, secure-media fileToken) never touch plain AsyncStorage:
11
+ * they go through `secureGet`/`secureSet`/`secureRemove` (platform
12
+ * Keychain/Keystore, falling back to namespaced AsyncStorage only when
13
+ * the host hasn't installed the optional `expo-secure-store` peer dep).
14
+ * Everything else on `User` — name, avatar, ids, xmppUsername, wallet
15
+ * address, none of it a bearer credential — keeps living under the
16
+ * existing `ETHORA_USER` AsyncStorage key, unchanged.
17
+ */
18
+ export declare function secureUserStorage(): {
19
+ get: () => Promise<User | null>;
20
+ set: (user: User) => Promise<void>;
21
+ remove: () => Promise<void>;
22
+ };
23
+ //# sourceMappingURL=secureUserStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secureUserStorage.d.ts","sourceRoot":"","sources":["../../../src/helpers/secureUserStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAoBtC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB;eACT,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;gBAiBjB,IAAI,KAAG,OAAO,CAAC,IAAI,CAAC;kBAiBpB,OAAO,CAAC,IAAI,CAAC;EAQvC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * One-level shallow equality for plain objects. Used to avoid re-dispatching
3
+ * config into redux on every render just because the host passed a fresh
4
+ * object literal with the same values (e.g. `<Chat config={{...}} />`
5
+ * re-created inline) — reference equality alone would fire far too often,
6
+ * and a deep/JSON comparison risks throwing on non-serializable fields
7
+ * (functions, React elements) that configs legitimately carry.
8
+ */
9
+ export declare function shallowEqual(a: unknown, b: unknown): boolean;
10
+ export default shallowEqual;
11
+ //# sourceMappingURL=shallowEqual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shallowEqual.d.ts","sourceRoot":"","sources":["../../../src/helpers/shallowEqual.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAsB5D;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** @format */
2
+ /**
3
+ * Shared thresholds for the drag-to-dismiss gesture on bottom sheets (the
4
+ * attach sheet, the profile headers, the room-list menu). Kept in one
5
+ * place so a pull feels identical wherever the user does it — and so the
6
+ * numbers are unit-testable without a touch event.
7
+ */
8
+ /** Drag past this many points and letting go dismisses the sheet. */
9
+ export declare const DISMISS_DISTANCE = 90;
10
+ /** …or flick faster than this, however short the drag. */
11
+ export declare const DISMISS_VELOCITY = 0.8;
12
+ /**
13
+ * Claim a drag only once it is clearly a downward pull, so a tap on a row
14
+ * still registers and a horizontal swipe stays with whatever scrolls
15
+ * sideways inside the sheet.
16
+ */
17
+ export declare const shouldClaimVerticalDrag: (dy: number, dx: number) => boolean;
18
+ /** Far enough / fast enough to let go of the sheet. */
19
+ export declare const shouldDismissOnDrag: (dy: number, vy: number) => boolean;
20
+ //# sourceMappingURL=sheetGestures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheetGestures.d.ts","sourceRoot":"","sources":["../../../src/helpers/sheetGestures.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd;;;;;GAKG;AAEH,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,EAAE,IAAI,MAAM,YACjB,CAAC;AAE9C,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,GAAI,IAAI,MAAM,EAAE,IAAI,MAAM,YACV,CAAC"}
@@ -21,7 +21,10 @@ interface UseChatRoomFocusOptions {
21
21
  * Without this hook, `useUnread()` will always return 0 for the chat
22
22
  * room because the SDK assumes "mounted == active". With this hook,
23
23
  * focus marks the room visible (clearing the badge) and blur stamps
24
- * `lastViewedTimestamp = Date.now()` so future messages count as unread.
24
+ * `lastViewedTimestamp` to the newest SERVER-acknowledged message so
25
+ * future messages count as unread. Deliberately not `Date.now()`: a
26
+ * device clock running ahead would write a future marker that the
27
+ * forward-only private-store merge could never correct again (bug #38).
25
28
  *
26
29
  * Usage with React Navigation:
27
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"useChatRoomFocus.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatRoomFocus.ts"],"names":[],"mappings":"AAUA,UAAU,uBAAuB;IAC/B,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,gBAAgB,GAAI,yBAG9B,uBAAuB,SAuCzB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"useChatRoomFocus.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatRoomFocus.ts"],"names":[],"mappings":"AAeA,UAAU,uBAAuB;IAC/B,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,gBAAgB,GAAI,yBAG9B,uBAAuB,SAuEzB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useChatWrapperInit.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatWrapperInit.ts"],"names":[],"mappings":"AAAA,cAAc;AAId,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAgBlD,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACnE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,QAAA,MAAM,kBAAkB,GAAI,uCAIzB,uBAAuB,KAAG,wBAoO5B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"useChatWrapperInit.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatWrapperInit.ts"],"names":[],"mappings":"AAAA,cAAc;AAId,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAgBlD,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACnE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,QAAA,MAAM,kBAAkB,GAAI,uCAIzB,uBAAuB,KAAG,wBAwP5B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useComposing.d.ts","sourceRoot":"","sources":["../../../src/hooks/useComposing.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,QAAA,MAAM,YAAY,GAAI,SAAS,OAAO;;;CAwCrC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"useComposing.d.ts","sourceRoot":"","sources":["../../../src/hooks/useComposing.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,QAAA,MAAM,YAAY,GAAI,SAAS,OAAO;;;CA2ErC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useFileToken: () => string;
2
+ //# sourceMappingURL=useFileToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFileToken.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFileToken.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,QAAO,MAG7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLogout.tsx"],"names":[],"mappings":"AA0BA,QAAA,MAAM,aAAa;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;yBACsB,OAAO,CAAC,IAAI,CAAC;CAsFvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,QAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAahD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLogout.tsx"],"names":[],"mappings":"AA2BA,QAAA,MAAM,aAAa;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;yBACsB,OAAO,CAAC,IAAI,CAAC;CAyGvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,QAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAahD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePendingNotification.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePendingNotification.ts"],"names":[],"mappings":"AAQA,wBAAgB,sBAAsB;;EAsCrC;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"usePendingNotification.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePendingNotification.ts"],"names":[],"mappings":"AAQA,wBAAgB,sBAAsB;;EAgCrC;AAED,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSendMessage.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,gBAAgB,CAAC;AAwCxD,eAAO,MAAM,cAAc,GAAI,kBAAkB,OAAO;2BAwCzC,MAAM,iBACA,MAAM,YACX,OAAO,cACL,OAAO,gBACL,MAAM,eAOP,MAAM;sBA4Mb,GAAG,QACH,MAAM,iBACG,MAAM,YACZ,OAAO,cACL,OAAO,gBACL,MAAM,eACN,MAAM;+BA+WL,MAAM,mBAAmB,MAAM;6BAvC9B,MAAM;kDAwEb,MAAM,KAAG,OAAO;CAoB7B,CAAC"}
1
+ {"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSendMessage.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,gBAAgB,CAAC;AAwCxD,eAAO,MAAM,cAAc,GAAI,kBAAkB,OAAO;2BAwCzC,MAAM,iBACA,MAAM,YACX,OAAO,cACL,OAAO,gBACL,MAAM,eAOP,MAAM;sBA6Ob,GAAG,QACH,MAAM,iBACG,MAAM,YACZ,OAAO,cACL,OAAO,gBACL,MAAM,eACN,MAAM;+BA2XL,MAAM,mBAAmB,MAAM;6BAvD9B,MAAM;kDAwFb,MAAM,KAAG,OAAO;CAoB7B,CAAC"}
@@ -6,6 +6,7 @@ interface UnreadMessagesStats {
6
6
  totalCount: number;
7
7
  unreadByRoom: UnreadMessagesMap;
8
8
  isLoading: boolean;
9
+ isCapped: boolean;
9
10
  }
10
11
  export declare const useUnreadMessagesCounter: () => UnreadMessagesStats;
11
12
  export { useUnreadMessagesCounter as useUnread };
@@ -1 +1 @@
1
- {"version":3,"file":"useUnreadMessagesCounter.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUnreadMessagesCounter.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,wBAAwB,QAAO,mBAqC3C,CAAC;AAEF,OAAO,EAAE,wBAAwB,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"useUnreadMessagesCounter.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUnreadMessagesCounter.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IAMnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,wBAAwB,QAAO,mBA0C3C,CAAC;AAEF,OAAO,EAAE,wBAAwB,IAAI,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../src/i18n/strings.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAw2CnD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAOzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,gFAAgF;AAChF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,MAIf,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,GAAG,IAAI,EACtB,YAAY,aAAa,GAAG,IAAI,KAC/B,aAQF,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,WAAW,GACtB,UAAU,MAAM,EAChB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACrC,MAKF,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,YAAY,GACvB,KAAK,MAAM,EACX,SAAS,MAAM,GAAG,IAAI,EACtB,YAAY,aAAa,GAAG,IAAI,EAChC,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACrC,MAGF,CAAC"}
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../src/i18n/strings.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAo9CnD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAOzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,gFAAgF;AAChF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,MAIf,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,GAAG,IAAI,EACtB,YAAY,aAAa,GAAG,IAAI,KAC/B,aAQF,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,WAAW,GACtB,UAAU,MAAM,EAChB,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACrC,MAKF,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,YAAY,GACvB,KAAK,MAAM,EACX,SAAS,MAAM,GAAG,IAAI,EACtB,YAAY,aAAa,GAAG,IAAI,EAChC,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KACrC,MAGF,CAAC"}
@@ -7,7 +7,10 @@
7
7
  *
8
8
  * <Chat
9
9
  * config={{
10
- * baseUrl: 'https://api.chat.ethora.com/v1',
10
+ * // The API ROOT — the SDK versions every path itself
11
+ * // (`/v1/...`, `/v2/...`). A legacy `.../v1` is accepted and
12
+ * // normalised, so existing integrations keep working.
13
+ * baseUrl: 'https://api.chat.ethora.com',
11
14
  * xmppSettings: { host: 'xmpp.chat.ethora.com' },
12
15
  * jwtLogin: { enabled: true, token: '<paste JWT>' },
13
16
  * initBeforeLoad: true,
@@ -23,8 +26,10 @@ import 'react-native-get-random-values';
23
26
  export { ReduxWrapper as Chat } from './components/MainComponents/ReduxWrapper';
24
27
  export { XmppProvider } from './context/xmppProvider';
25
28
  export { useUnread } from './hooks/useUnreadMessagesCounter';
29
+ export { handlePushPayload, openRoomFromPush } from './helpers/pushPayload';
30
+ export type { PushPayloadOutcome } from './helpers/pushPayload';
26
31
  export { useChatRoomFocus } from './hooks/useChatRoomFocus';
27
- export { logoutService } from './hooks/useLogout';
32
+ export { logoutService, useLogout } from './hooks/useLogout';
28
33
  export { useQRCodeChat, handleQRChatId } from './hooks/useQRCodeChatHandler';
29
34
  export { resendMessage } from './utils/resendMessage';
30
35
  export { useChatFonts } from './hooks/useChatFonts';
@@ -34,4 +39,6 @@ export type { UiStringTable } from './i18n/strings';
34
39
  export type { IConfig, IRoom, IMessage, IUser, User, ConfigUser, MessageProps, TypographyConfig, RNFontSource, ChatTextStyle, VideoCallsConfig, VideoCallIcons, } from './types/types';
35
40
  export type { Iso639_1Codes } from './types/models/language.model';
36
41
  export type { TranslateMode } from './utils/translateModePolicy';
42
+ export { refreshAuthTokens, refreshAuthTokensQuietly, RefreshFatalError, isRefreshFatalError, } from './networking/authRefresh';
43
+ export type { RefreshErrorCode, RefreshResult, RefreshOptions, } from './networking/authRefresh';
37
44
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,YAAY,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,YAAY,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQjE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,0BAA0B,CAAC"}
@@ -3,13 +3,15 @@ export declare function loginEmail(email: string, password: string): Promise<imp
3
3
  user: User;
4
4
  refreshToken: string;
5
5
  token: string;
6
+ fileToken?: string;
6
7
  }, any, {}>>;
7
8
  export declare function loginSocial(idToken: string, accessToken: string, loginType: string, authToken?: string): Promise<import("axios").AxiosResponse<any, any, {}>>;
8
9
  export declare function registerSocial(idToken: string, accessToken: string, authToken: string, loginType: string, signUpPlan?: string): Promise<import("axios").AxiosResponse<any, any, {}>>;
9
10
  export declare function checkEmailExist(email: string): Promise<import("axios").AxiosResponse<any, any, {}>>;
10
11
  export declare function loginViaJwt(clientToken: string): Promise<User>;
11
12
  export declare function uploadFile(formData: FormData): Promise<import("axios").AxiosResponse<any, any, {}>>;
12
- export declare function uploadFileViaFetch(formData: FormData): Promise<{
13
+ export declare function uploadFileV2(formData: FormData, activeRoomJID: string): Promise<{
13
14
  data: any;
14
15
  }>;
16
+ export declare const __resetSecureUploadLatchForTests: () => void;
15
17
  //# sourceMappingURL=auth.api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.api.d.ts","sourceRoot":"","sources":["../../../../src/networking/api-requests/auth.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAezC,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;UAEtD,IAAI;kBACI,MAAM;WACb,MAAM;aAahB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAoB,wDAYhC;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,wDAapB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,wDAM5C;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BpE;AAuBD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,wDAa5C;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAmDnF"}
1
+ {"version":3,"file":"auth.api.d.ts","sourceRoot":"","sources":["../../../../src/networking/api-requests/auth.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAezC,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;UAEtD,IAAI;kBACI,MAAM;WACb,MAAM;gBACD,MAAM;aAuBrB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAoB,wDAYhC;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,wDAapB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,wDAM5C;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BpE;AAuBD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,wDAa5C;AA8GD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CA8BxB;AAED,eAAO,MAAM,gCAAgC,QAAO,IAEnD,CAAC"}
@@ -12,5 +12,32 @@ export declare function updateMe(data: any): Promise<import("axios").AxiosRespon
12
12
  export declare function updateProfile(fd: FormData): Promise<{
13
13
  user: User;
14
14
  }>;
15
+ /** One entry of `GET /v2/files/`, normalised for the UI. */
16
+ export interface UserFile {
17
+ id: string;
18
+ name: string;
19
+ url: string;
20
+ mimetype: string;
21
+ createdAt?: string;
22
+ size?: number;
23
+ }
24
+ /**
25
+ * Files uploaded by the signed-in user (the JWT owner) — the profile
26
+ * screen's Media and Documents tabs.
27
+ *
28
+ * v2 answers `{ results, pagination }` and, for backward compatibility,
29
+ * also `{ limit, offset, total, items }`; older deployments only have the
30
+ * legacy shape. Read whichever is there instead of betting on one. Field
31
+ * names vary the same way between deployments (`location` vs `locations[]`,
32
+ * `originalname` vs `filename`), so each one falls through its aliases and
33
+ * anything without a usable URL is dropped rather than rendered as a dead
34
+ * row.
35
+ */
36
+ export declare function getUserFiles(options?: {
37
+ limit?: number;
38
+ offset?: number;
39
+ }): Promise<UserFile[]>;
40
+ /** Images and video go to the Media tab, everything else to Documents. */
41
+ export declare const isMediaFile: (file: UserFile) => boolean;
15
42
  export {};
16
43
  //# sourceMappingURL=user.api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.api.d.ts","sourceRoot":"","sources":["../../../../src/networking/api-requests/user.api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAazE;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,wDAOjD;AAED,wBAAgB,eAAe,yDAQ9B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,wDAO5C;AAED,wBAAgB,QAAQ,yDAEvB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,wDAEjC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAczE"}
1
+ {"version":3,"file":"user.api.d.ts","sourceRoot":"","sources":["../../../../src/networking/api-requests/user.api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAazE;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,wDAOjD;AAED,wBAAgB,eAAe,yDAQ9B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,wDAO5C;AAED,wBAAgB,QAAQ,yDAEvB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,wDAEjC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAczE;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAiCtB;AAED,0EAA0E;AAC1E,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,OAQ5C,CAAC"}
@@ -1,12 +1,18 @@
1
+ import { RefreshResult } from './authRefresh';
1
2
  declare const http: import("axios").AxiosInstance;
3
+ export declare const normalizeApiPath: (path?: string) => string | undefined;
2
4
  export declare function setBaseURL(baseUrl?: string, appToken?: string): void;
3
5
  export declare function getCurrentAppToken(): string;
4
6
  export declare function getCurrentBaseURL(): string;
5
- export declare function refresh(): Promise<{
6
- data: {
7
- refreshToken: string;
8
- token: string;
9
- };
10
- }>;
7
+ /**
8
+ * @deprecated Import `refreshAuthTokens` from `./authRefresh` instead.
9
+ *
10
+ * Kept as a thin forwarder so existing call sites keep working while
11
+ * they migrate. Declared as a function (not `const refresh =
12
+ * refreshAuthTokens`) on purpose: this module and `authRefresh` import
13
+ * each other, and a const would capture the binding before the other
14
+ * module finished evaluating.
15
+ */
16
+ export declare function refresh(): Promise<RefreshResult>;
11
17
  export default http;
12
18
  //# sourceMappingURL=apiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../../src/networking/apiClient.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,IAAI,+BAER,CAAC;AAMH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,QAQ7D;AAED,wBAAgB,kBAAkB,WAEjC;AAED,wBAAgB,iBAAiB,WAEhC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAAC;IACjC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C,CAAC,CAmCD;AA+GD,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../../src/networking/apiClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,aAAa,EACd,MAAM,eAAe,CAAC;AAWvB,QAAA,MAAM,IAAI,+BAER,CAAC;AASH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAAM,GAAG,SAKzD,CAAC;AAEF,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,QAS7D;AAED,wBAAgB,kBAAkB,WAEjC;AAED,wBAAgB,iBAAiB,WAEhC;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAEhD;AAkED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * THE single refresh-token rotation point for the SDK.
3
+ *
4
+ * The backend now runs refresh-token ROTATION with REUSE DETECTION:
5
+ * every successful `/users/login/refresh` burns the presented refresh
6
+ * token and issues a new one. Presenting an already-rotated token is
7
+ * indistinguishable, server-side, from a stolen token — so it is
8
+ * treated as theft and (once the backend leaves monitor mode and
9
+ * enables enforcing mode) kills the whole token family.
10
+ *
11
+ * That puts three hard obligations on the client:
12
+ *
13
+ * 1. Persist the NEW refreshToken from every response, immediately,
14
+ * before any other logic can throw and drop it on the floor.
15
+ * 2. Never rotate concurrently. Two parallel refreshes both start
16
+ * from the same token; the loser presents a burned one and looks
17
+ * like an attacker. React Native is single-process, so a shared
18
+ * in-flight promise is the whole lock — no Web Locks needed (the
19
+ * web build of this component does need them, see its own
20
+ * `authRefresh.ts`).
21
+ * 3. Route EVERY refresh path through here. One "side" refresh
22
+ * elsewhere in the codebase breaks the scheme for everyone.
23
+ *
24
+ * Callers must also stop treating 401 as "log out". Two of the four
25
+ * refresh error codes are race signals, not auth failures — see
26
+ * `RefreshErrorCode` below and `RefreshFatalError`.
27
+ */
28
+ export type RefreshErrorCode = 'REFRESH_IN_PROGRESS' | 'REFRESH_TOKEN_ALREADY_ROTATED' | 'REFRESH_TOKEN_REUSE_DETECTED' | 'REFRESH_TOKEN_NOT_FOUND';
29
+ export interface RefreshResult {
30
+ token: string;
31
+ refreshToken: string;
32
+ /**
33
+ * Present in the backend response but not currently consumed
34
+ * anywhere in the SDK. Passed through so callers can use it without
35
+ * a second round trip.
36
+ * TODO(phase-7): decide whether to persist this on `User`.
37
+ */
38
+ wsToken?: string;
39
+ xmppPassword?: string;
40
+ fileToken?: string;
41
+ }
42
+ /**
43
+ * Thrown when the session is genuinely dead and the caller must do a
44
+ * hard logout (clear storage, drop XMPP, send the user to login).
45
+ *
46
+ * Anything else this module rejects with — network errors, 5xx, an
47
+ * unrecognised 401 — is NOT fatal and must NOT trigger a logout.
48
+ */
49
+ export declare class RefreshFatalError extends Error {
50
+ code: RefreshErrorCode;
51
+ constructor(code: RefreshErrorCode, message?: string);
52
+ }
53
+ export declare const isRefreshFatalError: (error: unknown) => error is RefreshFatalError;
54
+ /**
55
+ * All four codes come back as HTTP 401, so the status alone tells us
56
+ * nothing — the code in the body is the only signal.
57
+ *
58
+ * TODO(backend-confirm): the exact location of `code` in the payload is
59
+ * not documented yet. Until it is, probe every shape the API uses
60
+ * elsewhere and take the first hit. Once confirmed, collapse this to
61
+ * the single real path.
62
+ */
63
+ export declare const parseRefreshErrorCode: (error: unknown) => RefreshErrorCode | null;
64
+ export interface RefreshOptions {
65
+ /**
66
+ * Rotate THIS token instead of the one in the store/storage.
67
+ *
68
+ * Only for bootstrap, where the session being restored isn't in the
69
+ * store yet (a host-supplied `userLogin.user`, a persisted record).
70
+ * Everywhere else, omitting it is the correct and safer choice: the
71
+ * module then always presents the newest token it knows about.
72
+ */
73
+ refreshToken?: string;
74
+ }
75
+ /**
76
+ * Rotate the tokens. Concurrent callers share ONE request — this is the
77
+ * lock the new backend scheme requires.
78
+ *
79
+ * Rejects with `RefreshFatalError` when the session is dead (caller
80
+ * should hard-logout) and with a plain error otherwise (caller should
81
+ * surface the failure and leave the session alone).
82
+ */
83
+ export declare function refreshAuthTokens(options?: RefreshOptions): Promise<RefreshResult>;
84
+ /**
85
+ * Fire-and-forget variant for call sites that only want "make sure the
86
+ * tokens are fresh" and have no meaningful error handling — chat
87
+ * bootstrap, XMPP reconnect. Never rejects.
88
+ */
89
+ export interface QuietRefreshOptions {
90
+ force?: boolean;
91
+ }
92
+ export declare function refreshAuthTokensQuietly(options?: QuietRefreshOptions): Promise<RefreshResult | null>;
93
+ /** Test seam — drops any shared in-flight promise between cases. */
94
+ export declare function __resetAuthRefreshStateForTests(): void;
95
+ //# sourceMappingURL=authRefresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authRefresh.d.ts","sourceRoot":"","sources":["../../../src/networking/authRefresh.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,+BAA+B,GAC/B,8BAA8B,GAC9B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,IAAI,EAAE,gBAAgB,CAAC;gBAEX,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,MAAM;CAQrD;AAED,eAAO,MAAM,mBAAmB,GAC9B,OAAO,OAAO,KACb,KAAK,IAAI,iBAEgD,CAAC;AA2B7D;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,gBAAgB,GAAG,IA2BrB,CAAC;AAkOF,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAiBxB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiB/B;AAED,oEAAoE;AACpE,wBAAgB,+BAA+B,IAAI,IAAI,CAGtD"}