@ethora/chat-component-rn 26.7.9 → 26.8.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 (652) hide show
  1. package/CHANGELOG.md +0 -93
  2. package/README.md +10 -33
  3. package/lib/commonjs/assets/icons.js +2 -7
  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 +7 -26
  8. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js +3 -9
  10. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js +13 -101
  12. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js +38 -34
  14. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/LoginWrapper.js +1 -2
  16. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +9 -29
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +1 -5
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +5 -13
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +13 -14
  24. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +24 -3
  26. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/RoomList.js +35 -208
  28. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  29. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +98 -317
  30. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  31. package/lib/commonjs/components/MessageBubble/MessageTranslate.js +16 -7
  32. package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -1
  33. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +112 -320
  34. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  35. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +215 -556
  36. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
  38. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  39. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +27 -69
  40. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +1 -2
  42. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  43. package/lib/commonjs/components/Modals/Modal/Modal.js +0 -8
  44. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  45. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +1 -2
  46. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  47. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +109 -205
  48. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
  50. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
  52. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  53. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +21 -7
  54. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +244 -507
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +46 -74
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/styledModalComponents.js +2 -9
  60. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +39 -23
  62. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +3 -22
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +3 -17
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +3 -6
  70. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  71. package/lib/commonjs/components/styled/AudioMessage.js +1 -2
  72. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  73. package/lib/commonjs/components/styled/DateLabel.js +10 -3
  74. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  75. package/lib/commonjs/components/styled/MessageImage.js +9 -37
  76. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  77. package/lib/commonjs/components/styled/NewMessageLabel.js +3 -1
  78. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  79. package/lib/commonjs/components/styled/SendInput.js +17 -86
  80. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  81. package/lib/commonjs/components/styled/StyledComponents.js +3 -9
  82. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  83. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
  84. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  85. package/lib/commonjs/components/styled/UnsupportedType.js +4 -14
  86. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  87. package/lib/commonjs/components/styled/VideoMessage.js +61 -119
  88. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  89. package/lib/commonjs/context/xmppProvider.js +54 -128
  90. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  91. package/lib/commonjs/helpers/createMessageFromXml.js +1 -19
  92. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  93. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  94. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  95. package/lib/commonjs/helpers/getDataFromXml.js +24 -1
  96. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  97. package/lib/commonjs/helpers/historyPreloadScheduler.js +2 -65
  98. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  99. package/lib/commonjs/helpers/initXmppRooms.js +8 -14
  100. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  101. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -0
  102. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  103. package/lib/commonjs/helpers/isUnresolvedSenderId.js +6 -1
  104. package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -1
  105. package/lib/commonjs/helpers/mimeToExtension.js +14 -6
  106. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  107. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +17 -130
  108. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  109. package/lib/commonjs/helpers/resolveLangSource.js +38 -0
  110. package/lib/commonjs/helpers/resolveLangSource.js.map +1 -0
  111. package/lib/commonjs/helpers/xmppUsername.js +39 -0
  112. package/lib/commonjs/helpers/xmppUsername.js.map +1 -0
  113. package/lib/commonjs/hooks/useChatRoomFocus.js +8 -17
  114. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  115. package/lib/commonjs/hooks/useChatWrapperInit.js +14 -32
  116. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  117. package/lib/commonjs/hooks/useComposing.js +0 -27
  118. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  119. package/lib/commonjs/hooks/useLogout.js +7 -15
  120. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  121. package/lib/commonjs/hooks/usePendingNotification.js +11 -8
  122. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  123. package/lib/commonjs/hooks/useSendMessage.js +14 -50
  124. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  125. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -6
  126. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  127. package/lib/commonjs/i18n/strings.js +133 -121
  128. package/lib/commonjs/i18n/strings.js.map +1 -1
  129. package/lib/commonjs/i18n/useT.js +1 -1
  130. package/lib/commonjs/main.js +0 -44
  131. package/lib/commonjs/main.js.map +1 -1
  132. package/lib/commonjs/networking/api-requests/auth.api.js +60 -134
  133. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  134. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  135. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  136. package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
  137. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  138. package/lib/commonjs/networking/api-requests/user.api.js +9 -68
  139. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  140. package/lib/commonjs/networking/apiClient.js +112 -62
  141. package/lib/commonjs/networking/apiClient.js.map +1 -1
  142. package/lib/commonjs/networking/stanzaHandlers.js +51 -93
  143. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  144. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
  145. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  146. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +1 -8
  147. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  148. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
  149. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  150. package/lib/commonjs/networking/xmppClient.js +8 -124
  151. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  152. package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -26
  153. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  154. package/lib/commonjs/roomStore/index.js +2 -35
  155. package/lib/commonjs/roomStore/index.js.map +1 -1
  156. package/lib/commonjs/roomStore/persistence.js +39 -226
  157. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  158. package/lib/commonjs/roomStore/roomsSlice.js +8 -87
  159. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  160. package/lib/commonjs/services/pushSubscriptionService.js +13 -15
  161. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  162. package/lib/commonjs/version.js +3 -1
  163. package/lib/commonjs/version.js.map +1 -1
  164. package/lib/module/assets/icons.js +1 -6
  165. package/lib/module/assets/icons.js.map +1 -1
  166. package/lib/module/components/AuthForms/Login.js +4 -4
  167. package/lib/module/components/AuthForms/Login.js.map +1 -1
  168. package/lib/module/components/Header/HeaderRoomList.js +7 -26
  169. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  170. package/lib/module/components/MainComponents/ChatHeader.js +3 -9
  171. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  172. package/lib/module/components/MainComponents/ChatRoom.js +14 -102
  173. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  174. package/lib/module/components/MainComponents/ChatWrapper.js +40 -36
  175. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  176. package/lib/module/components/MainComponents/LoginWrapper.js +1 -2
  177. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  178. package/lib/module/components/MainComponents/MediaMessage.js +10 -30
  179. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  180. package/lib/module/components/MainComponents/MessageContainer.js +1 -5
  181. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  182. package/lib/module/components/MainComponents/MessageList.js +5 -13
  183. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  184. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +13 -14
  185. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  186. package/lib/module/components/MainComponents/ReduxWrapper.js +26 -5
  187. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  188. package/lib/module/components/MainComponents/RoomList.js +35 -207
  189. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  190. package/lib/module/components/Menu/HeaderRoomListMenu.js +101 -319
  191. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  192. package/lib/module/components/MessageBubble/MessageTranslate.js +16 -7
  193. package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -1
  194. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +115 -311
  195. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  196. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +219 -559
  197. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  198. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
  199. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  200. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +28 -70
  201. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  202. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +1 -2
  203. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  204. package/lib/module/components/Modals/Modal/Modal.js +1 -9
  205. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  206. package/lib/module/components/Modals/NewChatModal/ModalContent.js +1 -2
  207. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  208. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +111 -208
  209. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  210. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
  211. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  212. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
  213. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  214. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +23 -9
  215. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  216. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +248 -509
  217. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  218. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +48 -76
  219. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  220. package/lib/module/components/Modals/styledModalComponents.js +2 -9
  221. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  222. package/lib/module/components/RoomComponents/ChatRoomItem.js +40 -24
  223. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  224. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +3 -22
  225. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  226. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
  227. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  228. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +3 -17
  229. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  230. package/lib/module/components/VideoCalls/VideoCallSession.js +3 -6
  231. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  232. package/lib/module/components/styled/AudioMessage.js +1 -2
  233. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  234. package/lib/module/components/styled/DateLabel.js +10 -3
  235. package/lib/module/components/styled/DateLabel.js.map +1 -1
  236. package/lib/module/components/styled/MessageImage.js +9 -37
  237. package/lib/module/components/styled/MessageImage.js.map +1 -1
  238. package/lib/module/components/styled/NewMessageLabel.js +3 -1
  239. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  240. package/lib/module/components/styled/SendInput.js +18 -87
  241. package/lib/module/components/styled/SendInput.js.map +1 -1
  242. package/lib/module/components/styled/StyledComponents.js +3 -9
  243. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  244. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
  245. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  246. package/lib/module/components/styled/UnsupportedType.js +4 -14
  247. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  248. package/lib/module/components/styled/VideoMessage.js +62 -120
  249. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  250. package/lib/module/context/xmppProvider.js +55 -128
  251. package/lib/module/context/xmppProvider.js.map +1 -1
  252. package/lib/module/helpers/createMessageFromXml.js +1 -19
  253. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  254. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  255. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  256. package/lib/module/helpers/getDataFromXml.js +23 -1
  257. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  258. package/lib/module/helpers/historyPreloadScheduler.js +3 -66
  259. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  260. package/lib/module/helpers/initXmppRooms.js +8 -14
  261. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  262. package/lib/module/helpers/insertMessageWithDelimiter.js +13 -0
  263. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  264. package/lib/module/helpers/isUnresolvedSenderId.js +6 -1
  265. package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -1
  266. package/lib/module/helpers/mimeToExtension.js +13 -6
  267. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  268. package/lib/module/helpers/resolveInitBeforeLoadUser.js +16 -130
  269. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  270. package/lib/module/helpers/resolveLangSource.js +32 -0
  271. package/lib/module/helpers/resolveLangSource.js.map +1 -0
  272. package/lib/module/helpers/xmppUsername.js +35 -0
  273. package/lib/module/helpers/xmppUsername.js.map +1 -0
  274. package/lib/module/hooks/useChatRoomFocus.js +8 -17
  275. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  276. package/lib/module/hooks/useChatWrapperInit.js +14 -32
  277. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  278. package/lib/module/hooks/useComposing.js +1 -28
  279. package/lib/module/hooks/useComposing.js.map +1 -1
  280. package/lib/module/hooks/useLogout.js +7 -15
  281. package/lib/module/hooks/useLogout.js.map +1 -1
  282. package/lib/module/hooks/usePendingNotification.js +11 -8
  283. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  284. package/lib/module/hooks/useSendMessage.js +16 -52
  285. package/lib/module/hooks/useSendMessage.js.map +1 -1
  286. package/lib/module/hooks/useUnreadMessagesCounter.js +1 -6
  287. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  288. package/lib/module/i18n/strings.js +133 -121
  289. package/lib/module/i18n/strings.js.map +1 -1
  290. package/lib/module/i18n/useT.js +1 -1
  291. package/lib/module/main.js +2 -14
  292. package/lib/module/main.js.map +1 -1
  293. package/lib/module/networking/api-requests/auth.api.js +59 -131
  294. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  295. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  296. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  297. package/lib/module/networking/api-requests/rooms.api.js +9 -9
  298. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  299. package/lib/module/networking/api-requests/user.api.js +7 -64
  300. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  301. package/lib/module/networking/apiClient.js +113 -61
  302. package/lib/module/networking/apiClient.js.map +1 -1
  303. package/lib/module/networking/stanzaHandlers.js +52 -94
  304. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  305. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
  306. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  307. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +1 -8
  308. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  309. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
  310. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  311. package/lib/module/networking/xmppClient.js +8 -124
  312. package/lib/module/networking/xmppClient.js.map +1 -1
  313. package/lib/module/roomStore/chatSettingsSlice.js +7 -26
  314. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  315. package/lib/module/roomStore/index.js +4 -37
  316. package/lib/module/roomStore/index.js.map +1 -1
  317. package/lib/module/roomStore/persistence.js +38 -223
  318. package/lib/module/roomStore/persistence.js.map +1 -1
  319. package/lib/module/roomStore/roomsSlice.js +7 -86
  320. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  321. package/lib/module/services/pushSubscriptionService.js +13 -15
  322. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  323. package/lib/module/version.js +3 -1
  324. package/lib/module/version.js.map +1 -1
  325. package/lib/typescript/assets/icons.d.ts +0 -16
  326. package/lib/typescript/assets/icons.d.ts.map +1 -1
  327. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  328. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  329. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  330. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  331. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  332. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  333. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  334. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  335. package/lib/typescript/components/MainComponents/MessageList.d.ts +1 -10
  336. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  337. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  338. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  339. package/lib/typescript/components/MainComponents/RoomList.d.ts +0 -7
  340. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  341. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +0 -3
  342. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  343. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -1
  344. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +0 -9
  345. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  346. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +0 -10
  347. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  348. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  349. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  351. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  352. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +2 -4
  353. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  354. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  355. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  356. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  357. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +1 -6
  358. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  359. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  360. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +0 -16
  361. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  362. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +0 -1
  363. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  364. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  365. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  366. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  367. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  368. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  369. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  370. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  371. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  372. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  373. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  374. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  375. package/lib/typescript/components/styled/MessageImage.d.ts +0 -14
  376. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  377. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  378. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  379. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  380. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  381. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  382. package/lib/typescript/components/styled/VideoMessage.d.ts +0 -8
  383. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  384. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  385. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  386. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  387. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  388. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  389. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  390. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -1
  391. package/lib/typescript/helpers/mimeToExtension.d.ts +15 -0
  392. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  393. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  394. package/lib/typescript/helpers/resolveLangSource.d.ts +30 -0
  395. package/lib/typescript/helpers/resolveLangSource.d.ts.map +1 -0
  396. package/lib/typescript/helpers/xmppUsername.d.ts +13 -0
  397. package/lib/typescript/helpers/xmppUsername.d.ts.map +1 -0
  398. package/lib/typescript/hooks/useChatRoomFocus.d.ts +1 -4
  399. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  400. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  401. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  402. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  403. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  404. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  405. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +0 -1
  406. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  407. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  408. package/lib/typescript/i18n/useT.d.ts +1 -1
  409. package/lib/typescript/main.d.ts +2 -9
  410. package/lib/typescript/main.d.ts.map +1 -1
  411. package/lib/typescript/networking/api-requests/auth.api.d.ts +1 -3
  412. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  413. package/lib/typescript/networking/api-requests/user.api.d.ts +0 -27
  414. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  415. package/lib/typescript/networking/apiClient.d.ts +6 -12
  416. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  417. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  418. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +2 -10
  419. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  420. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  421. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  422. package/lib/typescript/networking/xmppClient.d.ts +0 -14
  423. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  424. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +0 -16
  425. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  426. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  427. package/lib/typescript/roomStore/persistence.d.ts +1 -18
  428. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  429. package/lib/typescript/roomStore/roomsSlice.d.ts +1 -14
  430. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  431. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -1
  432. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  433. package/lib/typescript/types/types.d.ts +5 -49
  434. package/lib/typescript/types/types.d.ts.map +1 -1
  435. package/lib/typescript/version.d.ts +1 -1
  436. package/lib/typescript/version.d.ts.map +1 -1
  437. package/package.json +29 -41
  438. package/src/assets/icons.tsx +9 -48
  439. package/src/components/AuthForms/Login.tsx +3 -3
  440. package/src/components/Header/HeaderRoomList.tsx +6 -24
  441. package/src/components/MainComponents/ChatHeader.tsx +3 -9
  442. package/src/components/MainComponents/ChatRoom.tsx +16 -111
  443. package/src/components/MainComponents/ChatWrapper.tsx +53 -36
  444. package/src/components/MainComponents/LoginWrapper.tsx +0 -1
  445. package/src/components/MainComponents/MediaMessage.tsx +8 -26
  446. package/src/components/MainComponents/MessageContainer.tsx +1 -5
  447. package/src/components/MainComponents/MessageList.tsx +4 -23
  448. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -21
  449. package/src/components/MainComponents/ReduxWrapper.tsx +18 -1
  450. package/src/components/MainComponents/RoomList.tsx +39 -236
  451. package/src/components/Menu/HeaderRoomListMenu.tsx +75 -328
  452. package/src/components/MessageBubble/MessageTranslate.tsx +17 -12
  453. package/src/components/Modals/AttachSheet/AttachSheet.tsx +99 -331
  454. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +293 -611
  455. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +9 -7
  456. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +38 -79
  457. package/src/components/Modals/FilePreviewModal/PdfView.tsx +1 -2
  458. package/src/components/Modals/Modal/Modal.tsx +0 -7
  459. package/src/components/Modals/NewChatModal/ModalContent.tsx +3 -6
  460. package/src/components/Modals/NewChatModal/NewChatModal.tsx +126 -223
  461. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +1 -12
  462. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +4 -14
  463. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +25 -9
  464. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +307 -617
  465. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +58 -75
  466. package/src/components/Modals/styledModalComponents.tsx +2 -9
  467. package/src/components/RoomComponents/ChatRoomItem.tsx +50 -21
  468. package/src/components/RoomComponents/styled/LastMessageFile.tsx +4 -28
  469. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +3 -18
  470. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +3 -18
  471. package/src/components/VideoCalls/VideoCallSession.tsx +3 -8
  472. package/src/components/styled/AudioMessage.tsx +1 -2
  473. package/src/components/styled/DateLabel.tsx +10 -3
  474. package/src/components/styled/MessageImage.tsx +7 -53
  475. package/src/components/styled/NewMessageLabel.tsx +3 -1
  476. package/src/components/styled/SendInput.tsx +18 -91
  477. package/src/components/styled/StyledComponents.ts +3 -9
  478. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -11
  479. package/src/components/styled/UnsupportedType.tsx +4 -14
  480. package/src/components/styled/VideoMessage.tsx +54 -131
  481. package/src/context/xmppProvider.tsx +51 -134
  482. package/src/helpers/createMessageFromXml.ts +1 -20
  483. package/src/helpers/ensureScopedChatCache.ts +2 -2
  484. package/src/helpers/getDataFromXml.ts +25 -1
  485. package/src/helpers/historyPreloadScheduler.ts +3 -80
  486. package/src/helpers/initXmppRooms.tsx +10 -14
  487. package/src/helpers/insertMessageWithDelimiter.ts +13 -0
  488. package/src/helpers/isUnresolvedSenderId.ts +9 -1
  489. package/src/helpers/mimeToExtension.ts +22 -6
  490. package/src/helpers/resolveInitBeforeLoadUser.ts +18 -125
  491. package/src/helpers/resolveLangSource.ts +40 -0
  492. package/src/helpers/xmppUsername.ts +38 -0
  493. package/src/hooks/useChatRoomFocus.ts +5 -14
  494. package/src/hooks/useChatWrapperInit.ts +16 -32
  495. package/src/hooks/useComposing.tsx +1 -37
  496. package/src/hooks/useLogout.tsx +9 -15
  497. package/src/hooks/usePendingNotification.ts +11 -5
  498. package/src/hooks/useSendMessage.tsx +15 -60
  499. package/src/hooks/useUnreadMessagesCounter.ts +0 -11
  500. package/src/i18n/strings.ts +133 -121
  501. package/src/i18n/useT.ts +1 -1
  502. package/src/main.ts +2 -26
  503. package/src/networking/api-requests/auth.api.ts +48 -156
  504. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  505. package/src/networking/api-requests/rooms.api.ts +9 -9
  506. package/src/networking/api-requests/user.api.ts +7 -79
  507. package/src/networking/apiClient.ts +123 -68
  508. package/src/networking/stanzaHandlers.ts +51 -92
  509. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +10 -71
  510. package/src/networking/xmpp/presenceInRoom.xmpp.ts +1 -6
  511. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +1 -12
  512. package/src/networking/xmppClient.ts +9 -141
  513. package/src/roomStore/chatSettingsSlice.ts +10 -34
  514. package/src/roomStore/index.ts +4 -40
  515. package/src/roomStore/persistence.ts +40 -234
  516. package/src/roomStore/roomsSlice.ts +7 -87
  517. package/src/services/pushSubscriptionService.ts +13 -18
  518. package/src/types/types.ts +5 -58
  519. package/src/version.ts +3 -1
  520. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +0 -226
  521. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
  522. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +0 -556
  523. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
  524. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +0 -210
  525. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
  526. package/lib/commonjs/helpers/getChatBackground.js +0 -23
  527. package/lib/commonjs/helpers/getChatBackground.js.map +0 -1
  528. package/lib/commonjs/helpers/getDisplayFileName.js +0 -79
  529. package/lib/commonjs/helpers/getDisplayFileName.js.map +0 -1
  530. package/lib/commonjs/helpers/getServerReadTimestamp.js +0 -125
  531. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +0 -1
  532. package/lib/commonjs/helpers/isOwnMessage.js +0 -75
  533. package/lib/commonjs/helpers/isOwnMessage.js.map +0 -1
  534. package/lib/commonjs/helpers/mediaLibraryRuntime.js +0 -31
  535. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +0 -1
  536. package/lib/commonjs/helpers/persistCrypto.js +0 -122
  537. package/lib/commonjs/helpers/persistCrypto.js.map +0 -1
  538. package/lib/commonjs/helpers/pickImageAsset.js +0 -68
  539. package/lib/commonjs/helpers/pickImageAsset.js.map +0 -1
  540. package/lib/commonjs/helpers/pushPayload.js +0 -71
  541. package/lib/commonjs/helpers/pushPayload.js.map +0 -1
  542. package/lib/commonjs/helpers/secureFileUrl.js +0 -101
  543. package/lib/commonjs/helpers/secureFileUrl.js.map +0 -1
  544. package/lib/commonjs/helpers/secureKeyValue.js +0 -83
  545. package/lib/commonjs/helpers/secureKeyValue.js.map +0 -1
  546. package/lib/commonjs/helpers/secureStoreRuntime.js +0 -59
  547. package/lib/commonjs/helpers/secureStoreRuntime.js.map +0 -1
  548. package/lib/commonjs/helpers/secureUserStorage.js +0 -75
  549. package/lib/commonjs/helpers/secureUserStorage.js.map +0 -1
  550. package/lib/commonjs/helpers/shallowEqual.js +0 -36
  551. package/lib/commonjs/helpers/shallowEqual.js.map +0 -1
  552. package/lib/commonjs/helpers/sheetGestures.js +0 -32
  553. package/lib/commonjs/helpers/sheetGestures.js.map +0 -1
  554. package/lib/commonjs/hooks/useFileToken.js +0 -10
  555. package/lib/commonjs/hooks/useFileToken.js.map +0 -1
  556. package/lib/commonjs/networking/authRefresh.js +0 -332
  557. package/lib/commonjs/networking/authRefresh.js.map +0 -1
  558. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +0 -223
  559. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
  560. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +0 -548
  561. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
  562. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +0 -205
  563. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
  564. package/lib/module/helpers/getChatBackground.js +0 -18
  565. package/lib/module/helpers/getChatBackground.js.map +0 -1
  566. package/lib/module/helpers/getDisplayFileName.js +0 -73
  567. package/lib/module/helpers/getDisplayFileName.js.map +0 -1
  568. package/lib/module/helpers/getServerReadTimestamp.js +0 -120
  569. package/lib/module/helpers/getServerReadTimestamp.js.map +0 -1
  570. package/lib/module/helpers/isOwnMessage.js +0 -70
  571. package/lib/module/helpers/isOwnMessage.js.map +0 -1
  572. package/lib/module/helpers/mediaLibraryRuntime.js +0 -25
  573. package/lib/module/helpers/mediaLibraryRuntime.js.map +0 -1
  574. package/lib/module/helpers/persistCrypto.js +0 -115
  575. package/lib/module/helpers/persistCrypto.js.map +0 -1
  576. package/lib/module/helpers/pickImageAsset.js +0 -63
  577. package/lib/module/helpers/pickImageAsset.js.map +0 -1
  578. package/lib/module/helpers/pushPayload.js +0 -63
  579. package/lib/module/helpers/pushPayload.js.map +0 -1
  580. package/lib/module/helpers/secureFileUrl.js +0 -91
  581. package/lib/module/helpers/secureFileUrl.js.map +0 -1
  582. package/lib/module/helpers/secureKeyValue.js +0 -75
  583. package/lib/module/helpers/secureKeyValue.js.map +0 -1
  584. package/lib/module/helpers/secureStoreRuntime.js +0 -52
  585. package/lib/module/helpers/secureStoreRuntime.js.map +0 -1
  586. package/lib/module/helpers/secureUserStorage.js +0 -72
  587. package/lib/module/helpers/secureUserStorage.js.map +0 -1
  588. package/lib/module/helpers/shallowEqual.js +0 -31
  589. package/lib/module/helpers/shallowEqual.js.map +0 -1
  590. package/lib/module/helpers/sheetGestures.js +0 -26
  591. package/lib/module/helpers/sheetGestures.js.map +0 -1
  592. package/lib/module/hooks/useFileToken.js +0 -5
  593. package/lib/module/hooks/useFileToken.js.map +0 -1
  594. package/lib/module/networking/authRefresh.js +0 -321
  595. package/lib/module/networking/authRefresh.js.map +0 -1
  596. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +0 -9
  597. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +0 -1
  598. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +0 -75
  599. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +0 -1
  600. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +0 -25
  601. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +0 -1
  602. package/lib/typescript/helpers/getChatBackground.d.ts +0 -15
  603. package/lib/typescript/helpers/getChatBackground.d.ts.map +0 -1
  604. package/lib/typescript/helpers/getDisplayFileName.d.ts +0 -49
  605. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +0 -1
  606. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +0 -69
  607. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +0 -1
  608. package/lib/typescript/helpers/isOwnMessage.d.ts +0 -36
  609. package/lib/typescript/helpers/isOwnMessage.d.ts.map +0 -1
  610. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +0 -3
  611. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +0 -1
  612. package/lib/typescript/helpers/persistCrypto.d.ts +0 -13
  613. package/lib/typescript/helpers/persistCrypto.d.ts.map +0 -1
  614. package/lib/typescript/helpers/pickImageAsset.d.ts +0 -27
  615. package/lib/typescript/helpers/pickImageAsset.d.ts.map +0 -1
  616. package/lib/typescript/helpers/pushPayload.d.ts +0 -7
  617. package/lib/typescript/helpers/pushPayload.d.ts.map +0 -1
  618. package/lib/typescript/helpers/secureFileUrl.d.ts +0 -7
  619. package/lib/typescript/helpers/secureFileUrl.d.ts.map +0 -1
  620. package/lib/typescript/helpers/secureKeyValue.d.ts +0 -13
  621. package/lib/typescript/helpers/secureKeyValue.d.ts.map +0 -1
  622. package/lib/typescript/helpers/secureStoreRuntime.d.ts +0 -29
  623. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +0 -1
  624. package/lib/typescript/helpers/secureUserStorage.d.ts +0 -23
  625. package/lib/typescript/helpers/secureUserStorage.d.ts.map +0 -1
  626. package/lib/typescript/helpers/shallowEqual.d.ts +0 -11
  627. package/lib/typescript/helpers/shallowEqual.d.ts.map +0 -1
  628. package/lib/typescript/helpers/sheetGestures.d.ts +0 -20
  629. package/lib/typescript/helpers/sheetGestures.d.ts.map +0 -1
  630. package/lib/typescript/hooks/useFileToken.d.ts +0 -2
  631. package/lib/typescript/hooks/useFileToken.d.ts.map +0 -1
  632. package/lib/typescript/networking/authRefresh.d.ts +0 -95
  633. package/lib/typescript/networking/authRefresh.d.ts.map +0 -1
  634. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +0 -244
  635. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +0 -615
  636. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +0 -217
  637. package/src/helpers/getChatBackground.ts +0 -18
  638. package/src/helpers/getDisplayFileName.ts +0 -87
  639. package/src/helpers/getServerReadTimestamp.ts +0 -120
  640. package/src/helpers/isOwnMessage.ts +0 -90
  641. package/src/helpers/mediaLibraryRuntime.ts +0 -25
  642. package/src/helpers/persistCrypto.ts +0 -127
  643. package/src/helpers/pickImageAsset.ts +0 -68
  644. package/src/helpers/pushPayload.ts +0 -62
  645. package/src/helpers/secureFileUrl.ts +0 -103
  646. package/src/helpers/secureKeyValue.ts +0 -80
  647. package/src/helpers/secureStoreRuntime.ts +0 -62
  648. package/src/helpers/secureUserStorage.ts +0 -80
  649. package/src/helpers/shallowEqual.ts +0 -33
  650. package/src/helpers/sheetGestures.ts +0 -25
  651. package/src/hooks/useFileToken.ts +0 -7
  652. package/src/networking/authRefresh.ts +0 -451
