@ethora/chat-component-rn 26.8.5 → 26.8.7

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 (690) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +95 -0
  3. package/lib/commonjs/assets/emojiData.js +40 -0
  4. package/lib/commonjs/assets/emojiData.js.map +1 -0
  5. package/lib/commonjs/assets/icons.js +5 -3
  6. package/lib/commonjs/assets/icons.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatHeader.js +35 -15
  8. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js +33 -24
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatWrapper.js +22 -16
  12. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
  14. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  15. package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
  16. package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +4 -12
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +110 -35
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +5 -0
  24. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +32 -29
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/RoomStack.js +133 -65
  28. package/lib/commonjs/components/MainComponents/RoomStack.js.map +1 -1
  29. package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
  30. package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
  31. package/lib/commonjs/components/MainComponents/SystemMessage.js +6 -2
  32. package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
  33. package/lib/commonjs/components/MessageBubble/Avatar.js +5 -1
  34. package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
  35. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +18 -21
  36. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  37. package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js +447 -0
  38. package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
  39. package/lib/commonjs/components/MessageBubble/Message.js +264 -136
  40. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  41. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +215 -13
  42. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  43. package/lib/commonjs/components/MessageBubble/MessageReaction.js +113 -94
  44. package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
  45. package/lib/commonjs/components/MessageBubble/MessageReply.js +66 -24
  46. package/lib/commonjs/components/MessageBubble/MessageReply.js.map +1 -1
  47. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
  48. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +159 -16
  50. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
  52. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  53. package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js +76 -44
  54. package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +29 -6
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +5 -1
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +37 -13
  60. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
  62. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  64. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  69. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  70. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  71. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
  72. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  73. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  74. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  75. package/lib/commonjs/components/Thread/ThreadWrapper.js +273 -152
  76. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  77. package/lib/commonjs/components/UsersList/UsersList.js +2 -1
  78. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  79. package/lib/commonjs/components/styled/DateLabel.js +6 -3
  80. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  81. package/lib/commonjs/components/styled/SendInput.js +4 -2
  82. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  83. package/lib/commonjs/context/MessageNotificationContext.js +188 -9
  84. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  85. package/lib/commonjs/context/xmppProvider.js +22 -7
  86. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  87. package/lib/commonjs/e2ee/crypto.js +207 -0
  88. package/lib/commonjs/e2ee/crypto.js.map +1 -0
  89. package/lib/commonjs/e2ee/deviceStore.js +84 -0
  90. package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
  91. package/lib/commonjs/e2ee/fileCipher.js +95 -0
  92. package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
  93. package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
  94. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
  95. package/lib/commonjs/e2ee/index.js +210 -0
  96. package/lib/commonjs/e2ee/index.js.map +1 -0
  97. package/lib/commonjs/e2ee/limits.js +9 -0
  98. package/lib/commonjs/e2ee/limits.js.map +1 -0
  99. package/lib/commonjs/e2ee/ns.js +8 -0
  100. package/lib/commonjs/e2ee/ns.js.map +1 -0
  101. package/lib/commonjs/e2ee/omemo.js +622 -0
  102. package/lib/commonjs/e2ee/omemo.js.map +1 -0
  103. package/lib/commonjs/e2ee/protobuf.js +149 -0
  104. package/lib/commonjs/e2ee/protobuf.js.map +1 -0
  105. package/lib/commonjs/e2ee/ratchet.js +238 -0
  106. package/lib/commonjs/e2ee/ratchet.js.map +1 -0
  107. package/lib/commonjs/e2ee/sealedBody.js +23 -0
  108. package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
  109. package/lib/commonjs/e2ee/sealedFiles.js +174 -0
  110. package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
  111. package/lib/commonjs/e2ee/send.js +54 -0
  112. package/lib/commonjs/e2ee/send.js.map +1 -0
  113. package/lib/commonjs/e2ee/stanza.js +114 -0
  114. package/lib/commonjs/e2ee/stanza.js.map +1 -0
  115. package/lib/commonjs/e2ee/store.js +43 -0
  116. package/lib/commonjs/e2ee/store.js.map +1 -0
  117. package/lib/commonjs/helpers/accountName.js +23 -0
  118. package/lib/commonjs/helpers/accountName.js.map +1 -0
  119. package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
  120. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  121. package/lib/commonjs/helpers/createRoomFromApi.js +36 -2
  122. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  123. package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
  124. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  125. package/lib/commonjs/helpers/displayName.js +16 -0
  126. package/lib/commonjs/helpers/displayName.js.map +1 -0
  127. package/lib/commonjs/helpers/emoji.js +51 -0
  128. package/lib/commonjs/helpers/emoji.js.map +1 -0
  129. package/lib/commonjs/helpers/haptics.js +29 -0
  130. package/lib/commonjs/helpers/haptics.js.map +1 -0
  131. package/lib/commonjs/helpers/historyPreloadScheduler.js +32 -66
  132. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  133. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +21 -12
  134. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  135. package/lib/commonjs/helpers/mamReactions.js +57 -0
  136. package/lib/commonjs/helpers/mamReactions.js.map +1 -0
  137. package/lib/commonjs/helpers/parseMessageReference.js +42 -0
  138. package/lib/commonjs/helpers/parseMessageReference.js.map +1 -0
  139. package/lib/commonjs/helpers/persistCrypto.js +5 -0
  140. package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
  141. package/lib/commonjs/helpers/reactionsConfig.js +17 -0
  142. package/lib/commonjs/helpers/reactionsConfig.js.map +1 -0
  143. package/lib/commonjs/helpers/secureKeyValue.js +20 -0
  144. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
  145. package/lib/commonjs/helpers/updateMessagesTillLast.js +17 -2
  146. package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
  147. package/lib/commonjs/helpers/videoCache.js +136 -0
  148. package/lib/commonjs/helpers/videoCache.js.map +1 -0
  149. package/lib/commonjs/hooks/useHeapSender.js +3 -1
  150. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  151. package/lib/commonjs/hooks/useLogout.js +8 -0
  152. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  153. package/lib/commonjs/hooks/useMessageHeapState.js +3 -2
  154. package/lib/commonjs/hooks/useMessageHeapState.js.map +1 -1
  155. package/lib/commonjs/hooks/useRoomInitialization.js +16 -7
  156. package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
  157. package/lib/commonjs/hooks/useSendMessage.js +85 -15
  158. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  159. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -1
  160. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  161. package/lib/commonjs/i18n/strings.js +180 -0
  162. package/lib/commonjs/i18n/strings.js.map +1 -1
  163. package/lib/commonjs/main.js +13 -0
  164. package/lib/commonjs/main.js.map +1 -1
  165. package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
  166. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  167. package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
  168. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  169. package/lib/commonjs/networking/stanzaHandlers.js +106 -50
  170. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  171. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +29 -74
  172. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
  173. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +44 -0
  174. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  175. package/lib/commonjs/networking/xmpp/mamRouter.js +186 -0
  176. package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -0
  177. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +41 -4
  178. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  179. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  180. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  181. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  182. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  183. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  184. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  185. package/lib/commonjs/networking/xmppClient.js +104 -23
  186. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  187. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +29 -34
  188. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  189. package/lib/commonjs/roomStore/Middleware/perfMiddleware.js +51 -0
  190. package/lib/commonjs/roomStore/Middleware/perfMiddleware.js.map +1 -0
  191. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +66 -43
  192. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  193. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +88 -68
  194. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  195. package/lib/commonjs/roomStore/index.js +18 -14
  196. package/lib/commonjs/roomStore/index.js.map +1 -1
  197. package/lib/commonjs/roomStore/persistBackend.js +93 -0
  198. package/lib/commonjs/roomStore/persistBackend.js.map +1 -0
  199. package/lib/commonjs/roomStore/persistence.js +253 -51
  200. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  201. package/lib/commonjs/roomStore/roomsSlice.js +282 -136
  202. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  203. package/lib/commonjs/theme/theme.js +3 -0
  204. package/lib/commonjs/theme/theme.js.map +1 -1
  205. package/lib/commonjs/utils/devLogger.js +14 -0
  206. package/lib/commonjs/utils/devLogger.js.map +1 -1
  207. package/lib/commonjs/version.js +1 -1
  208. package/lib/module/assets/emojiData.js +36 -0
  209. package/lib/module/assets/emojiData.js.map +1 -0
  210. package/lib/module/assets/icons.js +4 -2
  211. package/lib/module/assets/icons.js.map +1 -1
  212. package/lib/module/components/MainComponents/ChatHeader.js +37 -17
  213. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  214. package/lib/module/components/MainComponents/ChatRoom.js +34 -25
  215. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  216. package/lib/module/components/MainComponents/ChatWrapper.js +23 -17
  217. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  218. package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
  219. package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  220. package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
  221. package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
  222. package/lib/module/components/MainComponents/MediaMessage.js +7 -0
  223. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  224. package/lib/module/components/MainComponents/MessageContainer.js +7 -14
  225. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  226. package/lib/module/components/MainComponents/MessageList.js +110 -35
  227. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  228. package/lib/module/components/MainComponents/ReduxWrapper.js +5 -0
  229. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  230. package/lib/module/components/MainComponents/RoomList.js +32 -29
  231. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  232. package/lib/module/components/MainComponents/RoomStack.js +131 -63
  233. package/lib/module/components/MainComponents/RoomStack.js.map +1 -1
  234. package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
  235. package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
  236. package/lib/module/components/MainComponents/SystemMessage.js +6 -2
  237. package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
  238. package/lib/module/components/MessageBubble/Avatar.js +5 -1
  239. package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
  240. package/lib/module/components/MessageBubble/BottomReplyContainer.js +19 -22
  241. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  242. package/lib/module/components/MessageBubble/EmojiPickerSheet.js +438 -0
  243. package/lib/module/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
  244. package/lib/module/components/MessageBubble/Message.js +269 -140
  245. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  246. package/lib/module/components/MessageBubble/MessageInteractions.js +217 -15
  247. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  248. package/lib/module/components/MessageBubble/MessageReaction.js +115 -94
  249. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  250. package/lib/module/components/MessageBubble/MessageReply.js +65 -24
  251. package/lib/module/components/MessageBubble/MessageReply.js.map +1 -1
  252. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
  253. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  254. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +161 -18
  255. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  256. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
  257. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  258. package/lib/module/components/Modals/Modal/SwipeBackLayer.js +76 -44
  259. package/lib/module/components/Modals/Modal/SwipeBackLayer.js.map +1 -1
  260. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +32 -8
  261. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  262. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +4 -0
  263. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  264. package/lib/module/components/RoomComponents/ChatRoomItem.js +37 -13
  265. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  266. package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
  267. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  268. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  269. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  270. package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
  271. package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
  272. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
  273. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  274. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  275. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  276. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
  277. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  278. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  279. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  280. package/lib/module/components/Thread/ThreadWrapper.js +273 -153
  281. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  282. package/lib/module/components/UsersList/UsersList.js +2 -1
  283. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  284. package/lib/module/components/styled/DateLabel.js +6 -3
  285. package/lib/module/components/styled/DateLabel.js.map +1 -1
  286. package/lib/module/components/styled/SendInput.js +4 -2
  287. package/lib/module/components/styled/SendInput.js.map +1 -1
  288. package/lib/module/context/MessageNotificationContext.js +190 -11
  289. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  290. package/lib/module/context/xmppProvider.js +22 -7
  291. package/lib/module/context/xmppProvider.js.map +1 -1
  292. package/lib/module/e2ee/crypto.js +170 -0
  293. package/lib/module/e2ee/crypto.js.map +1 -0
  294. package/lib/module/e2ee/deviceStore.js +77 -0
  295. package/lib/module/e2ee/deviceStore.js.map +1 -0
  296. package/lib/module/e2ee/fileCipher.js +90 -0
  297. package/lib/module/e2ee/fileCipher.js.map +1 -0
  298. package/lib/module/e2ee/fileEnvelope.js +66 -0
  299. package/lib/module/e2ee/fileEnvelope.js.map +1 -0
  300. package/lib/module/e2ee/index.js +185 -0
  301. package/lib/module/e2ee/index.js.map +1 -0
  302. package/lib/module/e2ee/limits.js +5 -0
  303. package/lib/module/e2ee/limits.js.map +1 -0
  304. package/lib/module/e2ee/ns.js +4 -0
  305. package/lib/module/e2ee/ns.js.map +1 -0
  306. package/lib/module/e2ee/omemo.js +610 -0
  307. package/lib/module/e2ee/omemo.js.map +1 -0
  308. package/lib/module/e2ee/protobuf.js +140 -0
  309. package/lib/module/e2ee/protobuf.js.map +1 -0
  310. package/lib/module/e2ee/ratchet.js +228 -0
  311. package/lib/module/e2ee/ratchet.js.map +1 -0
  312. package/lib/module/e2ee/sealedBody.js +19 -0
  313. package/lib/module/e2ee/sealedBody.js.map +1 -0
  314. package/lib/module/e2ee/sealedFiles.js +154 -0
  315. package/lib/module/e2ee/sealedFiles.js.map +1 -0
  316. package/lib/module/e2ee/send.js +48 -0
  317. package/lib/module/e2ee/send.js.map +1 -0
  318. package/lib/module/e2ee/stanza.js +107 -0
  319. package/lib/module/e2ee/stanza.js.map +1 -0
  320. package/lib/module/e2ee/store.js +35 -0
  321. package/lib/module/e2ee/store.js.map +1 -0
  322. package/lib/module/helpers/accountName.js +18 -0
  323. package/lib/module/helpers/accountName.js.map +1 -0
  324. package/lib/module/helpers/createMessageFromXml.js +19 -4
  325. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  326. package/lib/module/helpers/createRoomFromApi.js +36 -2
  327. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  328. package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
  329. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  330. package/lib/module/helpers/displayName.js +11 -0
  331. package/lib/module/helpers/displayName.js.map +1 -0
  332. package/lib/module/helpers/emoji.js +44 -0
  333. package/lib/module/helpers/emoji.js.map +1 -0
  334. package/lib/module/helpers/haptics.js +24 -0
  335. package/lib/module/helpers/haptics.js.map +1 -0
  336. package/lib/module/helpers/historyPreloadScheduler.js +32 -66
  337. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  338. package/lib/module/helpers/insertMessageWithDelimiter.js +21 -12
  339. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  340. package/lib/module/helpers/mamReactions.js +51 -0
  341. package/lib/module/helpers/mamReactions.js.map +1 -0
  342. package/lib/module/helpers/parseMessageReference.js +37 -0
  343. package/lib/module/helpers/parseMessageReference.js.map +1 -0
  344. package/lib/module/helpers/persistCrypto.js +4 -0
  345. package/lib/module/helpers/persistCrypto.js.map +1 -1
  346. package/lib/module/helpers/reactionsConfig.js +10 -0
  347. package/lib/module/helpers/reactionsConfig.js.map +1 -0
  348. package/lib/module/helpers/secureKeyValue.js +19 -0
  349. package/lib/module/helpers/secureKeyValue.js.map +1 -1
  350. package/lib/module/helpers/updateMessagesTillLast.js +17 -2
  351. package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
  352. package/lib/module/helpers/videoCache.js +125 -0
  353. package/lib/module/helpers/videoCache.js.map +1 -0
  354. package/lib/module/hooks/useHeapSender.js +3 -1
  355. package/lib/module/hooks/useHeapSender.js.map +1 -1
  356. package/lib/module/hooks/useLogout.js +8 -0
  357. package/lib/module/hooks/useLogout.js.map +1 -1
  358. package/lib/module/hooks/useMessageHeapState.js +3 -2
  359. package/lib/module/hooks/useMessageHeapState.js.map +1 -1
  360. package/lib/module/hooks/useRoomInitialization.js +17 -8
  361. package/lib/module/hooks/useRoomInitialization.js.map +1 -1
  362. package/lib/module/hooks/useSendMessage.js +85 -15
  363. package/lib/module/hooks/useSendMessage.js.map +1 -1
  364. package/lib/module/hooks/useUnreadMessagesCounter.js +1 -1
  365. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  366. package/lib/module/i18n/strings.js +180 -0
  367. package/lib/module/i18n/strings.js.map +1 -1
  368. package/lib/module/main.js +1 -0
  369. package/lib/module/main.js.map +1 -1
  370. package/lib/module/networking/api-requests/auth.api.js +4 -1
  371. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  372. package/lib/module/networking/api-requests/rooms.api.js +109 -18
  373. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  374. package/lib/module/networking/stanzaHandlers.js +107 -51
  375. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  376. package/lib/module/networking/xmpp/getHistory.xmpp.js +29 -74
  377. package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
  378. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +42 -0
  379. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  380. package/lib/module/networking/xmpp/mamRouter.js +175 -0
  381. package/lib/module/networking/xmpp/mamRouter.js.map +1 -0
  382. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +38 -2
  383. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  384. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  385. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  386. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  387. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  388. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  389. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  390. package/lib/module/networking/xmppClient.js +105 -24
  391. package/lib/module/networking/xmppClient.js.map +1 -1
  392. package/lib/module/roomStore/Middleware/newMessageMidlleware.js +29 -34
  393. package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  394. package/lib/module/roomStore/Middleware/perfMiddleware.js +45 -0
  395. package/lib/module/roomStore/Middleware/perfMiddleware.js.map +1 -0
  396. package/lib/module/roomStore/Middleware/reactionsMiddleware.js +66 -43
  397. package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  398. package/lib/module/roomStore/Middleware/unreadMidlleware.js +89 -69
  399. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  400. package/lib/module/roomStore/index.js +19 -15
  401. package/lib/module/roomStore/index.js.map +1 -1
  402. package/lib/module/roomStore/persistBackend.js +86 -0
  403. package/lib/module/roomStore/persistBackend.js.map +1 -0
  404. package/lib/module/roomStore/persistence.js +253 -49
  405. package/lib/module/roomStore/persistence.js.map +1 -1
  406. package/lib/module/roomStore/roomsSlice.js +275 -134
  407. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  408. package/lib/module/theme/theme.js +3 -0
  409. package/lib/module/theme/theme.js.map +1 -1
  410. package/lib/module/utils/devLogger.js +13 -0
  411. package/lib/module/utils/devLogger.js.map +1 -1
  412. package/lib/module/version.js +1 -1
  413. package/lib/typescript/assets/emojiData.d.ts +8 -0
  414. package/lib/typescript/assets/emojiData.d.ts.map +1 -0
  415. package/lib/typescript/assets/icons.d.ts +8 -0
  416. package/lib/typescript/assets/icons.d.ts.map +1 -1
  417. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  418. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  419. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  420. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts +4 -0
  421. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
  422. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
  423. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
  424. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  425. package/lib/typescript/components/MainComponents/MessageContainer.d.ts +2 -2
  426. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  427. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  428. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  429. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  430. package/lib/typescript/components/MainComponents/RoomStack.d.ts +7 -2
  431. package/lib/typescript/components/MainComponents/RoomStack.d.ts.map +1 -1
  432. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
  433. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
  434. package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
  435. package/lib/typescript/components/MessageBubble/Avatar.d.ts +2 -0
  436. package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
  437. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  438. package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts +11 -0
  439. package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts.map +1 -0
  440. package/lib/typescript/components/MessageBubble/Message.d.ts +2 -2
  441. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  442. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +2 -0
  443. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  444. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts +1 -0
  445. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  446. package/lib/typescript/components/MessageBubble/MessageReply.d.ts +7 -7
  447. package/lib/typescript/components/MessageBubble/MessageReply.d.ts.map +1 -1
  448. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  449. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  450. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  451. package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts +2 -1
  452. package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts.map +1 -1
  453. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  454. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  455. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts +2 -2
  456. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  457. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  458. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  459. package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts +3 -6
  460. package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts.map +1 -1
  461. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
  462. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
  463. package/lib/typescript/components/Thread/ThreadWrapper.d.ts +7 -1
  464. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  465. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  466. package/lib/typescript/components/styled/DateLabel.d.ts +1 -0
  467. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  468. package/lib/typescript/components/styled/SendInput.d.ts +1 -0
  469. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  470. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  471. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  472. package/lib/typescript/e2ee/crypto.d.ts +28 -0
  473. package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
  474. package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
  475. package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
  476. package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
  477. package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
  478. package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
  479. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
  480. package/lib/typescript/e2ee/index.d.ts +23 -0
  481. package/lib/typescript/e2ee/index.d.ts.map +1 -0
  482. package/lib/typescript/e2ee/limits.d.ts +3 -0
  483. package/lib/typescript/e2ee/limits.d.ts.map +1 -0
  484. package/lib/typescript/e2ee/ns.d.ts +2 -0
  485. package/lib/typescript/e2ee/ns.d.ts.map +1 -0
  486. package/lib/typescript/e2ee/omemo.d.ts +64 -0
  487. package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
  488. package/lib/typescript/e2ee/protobuf.d.ts +25 -0
  489. package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
  490. package/lib/typescript/e2ee/ratchet.d.ts +39 -0
  491. package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
  492. package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
  493. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
  494. package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
  495. package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
  496. package/lib/typescript/e2ee/send.d.ts +6 -0
  497. package/lib/typescript/e2ee/send.d.ts.map +1 -0
  498. package/lib/typescript/e2ee/stanza.d.ts +8 -0
  499. package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
  500. package/lib/typescript/e2ee/store.d.ts +16 -0
  501. package/lib/typescript/e2ee/store.d.ts.map +1 -0
  502. package/lib/typescript/helpers/accountName.d.ts +7 -0
  503. package/lib/typescript/helpers/accountName.d.ts.map +1 -0
  504. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  505. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  506. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  507. package/lib/typescript/helpers/displayName.d.ts +2 -0
  508. package/lib/typescript/helpers/displayName.d.ts.map +1 -0
  509. package/lib/typescript/helpers/emoji.d.ts +6 -0
  510. package/lib/typescript/helpers/emoji.d.ts.map +1 -0
  511. package/lib/typescript/helpers/haptics.d.ts +3 -0
  512. package/lib/typescript/helpers/haptics.d.ts.map +1 -0
  513. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +1 -0
  514. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  515. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  516. package/lib/typescript/helpers/mamReactions.d.ts +13 -0
  517. package/lib/typescript/helpers/mamReactions.d.ts.map +1 -0
  518. package/lib/typescript/helpers/parseMessageReference.d.ts +16 -0
  519. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -0
  520. package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
  521. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
  522. package/lib/typescript/helpers/reactionsConfig.d.ts +5 -0
  523. package/lib/typescript/helpers/reactionsConfig.d.ts.map +1 -0
  524. package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
  525. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
  526. package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
  527. package/lib/typescript/helpers/videoCache.d.ts +19 -0
  528. package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
  529. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  530. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  531. package/lib/typescript/hooks/useMessageHeapState.d.ts.map +1 -1
  532. package/lib/typescript/hooks/useRoomInitialization.d.ts +2 -2
  533. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  534. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  535. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  536. package/lib/typescript/main.d.ts +2 -0
  537. package/lib/typescript/main.d.ts.map +1 -1
  538. package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
  539. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  540. package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
  541. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  542. package/lib/typescript/networking/stanzaHandlers.d.ts +4 -2
  543. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  544. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +3 -1
  545. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  546. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
  547. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  548. package/lib/typescript/networking/xmpp/mamRouter.d.ts +23 -0
  549. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -0
  550. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +1 -0
  551. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  552. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  553. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  554. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  555. package/lib/typescript/networking/xmppClient.d.ts +22 -1
  556. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  557. package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
  558. package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts +4 -0
  559. package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts.map +1 -0
  560. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts +9 -0
  561. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  562. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  563. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  564. package/lib/typescript/roomStore/persistBackend.d.ts +11 -0
  565. package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -0
  566. package/lib/typescript/roomStore/persistence.d.ts +5 -6
  567. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  568. package/lib/typescript/roomStore/roomsSlice.d.ts +41 -1
  569. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  570. package/lib/typescript/theme/theme.d.ts +4 -1
  571. package/lib/typescript/theme/theme.d.ts.map +1 -1
  572. package/lib/typescript/types/models/message.model.d.ts +9 -0
  573. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  574. package/lib/typescript/types/models/room.model.d.ts +21 -0
  575. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  576. package/lib/typescript/types/models/xmpp.model.d.ts +6 -1
  577. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  578. package/lib/typescript/types/types.d.ts +19 -3
  579. package/lib/typescript/types/types.d.ts.map +1 -1
  580. package/lib/typescript/utils/devLogger.d.ts +8 -0
  581. package/lib/typescript/utils/devLogger.d.ts.map +1 -1
  582. package/lib/typescript/version.d.ts +1 -1
  583. package/package.json +14 -1
  584. package/src/assets/emojiData.ts +2146 -0
  585. package/src/assets/icons.tsx +32 -5
  586. package/src/components/MainComponents/ChatHeader.tsx +46 -16
  587. package/src/components/MainComponents/ChatRoom.tsx +46 -30
  588. package/src/components/MainComponents/ChatWrapper.tsx +28 -10
  589. package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
  590. package/src/components/MainComponents/EncryptionCard.tsx +287 -0
  591. package/src/components/MainComponents/MediaMessage.tsx +5 -0
  592. package/src/components/MainComponents/MessageContainer.tsx +7 -15
  593. package/src/components/MainComponents/MessageList.tsx +96 -43
  594. package/src/components/MainComponents/ReduxWrapper.tsx +5 -0
  595. package/src/components/MainComponents/RoomList.tsx +28 -29
  596. package/src/components/MainComponents/RoomStack.tsx +156 -83
  597. package/src/components/MainComponents/SealedAttachment.tsx +251 -0
  598. package/src/components/MainComponents/SystemMessage.tsx +6 -2
  599. package/src/components/MessageBubble/Avatar.tsx +7 -1
  600. package/src/components/MessageBubble/BottomReplyContainer.tsx +20 -21
  601. package/src/components/MessageBubble/EmojiPickerSheet.tsx +468 -0
  602. package/src/components/MessageBubble/Message.tsx +242 -93
  603. package/src/components/MessageBubble/MessageInteractions.tsx +215 -15
  604. package/src/components/MessageBubble/MessageReaction.tsx +120 -96
  605. package/src/components/MessageBubble/MessageReply.tsx +65 -32
  606. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +7 -4
  607. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +181 -35
  608. package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
  609. package/src/components/Modals/Modal/SwipeBackLayer.tsx +114 -63
  610. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +53 -8
  611. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +5 -0
  612. package/src/components/RoomComponents/ChatRoomItem.tsx +34 -15
  613. package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
  614. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
  615. package/src/components/RoomComponents/styled/LastMessageEmoji.tsx +7 -8
  616. package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
  617. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
  618. package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
  619. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
  620. package/src/components/Thread/ThreadWrapper.tsx +287 -198
  621. package/src/components/UsersList/UsersList.tsx +2 -1
  622. package/src/components/styled/DateLabel.tsx +7 -3
  623. package/src/components/styled/SendInput.tsx +5 -2
  624. package/src/context/MessageNotificationContext.tsx +205 -7
  625. package/src/context/xmppProvider.tsx +29 -9
  626. package/src/e2ee/crypto.ts +194 -0
  627. package/src/e2ee/deviceStore.ts +80 -0
  628. package/src/e2ee/fileCipher.ts +86 -0
  629. package/src/e2ee/fileEnvelope.ts +115 -0
  630. package/src/e2ee/index.ts +192 -0
  631. package/src/e2ee/limits.ts +2 -0
  632. package/src/e2ee/ns.ts +1 -0
  633. package/src/e2ee/omemo.ts +802 -0
  634. package/src/e2ee/protobuf.ts +188 -0
  635. package/src/e2ee/ratchet.ts +271 -0
  636. package/src/e2ee/sealedBody.ts +17 -0
  637. package/src/e2ee/sealedFiles.ts +181 -0
  638. package/src/e2ee/send.ts +70 -0
  639. package/src/e2ee/stanza.ts +133 -0
  640. package/src/e2ee/store.ts +54 -0
  641. package/src/helpers/accountName.ts +15 -0
  642. package/src/helpers/createMessageFromXml.ts +31 -6
  643. package/src/helpers/createRoomFromApi.tsx +37 -1
  644. package/src/helpers/createUserNameFromSetUser.ts +2 -1
  645. package/src/helpers/displayName.ts +9 -0
  646. package/src/helpers/emoji.ts +39 -0
  647. package/src/helpers/haptics.ts +19 -0
  648. package/src/helpers/historyPreloadScheduler.ts +37 -69
  649. package/src/helpers/insertMessageWithDelimiter.ts +23 -16
  650. package/src/helpers/mamReactions.ts +59 -0
  651. package/src/helpers/parseMessageReference.ts +38 -0
  652. package/src/helpers/persistCrypto.ts +5 -0
  653. package/src/helpers/reactionsConfig.ts +13 -0
  654. package/src/helpers/secureKeyValue.ts +15 -0
  655. package/src/helpers/updateMessagesTillLast.tsx +14 -2
  656. package/src/helpers/videoCache.ts +138 -0
  657. package/src/hooks/useHeapSender.tsx +3 -2
  658. package/src/hooks/useLogout.tsx +9 -0
  659. package/src/hooks/useMessageHeapState.tsx +6 -2
  660. package/src/hooks/useRoomInitialization.tsx +32 -15
  661. package/src/hooks/useSendMessage.tsx +89 -16
  662. package/src/hooks/useUnreadMessagesCounter.ts +1 -1
  663. package/src/i18n/strings.ts +180 -0
  664. package/src/main.ts +2 -0
  665. package/src/networking/api-requests/auth.api.ts +9 -1
  666. package/src/networking/api-requests/rooms.api.ts +121 -18
  667. package/src/networking/stanzaHandlers.ts +116 -60
  668. package/src/networking/xmpp/getHistory.xmpp.ts +44 -106
  669. package/src/networking/xmpp/handleStanzas.xmpp.ts +51 -0
  670. package/src/networking/xmpp/mamRouter.ts +176 -0
  671. package/src/networking/xmpp/presenceInRoom.xmpp.ts +46 -3
  672. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
  673. package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
  674. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
  675. package/src/networking/xmppClient.ts +111 -20
  676. package/src/roomStore/Middleware/newMessageMidlleware.tsx +35 -38
  677. package/src/roomStore/Middleware/perfMiddleware.ts +50 -0
  678. package/src/roomStore/Middleware/reactionsMiddleware.tsx +53 -52
  679. package/src/roomStore/Middleware/unreadMidlleware.tsx +92 -80
  680. package/src/roomStore/index.ts +28 -27
  681. package/src/roomStore/persistBackend.ts +93 -0
  682. package/src/roomStore/persistence.ts +295 -73
  683. package/src/roomStore/roomsSlice.ts +304 -155
  684. package/src/theme/theme.ts +10 -1
  685. package/src/types/models/message.model.ts +9 -0
  686. package/src/types/models/room.model.ts +22 -0
  687. package/src/types/models/xmpp.model.ts +4 -2
  688. package/src/types/types.ts +19 -3
  689. package/src/utils/devLogger.ts +16 -0
  690. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","AppState","DeviceEventEmitter","NetInfo","VideoCallOverlay","XmppClient","refreshAuthTokensQuietly","buildXmppClientKey","getGlobalXmppClient","getReusableXmppClientByKey","isXmppClientReusable","setGlobalXmppClient","withXmppClientInitLock","applyResolvedUserToStore","refreshUserCredentialsForXmpp","resolveInitBeforeLoadUser","ensureScopedChatCache","getRooms","prefetchRoomsViaRest","allRoomPresences","pushSubscriptionService","store","logout","setStoreClient","setConfig","setLogoutState","setVisibleRoom","clearVisibleRoom","setLastViewedTimestamp","deleteRoomMessage","setUnreadSyncing","getFlushBoundaryTs","getReadMarkerTimestamp","runHistoryPreloadScheduler","updateMessagesTillLast","secureUserStorage","clearPersistedState","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","XmppContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","Object","keys","getState","length","nick","jid","getLocal","subscribeToRooms","then","catch","e","XmppProvider","children","config","isVisible","setClient","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","refreshTokens","enabled","rotated","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","err","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","xmppSettings","settings","key","reusable","current","created","prevGlobal","close","newClient","setCredentialsProvider","waitForOnline","console","error","setOnOnline","underlying","finally","getChatsPrivateStoreRequestStanza","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","remove","undefined","resolved","signal","hasResolved","xmppPasswordPresent","connectPassword","restRoomsPromise","c","getRoomsStanza","roomCount","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","r","filter","Boolean","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","roomHeapSlice","chatJID","timestamp","messageId","flushLastViewedToPrivateStoreStanza","visibleRoomTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","reachable","isConnected","isInternetReachable","addListener","disconnect","Provider","value","useXmppClient","context","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","AppState","DeviceEventEmitter","NetInfo","VideoCallOverlay","XmppClient","refreshAuthTokensQuietly","buildXmppClientKey","getGlobalXmppClient","getReusableXmppClientByKey","isXmppClientReusable","setGlobalXmppClient","withXmppClientInitLock","applyResolvedUserToStore","refreshUserCredentialsForXmpp","resolveInitBeforeLoadUser","ensureScopedChatCache","getRooms","prefetchRoomsViaRest","allRoomPresences","pushSubscriptionService","store","logout","setStoreClient","setConfig","logoutService","setLogoutState","setVisibleRoom","clearVisibleRoom","setLastViewedTimestamp","deleteRoomMessage","setUnreadSyncing","getFlushBoundaryTs","getReadMarkerTimestamp","runHistoryPreloadScheduler","updateMessagesTillLast","secureUserStorage","clearPersistedState","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","XmppContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","Object","keys","getState","length","nick","jid","getLocal","subscribeToRooms","then","catch","e","XmppProvider","children","config","isVisible","setClient","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","refreshTokens","enabled","rotated","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","err","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","xmppSettings","settings","key","reusable","current","created","prevGlobal","close","newClient","setCredentialsProvider","waitForOnline","console","error","setAuthLostHandler","performLogout","finally","Promise","resolve","onAfterLogout","setOnOnline","underlying","getChatsPrivateStoreRequestStanza","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","remove","undefined","resolved","signal","hasResolved","xmppPasswordPresent","connectPassword","restRoomsPromise","c","getRoomsStanza","roomCount","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","r","filter","Boolean","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","roomHeapSlice","chatJID","timestamp","messageId","flushLastViewedToPrivateStoreStanza","visibleRoomTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","reachable","isConnected","isInternetReachable","addListener","disconnect","contextValue","Provider","value","useXmppClient","context","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ import { cbc } from '@noble/ciphers/aes.js';
