@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","_interopRequireWildcard","require","_reactNative","_netinfo","_interopRequireDefault","_VideoCallOverlay","_xmppClient","_authRefresh","_clientRegistry","_resolveInitBeforeLoadUser","_ensureScopedChatCache","_rooms","_allRoomPresences","_pushSubscriptionService","_roomStore","_chatSettingsSlice","_roomsSlice","_getServerReadTimestamp","_historyPreloadScheduler","_updateMessagesTillLast","_secureUserStorage","_persistence","_devLogger","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","XmppContext","createContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","keys","store","getState","length","nick","jid","getLocal","pushSubscriptionService","subscribeToRooms","then","devPushLog","catch","XmppProvider","children","config","isVisible","setClient","useState","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","useRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","useMemo","refreshTokens","enabled","rotated","refreshAuthTokensQuietly","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","refreshUserCredentialsForXmpp","err","applyResolvedUserToStore","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","useCallback","xmppSettings","settings","key","buildXmppClientKey","reusable","getReusableXmppClientByKey","current","isXmppClientReusable","created","withXmppClientInitLock","prevGlobal","getGlobalXmppClient","close","newClient","XmppClient","setCredentialsProvider","setGlobalXmppClient","waitForOnline","console","error","setOnOnline","underlying","allRoomPresences","finally","getChatsPrivateStoreRequestStanza","updateMessagesTillLast","useEffect","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","setUnreadSyncing","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","setLogoutState","logout","secureUserStorage","remove","undefined","ensureScopedChatCache","resolved","resolveInitBeforeLoadUser","signal","hasResolved","xmppPasswordPresent","setConfig","connectPassword","restRoomsPromise","prefetchRoomsViaRest","c","getRoomsStanza","roomCount","setStoreClient","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","filter","Boolean","runHistoryPreloadScheduler","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","AppState","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","setVisibleRoom","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","getReadMarkerTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","timestamp","deleteRoomMessage","messageId","clearVisibleRoom","flushLastViewedToPrivateStoreStanza","visibleRoomTs","getFlushBoundaryTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","NetInfo","reachable","isConnected","isInternetReachable","DeviceEventEmitter","addListener","disconnect","clearPersistedState","jsxs","Provider","value","jsx","VideoCallOverlay","exports","useXmppClient","context","useContext","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_netinfo","_interopRequireDefault","_VideoCallOverlay","_xmppClient","_authRefresh","_clientRegistry","_resolveInitBeforeLoadUser","_ensureScopedChatCache","_rooms","_allRoomPresences","_pushSubscriptionService","_roomStore","_chatSettingsSlice","_useLogout","_roomsSlice","_getServerReadTimestamp","_historyPreloadScheduler","_updateMessagesTillLast","_secureUserStorage","_persistence","_devLogger","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","XmppContext","createContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","keys","store","getState","length","nick","jid","getLocal","pushSubscriptionService","subscribeToRooms","then","devPushLog","catch","XmppProvider","children","config","isVisible","setClient","useState","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","useRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","useMemo","refreshTokens","enabled","rotated","refreshAuthTokensQuietly","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","refreshUserCredentialsForXmpp","err","applyResolvedUserToStore","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","useCallback","xmppSettings","settings","key","buildXmppClientKey","reusable","getReusableXmppClientByKey","current","isXmppClientReusable","created","withXmppClientInitLock","prevGlobal","getGlobalXmppClient","close","newClient","XmppClient","setCredentialsProvider","setGlobalXmppClient","waitForOnline","console","error","setAuthLostHandler","logoutService","performLogout","finally","Promise","resolve","logout","onAfterLogout","setOnOnline","underlying","allRoomPresences","getChatsPrivateStoreRequestStanza","updateMessagesTillLast","useEffect","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","setUnreadSyncing","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","setLogoutState","secureUserStorage","remove","undefined","ensureScopedChatCache","resolved","resolveInitBeforeLoadUser","signal","hasResolved","xmppPasswordPresent","setConfig","connectPassword","restRoomsPromise","prefetchRoomsViaRest","c","getRoomsStanza","roomCount","setStoreClient","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","filter","Boolean","runHistoryPreloadScheduler","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","AppState","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","setVisibleRoom","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","getReadMarkerTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","timestamp","deleteRoomMessage","messageId","clearVisibleRoom","flushLastViewedToPrivateStoreStanza","visibleRoomTs","getFlushBoundaryTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","NetInfo","reachable","isConnected","isInternetReachable","DeviceEventEmitter","addListener","disconnect","clearPersistedState","contextValue","jsxs","Provider","value","jsx","VideoCallOverlay","exports","useXmppClient","context","useContext","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.aesDecrypt = aesDecrypt;
7
+ exports.aesEncrypt = aesEncrypt;
8
+ exports.bytesEqual = bytesEqual;
9
+ exports.bytesToUtf8 = bytesToUtf8;
10
+ Object.defineProperty(exports, "concatBytes", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _utils.concatBytes;
14
+ }
15
+ });
16
+ exports.dh = dh;
17
+ exports.fromBase64 = fromBase64;
18
+ exports.generateIdentity = generateIdentity;
19
+ exports.generateKeyPair = generateKeyPair;
20
+ exports.hkdfSha256 = hkdfSha256;
21
+ exports.hmacSha256 = hmacSha256;
22
+ exports.identityDhPrivate = identityDhPrivate;
23
+ exports.identityDhPublic = identityDhPublic;
24
+ Object.defineProperty(exports, "randomBytes", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _utils.randomBytes;
28
+ }
29
+ });
30
+ exports.randomInt = randomInt;
31
+ exports.sign = sign;
32
+ exports.toBase64 = toBase64;
33
+ exports.toHex = toHex;
34
+ Object.defineProperty(exports, "utf8ToBytes", {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _utils.utf8ToBytes;
38
+ }
39
+ });
40
+ exports.verify = verify;
41
+ var _aes = require("@noble/ciphers/aes.js");
42
+ var _ed = require("@noble/curves/ed25519.js");
43
+ var _hkdf = require("@noble/hashes/hkdf.js");
44
+ var _hmac = require("@noble/hashes/hmac.js");
45
+ var _sha = require("@noble/hashes/sha2.js");
46
+ var _utils = require("@noble/hashes/utils.js");
47
+ const ZERO_SALT = new Uint8Array(32);
48
+ function hkdfSha256(ikm, salt, info, length) {
49
+ return (0, _hkdf.hkdf)(_sha.sha256, ikm, salt ?? ZERO_SALT, (0, _utils.utf8ToBytes)(info), length);
50
+ }
51
+ function hmacSha256(key, data) {
52
+ return (0, _hmac.hmac)(_sha.sha256, key, data);
53
+ }
54
+ function aesEncrypt(key, iv, data) {
55
+ return (0, _aes.cbc)(key, iv).encrypt(data);
56
+ }
57
+ function aesDecrypt(key, iv, data) {
58
+ return (0, _aes.cbc)(key, iv).decrypt(data);
59
+ }
60
+ function generateKeyPair() {
61
+ const {
62
+ secretKey,
63
+ publicKey
64
+ } = _ed.x25519.keygen();
65
+ return {
66
+ priv: secretKey,
67
+ pub: publicKey
68
+ };
69
+ }
70
+ function generateIdentity() {
71
+ const {
72
+ secretKey,
73
+ publicKey
74
+ } = _ed.ed25519.keygen();
75
+ return {
76
+ seed: secretKey,
77
+ pub: publicKey
78
+ };
79
+ }
80
+ function dh(priv, pub) {
81
+ return _ed.x25519.getSharedSecret(priv, pub);
82
+ }
83
+ function identityDhPrivate(identity) {
84
+ return _ed.ed25519.utils.toMontgomerySecret(identity.seed);
85
+ }
86
+ function identityDhPublic(identityPub) {
87
+ return _ed.ed25519.utils.toMontgomery(identityPub);
88
+ }
89
+ function sign(identity, message) {
90
+ return _ed.ed25519.sign(message, identity.seed);
91
+ }
92
+ function verify(signature, message, identityPub) {
93
+ try {
94
+ return _ed.ed25519.verify(signature, message, identityPub);
95
+ } catch {
96
+ return false;
97
+ }
98
+ }
99
+ function bytesEqual(a, b) {
100
+ if (a.length !== b.length) {
101
+ return false;
102
+ }
103
+ let diff = 0;
104
+ for (let i = 0; i < a.length; i++) {
105
+ diff |= a[i] ^ b[i];
106
+ }
107
+ return diff === 0;
108
+ }
109
+ const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
110
+ const B64_VALUE = new Int16Array(128).fill(-1);
111
+ for (let i = 0; i < B64.length; i++) {
112
+ B64_VALUE[B64.charCodeAt(i)] = i;
113
+ }
114
+ function toBase64(bytes) {
115
+ let out = '';
116
+ let i = 0;
117
+ for (; i + 2 < bytes.length; i += 3) {
118
+ const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
119
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
120
+ }
121
+ if (i + 1 === bytes.length) {
122
+ const n = bytes[i] << 16;
123
+ out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
124
+ } else if (i + 2 === bytes.length) {
125
+ const n = bytes[i] << 16 | bytes[i + 1] << 8;
126
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
127
+ }
128
+ return out;
129
+ }
130
+ function fromBase64(text) {
131
+ const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
132
+ if (clean.length % 4 === 1) {
133
+ throw new Error('Invalid base64');
134
+ }
135
+ const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
136
+ let acc = 0;
137
+ let bits = 0;
138
+ let pos = 0;
139
+ for (let i = 0; i < clean.length; i++) {
140
+ const code = clean.charCodeAt(i);
141
+ const value = code < 128 ? B64_VALUE[code] : -1;
142
+ if (value < 0) {
143
+ throw new Error('Invalid base64');
144
+ }
145
+ acc = acc << 6 | value;
146
+ bits += 6;
147
+ if (bits >= 8) {
148
+ bits -= 8;
149
+ out[pos++] = acc >> bits & 0xff;
150
+ }
151
+ }
152
+ return out;
153
+ }
154
+ function toHex(bytes) {
155
+ return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
156
+ }
157
+ function randomInt(min, max) {
158
+ const bytes = (0, _utils.randomBytes)(4);
159
+ const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
160
+ return min + n % (max - min + 1);
161
+ }
162
+ function bytesToUtf8(bytes) {
163
+ const chunks = [];
164
+ let units = [];
165
+ const push = unit => {
166
+ units.push(unit);
167
+ if (units.length >= 8192) {
168
+ chunks.push(String.fromCharCode.apply(null, units));
169
+ units = [];
170
+ }
171
+ };
172
+ let i = 0;
173
+ while (i < bytes.length) {
174
+ const b = bytes[i++];
175
+ if (b < 0x80) {
176
+ push(b);
177
+ continue;
178
+ }
179
+ const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
180
+ let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
181
+ let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
182
+ for (let k = 0; valid && k < extra; k++) {
183
+ const next = bytes[i + k];
184
+ if ((next & 0xc0) !== 0x80) {
185
+ valid = false;
186
+ }
187
+ code = code << 6 | next & 0x3f;
188
+ }
189
+ if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
190
+ push(0xfffd);
191
+ continue;
192
+ }
193
+ i += extra;
194
+ if (code > 0xffff) {
195
+ code -= 0x10000;
196
+ push(0xd800 | code >> 10);
197
+ push(0xdc00 | code & 0x3ff);
198
+ } else {
199
+ push(code);
200
+ }
201
+ }
202
+ if (units.length) {
203
+ chunks.push(String.fromCharCode.apply(null, units));
204
+ }
205
+ return chunks.join('');
206
+ }
207
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_aes","require","_ed","_hkdf","_hmac","_sha","_utils","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hkdf","sha256","utf8ToBytes","hmacSha256","key","data","hmac","aesEncrypt","iv","cbc","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","x25519","keygen","priv","pub","generateIdentity","ed25519","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","randomBytes","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAcA,MAAMM,SAAS,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;AAE7B,SAASC,UAAUA,CACxBC,GAAe,EACfC,IAA4B,EAC5BC,IAAY,EACZC,MAAc,EACF;EACZ,OAAO,IAAAC,UAAI,EAACC,WAAM,EAAEL,GAAG,EAAEC,IAAI,IAAIJ,SAAS,EAAE,IAAAS,kBAAW,EAACJ,IAAI,CAAC,EAAEC,MAAM,CAAC;AACxE;AAEO,SAASI,UAAUA,CAACC,GAAe,EAAEC,IAAgB,EAAc;EACxE,OAAO,IAAAC,UAAI,EAACL,WAAM,EAAEG,GAAG,EAAEC,IAAI,CAAC;AAChC;AAEO,SAASE,UAAUA,CACxBH,GAAe,EACfI,EAAc,EACdH,IAAgB,EACJ;EACZ,OAAO,IAAAI,QAAG,EAACL,GAAG,EAAEI,EAAE,CAAC,CAACE,OAAO,CAACL,IAAI,CAAC;AACnC;AAEO,SAASM,UAAUA,CACxBP,GAAe,EACfI,EAAc,EACdH,IAAgB,EACJ;EACZ,OAAO,IAAAI,QAAG,EAACL,GAAG,EAAEI,EAAE,CAAC,CAACI,OAAO,CAACP,IAAI,CAAC;AACnC;AAEO,SAASQ,eAAeA,CAAA,EAAY;EACzC,MAAM;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGC,UAAM,CAACC,MAAM,CAAC,CAAC;EAChD,OAAO;IAAEC,IAAI,EAAEJ,SAAS;IAAEK,GAAG,EAAEJ;EAAU,CAAC;AAC5C;AAEO,SAASK,gBAAgBA,CAAA,EAAgB;EAC9C,MAAM;IAAEN,SAAS;IAAEC;EAAU,CAAC,GAAGM,WAAO,CAACJ,MAAM,CAAC,CAAC;EACjD,OAAO;IAAEK,IAAI,EAAER,SAAS;IAAEK,GAAG,EAAEJ;EAAU,CAAC;AAC5C;AAEO,SAASQ,EAAEA,CAACL,IAAgB,EAAEC,GAAe,EAAc;EAChE,OAAOH,UAAM,CAACQ,eAAe,CAACN,IAAI,EAAEC,GAAG,CAAC;AAC1C;AAEO,SAASM,iBAAiBA,CAACC,QAAqB,EAAc;EACnE,OAAOL,WAAO,CAACM,KAAK,CAACC,kBAAkB,CAACF,QAAQ,CAACJ,IAAI,CAAC;AACxD;AAEO,SAASO,gBAAgBA,CAACC,WAAuB,EAAc;EACpE,OAAOT,WAAO,CAACM,KAAK,CAACI,YAAY,CAACD,WAAW,CAAC;AAChD;AAEO,SAASE,IAAIA,CAACN,QAAqB,EAAEO,OAAmB,EAAc;EAC3E,OAAOZ,WAAO,CAACW,IAAI,CAACC,OAAO,EAAEP,QAAQ,CAACJ,IAAI,CAAC;AAC7C;AAEO,SAASY,MAAMA,CACpBC,SAAqB,EACrBF,OAAmB,EACnBH,WAAuB,EACd;EACT,IAAI;IACF,OAAOT,WAAO,CAACa,MAAM,CAACC,SAAS,EAAEF,OAAO,EAAEH,WAAW,CAAC;EACxD,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF;AAEO,SAASM,UAAUA,CAACC,CAAa,EAAEC,CAAa,EAAW;EAChE,IAAID,CAAC,CAACtC,MAAM,KAAKuC,CAAC,CAACvC,MAAM,EAAE;IAAC,OAAO,KAAK;EAAC;EACzC,IAAIwC,IAAI,GAAG,CAAC;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,CAAC,CAACtC,MAAM,EAAEyC,CAAC,EAAE,EAAE;IAACD,IAAI,IAAIF,CAAC,CAACG,CAAC,CAAC,GAAIF,CAAC,CAACE,CAAC,CAAE;EAAC;EAC1D,OAAOD,IAAI,KAAK,CAAC;AACnB;AAEA,MAAME,GAAG,GAAG,kEAAkE;AAC9E,MAAMC,SAAS,GAAG,IAAIC,UAAU,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,KAAK,IAAIJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,GAAG,CAAC1C,MAAM,EAAEyC,CAAC,EAAE,EAAE;EAACE,SAAS,CAACD,GAAG,CAACI,UAAU,CAACL,CAAC,CAAC,CAAC,GAAGA,CAAC;AAAC;AAEhE,SAASM,QAAQA,CAACC,KAAiB,EAAU;EAClD,IAAIC,GAAG,GAAG,EAAE;EACZ,IAAIR,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAG,CAAC,GAAGO,KAAK,CAAChD,MAAM,EAAEyC,CAAC,IAAI,CAAC,EAAE;IACnC,MAAMS,CAAC,GAAIF,KAAK,CAACP,CAAC,CAAC,IAAK,EAAE,GAAKO,KAAK,CAACP,CAAC,GAAG,CAAC,CAAC,IAAK,CAAE,GAAGO,KAAK,CAACP,CAAC,GAAG,CAAC,CAAE;IAClEQ,GAAG,IAAIP,GAAG,CAACQ,CAAC,IAAI,EAAE,CAAC,GAAIR,GAAG,CAAEQ,CAAC,IAAI,EAAE,GAAI,EAAE,CAAE,GAAGR,GAAG,CAAEQ,CAAC,IAAI,CAAC,GAAI,EAAE,CAAE,GAAGR,GAAG,CAACQ,CAAC,GAAG,EAAE,CAAE;EAClF;EACA,IAAIT,CAAC,GAAG,CAAC,KAAKO,KAAK,CAAChD,MAAM,EAAE;IAC1B,MAAMkD,CAAC,GAAGF,KAAK,CAACP,CAAC,CAAC,IAAK,EAAE;IACzBQ,GAAG,IAAIP,GAAG,CAACQ,CAAC,IAAI,EAAE,CAAC,GAAIR,GAAG,CAAEQ,CAAC,IAAI,EAAE,GAAI,EAAE,CAAE,GAAG,IAAI;EACpD,CAAC,MAAM,IAAIT,CAAC,GAAG,CAAC,KAAKO,KAAK,CAAChD,MAAM,EAAE;IACjC,MAAMkD,CAAC,GAAIF,KAAK,CAACP,CAAC,CAAC,IAAK,EAAE,GAAKO,KAAK,CAACP,CAAC,GAAG,CAAC,CAAC,IAAK,CAAE;IAClDQ,GAAG,IAAIP,GAAG,CAACQ,CAAC,IAAI,EAAE,CAAC,GAAIR,GAAG,CAAEQ,CAAC,IAAI,EAAE,GAAI,EAAE,CAAE,GAAGR,GAAG,CAAEQ,CAAC,IAAI,CAAC,GAAI,EAAE,CAAE,GAAG,GAAG;EACzE;EACA,OAAOD,GAAG;AACZ;AAEO,SAASE,UAAUA,CAACC,IAAY,EAAc;EACnD,MAAMC,KAAK,GAAGD,IAAI,CAACE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EACzD,IAAID,KAAK,CAACrD,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;IAAC,MAAM,IAAIuD,KAAK,CAAC,gBAAgB,CAAC;EAAC;EAC/D,MAAMN,GAAG,GAAG,IAAItD,UAAU,CAAC6D,IAAI,CAACC,KAAK,CAAEJ,KAAK,CAACrD,MAAM,GAAG,CAAC,GAAI,CAAC,CAAC,CAAC;EAC9D,IAAI0D,GAAG,GAAG,CAAC;EACX,IAAIC,IAAI,GAAG,CAAC;EACZ,IAAIC,GAAG,GAAG,CAAC;EACX,KAAK,IAAInB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,KAAK,CAACrD,MAAM,EAAEyC,CAAC,EAAE,EAAE;IACrC,MAAMoB,IAAI,GAAGR,KAAK,CAACP,UAAU,CAACL,CAAC,CAAC;IAChC,MAAMqB,KAAK,GAAGD,IAAI,GAAG,GAAG,GAAGlB,SAAS,CAACkB,IAAI,CAAC,GAAI,CAAC,CAAC;IAChD,IAAIC,KAAK,GAAG,CAAC,EAAE;MAAC,MAAM,IAAIP,KAAK,CAAC,gBAAgB,CAAC;IAAC;IAClDG,GAAG,GAAIA,GAAG,IAAI,CAAC,GAAII,KAAK;IACxBH,IAAI,IAAI,CAAC;IACT,IAAIA,IAAI,IAAI,CAAC,EAAE;MACbA,IAAI,IAAI,CAAC;MACTV,GAAG,CAACW,GAAG,EAAE,CAAC,GAAIF,GAAG,IAAIC,IAAI,GAAI,IAAI;IACnC;EACF;EACA,OAAOV,GAAG;AACZ;AAEO,SAASc,KAAKA,CAACf,KAAiB,EAAU;EAC/C,OAAOgB,KAAK,CAACC,IAAI,CAACjB,KAAK,EAAGT,CAAC,IAAKA,CAAC,CAAC2B,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;AAC3E;AAEO,SAASC,SAASA,CAACC,GAAW,EAAEC,GAAW,EAAU;EAC1D,MAAMvB,KAAK,GAAG,IAAAwB,kBAAW,EAAC,CAAC,CAAC;EAC5B,MAAMtB,CAAC,GAAG,IAAIuB,QAAQ,CAACzB,KAAK,CAAC0B,MAAM,EAAE1B,KAAK,CAAC2B,UAAU,EAAE,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC,CAAC;EACtE,OAAON,GAAG,GAAIpB,CAAC,IAAIqB,GAAG,GAAGD,GAAG,GAAG,CAAC,CAAE;AACpC;AAEO,SAASO,WAAWA,CAAC7B,KAAiB,EAAU;EACrD,MAAM8B,MAAgB,GAAG,EAAE;EAC3B,IAAIC,KAAe,GAAG,EAAE;EACxB,MAAMC,IAAI,GAAIC,IAAY,IAAK;IAC7BF,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC;IAChB,IAAIF,KAAK,CAAC/E,MAAM,IAAI,IAAI,EAAE;MACxB8E,MAAM,CAACE,IAAI,CAACE,MAAM,CAACC,YAAY,CAACC,KAAK,CAAC,IAAI,EAAEL,KAAK,CAAC,CAAC;MACnDA,KAAK,GAAG,EAAE;IACZ;EACF,CAAC;EAED,IAAItC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGO,KAAK,CAAChD,MAAM,EAAE;IACvB,MAAMuC,CAAC,GAAGS,KAAK,CAACP,CAAC,EAAE,CAAE;IACrB,IAAIF,CAAC,GAAG,IAAI,EAAE;MACZyC,IAAI,CAACzC,CAAC,CAAC;MACP;IACF;IACA,MAAM8C,KAAK,GAAG9C,CAAC,IAAI,IAAI,IAAIA,CAAC,GAAG,IAAI,GAAG,CAAC,GAAGA,CAAC,IAAI,IAAI,GAAG,CAAC,GAAGA,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5E,IAAIsB,IAAI,GAAGwB,KAAK,KAAK,CAAC,GAAG9C,CAAC,GAAG,IAAI,GAAG8C,KAAK,KAAK,CAAC,GAAG9C,CAAC,GAAG,IAAI,GAAGA,CAAC,GAAG,IAAI;IACrE,IAAI+C,KAAK,GAAGD,KAAK,GAAG,CAAC,IAAI9C,CAAC,GAAG,IAAI,IAAIE,CAAC,GAAG4C,KAAK,IAAIrC,KAAK,CAAChD,MAAM;IAC9D,KAAK,IAAIuF,CAAC,GAAG,CAAC,EAAED,KAAK,IAAIC,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAAE;MACvC,MAAMC,IAAI,GAAGxC,KAAK,CAACP,CAAC,GAAG8C,CAAC,CAAE;MAC1B,IAAI,CAACC,IAAI,GAAG,IAAI,MAAM,IAAI,EAAE;QAACF,KAAK,GAAG,KAAK;MAAC;MAC3CzB,IAAI,GAAIA,IAAI,IAAI,CAAC,GAAK2B,IAAI,GAAG,IAAK;IACpC;IACA,IACE,CAACF,KAAK,IACLD,KAAK,KAAK,CAAC,IAAIxB,IAAI,GAAG,KAAM,IAC5BwB,KAAK,KAAK,CAAC,KAAKxB,IAAI,GAAG,OAAO,IAAIA,IAAI,GAAG,QAAQ,CAAE,IACnDA,IAAI,IAAI,MAAM,IAAIA,IAAI,IAAI,MAAO,EAClC;MACAmB,IAAI,CAAC,MAAM,CAAC;MACZ;IACF;IACAvC,CAAC,IAAI4C,KAAK;IACV,IAAIxB,IAAI,GAAG,MAAM,EAAE;MACjBA,IAAI,IAAI,OAAO;MACfmB,IAAI,CAAC,MAAM,GAAInB,IAAI,IAAI,EAAG,CAAC;MAC3BmB,IAAI,CAAC,MAAM,GAAInB,IAAI,GAAG,KAAM,CAAC;IAC/B,CAAC,MAAM;MACLmB,IAAI,CAACnB,IAAI,CAAC;IACZ;EACF;EACA,IAAIkB,KAAK,CAAC/E,MAAM,EAAE;IAAC8E,MAAM,CAACE,IAAI,CAACE,MAAM,CAACC,YAAY,CAACC,KAAK,CAAC,IAAI,EAAEL,KAAK,CAAC,CAAC;EAAC;EACvE,OAAOD,MAAM,CAACV,IAAI,CAAC,EAAE,CAAC;AACxB","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__resetDeviceStoreForTests = void 0;
7
+ exports.openDeviceStore = openDeviceStore;
8
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
9
+ var _secureKeyValue = require("../helpers/secureKeyValue");
10
+ var _persistCrypto = require("../helpers/persistCrypto");
11
+ var _crypto = require("./crypto");
12
+ var _store = require("./store");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const MMKV_INSTANCE_ID = 'ethora-omemo';
15
+ const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
16
+ const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
17
+ const createMmkvBackend = async () => {
18
+ let MMKV;
19
+ try {
20
+ MMKV = require('react-native-mmkv').MMKV;
21
+ } catch {
22
+ return null;
23
+ }
24
+ if (typeof MMKV !== 'function') {
25
+ return null;
26
+ }
27
+ const key = await (0, _secureKeyValue.secureGetOrCreate)(MMKV_KEY_STORE_KEY, () => (0, _crypto.toHex)((0, _crypto.randomBytes)(8)));
28
+ if (!key) {
29
+ throw new Error('e2ee: the device store key was not kept');
30
+ }
31
+ try {
32
+ const storage = new MMKV({
33
+ id: MMKV_INSTANCE_ID,
34
+ encryptionKey: key.value
35
+ });
36
+ if (key.created) {
37
+ storage.clearAll();
38
+ }
39
+ return {
40
+ getItem: async key => storage.getString(key) ?? null,
41
+ setItem: async (key, value) => void storage.set(key, value),
42
+ removeItem: async key => void storage.delete(key)
43
+ };
44
+ } catch (e) {
45
+ console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
46
+ return null;
47
+ }
48
+ };
49
+ const asyncStorageBackend = {
50
+ getItem: async key => {
51
+ const raw = await _asyncStorage.default.getItem(ASYNC_STORAGE_PREFIX + key);
52
+ return raw ? (0, _persistCrypto.decryptFromPersist)(raw) : null;
53
+ },
54
+ setItem: async (key, value) => _asyncStorage.default.setItem(ASYNC_STORAGE_PREFIX + key, await (0, _persistCrypto.encryptForPersist)(value)),
55
+ removeItem: key => _asyncStorage.default.removeItem(ASYNC_STORAGE_PREFIX + key)
56
+ };
57
+ const createAsyncStorageBackend = async () => {
58
+ if (!(await (0, _persistCrypto.isPersistKeyKept)())) {
59
+ throw new Error('e2ee: the storage cipher key was not kept');
60
+ }
61
+ return asyncStorageBackend;
62
+ };
63
+ let backendPromise = null;
64
+ const getBackend = () => {
65
+ if (!backendPromise) {
66
+ const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
67
+ backendPromise = opening;
68
+ // A refusal is not cached: the next start may find the store usable.
69
+ opening.catch(() => {
70
+ if (backendPromise === opening) {
71
+ backendPromise = null;
72
+ }
73
+ });
74
+ }
75
+ return backendPromise;
76
+ };
77
+ async function openDeviceStore(jid) {
78
+ return (0, _store.createStore)(await getBackend(), jid);
79
+ }
80
+ const __resetDeviceStoreForTests = () => {
81
+ backendPromise = null;
82
+ };
83
+ exports.__resetDeviceStoreForTests = __resetDeviceStoreForTests;
84
+ //# sourceMappingURL=deviceStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureKeyValue","_persistCrypto","_crypto","_store","e","__esModule","default","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","key","secureGetOrCreate","toHex","randomBytes","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","console","warn","asyncStorageBackend","raw","AsyncStorage","decryptFromPersist","encryptForPersist","createAsyncStorageBackend","isPersistKeyKept","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","createStore","__resetDeviceStoreForTests","exports"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decryptLargePayload = decryptLargePayload;
7
+ exports.encryptLargePayload = encryptLargePayload;
8
+ var _aes = require("@noble/ciphers/aes.js");
9
+ var _hmac = require("@noble/hashes/hmac.js");
10
+ var _sha = require("@noble/hashes/sha2.js");
11
+ var _crypto = require("./crypto");
12
+ const SLICE = 32 * 1024;
13
+ const BLOCK = 16;
14
+ const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
15
+ function payloadKeys(key) {
16
+ const km = (0, _crypto.hkdfSha256)(key, undefined, 'OMEMO Payload', 80);
17
+ return {
18
+ enc: km.slice(0, 32),
19
+ auth: km.slice(32, 64),
20
+ iv: km.slice(64)
21
+ };
22
+ }
23
+ async function encryptLargePayload(plaintext, onProgress) {
24
+ const key = (0, _crypto.randomBytes)(32);
25
+ const {
26
+ enc,
27
+ auth,
28
+ iv
29
+ } = payloadKeys(key);
30
+ const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
31
+ const mac = _hmac.hmac.create(_sha.sha256, auth);
32
+ let offset = 0;
33
+ let chain = iv;
34
+ while (plaintext.length - offset > SLICE) {
35
+ const out = payload.subarray(offset, offset + SLICE);
36
+ out.set((0, _aes.cbc)(enc, chain, {
37
+ disablePadding: true
38
+ }).encrypt(plaintext.subarray(offset, offset + SLICE)));
39
+ mac.update(out);
40
+ chain = out.slice(SLICE - BLOCK);
41
+ offset += SLICE;
42
+ onProgress?.(offset / plaintext.length);
43
+ await yieldToUi();
44
+ }
45
+ const last = (0, _aes.cbc)(enc, chain).encrypt(plaintext.subarray(offset));
46
+ payload.set(last, offset);
47
+ mac.update(last);
48
+ onProgress?.(1);
49
+ return {
50
+ keyMaterial: (0, _crypto.concatBytes)(key, mac.digest().slice(0, 16)),
51
+ payload
52
+ };
53
+ }
54
+ async function decryptLargePayload(keyMaterial, payload, onProgress) {
55
+ if (keyMaterial.length !== 48) {
56
+ throw new Error('Invalid key material');
57
+ }
58
+ if (payload.length === 0 || payload.length % BLOCK !== 0) {
59
+ throw new Error('Payload authentication failed');
60
+ }
61
+ const {
62
+ enc,
63
+ auth,
64
+ iv
65
+ } = payloadKeys(keyMaterial.slice(0, 32));
66
+ const mac = _hmac.hmac.create(_sha.sha256, auth);
67
+ for (let offset = 0; offset < payload.length; offset += SLICE) {
68
+ mac.update(payload.subarray(offset, offset + SLICE));
69
+ onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
70
+ if (offset + SLICE < payload.length) {
71
+ await yieldToUi();
72
+ }
73
+ }
74
+ if (!(0, _crypto.bytesEqual)(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
75
+ throw new Error('Payload authentication failed');
76
+ }
77
+ const plaintext = new Uint8Array(payload.length);
78
+ let offset = 0;
79
+ let chain = iv;
80
+ while (payload.length - offset > SLICE) {
81
+ const part = payload.subarray(offset, offset + SLICE);
82
+ plaintext.set((0, _aes.cbc)(enc, chain, {
83
+ disablePadding: true
84
+ }).decrypt(part), offset);
85
+ chain = part.slice(SLICE - BLOCK);
86
+ offset += SLICE;
87
+ onProgress?.(0.65 + offset / payload.length * 0.35);
88
+ await yieldToUi();
89
+ }
90
+ const last = (0, _aes.cbc)(enc, chain).decrypt(payload.subarray(offset));
91
+ plaintext.set(last, offset);
92
+ onProgress?.(1);
93
+ return plaintext.subarray(0, offset + last.length);
94
+ }
95
+ //# sourceMappingURL=fileCipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_aes","require","_hmac","_sha","_crypto","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","hkdfSha256","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","randomBytes","payload","Uint8Array","Math","floor","length","mac","hmac","create","sha256","offset","chain","out","subarray","set","cbc","disablePadding","encrypt","update","last","keyMaterial","concatBytes","digest","decryptLargePayload","Error","min","bytesEqual","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decodeFileEnvelope = decodeFileEnvelope;
7
+ exports.encodeFileEnvelope = encodeFileEnvelope;
8
+ exports.openSealedFile = openSealedFile;
9
+ Object.defineProperty(exports, "parseSealedMediaBody", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _sealedBody.parseSealedMediaBody;
13
+ }
14
+ });
15
+ exports.sealFileForUpload = sealFileForUpload;
16
+ var _crypto = require("./crypto");
17
+ var _fileCipher = require("./fileCipher");
18
+ var _sealedBody = require("./sealedBody");
19
+ const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
20
+ const VERSION = 1;
21
+ const HEADER_OFFSET = MAGIC.length + 1 + 4;
22
+ function encodeFileEnvelope(meta, bytes) {
23
+ const header = (0, _crypto.utf8ToBytes)(JSON.stringify({
24
+ mimetype: meta.mimetype,
25
+ originalname: meta.originalname,
26
+ size: meta.size
27
+ }));
28
+ const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
29
+ out.set(MAGIC, 0);
30
+ out[MAGIC.length] = VERSION;
31
+ new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
32
+ out.set(header, HEADER_OFFSET);
33
+ out.set(bytes, HEADER_OFFSET + header.length);
34
+ return out;
35
+ }
36
+ function decodeFileEnvelope(envelope) {
37
+ if (envelope.length < HEADER_OFFSET) {
38
+ throw new Error('file_envelope_truncated');
39
+ }
40
+ for (let i = 0; i < MAGIC.length; i++) {
41
+ if (envelope[i] !== MAGIC[i]) {
42
+ throw new Error('file_envelope_bad_magic');
43
+ }
44
+ }
45
+ const version = envelope[MAGIC.length];
46
+ if (version !== VERSION) {
47
+ throw new Error(`file_envelope_unsupported_version_${version}`);
48
+ }
49
+ const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
50
+ const bodyStart = HEADER_OFFSET + headerLen;
51
+ if (bodyStart > envelope.length) {
52
+ throw new Error('file_envelope_truncated');
53
+ }
54
+ const meta = JSON.parse((0, _crypto.bytesToUtf8)(envelope.subarray(HEADER_OFFSET, bodyStart)));
55
+ return {
56
+ meta,
57
+ bytes: envelope.subarray(bodyStart)
58
+ };
59
+ }
60
+ async function sealFileForUpload(file, onProgress) {
61
+ const envelope = encodeFileEnvelope({
62
+ mimetype: file.type || 'application/octet-stream',
63
+ originalname: file.name || 'blob',
64
+ size: file.bytes.length
65
+ }, file.bytes);
66
+ const {
67
+ keyMaterial,
68
+ payload
69
+ } = await (0, _fileCipher.encryptLargePayload)(envelope, onProgress);
70
+ return {
71
+ ciphertext: payload,
72
+ keyMaterial: (0, _crypto.toBase64)(keyMaterial),
73
+ filename: (0, _crypto.toHex)((0, _crypto.randomBytes)(16))
74
+ };
75
+ }
76
+ async function openSealedFile(ciphertext, keyMaterial, onProgress) {
77
+ return decodeFileEnvelope(await (0, _fileCipher.decryptLargePayload)((0, _crypto.fromBase64)(keyMaterial), ciphertext, onProgress));
78
+ }
79
+ //# sourceMappingURL=fileEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_crypto","require","_fileCipher","_sealedBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","utf8ToBytes","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","bytesToUtf8","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","encryptLargePayload","ciphertext","toBase64","filename","toHex","randomBytes","openSealedFile","decryptLargePayload","fromBase64"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}