@@ -1,115 +0,0 @@
1
- "use strict";
2
-
3
- import CryptoJS from 'crypto-js';
4
- import { secureGet, secureSet } from './secureKeyValue';
5
-
6
- // AES-256-CBC at rest for the bulk persisted state (message history +
7
- // room list) that `roomStore/persistence.ts` writes to AsyncStorage.
8
- // This is envelope encryption, not a SecureStore write of the payload
9
- // itself: expo-secure-store has historically capped a single value's
10
- // size on Android (chunking exists in newer releases, but the payload
11
- // here is unbounded — up to MESSAGE_LIMIT messages per room, times
12
- // every room), so only the small symmetric KEY goes through the
13
- // platform Keychain/Keystore (`secureKeyValue.ts`); the ciphertext
14
- // itself stays in plain AsyncStorage, unreadable without that key.
15
- const CIPHER_KEY_STORE_KEY = 'ethora_history_cipher_key';
16
- const ENVELOPE_VERSION = 1;
17
- const KEY_BYTES = 32; // AES-256
18
- const IV_BYTES = 16; // one AES block
19
-
20
- /**
21
- * `crypto-js`'s own `WordArray.random()` falls back to `Math.random()`
22
- * when it can't detect a browser `window.crypto` — not safe for key/IV
23
- * material. `react-native-get-random-values` (a REQUIRED peer
24
- * dependency, imported at the top of `main.ts`/`index.js` before
25
- * anything else in the SDK runs) polyfills the real thing onto
26
- * `global.crypto.getRandomValues` instead; source bytes from that and
27
- * hand them to crypto-js as a WordArray rather than trust its default.
28
- */
29
- const randomWordArray = byteLength => {
30
- const bytes = new Uint8Array(byteLength);
31
- global.crypto.getRandomValues(bytes);
32
- const words = [];
33
- for (let i = 0; i < bytes.length; i += 4) {
34
- words.push((bytes[i] || 0) << 24 | (bytes[i + 1] || 0) << 16 | (bytes[i + 2] || 0) << 8 | (bytes[i + 3] || 0));
35
- }
36
- return CryptoJS.lib.WordArray.create(words, byteLength);
37
- };
38
- let cachedKeyPromise = null;
39
-
40
- /**
41
- * One AES-256 key per install, generated on first use and persisted
42
- * through the SecureStore/Keychain bridge. Reused across logins on
43
- * purpose: the ciphertext it protects is deleted wholesale on logout
44
- * (`clearPersistedState`), so there is no cross-account data for a
45
- * stable key to expose — only the encrypted blob of whoever is
46
- * currently logged in ever exists on disk at a given time.
47
- */
48
- const loadOrCreateKey = () => {
49
- if (cachedKeyPromise) {
50
- return cachedKeyPromise;
51
- }
52
- cachedKeyPromise = (async () => {
53
- const existing = await secureGet(CIPHER_KEY_STORE_KEY);
54
- if (existing) {
55
- return CryptoJS.enc.Base64.parse(existing);
56
- }
57
- const key = randomWordArray(KEY_BYTES);
58
- await secureSet(CIPHER_KEY_STORE_KEY, CryptoJS.enc.Base64.stringify(key));
59
- return key;
60
- })();
61
- return cachedKeyPromise;
62
- };
63
-
64
- /** Encrypt a JSON-serialisable payload for storage. Returns the string to persist. */
65
- export async function encryptForPersist(plaintext) {
66
- const key = await loadOrCreateKey();
67
- const iv = randomWordArray(IV_BYTES);
68
- const encrypted = CryptoJS.AES.encrypt(plaintext, key, {
69
- iv,
70
- mode: CryptoJS.mode.CBC,
71
- padding: CryptoJS.pad.Pkcs7
72
- });
73
- const envelope = {
74
- v: ENVELOPE_VERSION,
75
- iv: CryptoJS.enc.Base64.stringify(iv),
76
- ct: encrypted.ciphertext.toString(CryptoJS.enc.Base64)
77
- };
78
- return JSON.stringify(envelope);
79
- }
80
-
81
- /**
82
- * Decrypt a value previously written by `encryptForPersist`. Returns
83
- * null (never throws) for anything that isn't a valid envelope for the
84
- * current key — including a plaintext blob from a pre-encryption
85
- * install: the app just re-hydrates that room/history from the server,
86
- * same as any other empty-cache cold start.
87
- */
88
- export async function decryptFromPersist(stored) {
89
- try {
90
- const envelope = JSON.parse(stored);
91
- if (!envelope || envelope.v !== ENVELOPE_VERSION || !envelope.iv || !envelope.ct) {
92
- return null;
93
- }
94
- const key = await loadOrCreateKey();
95
- const iv = CryptoJS.enc.Base64.parse(envelope.iv);
96
- const ciphertext = CryptoJS.enc.Base64.parse(envelope.ct);
97
- const decrypted = CryptoJS.AES.decrypt({
98
- ciphertext
99
- }, key, {
100
- iv,
101
- mode: CryptoJS.mode.CBC,
102
- padding: CryptoJS.pad.Pkcs7
103
- });
104
- const plaintext = decrypted.toString(CryptoJS.enc.Utf8);
105
- return plaintext || null;
106
- } catch {
107
- return null;
108
- }
109
- }
110
-
111
- /** Test seam only. */
112
- export const __resetPersistCryptoKeyForTests = () => {
113
- cachedKeyPromise = null;
114
- };
115
- //# sourceMappingURL=persistCrypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CryptoJS","secureGet","secureSet","CIPHER_KEY_STORE_KEY","ENVELOPE_VERSION","KEY_BYTES","IV_BYTES","randomWordArray","byteLength","bytes","Uint8Array","global","crypto","getRandomValues","words","i","length","push","lib","WordArray","create","cachedKeyPromise","loadOrCreateKey","existing","enc","Base64","parse","key","stringify","encryptForPersist","plaintext","iv","encrypted","AES","encrypt","mode","CBC","padding","pad","Pkcs7","envelope","v","ct","ciphertext","toString","JSON","decryptFromPersist","stored","decrypted","decrypt","Utf8","__resetPersistCryptoKeyForTests"],"sourceRoot":"../../../src","sources":["helpers/persistCrypto.ts"],"mappings":"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","ignoreList":[]}
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- import { Alert, Linking } from 'react-native';
4
- import * as ImagePicker from 'expo-image-picker';
5
-
6
- /**
7
- * A picked image in the shape React Native's FormData understands.
8
- *
9
- * NOT a web `File`: RN streams a multipart part straight from a `file://`
10
- * uri and has no usable Blob/File/atob path. Screens ported from the web
11
- * client used to carry base64 -> Blob -> File helpers that could never
12
- * have run here.
13
- */
14
-
15
- /**
16
- * Ask for library permission, open the picker, and normalise the result.
17
- *
18
- * Returns `null` for every non-error outcome — permission refused, user
19
- * cancelled — so call sites can simply keep their current value.
20
- *
21
- * Exists because the avatar pickers are wired to `onPress`, which hands
22
- * the callback a SyntheticEvent. Storing that event as "the image" (what
23
- * two screens used to do) rendered a pooled event as an <Image source>
24
- * and then crashed with "Property is not configurable" when React tried
25
- * to release it — on top of never letting the user pick anything.
26
- */
27
- export const pickImageAsset = async () => {
28
- try {
29
- // expo-image-picker owns the permission prompt internally and
30
- // returns a `granted` flag.
31
- const perm = await ImagePicker.requestMediaLibraryPermissionsAsync();
32
- if (!perm.granted) {
33
- Alert.alert('Permission required', 'Photo library permission is needed to select images.', [{
34
- text: 'Cancel',
35
- style: 'cancel'
36
- }, {
37
- text: 'Open Settings',
38
- onPress: () => Linking.openSettings()
39
- }]);
40
- return null;
41
- }
42
- const result = await ImagePicker.launchImageLibraryAsync({
43
- mediaTypes: ['images'],
44
- allowsEditing: true,
45
- aspect: [1, 1],
46
- quality: 0.8
47
- });
48
- if (result.canceled || !result.assets?.[0]) {
49
- return null;
50
- }
51
- const asset = result.assets[0];
52
- const originalName = asset.fileName || asset.uri.split('/').pop();
53
- return {
54
- uri: asset.uri,
55
- type: asset.mimeType || 'image/jpeg',
56
- name: originalName || `image_${Date.now()}.jpg`
57
- };
58
- } catch (error) {
59
- console.error('Failed to pick an image:', error);
60
- return null;
61
- }
62
- };
63
- //# sourceMappingURL=pickImageAsset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Alert","Linking","ImagePicker","pickImageAsset","perm","requestMediaLibraryPermissionsAsync","granted","alert","text","style","onPress","openSettings","result","launchImageLibraryAsync","mediaTypes","allowsEditing","aspect","quality","canceled","assets","asset","originalName","fileName","uri","split","pop","type","mimeType","name","Date","now","error","console"],"sourceRoot":"../../../src","sources":["helpers/pickImageAsset.ts"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,OAAO,QAAQ,cAAc;AAC7C,OAAO,KAAKC,WAAW,MAAM,mBAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAyC;EACrE,IAAI;IACF;IACA;IACA,MAAMC,IAAI,GAAG,MAAMF,WAAW,CAACG,mCAAmC,CAAC,CAAC;IACpE,IAAI,CAACD,IAAI,CAACE,OAAO,EAAE;MACjBN,KAAK,CAACO,KAAK,CACT,qBAAqB,EACrB,sDAAsD,EACtD,CACE;QAAEC,IAAI,EAAE,QAAQ;QAAEC,KAAK,EAAE;MAAS,CAAC,EACnC;QAAED,IAAI,EAAE,eAAe;QAAEE,OAAO,EAAEA,CAAA,KAAMT,OAAO,CAACU,YAAY,CAAC;MAAE,CAAC,CAEpE,CAAC;MACD,OAAO,IAAI;IACb;IAEA,MAAMC,MAAM,GAAG,MAAMV,WAAW,CAACW,uBAAuB,CAAC;MACvDC,UAAU,EAAE,CAAC,QAAQ,CAAC;MACtBC,aAAa,EAAE,IAAI;MACnBC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACdC,OAAO,EAAE;IACX,CAAC,CAAC;IACF,IAAIL,MAAM,CAACM,QAAQ,IAAI,CAACN,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC,EAAE;MAC1C,OAAO,IAAI;IACb;IAEA,MAAMC,KAAK,GAAGR,MAAM,CAACO,MAAM,CAAC,CAAC,CAAC;IAC9B,MAAME,YAAY,GAAGD,KAAK,CAACE,QAAQ,IAAIF,KAAK,CAACG,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;IACjE,OAAO;MACLF,GAAG,EAAEH,KAAK,CAACG,GAAG;MACdG,IAAI,EAAEN,KAAK,CAACO,QAAQ,IAAI,YAAY;MACpCC,IAAI,EAAEP,YAAY,IAAI,SAASQ,IAAI,CAACC,GAAG,CAAC,CAAC;IAC3C,CAAC;EACH,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;IAChD,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- import AsyncStorage from '@react-native-async-storage/async-storage';
4
- import { store } from '../roomStore';
5
- import { clearPendingNotificationJid, setCurrentRoom, setPendingNotificationJid } from '../roomStore/roomsSlice';
6
- import { handleCallPush } from './incomingCallFromPush';
7
- import { normalizeRoomJid } from './normalizeRoomJid';
8
- export const PENDING_NOTIFICATION_JID_KEY = 'ethora_pending_notification_jid';
9
- export const PENDING_NOTIFICATION_TTL_MS = 5 * 60 * 1000;
10
- export const readPendingJid = async () => {
11
- try {
12
- const raw = await AsyncStorage.getItem(PENDING_NOTIFICATION_JID_KEY);
13
- if (!raw) {
14
- return null;
15
- }
16
- if (raw.startsWith('{')) {
17
- const {
18
- jid,
19
- at
20
- } = JSON.parse(raw);
21
- if (!jid || !at || Date.now() - at > PENDING_NOTIFICATION_TTL_MS) {
22
- await AsyncStorage.removeItem(PENDING_NOTIFICATION_JID_KEY);
23
- return null;
24
- }
25
- return jid;
26
- }
27
- return raw;
28
- } catch {
29
- return null;
30
- }
31
- };
32
- export const openRoomFromPush = jid => {
33
- const state = store.getState();
34
- const conference = state.chatSettingStore?.config?.xmppSettings?.conference;
35
- const full = normalizeRoomJid(jid, conference);
36
- AsyncStorage.setItem(PENDING_NOTIFICATION_JID_KEY, JSON.stringify({
37
- jid: full,
38
- at: Date.now()
39
- })).catch(() => undefined);
40
- if (state.rooms?.rooms?.[full]) {
41
- store.dispatch(clearPendingNotificationJid());
42
- store.dispatch(setCurrentRoom({
43
- roomJID: full
44
- }));
45
- return 'room';
46
- }
47
- store.dispatch(setPendingNotificationJid(full));
48
- return 'pending';
49
- };
50
- export const handlePushPayload = data => {
51
- if (!data) {
52
- return 'unknown';
53
- }
54
- if (handleCallPush(data)) {
55
- return 'call';
56
- }
57
- const jid = data.jid ?? data.chatJid ?? data.roomJid ?? data.roomJID;
58
- if (typeof jid === 'string' && jid) {
59
- return openRoomFromPush(jid);
60
- }
61
- return 'unknown';
62
- };
63
- //# sourceMappingURL=pushPayload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AsyncStorage","store","clearPendingNotificationJid","setCurrentRoom","setPendingNotificationJid","handleCallPush","normalizeRoomJid","PENDING_NOTIFICATION_JID_KEY","PENDING_NOTIFICATION_TTL_MS","readPendingJid","raw","getItem","startsWith","jid","at","JSON","parse","Date","now","removeItem","openRoomFromPush","state","getState","conference","chatSettingStore","config","xmppSettings","full","setItem","stringify","catch","undefined","rooms","dispatch","roomJID","handlePushPayload","data","chatJid","roomJid"],"sourceRoot":"../../../src","sources":["helpers/pushPayload.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,KAAK,QAAQ,cAAc;AACpC,SACEC,2BAA2B,EAC3BC,cAAc,EACdC,yBAAyB,QACpB,yBAAyB;AAChC,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,gBAAgB,QAAQ,oBAAoB;AAIrD,OAAO,MAAMC,4BAA4B,GAAG,iCAAiC;AAC7E,OAAO,MAAMC,2BAA2B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;AAExD,OAAO,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAoC;EAChE,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMV,YAAY,CAACW,OAAO,CAACJ,4BAA4B,CAAC;IACpE,IAAI,CAACG,GAAG,EAAE;MAAC,OAAO,IAAI;IAAC;IACvB,IAAIA,GAAG,CAACE,UAAU,CAAC,GAAG,CAAC,EAAE;MACvB,MAAM;QAAEC,GAAG;QAAEC;MAAG,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,GAAG,CAAkC;MACpE,IAAI,CAACG,GAAG,IAAI,CAACC,EAAE,IAAIG,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGJ,EAAE,GAAGN,2BAA2B,EAAE;QAChE,MAAMR,YAAY,CAACmB,UAAU,CAACZ,4BAA4B,CAAC;QAC3D,OAAO,IAAI;MACb;MACA,OAAOM,GAAG;IACZ;IACA,OAAOH,GAAG;EACZ,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,OAAO,MAAMU,gBAAgB,GAAIP,GAAW,IAAyB;EACnE,MAAMQ,KAAK,GAAGpB,KAAK,CAACqB,QAAQ,CAAC,CAAC;EAC9B,MAAMC,UAAU,GAAGF,KAAK,CAACG,gBAAgB,EAAEC,MAAM,EAAEC,YAAY,EAAEH,UAAU;EAC3E,MAAMI,IAAI,GAAGrB,gBAAgB,CAACO,GAAG,EAAEU,UAAU,CAAC;EAE9CvB,YAAY,CAAC4B,OAAO,CAClBrB,4BAA4B,EAC5BQ,IAAI,CAACc,SAAS,CAAC;IAAEhB,GAAG,EAAEc,IAAI;IAAEb,EAAE,EAAEG,IAAI,CAACC,GAAG,CAAC;EAAE,CAAC,CAC9C,CAAC,CAACY,KAAK,CAAC,MAAMC,SAAS,CAAC;EACxB,IAAIV,KAAK,CAACW,KAAK,EAAEA,KAAK,GAAGL,IAAI,CAAC,EAAE;IAC9B1B,KAAK,CAACgC,QAAQ,CAAC/B,2BAA2B,CAAC,CAAC,CAAC;IAC7CD,KAAK,CAACgC,QAAQ,CAAC9B,cAAc,CAAC;MAAE+B,OAAO,EAAEP;IAAK,CAAC,CAAC,CAAC;IACjD,OAAO,MAAM;EACf;EACA1B,KAAK,CAACgC,QAAQ,CAAC7B,yBAAyB,CAACuB,IAAI,CAAC,CAAC;EAC/C,OAAO,SAAS;AAClB,CAAC;AAED,OAAO,MAAMQ,iBAAiB,GAC5BC,IAAgD,IACzB;EACvB,IAAI,CAACA,IAAI,EAAE;IAAC,OAAO,SAAS;EAAC;EAC7B,IAAI/B,cAAc,CAAC+B,IAA2B,CAAC,EAAE;IAAC,OAAO,MAAM;EAAC;EAChE,MAAMvB,GAAG,GAAGuB,IAAI,CAACvB,GAAG,IAAIuB,IAAI,CAACC,OAAO,IAAID,IAAI,CAACE,OAAO,IAAIF,IAAI,CAACF,OAAO;EACpE,IAAI,OAAOrB,GAAG,KAAK,QAAQ,IAAIA,GAAG,EAAE;IAClC,OAAOO,gBAAgB,CAACP,GAAG,CAAC;EAC9B;EACA,OAAO,SAAS;AAClB,CAAC","ignoreList":[]}
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- import { store } from '../roomStore';
4
- import { getCurrentBaseURL } from '../networking/apiClient';
5
- import { refreshAuthTokens } from '../networking/authRefresh';
6
- const SECURE_FILES_HOST_PREFIX = 'secure-files.';
7
- const SECURE_MEDIA_PATH_PREFIX = '/secure-media/';
8
- const FILE_TOKEN_PARAM = 'ft';
9
- export const resolveFileUrl = url => {
10
- if (!url) {
11
- return '';
12
- }
13
- // Any scheme at all — http(s), data, file, content, blob.
14
- if (/^[a-z][a-z0-9+.-]*:/i.test(url)) {
15
- return url;
16
- }
17
- if (!url.startsWith('/')) {
18
- return url;
19
- }
20
- const base = getCurrentBaseURL().replace(/\/+$/, '');
21
- return base ? `${base}${url}` : url;
22
- };
23
- export const isSecureFileUrl = url => {
24
- if (!url) {
25
- return false;
26
- }
27
- const path = url.replace(/^[a-z][a-z0-9+.-]*:\/\/[^/]*/i, '');
28
- if (path.startsWith(SECURE_MEDIA_PATH_PREFIX)) {
29
- return true;
30
- }
31
- const match = /^https?:\/\/(?:[^@/]+@)?([^:/?#]+)/i.exec(url);
32
- if (!match) {
33
- return false;
34
- }
35
- return match[1].toLowerCase().startsWith(SECURE_FILES_HOST_PREFIX);
36
- };
37
- export const appendFileToken = (url, fileToken) => {
38
- if (!url) {
39
- return '';
40
- }
41
- const resolved = resolveFileUrl(url);
42
- if (!fileToken || !isSecureFileUrl(resolved)) {
43
- return resolved;
44
- }
45
- url = resolved;
46
- const hashIndex = url.indexOf('#');
47
- const hash = hashIndex === -1 ? '' : url.slice(hashIndex);
48
- const withoutHash = hashIndex === -1 ? url : url.slice(0, hashIndex);
49
- const queryIndex = withoutHash.indexOf('?');
50
- const base = queryIndex === -1 ? withoutHash : withoutHash.slice(0, queryIndex);
51
- const query = queryIndex === -1 ? '' : withoutHash.slice(queryIndex + 1);
52
- const params = query.split('&').filter(Boolean).filter(pair => pair.split('=')[0] !== FILE_TOKEN_PARAM);
53
- params.push(`${FILE_TOKEN_PARAM}=${encodeURIComponent(fileToken)}`);
54
- return `${base}?${params.join('&')}${hash}`;
55
- };
56
- export const withFileToken = url => appendFileToken(url, store.getState().chatSettingStore?.user?.fileToken || '');
57
- const RECOVERY_COOLDOWN_MS = 30_000;
58
- let recoveryInFlight = null;
59
- let lastRecoveryAt = 0;
60
- export const requestFileTokenRecovery = () => {
61
- if (recoveryInFlight) {
62
- return recoveryInFlight;
63
- }
64
- const now = Date.now();
65
- if (now - lastRecoveryAt < RECOVERY_COOLDOWN_MS) {
66
- return Promise.resolve(false);
67
- }
68
- lastRecoveryAt = now;
69
- const state = store.getState();
70
- const refreshConfig = state.chatSettingStore?.config?.refreshTokens;
71
- const user = state.chatSettingStore?.user;
72
- if (!refreshConfig?.enabled) {
73
- return Promise.resolve(false);
74
- }
75
- const run = async () => {
76
- if (!refreshConfig.refreshFunction && !user?.refreshToken) {
77
- return false;
78
- }
79
- const tokens = await refreshAuthTokens();
80
- return Boolean(tokens.fileToken);
81
- };
82
- recoveryInFlight = run().catch(() => false).finally(() => {
83
- recoveryInFlight = null;
84
- });
85
- return recoveryInFlight;
86
- };
87
- export const __resetFileTokenRecoveryForTests = () => {
88
- recoveryInFlight = null;
89
- lastRecoveryAt = 0;
90
- };
91
- //# sourceMappingURL=secureFileUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["store","getCurrentBaseURL","refreshAuthTokens","SECURE_FILES_HOST_PREFIX","SECURE_MEDIA_PATH_PREFIX","FILE_TOKEN_PARAM","resolveFileUrl","url","test","startsWith","base","replace","isSecureFileUrl","path","match","exec","toLowerCase","appendFileToken","fileToken","resolved","hashIndex","indexOf","hash","slice","withoutHash","queryIndex","query","params","split","filter","Boolean","pair","push","encodeURIComponent","join","withFileToken","getState","chatSettingStore","user","RECOVERY_COOLDOWN_MS","recoveryInFlight","lastRecoveryAt","requestFileTokenRecovery","now","Date","Promise","resolve","state","refreshConfig","config","refreshTokens","enabled","run","refreshFunction","refreshToken","tokens","catch","finally","__resetFileTokenRecoveryForTests"],"sourceRoot":"../../../src","sources":["helpers/secureFileUrl.ts"],"mappings":"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","ignoreList":[]}
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- import AsyncStorage from '@react-native-async-storage/async-storage';
4
- import { loadSecureStore } from './secureStoreRuntime';
5
- import { pushLog } from '../utils/devLogger';
6
-
7
- // Fallback keys are prefixed and namespaced away from every other
8
- // AsyncStorage key this SDK writes, so a host that never installs
9
- // expo-secure-store can still be told apart from one that used to lack
10
- // it and has since added it (see `secureSet`'s stale-fallback cleanup).
11
- const FALLBACK_PREFIX = '@ethora/secure-fallback:';
12
- let warnedFallback = false;
13
- const warnFallbackOnce = () => {
14
- if (warnedFallback) {
15
- return;
16
- }
17
- warnedFallback = true;
18
- pushLog('warn', 'expo-secure-store is not installed — auth tokens, the XMPP ' + 'password, and the message-history cipher key are falling back ' + 'to plain AsyncStorage instead of the platform Keychain/Keystore. ' + 'Add the optional peer dependency `expo-secure-store` to your app ' + 'to store them securely.');
19
- };
20
-
21
- /**
22
- * Small-value secure KV store: platform Keychain/Keystore via
23
- * expo-secure-store when the host has it installed, plain (but still
24
- * namespaced) AsyncStorage otherwise. NOT for bulk data — see
25
- * `persistCrypto.ts`'s size note on why message history goes through
26
- * AES instead of straight into this store.
27
- */
28
- export async function secureGet(key) {
29
- const store = loadSecureStore();
30
- if (store) {
31
- try {
32
- return await store.getItemAsync(key);
33
- } catch (e) {
34
- pushLog('warn', `secureStore: getItemAsync(${key}) failed`, e);
35
- return null;
36
- }
37
- }
38
- warnFallbackOnce();
39
- return AsyncStorage.getItem(FALLBACK_PREFIX + key);
40
- }
41
- export async function secureSet(key, value) {
42
- const store = loadSecureStore();
43
- if (store) {
44
- try {
45
- await store.setItemAsync(key, value);
46
- // Clean up a stale plaintext fallback copy from before this host
47
- // added expo-secure-store — otherwise it sits on disk forever.
48
- AsyncStorage.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
49
- return;
50
- } catch (e) {
51
- pushLog('warn', `secureStore: setItemAsync(${key}) failed`, e);
52
- return;
53
- }
54
- }
55
- warnFallbackOnce();
56
- await AsyncStorage.setItem(FALLBACK_PREFIX + key, value);
57
- }
58
- export async function secureRemove(key) {
59
- const store = loadSecureStore();
60
- if (store) {
61
- try {
62
- await store.deleteItemAsync(key);
63
- } catch {
64
- // Key may simply not exist — deleteItemAsync throwing here isn't
65
- // actionable either way.
66
- }
67
- }
68
- await AsyncStorage.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
69
- }
70
-
71
- /** Test seam only. */
72
- export const __resetSecureKeyValueWarningForTests = () => {
73
- warnedFallback = false;
74
- };
75
- //# sourceMappingURL=secureKeyValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AsyncStorage","loadSecureStore","pushLog","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","secureGet","key","store","getItemAsync","e","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","__resetSecureKeyValueWarningForTests"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG,0BAA0B;AAElD,IAAIC,cAAc,GAAG,KAAK;AAC1B,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,IAAID,cAAc,EAAE;IAAC;EAAO;EAC5BA,cAAc,GAAG,IAAI;EACrBF,OAAO,CACL,MAAM,EACN,6DAA6D,GAC3D,gEAAgE,GAChE,mEAAmE,GACnE,mEAAmE,GACnE,yBACJ,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeI,SAASA,CAACC,GAAW,EAA0B;EACnE,MAAMC,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,OAAO,MAAMA,KAAK,CAACC,YAAY,CAACF,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVR,OAAO,CAAC,MAAM,EAAE,6BAA6BK,GAAG,UAAU,EAAEG,CAAC,CAAC;MAC9D,OAAO,IAAI;IACb;EACF;EACAL,gBAAgB,CAAC,CAAC;EAClB,OAAOL,YAAY,CAACW,OAAO,CAACR,eAAe,GAAGI,GAAG,CAAC;AACpD;AAEA,OAAO,eAAeK,SAASA,CAACL,GAAW,EAAEM,KAAa,EAAiB;EACzE,MAAML,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACM,YAAY,CAACP,GAAG,EAAEM,KAAK,CAAC;MACpC;MACA;MACAb,YAAY,CAACe,UAAU,CAACZ,eAAe,GAAGI,GAAG,CAAC,CAACS,KAAK,CAAC,MAAMC,SAAS,CAAC;MACrE;IACF,CAAC,CAAC,OAAOP,CAAC,EAAE;MACVR,OAAO,CAAC,MAAM,EAAE,6BAA6BK,GAAG,UAAU,EAAEG,CAAC,CAAC;MAC9D;IACF;EACF;EACAL,gBAAgB,CAAC,CAAC;EAClB,MAAML,YAAY,CAACkB,OAAO,CAACf,eAAe,GAAGI,GAAG,EAAEM,KAAK,CAAC;AAC1D;AAEA,OAAO,eAAeM,YAAYA,CAACZ,GAAW,EAAiB;EAC7D,MAAMC,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACY,eAAe,CAACb,GAAG,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IAAA;EAEJ;EACA,MAAMP,YAAY,CAACe,UAAU,CAACZ,eAAe,GAAGI,GAAG,CAAC,CAACS,KAAK,CAAC,MAAMC,SAAS,CAAC;AAC7E;;AAEA;AACA,OAAO,MAAMI,oCAAoC,GAAGA,CAAA,KAAY;EAC9DjB,cAAc,GAAG,KAAK;AACxB,CAAC","ignoreList":[]}
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Optional-dependency bridge for `expo-secure-store` — the Keychain
5
- * (iOS) / Keystore-backed EncryptedSharedPreferences (Android) API.
6
- *
7
- * Mirrors `components/VideoCalls/livekitRuntime.ts`: a plain top-level
8
- * `import ... from 'expo-secure-store'` is not allowed anywhere in the
9
- * SDK, since Metro resolves imports at bundle time and a host that
10
- * hasn't added this optional peer dependency would fail to build over
11
- * a feature it never opted into. Everything goes through
12
- * `loadSecureStore()`, which requires the module lazily and returns
13
- * null when it isn't installed — callers fall back to plain
14
- * AsyncStorage rather than crash (see `secureKeyValue.ts`).
15
- */
16
-
17
- let cached;
18
-
19
- /**
20
- * Resolve the SecureStore runtime, or null when the optional native
21
- * package isn't installed in the host app. Result is memoised
22
- * (including the failure) so a missing dependency doesn't re-throw on
23
- * every read/write.
24
- */
25
- export const loadSecureStore = () => {
26
- if (cached !== undefined) {
27
- return cached;
28
- }
29
- try {
30
- // eslint-disable-next-line @typescript-eslint/no-require-imports
31
- const mod = require('expo-secure-store');
32
- if (typeof mod?.getItemAsync !== 'function' || typeof mod?.setItemAsync !== 'function' || typeof mod?.deleteItemAsync !== 'function') {
33
- cached = null;
34
- } else {
35
- cached = {
36
- getItemAsync: mod.getItemAsync,
37
- setItemAsync: mod.setItemAsync,
38
- deleteItemAsync: mod.deleteItemAsync
39
- };
40
- }
41
- } catch {
42
- cached = null;
43
- }
44
- return cached;
45
- };
46
- export const isSecureStoreAvailable = () => loadSecureStore() !== null;
47
-
48
- /** Test seam only. */
49
- export const __resetSecureStoreRuntimeForTests = () => {
50
- cached = undefined;
51
- };
52
- //# sourceMappingURL=secureStoreRuntime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["cached","loadSecureStore","undefined","mod","require","getItemAsync","setItemAsync","deleteItemAsync","isSecureStoreAvailable","__resetSecureStoreRuntimeForTests"],"sourceRoot":"../../../src","sources":["helpers/secureStoreRuntime.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,IAAIA,MAA6C;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAiC;EAC9D,IAAID,MAAM,KAAKE,SAAS,EAAE;IACxB,OAAOF,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMG,GAAG,GAAGC,OAAO,CAAC,mBAAmB,CAAC;IACxC,IACE,OAAOD,GAAG,EAAEE,YAAY,KAAK,UAAU,IACvC,OAAOF,GAAG,EAAEG,YAAY,KAAK,UAAU,IACvC,OAAOH,GAAG,EAAEI,eAAe,KAAK,UAAU,EAC1C;MACAP,MAAM,GAAG,IAAI;IACf,CAAC,MAAM;MACLA,MAAM,GAAG;QACPK,YAAY,EAAEF,GAAG,CAACE,YAAY;QAC9BC,YAAY,EAAEH,GAAG,CAACG,YAAY;QAC9BC,eAAe,EAAEJ,GAAG,CAACI;MACvB,CAAC;IACH;EACF,CAAC,CAAC,MAAM;IACNP,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAED,OAAO,MAAMQ,sBAAsB,GAAGA,CAAA,KAAeP,eAAe,CAAC,CAAC,KAAK,IAAI;;AAE/E;AACA,OAAO,MAAMQ,iCAAiC,GAAGA,CAAA,KAAY;EAC3DT,MAAM,GAAGE,SAAS;AACpB,CAAC","ignoreList":[]}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- import { asyncLocalStorage } from '../hooks/useLocalStorage';
4
- import { localStorageConstants } from './constants/LOCAL_STORAGE';
5
- import { secureGet, secureSet, secureRemove } from './secureKeyValue';
6
-
7
- // Keychain (iOS) / Keystore-backed EncryptedSharedPreferences (Android)
8
- // keys for the four live bearer credentials on `User`. Deliberately one
9
- // key per field rather than one JSON blob: expo-secure-store historically
10
- // caps a single value's size on Android, and four short JWTs each stay
11
- // comfortably under that ceiling where one combined blob might not.
12
- const SECRET_KEYS = {
13
- token: 'ethora_auth_token',
14
- refreshToken: 'ethora_auth_refresh_token',
15
- xmppPassword: 'ethora_auth_xmpp_password',
16
- fileToken: 'ethora_auth_file_token'
17
- };
18
- const SECRET_FIELDS = Object.keys(SECRET_KEYS);
19
-
20
- /**
21
- * Persisted-user storage, split across two backends behind the exact
22
- * same `{ get, set, remove }` shape `asyncLocalStorage<User>(...)`
23
- * already exposed — every existing call site swaps in by changing only
24
- * the constructor call, `get()`/`set()`/`remove()` keep returning/taking
25
- * a complete `User`.
26
- *
27
- * The four live credentials (REST access + refresh token, XMPP
28
- * password, secure-media fileToken) never touch plain AsyncStorage:
29
- * they go through `secureGet`/`secureSet`/`secureRemove` (platform
30
- * Keychain/Keystore, falling back to namespaced AsyncStorage only when
31
- * the host hasn't installed the optional `expo-secure-store` peer dep).
32
- * Everything else on `User` — name, avatar, ids, xmppUsername, wallet
33
- * address, none of it a bearer credential — keeps living under the
34
- * existing `ETHORA_USER` AsyncStorage key, unchanged.
35
- */
36
- export function secureUserStorage() {
37
- const get = async () => {
38
- const profile = await asyncLocalStorage(localStorageConstants.ETHORA_USER).get();
39
- if (!profile) {
40
- return null;
41
- }
42
- const secretValues = await Promise.all(SECRET_FIELDS.map(field => secureGet(SECRET_KEYS[field])));
43
- const merged = {
44
- ...profile
45
- };
46
- SECRET_FIELDS.forEach((field, i) => {
47
- merged[field] = secretValues[i] || '';
48
- });
49
- return merged;
50
- };
51
- const set = async user => {
52
- const profile = {
53
- ...user
54
- };
55
- for (const field of SECRET_FIELDS) {
56
- profile[field] = '';
57
- }
58
- await Promise.all([asyncLocalStorage(localStorageConstants.ETHORA_USER).set(profile), ...SECRET_FIELDS.map(field => {
59
- const value = user?.[field];
60
- return value ? secureSet(SECRET_KEYS[field], value) : secureRemove(SECRET_KEYS[field]);
61
- })]);
62
- };
63
- const remove = async () => {
64
- await Promise.all([asyncLocalStorage(localStorageConstants.ETHORA_USER).remove(), ...SECRET_FIELDS.map(field => secureRemove(SECRET_KEYS[field]))]);
65
- };
66
- return {
67
- get,
68
- set,
69
- remove
70
- };
71
- }
72
- //# sourceMappingURL=secureUserStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["asyncLocalStorage","localStorageConstants","secureGet","secureSet","secureRemove","SECRET_KEYS","token","refreshToken","xmppPassword","fileToken","SECRET_FIELDS","Object","keys","secureUserStorage","get","profile","ETHORA_USER","secretValues","Promise","all","map","field","merged","forEach","i","set","user","value","remove"],"sourceRoot":"../../../src","sources":["helpers/secureUserStorage.ts"],"mappings":";;AACA,SAASA,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,qBAAqB,QAAQ,2BAA2B;AACjE,SAASC,SAAS,EAAEC,SAAS,EAAEC,YAAY,QAAQ,kBAAkB;;AAErE;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClBC,KAAK,EAAE,mBAAmB;EAC1BC,YAAY,EAAE,2BAA2B;EACzCC,YAAY,EAAE,2BAA2B;EACzCC,SAAS,EAAE;AACb,CAAU;AAGV,MAAMC,aAAa,GAAGC,MAAM,CAACC,IAAI,CAACP,WAAW,CAAkB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAkC;IAC5C,MAAMC,OAAO,GAAG,MAAMf,iBAAiB,CACrCC,qBAAqB,CAACe,WACxB,CAAC,CAACF,GAAG,CAAC,CAAC;IACP,IAAI,CAACC,OAAO,EAAE;MAAC,OAAO,IAAI;IAAC;IAE3B,MAAME,YAAY,GAAG,MAAMC,OAAO,CAACC,GAAG,CACpCT,aAAa,CAACU,GAAG,CAAEC,KAAK,IAAKnB,SAAS,CAACG,WAAW,CAACgB,KAAK,CAAC,CAAC,CAC5D,CAAC;IAED,MAAMC,MAAY,GAAG;MAAE,GAAGP;IAAQ,CAAC;IACnCL,aAAa,CAACa,OAAO,CAAC,CAACF,KAAK,EAAEG,CAAC,KAAK;MACjCF,MAAM,CAASD,KAAK,CAAC,GAAGJ,YAAY,CAACO,CAAC,CAAC,IAAI,EAAE;IAChD,CAAC,CAAC;IACF,OAAOF,MAAM;EACf,CAAC;EAED,MAAMG,GAAG,GAAG,MAAOC,IAAU,IAAoB;IAC/C,MAAMX,OAAY,GAAG;MAAE,GAAGW;IAAK,CAAC;IAChC,KAAK,MAAML,KAAK,IAAIX,aAAa,EAAE;MACjCK,OAAO,CAACM,KAAK,CAAC,GAAG,EAAE;IACrB;IAEA,MAAMH,OAAO,CAACC,GAAG,CAAC,CAChBnB,iBAAiB,CAAOC,qBAAqB,CAACe,WAAW,CAAC,CAACS,GAAG,CAACV,OAAO,CAAC,EACvE,GAAGL,aAAa,CAACU,GAAG,CAAEC,KAAK,IAAK;MAC9B,MAAMM,KAAK,GAAGD,IAAI,GAAGL,KAAK,CAAuB;MACjD,OAAOM,KAAK,GACRxB,SAAS,CAACE,WAAW,CAACgB,KAAK,CAAC,EAAEM,KAAK,CAAC,GACpCvB,YAAY,CAACC,WAAW,CAACgB,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CACH,CAAC;EACJ,CAAC;EAED,MAAMO,MAAM,GAAG,MAAAA,CAAA,KAA2B;IACxC,MAAMV,OAAO,CAACC,GAAG,CAAC,CAChBnB,iBAAiB,CAACC,qBAAqB,CAACe,WAAW,CAAC,CAACY,MAAM,CAAC,CAAC,EAC7D,GAAGlB,aAAa,CAACU,GAAG,CAAEC,KAAK,IAAKjB,YAAY,CAACC,WAAW,CAACgB,KAAK,CAAC,CAAC,CAAC,CAClE,CAAC;EACJ,CAAC;EAED,OAAO;IAAEP,GAAG;IAAEW,GAAG;IAAEG;EAAO,CAAC;AAC7B","ignoreList":[]}
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * One-level shallow equality for plain objects. Used to avoid re-dispatching
5
- * config into redux on every render just because the host passed a fresh
6
- * object literal with the same values (e.g. `<Chat config={{...}} />`
7
- * re-created inline) — reference equality alone would fire far too often,
8
- * and a deep/JSON comparison risks throwing on non-serializable fields
9
- * (functions, React elements) that configs legitimately carry.
10
- */
11
- export function shallowEqual(a, b) {
12
- if (a === b) {
13
- return true;
14
- }
15
- if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) {
16
- return false;
17
- }
18
- const aKeys = Object.keys(a);
19
- const bKeys = Object.keys(b);
20
- if (aKeys.length !== bKeys.length) {
21
- return false;
22
- }
23
- for (const key of aKeys) {
24
- if (a[key] !== b[key]) {
25
- return false;
26
- }
27
- }
28
- return true;
29
- }
30
- export default shallowEqual;
31
- //# sourceMappingURL=shallowEqual.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["shallowEqual","a","b","aKeys","Object","keys","bKeys","length","key"],"sourceRoot":"../../../src","sources":["helpers/shallowEqual.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,YAAYA,CAACC,CAAU,EAAEC,CAAU,EAAW;EAC5D,IAAID,CAAC,KAAKC,CAAC,EAAE;IAAC,OAAO,IAAI;EAAC;EAC1B,IACE,OAAOD,CAAC,KAAK,QAAQ,IACrB,OAAOC,CAAC,KAAK,QAAQ,IACrBD,CAAC,KAAK,IAAI,IACVC,CAAC,KAAK,IAAI,EACV;IACA,OAAO,KAAK;EACd;EACA,MAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACJ,CAA4B,CAAC;EACvD,MAAMK,KAAK,GAAGF,MAAM,CAACC,IAAI,CAACH,CAA4B,CAAC;EACvD,IAAIC,KAAK,CAACI,MAAM,KAAKD,KAAK,CAACC,MAAM,EAAE;IAAC,OAAO,KAAK;EAAC;EACjD,KAAK,MAAMC,GAAG,IAAIL,KAAK,EAAE;IACvB,IACGF,CAAC,CAA6BO,GAAG,CAAC,KAClCN,CAAC,CAA6BM,GAAG,CAAC,EACnC;MACA,OAAO,KAAK;IACd;EACF;EACA,OAAO,IAAI;AACb;AAEA,eAAeR,YAAY","ignoreList":[]}
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- /** @format */
4
-
5
- /**
6
- * Shared thresholds for the drag-to-dismiss gesture on bottom sheets (the
7
- * attach sheet, the profile headers, the room-list menu). Kept in one
8
- * place so a pull feels identical wherever the user does it — and so the
9
- * numbers are unit-testable without a touch event.
10
- */
11
-
12
- /** Drag past this many points and letting go dismisses the sheet. */
13
- export const DISMISS_DISTANCE = 90;
14
- /** …or flick faster than this, however short the drag. */
15
- export const DISMISS_VELOCITY = 0.8;
16
-
17
- /**
18
- * Claim a drag only once it is clearly a downward pull, so a tap on a row
19
- * still registers and a horizontal swipe stays with whatever scrolls
20
- * sideways inside the sheet.
21
- */
22
- export const shouldClaimVerticalDrag = (dy, dx) => dy > 6 && Math.abs(dy) > Math.abs(dx) * 1.5;
23
-
24
- /** Far enough / fast enough to let go of the sheet. */
25
- export const shouldDismissOnDrag = (dy, vy) => dy > DISMISS_DISTANCE || vy > DISMISS_VELOCITY;
26
- //# sourceMappingURL=sheetGestures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DISMISS_DISTANCE","DISMISS_VELOCITY","shouldClaimVerticalDrag","dy","dx","Math","abs","shouldDismissOnDrag","vy"],"sourceRoot":"../../../src","sources":["helpers/sheetGestures.ts"],"mappings":";;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,MAAMA,gBAAgB,GAAG,EAAE;AAClC;AACA,OAAO,MAAMC,gBAAgB,GAAG,GAAG;;AAEnC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CAACC,EAAU,EAAEC,EAAU,KAC5DD,EAAE,GAAG,CAAC,IAAIE,IAAI,CAACC,GAAG,CAACH,EAAE,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACF,EAAE,CAAC,GAAG,GAAG;;AAE7C;AACA,OAAO,MAAMG,mBAAmB,GAAGA,CAACJ,EAAU,EAAEK,EAAU,KACxDL,EAAE,GAAGH,gBAAgB,IAAIQ,EAAE,GAAGP,gBAAgB","ignoreList":[]}