4
+ import { ed25519, x25519 } from '@noble/curves/ed25519.js';
5
+ import { hkdf } from '@noble/hashes/hkdf.js';
6
+ import { hmac } from '@noble/hashes/hmac.js';
7
+ import { sha256 } from '@noble/hashes/sha2.js';
8
+ import { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils.js';
9
+ export { concatBytes, randomBytes, utf8ToBytes };
10
+ const ZERO_SALT = new Uint8Array(32);
11
+ export function hkdfSha256(ikm, salt, info, length) {
12
+ return hkdf(sha256, ikm, salt ?? ZERO_SALT, utf8ToBytes(info), length);
13
+ }
14
+ export function hmacSha256(key, data) {
15
+ return hmac(sha256, key, data);
16
+ }
17
+ export function aesEncrypt(key, iv, data) {
18
+ return cbc(key, iv).encrypt(data);
19
+ }
20
+ export function aesDecrypt(key, iv, data) {
21
+ return cbc(key, iv).decrypt(data);
22
+ }
23
+ export function generateKeyPair() {
24
+ const {
25
+ secretKey,
26
+ publicKey
27
+ } = x25519.keygen();
28
+ return {
29
+ priv: secretKey,
30
+ pub: publicKey
31
+ };
32
+ }
33
+ export function generateIdentity() {
34
+ const {
35
+ secretKey,
36
+ publicKey
37
+ } = ed25519.keygen();
38
+ return {
39
+ seed: secretKey,
40
+ pub: publicKey
41
+ };
42
+ }
43
+ export function dh(priv, pub) {
44
+ return x25519.getSharedSecret(priv, pub);
45
+ }
46
+ export function identityDhPrivate(identity) {
47
+ return ed25519.utils.toMontgomerySecret(identity.seed);
48
+ }
49
+ export function identityDhPublic(identityPub) {
50
+ return ed25519.utils.toMontgomery(identityPub);
51
+ }
52
+ export function sign(identity, message) {
53
+ return ed25519.sign(message, identity.seed);
54
+ }
55
+ export function verify(signature, message, identityPub) {
56
+ try {
57
+ return ed25519.verify(signature, message, identityPub);
58
+ } catch {
59
+ return false;
60
+ }
61
+ }
62
+ export function bytesEqual(a, b) {
63
+ if (a.length !== b.length) {
64
+ return false;
65
+ }
66
+ let diff = 0;
67
+ for (let i = 0; i < a.length; i++) {
68
+ diff |= a[i] ^ b[i];
69
+ }
70
+ return diff === 0;
71
+ }
72
+ const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
73
+ const B64_VALUE = new Int16Array(128).fill(-1);
74
+ for (let i = 0; i < B64.length; i++) {
75
+ B64_VALUE[B64.charCodeAt(i)] = i;
76
+ }
77
+ export function toBase64(bytes) {
78
+ let out = '';
79
+ let i = 0;
80
+ for (; i + 2 < bytes.length; i += 3) {
81
+ const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
82
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
83
+ }
84
+ if (i + 1 === bytes.length) {
85
+ const n = bytes[i] << 16;
86
+ out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
87
+ } else if (i + 2 === bytes.length) {
88
+ const n = bytes[i] << 16 | bytes[i + 1] << 8;
89
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
90
+ }
91
+ return out;
92
+ }
93
+ export function fromBase64(text) {
94
+ const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
95
+ if (clean.length % 4 === 1) {
96
+ throw new Error('Invalid base64');
97
+ }
98
+ const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
99
+ let acc = 0;
100
+ let bits = 0;
101
+ let pos = 0;
102
+ for (let i = 0; i < clean.length; i++) {
103
+ const code = clean.charCodeAt(i);
104
+ const value = code < 128 ? B64_VALUE[code] : -1;
105
+ if (value < 0) {
106
+ throw new Error('Invalid base64');
107
+ }
108
+ acc = acc << 6 | value;
109
+ bits += 6;
110
+ if (bits >= 8) {
111
+ bits -= 8;
112
+ out[pos++] = acc >> bits & 0xff;
113
+ }
114
+ }
115
+ return out;
116
+ }
117
+ export function toHex(bytes) {
118
+ return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
119
+ }
120
+ export function randomInt(min, max) {
121
+ const bytes = randomBytes(4);
122
+ const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
123
+ return min + n % (max - min + 1);
124
+ }
125
+ export function bytesToUtf8(bytes) {
126
+ const chunks = [];
127
+ let units = [];
128
+ const push = unit => {
129
+ units.push(unit);
130
+ if (units.length >= 8192) {
131
+ chunks.push(String.fromCharCode.apply(null, units));
132
+ units = [];
133
+ }
134
+ };
135
+ let i = 0;
136
+ while (i < bytes.length) {
137
+ const b = bytes[i++];
138
+ if (b < 0x80) {
139
+ push(b);
140
+ continue;
141
+ }
142
+ const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
143
+ let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
144
+ let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
145
+ for (let k = 0; valid && k < extra; k++) {
146
+ const next = bytes[i + k];
147
+ if ((next & 0xc0) !== 0x80) {
148
+ valid = false;
149
+ }
150
+ code = code << 6 | next & 0x3f;
151
+ }
152
+ if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
153
+ push(0xfffd);
154
+ continue;
155
+ }
156
+ i += extra;
157
+ if (code > 0xffff) {
158
+ code -= 0x10000;
159
+ push(0xd800 | code >> 10);
160
+ push(0xdc00 | code & 0x3ff);
161
+ } else {
162
+ push(code);
163
+ }
164
+ }
165
+ if (units.length) {
166
+ chunks.push(String.fromCharCode.apply(null, units));
167
+ }
168
+ return chunks.join('');
169
+ }
170
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cbc","ed25519","x25519","hkdf","hmac","sha256","concatBytes","randomBytes","utf8ToBytes","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hmacSha256","key","data","aesEncrypt","iv","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","keygen","priv","pub","generateIdentity","seed","dh","getSharedSecret","identityDhPrivate","identity","utils","toMontgomerySecret","identityDhPublic","identityPub","toMontgomery","sign","message","verify","signature","bytesEqual","a","b","diff","i","B64","B64_VALUE","Int16Array","fill","charCodeAt","toBase64","bytes","out","n","fromBase64","text","clean","replace","Error","Math","floor","acc","bits","pos","code","value","toHex","Array","from","toString","padStart","join","randomInt","min","max","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import AsyncStorage from '@react-native-async-storage/async-storage';
4
+ import { secureGetOrCreate } from '../helpers/secureKeyValue';
5
+ import { decryptFromPersist, encryptForPersist, isPersistKeyKept } from '../helpers/persistCrypto';
6
+ import { randomBytes, toHex } from './crypto';
7
+ import { createStore } from './store';
8
+ const MMKV_INSTANCE_ID = 'ethora-omemo';
9
+ const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
10
+ const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
11
+ const createMmkvBackend = async () => {
12
+ let MMKV;
13
+ try {
14
+ MMKV = require('react-native-mmkv').MMKV;
15
+ } catch {
16
+ return null;
17
+ }
18
+ if (typeof MMKV !== 'function') {
19
+ return null;
20
+ }
21
+ const key = await secureGetOrCreate(MMKV_KEY_STORE_KEY, () => toHex(randomBytes(8)));
22
+ if (!key) {
23
+ throw new Error('e2ee: the device store key was not kept');
24
+ }
25
+ try {
26
+ const storage = new MMKV({
27
+ id: MMKV_INSTANCE_ID,
28
+ encryptionKey: key.value
29
+ });
30
+ if (key.created) {
31
+ storage.clearAll();
32
+ }
33
+ return {
34
+ getItem: async key => storage.getString(key) ?? null,
35
+ setItem: async (key, value) => void storage.set(key, value),
36
+ removeItem: async key => void storage.delete(key)
37
+ };
38
+ } catch (e) {
39
+ console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
40
+ return null;
41
+ }
42
+ };
43
+ const asyncStorageBackend = {
44
+ getItem: async key => {
45
+ const raw = await AsyncStorage.getItem(ASYNC_STORAGE_PREFIX + key);
46
+ return raw ? decryptFromPersist(raw) : null;
47
+ },
48
+ setItem: async (key, value) => AsyncStorage.setItem(ASYNC_STORAGE_PREFIX + key, await encryptForPersist(value)),
49
+ removeItem: key => AsyncStorage.removeItem(ASYNC_STORAGE_PREFIX + key)
50
+ };
51
+ const createAsyncStorageBackend = async () => {
52
+ if (!(await isPersistKeyKept())) {
53
+ throw new Error('e2ee: the storage cipher key was not kept');
54
+ }
55
+ return asyncStorageBackend;
56
+ };
57
+ let backendPromise = null;
58
+ const getBackend = () => {
59
+ if (!backendPromise) {
60
+ const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
61
+ backendPromise = opening;
62
+ // A refusal is not cached: the next start may find the store usable.
63
+ opening.catch(() => {
64
+ if (backendPromise === opening) {
65
+ backendPromise = null;
66
+ }
67
+ });
68
+ }
69
+ return backendPromise;
70
+ };
71
+ export async function openDeviceStore(jid) {
72
+ return createStore(await getBackend(), jid);
73
+ }
74
+ export const __resetDeviceStoreForTests = () => {
75
+ backendPromise = null;
76
+ };
77
+ //# sourceMappingURL=deviceStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AsyncStorage","secureGetOrCreate","decryptFromPersist","encryptForPersist","isPersistKeyKept","randomBytes","toHex","createStore","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","require","key","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","e","console","warn","asyncStorageBackend","raw","createAsyncStorageBackend","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","__resetDeviceStoreForTests"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SACEC,kBAAkB,EAClBC,iBAAiB,EACjBC,gBAAgB,QACX,0BAA0B;AACjC,SAASC,WAAW,EAAEC,KAAK,QAAQ,UAAU;AAC7C,SAASC,WAAW,QAA6C,SAAS;AAE1E,MAAMC,gBAAgB,GAAG,cAAc;AACvC,MAAMC,kBAAkB,GAAG,wBAAwB;AACnD,MAAMC,oBAAoB,GAAG,gBAAgB;AAE7C,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAA2C;EACnE,IAAIC,IAAS;EACb,IAAI;IACFA,IAAI,GAAGC,OAAO,CAAC,mBAAmB,CAAC,CAACD,IAAI;EAC1C,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;EACA,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAAC,OAAO,IAAI;EAAC;EAC7C,MAAME,GAAG,GAAG,MAAMb,iBAAiB,CAACQ,kBAAkB,EAAE,MACtDH,KAAK,CAACD,WAAW,CAAC,CAAC,CAAC,CACtB,CAAC;EACD,IAAI,CAACS,GAAG,EAAE;IAAC,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EAAC;EACtE,IAAI;IACF,MAAMC,OAAO,GAAG,IAAIJ,IAAI,CAAC;MAAEK,EAAE,EAAET,gBAAgB;MAAEU,aAAa,EAAEJ,GAAG,CAACK;IAAM,CAAC,CAAC;IAC5E,IAAIL,GAAG,CAACM,OAAO,EAAE;MAACJ,OAAO,CAACK,QAAQ,CAAC,CAAC;IAAC;IACrC,OAAO;MACLC,OAAO,EAAE,MAAOR,GAAG,IAAKE,OAAO,CAACO,SAAS,CAACT,GAAG,CAAC,IAAI,IAAI;MACtDU,OAAO,EAAE,MAAAA,CAAOV,GAAG,EAAEK,KAAK,KAAK,KAAKH,OAAO,CAACS,GAAG,CAACX,GAAG,EAAEK,KAAK,CAAC;MAC3DO,UAAU,EAAE,MAAOZ,GAAG,IAAK,KAAKE,OAAO,CAACW,MAAM,CAACb,GAAG;IACpD,CAAC;EACH,CAAC,CAAC,OAAOc,CAAC,EAAE;IACVC,OAAO,CAACC,IAAI,CAAC,6DAA6D,EAAEF,CAAC,CAAC;IAC9E,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAMG,mBAAkC,GAAG;EACzCT,OAAO,EAAE,MAAOR,GAAG,IAAK;IACtB,MAAMkB,GAAG,GAAG,MAAMhC,YAAY,CAACsB,OAAO,CAACZ,oBAAoB,GAAGI,GAAG,CAAC;IAClE,OAAOkB,GAAG,GAAG9B,kBAAkB,CAAC8B,GAAG,CAAC,GAAG,IAAI;EAC7C,CAAC;EACDR,OAAO,EAAE,MAAAA,CAAOV,GAAG,EAAEK,KAAK,KACxBnB,YAAY,CAACwB,OAAO,CAACd,oBAAoB,GAAGI,GAAG,EAAE,MAAMX,iBAAiB,CAACgB,KAAK,CAAC,CAAC;EAClFO,UAAU,EAAGZ,GAAG,IAAKd,YAAY,CAAC0B,UAAU,CAAChB,oBAAoB,GAAGI,GAAG;AACzE,CAAC;AAED,MAAMmB,yBAAyB,GAAG,MAAAA,CAAA,KAAoC;EACpE,IAAI,EAAE,MAAM7B,gBAAgB,CAAC,CAAC,CAAC,EAAE;IAC/B,MAAM,IAAIW,KAAK,CAAC,2CAA2C,CAAC;EAC9D;EACA,OAAOgB,mBAAmB;AAC5B,CAAC;AAED,IAAIG,cAA6C,GAAG,IAAI;AAExD,MAAMC,UAAU,GAAGA,CAAA,KAA8B;EAC/C,IAAI,CAACD,cAAc,EAAE;IACnB,MAAME,OAAO,GAAGzB,iBAAiB,CAAC,CAAC,CAAC0B,IAAI,CACrCC,IAAI,IAAKA,IAAI,IAAIL,yBAAyB,CAAC,CAC9C,CAAC;IACDC,cAAc,GAAGE,OAAO;IACxB;IACAA,OAAO,CAACG,KAAK,CAAC,MAAM;MAClB,IAAIL,cAAc,KAAKE,OAAO,EAAE;QAACF,cAAc,GAAG,IAAI;MAAC;IACzD,CAAC,CAAC;EACJ;EACA,OAAOA,cAAc;AACvB,CAAC;AAED,OAAO,eAAeM,eAAeA,CAACC,GAAW,EAAuB;EACtE,OAAOlC,WAAW,CAAC,MAAM4B,UAAU,CAAC,CAAC,EAAEM,GAAG,CAAC;AAC7C;AAEA,OAAO,MAAMC,0BAA0B,GAAGA,CAAA,KAAY;EACpDR,cAAc,GAAG,IAAI;AACvB,CAAC","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ import { cbc } from '@noble/ciphers/aes.js';
4
+ import { hmac } from '@noble/hashes/hmac.js';
5
+ import { sha256 } from '@noble/hashes/sha2.js';
6
+ import { bytesEqual, concatBytes, hkdfSha256, randomBytes } from './crypto';
7
+ const SLICE = 32 * 1024;
8
+ const BLOCK = 16;
9
+ const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
10
+ function payloadKeys(key) {
11
+ const km = hkdfSha256(key, undefined, 'OMEMO Payload', 80);
12
+ return {
13
+ enc: km.slice(0, 32),
14
+ auth: km.slice(32, 64),
15
+ iv: km.slice(64)
16
+ };
17
+ }
18
+ export async function encryptLargePayload(plaintext, onProgress) {
19
+ const key = randomBytes(32);
20
+ const {
21
+ enc,
22
+ auth,
23
+ iv
24
+ } = payloadKeys(key);
25
+ const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
26
+ const mac = hmac.create(sha256, auth);
27
+ let offset = 0;
28
+ let chain = iv;
29
+ while (plaintext.length - offset > SLICE) {
30
+ const out = payload.subarray(offset, offset + SLICE);
31
+ out.set(cbc(enc, chain, {
32
+ disablePadding: true
33
+ }).encrypt(plaintext.subarray(offset, offset + SLICE)));
34
+ mac.update(out);
35
+ chain = out.slice(SLICE - BLOCK);
36
+ offset += SLICE;
37
+ onProgress?.(offset / plaintext.length);
38
+ await yieldToUi();
39
+ }
40
+ const last = cbc(enc, chain).encrypt(plaintext.subarray(offset));
41
+ payload.set(last, offset);
42
+ mac.update(last);
43
+ onProgress?.(1);
44
+ return {
45
+ keyMaterial: concatBytes(key, mac.digest().slice(0, 16)),
46
+ payload
47
+ };
48
+ }
49
+ export async function decryptLargePayload(keyMaterial, payload, onProgress) {
50
+ if (keyMaterial.length !== 48) {
51
+ throw new Error('Invalid key material');
52
+ }
53
+ if (payload.length === 0 || payload.length % BLOCK !== 0) {
54
+ throw new Error('Payload authentication failed');
55
+ }
56
+ const {
57
+ enc,
58
+ auth,
59
+ iv
60
+ } = payloadKeys(keyMaterial.slice(0, 32));
61
+ const mac = hmac.create(sha256, auth);
62
+ for (let offset = 0; offset < payload.length; offset += SLICE) {
63
+ mac.update(payload.subarray(offset, offset + SLICE));
64
+ onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
65
+ if (offset + SLICE < payload.length) {
66
+ await yieldToUi();
67
+ }
68
+ }
69
+ if (!bytesEqual(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
70
+ throw new Error('Payload authentication failed');
71
+ }
72
+ const plaintext = new Uint8Array(payload.length);
73
+ let offset = 0;
74
+ let chain = iv;
75
+ while (payload.length - offset > SLICE) {
76
+ const part = payload.subarray(offset, offset + SLICE);
77
+ plaintext.set(cbc(enc, chain, {
78
+ disablePadding: true
79
+ }).decrypt(part), offset);
80
+ chain = part.slice(SLICE - BLOCK);
81
+ offset += SLICE;
82
+ onProgress?.(0.65 + offset / payload.length * 0.35);
83
+ await yieldToUi();
84
+ }
85
+ const last = cbc(enc, chain).decrypt(payload.subarray(offset));
86
+ plaintext.set(last, offset);
87
+ onProgress?.(1);
88
+ return plaintext.subarray(0, offset + last.length);
89
+ }
90
+ //# sourceMappingURL=fileCipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cbc","hmac","sha256","bytesEqual","concatBytes","hkdfSha256","randomBytes","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","payload","Uint8Array","Math","floor","length","mac","create","offset","chain","out","subarray","set","disablePadding","encrypt","update","last","keyMaterial","digest","decryptLargePayload","Error","min","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,uBAAuB;AAC3C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAEC,WAAW,QAAQ,UAAU;AAE3E,MAAMC,KAAK,GAAG,EAAE,GAAG,IAAI;AACvB,MAAMC,KAAK,GAAG,EAAE;AAIhB,MAAMC,SAAS,GAAGA,CAAA,KAAM,IAAIC,OAAO,CAAQC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAE,CAAC,CAAC,CAAC;AAE9E,SAASE,WAAWA,CAACC,GAAe,EAAE;EACpC,MAAMC,EAAE,GAAGV,UAAU,CAACS,GAAG,EAAEE,SAAS,EAAE,eAAe,EAAE,EAAE,CAAC;EAC1D,OAAO;IAAEC,GAAG,EAAEF,EAAE,CAACG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IAAEC,IAAI,EAAEJ,EAAE,CAACG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IAAEE,EAAE,EAAEL,EAAE,CAACG,KAAK,CAAC,EAAE;EAAE,CAAC;AAC3E;AAEA,OAAO,eAAeG,mBAAmBA,CACvCC,SAAqB,EACrBC,UAAqB,EACsC;EAC3D,MAAMT,GAAG,GAAGR,WAAW,CAAC,EAAE,CAAC;EAC3B,MAAM;IAAEW,GAAG;IAAEE,IAAI;IAAEC;EAAG,CAAC,GAAGP,WAAW,CAACC,GAAG,CAAC;EAC1C,MAAMU,OAAO,GAAG,IAAIC,UAAU,CAAC,CAACC,IAAI,CAACC,KAAK,CAACL,SAAS,CAACM,MAAM,GAAGpB,KAAK,CAAC,GAAG,CAAC,IAAIA,KAAK,CAAC;EAClF,MAAMqB,GAAG,GAAG5B,IAAI,CAAC6B,MAAM,CAAC5B,MAAM,EAAEiB,IAAI,CAAC;EAErC,IAAIY,MAAM,GAAG,CAAC;EACd,IAAIC,KAAK,GAAGZ,EAAE;EACd,OAAOE,SAAS,CAACM,MAAM,GAAGG,MAAM,GAAGxB,KAAK,EAAE;IACxC,MAAM0B,GAAG,GAAGT,OAAO,CAACU,QAAQ,CAACH,MAAM,EAAEA,MAAM,GAAGxB,KAAK,CAAC;IACpD0B,GAAG,CAACE,GAAG,CACLnC,GAAG,CAACiB,GAAG,EAAEe,KAAK,EAAE;MAAEI,cAAc,EAAE;IAAK,CAAC,CAAC,CAACC,OAAO,CAC/Cf,SAAS,CAACY,QAAQ,CAACH,MAAM,EAAEA,MAAM,GAAGxB,KAAK,CAC3C,CACF,CAAC;IACDsB,GAAG,CAACS,MAAM,CAACL,GAAG,CAAC;IACfD,KAAK,GAAGC,GAAG,CAACf,KAAK,CAACX,KAAK,GAAGC,KAAK,CAAC;IAChCuB,MAAM,IAAIxB,KAAK;IACfgB,UAAU,GAAGQ,MAAM,GAAGT,SAAS,CAACM,MAAM,CAAC;IACvC,MAAMnB,SAAS,CAAC,CAAC;EACnB;EACA,MAAM8B,IAAI,GAAGvC,GAAG,CAACiB,GAAG,EAAEe,KAAK,CAAC,CAACK,OAAO,CAACf,SAAS,CAACY,QAAQ,CAACH,MAAM,CAAC,CAAC;EAChEP,OAAO,CAACW,GAAG,CAACI,IAAI,EAAER,MAAM,CAAC;EACzBF,GAAG,CAACS,MAAM,CAACC,IAAI,CAAC;EAChBhB,UAAU,GAAG,CAAC,CAAC;EAEf,OAAO;IAAEiB,WAAW,EAAEpC,WAAW,CAACU,GAAG,EAAEe,GAAG,CAACY,MAAM,CAAC,CAAC,CAACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAAEM;EAAQ,CAAC;AAC9E;AAEA,OAAO,eAAekB,mBAAmBA,CACvCF,WAAuB,EACvBhB,OAAmB,EACnBD,UAAqB,EACA;EACrB,IAAIiB,WAAW,CAACZ,MAAM,KAAK,EAAE,EAAE;IAAC,MAAM,IAAIe,KAAK,CAAC,sBAAsB,CAAC;EAAC;EACxE,IAAInB,OAAO,CAACI,MAAM,KAAK,CAAC,IAAIJ,OAAO,CAACI,MAAM,GAAGpB,KAAK,KAAK,CAAC,EAAE;IACxD,MAAM,IAAImC,KAAK,CAAC,+BAA+B,CAAC;EAClD;EACA,MAAM;IAAE1B,GAAG;IAAEE,IAAI;IAAEC;EAAG,CAAC,GAAGP,WAAW,CAAC2B,WAAW,CAACtB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;EAE/D,MAAMW,GAAG,GAAG5B,IAAI,CAAC6B,MAAM,CAAC5B,MAAM,EAAEiB,IAAI,CAAC;EACrC,KAAK,IAAIY,MAAM,GAAG,CAAC,EAAEA,MAAM,GAAGP,OAAO,CAACI,MAAM,EAAEG,MAAM,IAAIxB,KAAK,EAAE;IAC7DsB,GAAG,CAACS,MAAM,CAACd,OAAO,CAACU,QAAQ,CAACH,MAAM,EAAEA,MAAM,GAAGxB,KAAK,CAAC,CAAC;IACpDgB,UAAU,GAAIG,IAAI,CAACkB,GAAG,CAACb,MAAM,GAAGxB,KAAK,EAAEiB,OAAO,CAACI,MAAM,CAAC,GAAGJ,OAAO,CAACI,MAAM,GAAI,IAAI,CAAC;IAChF,IAAIG,MAAM,GAAGxB,KAAK,GAAGiB,OAAO,CAACI,MAAM,EAAE;MAAC,MAAMnB,SAAS,CAAC,CAAC;IAAC;EAC1D;EACA,IAAI,CAACN,UAAU,CAAC0B,GAAG,CAACY,MAAM,CAAC,CAAC,CAACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAEsB,WAAW,CAACtB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;IACjE,MAAM,IAAIyB,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,MAAMrB,SAAS,GAAG,IAAIG,UAAU,CAACD,OAAO,CAACI,MAAM,CAAC;EAChD,IAAIG,MAAM,GAAG,CAAC;EACd,IAAIC,KAAK,GAAGZ,EAAE;EACd,OAAOI,OAAO,CAACI,MAAM,GAAGG,MAAM,GAAGxB,KAAK,EAAE;IACtC,MAAMsC,IAAI,GAAGrB,OAAO,CAACU,QAAQ,CAACH,MAAM,EAAEA,MAAM,GAAGxB,KAAK,CAAC;IACrDe,SAAS,CAACa,GAAG,CAACnC,GAAG,CAACiB,GAAG,EAAEe,KAAK,EAAE;MAAEI,cAAc,EAAE;IAAK,CAAC,CAAC,CAACU,OAAO,CAACD,IAAI,CAAC,EAAEd,MAAM,CAAC;IAC9EC,KAAK,GAAGa,IAAI,CAAC3B,KAAK,CAACX,KAAK,GAAGC,KAAK,CAAC;IACjCuB,MAAM,IAAIxB,KAAK;IACfgB,UAAU,GAAG,IAAI,GAAIQ,MAAM,GAAGP,OAAO,CAACI,MAAM,GAAI,IAAI,CAAC;IACrD,MAAMnB,SAAS,CAAC,CAAC;EACnB;EACA,MAAM8B,IAAI,GAAGvC,GAAG,CAACiB,GAAG,EAAEe,KAAK,CAAC,CAACc,OAAO,CAACtB,OAAO,CAACU,QAAQ,CAACH,MAAM,CAAC,CAAC;EAC9DT,SAAS,CAACa,GAAG,CAACI,IAAI,EAAER,MAAM,CAAC;EAC3BR,UAAU,GAAG,CAAC,CAAC;EACf,OAAOD,SAAS,CAACY,QAAQ,CAAC,CAAC,EAAEH,MAAM,GAAGQ,IAAI,CAACX,MAAM,CAAC;AACpD","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ import { bytesToUtf8, fromBase64, randomBytes, toBase64, toHex, utf8ToBytes } from './crypto';
4
+ import { decryptLargePayload, encryptLargePayload } from './fileCipher';
5
+ export { parseSealedMediaBody } from './sealedBody';
6
+ const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
7
+ const VERSION = 1;
8
+ const HEADER_OFFSET = MAGIC.length + 1 + 4;
9
+ export function encodeFileEnvelope(meta, bytes) {
10
+ const header = utf8ToBytes(JSON.stringify({
11
+ mimetype: meta.mimetype,
12
+ originalname: meta.originalname,
13
+ size: meta.size
14
+ }));
15
+ const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
16
+ out.set(MAGIC, 0);
17
+ out[MAGIC.length] = VERSION;
18
+ new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
19
+ out.set(header, HEADER_OFFSET);
20
+ out.set(bytes, HEADER_OFFSET + header.length);
21
+ return out;
22
+ }
23
+ export function decodeFileEnvelope(envelope) {
24
+ if (envelope.length < HEADER_OFFSET) {
25
+ throw new Error('file_envelope_truncated');
26
+ }
27
+ for (let i = 0; i < MAGIC.length; i++) {
28
+ if (envelope[i] !== MAGIC[i]) {
29
+ throw new Error('file_envelope_bad_magic');
30
+ }
31
+ }
32
+ const version = envelope[MAGIC.length];
33
+ if (version !== VERSION) {
34
+ throw new Error(`file_envelope_unsupported_version_${version}`);
35
+ }
36
+ const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
37
+ const bodyStart = HEADER_OFFSET + headerLen;
38
+ if (bodyStart > envelope.length) {
39
+ throw new Error('file_envelope_truncated');
40
+ }
41
+ const meta = JSON.parse(bytesToUtf8(envelope.subarray(HEADER_OFFSET, bodyStart)));
42
+ return {
43
+ meta,
44
+ bytes: envelope.subarray(bodyStart)
45
+ };
46
+ }
47
+ export async function sealFileForUpload(file, onProgress) {
48
+ const envelope = encodeFileEnvelope({
49
+ mimetype: file.type || 'application/octet-stream',
50
+ originalname: file.name || 'blob',
51
+ size: file.bytes.length
52
+ }, file.bytes);
53
+ const {
54
+ keyMaterial,
55
+ payload
56
+ } = await encryptLargePayload(envelope, onProgress);
57
+ return {
58
+ ciphertext: payload,
59
+ keyMaterial: toBase64(keyMaterial),
60
+ filename: toHex(randomBytes(16))
61
+ };
62
+ }
63
+ export async function openSealedFile(ciphertext, keyMaterial, onProgress) {
64
+ return decodeFileEnvelope(await decryptLargePayload(fromBase64(keyMaterial), ciphertext, onProgress));
65
+ }
66
+ //# sourceMappingURL=fileEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bytesToUtf8","fromBase64","randomBytes","toBase64","toHex","utf8ToBytes","decryptLargePayload","encryptLargePayload","parseSealedMediaBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","ciphertext","filename","openSealedFile"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}