@ethora/chat-component-rn 26.8.6 → 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 (409) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +40 -0
  3. package/lib/commonjs/assets/icons.js +4 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/ChatHeader.js +28 -6
  6. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatRoom.js +9 -1
  8. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
  10. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  11. package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
  12. package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
  13. package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
  14. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +5 -0
  16. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
  18. package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
  19. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +2 -1
  20. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  21. package/lib/commonjs/components/MessageBubble/Message.js +66 -6
  22. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  23. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +2 -1
  24. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  25. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
  26. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  27. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +159 -16
  28. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  29. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
  30. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  31. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +29 -6
  32. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  33. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +5 -1
  34. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  35. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +32 -9
  36. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  37. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
  38. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  39. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  40. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  41. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
  42. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  43. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  44. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  45. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
  46. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  47. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  48. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  49. package/lib/commonjs/components/Thread/ThreadWrapper.js +53 -45
  50. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  51. package/lib/commonjs/components/UsersList/UsersList.js +2 -1
  52. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  53. package/lib/commonjs/components/styled/SendInput.js +4 -2
  54. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  55. package/lib/commonjs/e2ee/crypto.js +207 -0
  56. package/lib/commonjs/e2ee/crypto.js.map +1 -0
  57. package/lib/commonjs/e2ee/deviceStore.js +84 -0
  58. package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
  59. package/lib/commonjs/e2ee/fileCipher.js +95 -0
  60. package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
  61. package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
  62. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
  63. package/lib/commonjs/e2ee/index.js +210 -0
  64. package/lib/commonjs/e2ee/index.js.map +1 -0
  65. package/lib/commonjs/e2ee/limits.js +9 -0
  66. package/lib/commonjs/e2ee/limits.js.map +1 -0
  67. package/lib/commonjs/e2ee/ns.js +8 -0
  68. package/lib/commonjs/e2ee/ns.js.map +1 -0
  69. package/lib/commonjs/e2ee/omemo.js +622 -0
  70. package/lib/commonjs/e2ee/omemo.js.map +1 -0
  71. package/lib/commonjs/e2ee/protobuf.js +149 -0
  72. package/lib/commonjs/e2ee/protobuf.js.map +1 -0
  73. package/lib/commonjs/e2ee/ratchet.js +238 -0
  74. package/lib/commonjs/e2ee/ratchet.js.map +1 -0
  75. package/lib/commonjs/e2ee/sealedBody.js +23 -0
  76. package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
  77. package/lib/commonjs/e2ee/sealedFiles.js +174 -0
  78. package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
  79. package/lib/commonjs/e2ee/send.js +54 -0
  80. package/lib/commonjs/e2ee/send.js.map +1 -0
  81. package/lib/commonjs/e2ee/stanza.js +114 -0
  82. package/lib/commonjs/e2ee/stanza.js.map +1 -0
  83. package/lib/commonjs/e2ee/store.js +43 -0
  84. package/lib/commonjs/e2ee/store.js.map +1 -0
  85. package/lib/commonjs/helpers/accountName.js +23 -0
  86. package/lib/commonjs/helpers/accountName.js.map +1 -0
  87. package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
  88. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  89. package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
  90. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  91. package/lib/commonjs/helpers/displayName.js +16 -0
  92. package/lib/commonjs/helpers/displayName.js.map +1 -0
  93. package/lib/commonjs/helpers/persistCrypto.js +5 -0
  94. package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
  95. package/lib/commonjs/helpers/secureKeyValue.js +20 -0
  96. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
  97. package/lib/commonjs/helpers/videoCache.js +136 -0
  98. package/lib/commonjs/helpers/videoCache.js.map +1 -0
  99. package/lib/commonjs/hooks/useLogout.js +8 -0
  100. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  101. package/lib/commonjs/hooks/useSendMessage.js +71 -7
  102. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  103. package/lib/commonjs/i18n/strings.js +180 -0
  104. package/lib/commonjs/i18n/strings.js.map +1 -1
  105. package/lib/commonjs/main.js +13 -0
  106. package/lib/commonjs/main.js.map +1 -1
  107. package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
  108. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  109. package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
  110. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  111. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +40 -0
  112. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  113. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  114. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  115. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  116. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  117. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  118. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  119. package/lib/commonjs/networking/xmppClient.js +6 -0
  120. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  121. package/lib/commonjs/roomStore/persistBackend.js +9 -12
  122. package/lib/commonjs/roomStore/persistBackend.js.map +1 -1
  123. package/lib/commonjs/roomStore/persistence.js +8 -1
  124. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  125. package/lib/commonjs/version.js +1 -1
  126. package/lib/module/assets/icons.js +3 -1
  127. package/lib/module/assets/icons.js.map +1 -1
  128. package/lib/module/components/MainComponents/ChatHeader.js +29 -7
  129. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  130. package/lib/module/components/MainComponents/ChatRoom.js +9 -1
  131. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  132. package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
  133. package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  134. package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
  135. package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
  136. package/lib/module/components/MainComponents/MediaMessage.js +7 -0
  137. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  138. package/lib/module/components/MainComponents/ReduxWrapper.js +5 -0
  139. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  140. package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
  141. package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
  142. package/lib/module/components/MessageBubble/BottomReplyContainer.js +2 -1
  143. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  144. package/lib/module/components/MessageBubble/Message.js +69 -9
  145. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  146. package/lib/module/components/MessageBubble/MessageInteractions.js +2 -1
  147. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  148. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
  149. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  150. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +161 -18
  151. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  152. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
  153. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  154. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +32 -8
  155. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  156. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +4 -0
  157. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  158. package/lib/module/components/RoomComponents/ChatRoomItem.js +32 -9
  159. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  160. package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
  161. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  162. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  163. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  164. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
  165. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  166. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  167. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  168. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
  169. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  170. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  171. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  172. package/lib/module/components/Thread/ThreadWrapper.js +54 -46
  173. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  174. package/lib/module/components/UsersList/UsersList.js +2 -1
  175. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  176. package/lib/module/components/styled/SendInput.js +4 -2
  177. package/lib/module/components/styled/SendInput.js.map +1 -1
  178. package/lib/module/e2ee/crypto.js +170 -0
  179. package/lib/module/e2ee/crypto.js.map +1 -0
  180. package/lib/module/e2ee/deviceStore.js +77 -0
  181. package/lib/module/e2ee/deviceStore.js.map +1 -0
  182. package/lib/module/e2ee/fileCipher.js +90 -0
  183. package/lib/module/e2ee/fileCipher.js.map +1 -0
  184. package/lib/module/e2ee/fileEnvelope.js +66 -0
  185. package/lib/module/e2ee/fileEnvelope.js.map +1 -0
  186. package/lib/module/e2ee/index.js +185 -0
  187. package/lib/module/e2ee/index.js.map +1 -0
  188. package/lib/module/e2ee/limits.js +5 -0
  189. package/lib/module/e2ee/limits.js.map +1 -0
  190. package/lib/module/e2ee/ns.js +4 -0
  191. package/lib/module/e2ee/ns.js.map +1 -0
  192. package/lib/module/e2ee/omemo.js +610 -0
  193. package/lib/module/e2ee/omemo.js.map +1 -0
  194. package/lib/module/e2ee/protobuf.js +140 -0
  195. package/lib/module/e2ee/protobuf.js.map +1 -0
  196. package/lib/module/e2ee/ratchet.js +228 -0
  197. package/lib/module/e2ee/ratchet.js.map +1 -0
  198. package/lib/module/e2ee/sealedBody.js +19 -0
  199. package/lib/module/e2ee/sealedBody.js.map +1 -0
  200. package/lib/module/e2ee/sealedFiles.js +154 -0
  201. package/lib/module/e2ee/sealedFiles.js.map +1 -0
  202. package/lib/module/e2ee/send.js +48 -0
  203. package/lib/module/e2ee/send.js.map +1 -0
  204. package/lib/module/e2ee/stanza.js +107 -0
  205. package/lib/module/e2ee/stanza.js.map +1 -0
  206. package/lib/module/e2ee/store.js +35 -0
  207. package/lib/module/e2ee/store.js.map +1 -0
  208. package/lib/module/helpers/accountName.js +18 -0
  209. package/lib/module/helpers/accountName.js.map +1 -0
  210. package/lib/module/helpers/createMessageFromXml.js +19 -4
  211. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  212. package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
  213. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  214. package/lib/module/helpers/displayName.js +11 -0
  215. package/lib/module/helpers/displayName.js.map +1 -0
  216. package/lib/module/helpers/persistCrypto.js +4 -0
  217. package/lib/module/helpers/persistCrypto.js.map +1 -1
  218. package/lib/module/helpers/secureKeyValue.js +19 -0
  219. package/lib/module/helpers/secureKeyValue.js.map +1 -1
  220. package/lib/module/helpers/videoCache.js +125 -0
  221. package/lib/module/helpers/videoCache.js.map +1 -0
  222. package/lib/module/hooks/useLogout.js +8 -0
  223. package/lib/module/hooks/useLogout.js.map +1 -1
  224. package/lib/module/hooks/useSendMessage.js +71 -7
  225. package/lib/module/hooks/useSendMessage.js.map +1 -1
  226. package/lib/module/i18n/strings.js +180 -0
  227. package/lib/module/i18n/strings.js.map +1 -1
  228. package/lib/module/main.js +1 -0
  229. package/lib/module/main.js.map +1 -1
  230. package/lib/module/networking/api-requests/auth.api.js +4 -1
  231. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  232. package/lib/module/networking/api-requests/rooms.api.js +109 -18
  233. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  234. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +38 -0
  235. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  236. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  237. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  238. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  239. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  240. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  241. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  242. package/lib/module/networking/xmppClient.js +6 -0
  243. package/lib/module/networking/xmppClient.js.map +1 -1
  244. package/lib/module/roomStore/persistBackend.js +10 -13
  245. package/lib/module/roomStore/persistBackend.js.map +1 -1
  246. package/lib/module/roomStore/persistence.js +8 -1
  247. package/lib/module/roomStore/persistence.js.map +1 -1
  248. package/lib/module/version.js +1 -1
  249. package/lib/typescript/assets/icons.d.ts +8 -0
  250. package/lib/typescript/assets/icons.d.ts.map +1 -1
  251. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  252. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  253. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts +4 -0
  254. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
  255. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
  256. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
  257. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  258. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  259. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
  260. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
  261. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  262. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  263. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  264. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  265. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  266. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  267. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  268. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  269. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  270. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  271. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  272. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
  273. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
  274. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  275. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  276. package/lib/typescript/components/styled/SendInput.d.ts +1 -0
  277. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  278. package/lib/typescript/e2ee/crypto.d.ts +28 -0
  279. package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
  280. package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
  281. package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
  282. package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
  283. package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
  284. package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
  285. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
  286. package/lib/typescript/e2ee/index.d.ts +23 -0
  287. package/lib/typescript/e2ee/index.d.ts.map +1 -0
  288. package/lib/typescript/e2ee/limits.d.ts +3 -0
  289. package/lib/typescript/e2ee/limits.d.ts.map +1 -0
  290. package/lib/typescript/e2ee/ns.d.ts +2 -0
  291. package/lib/typescript/e2ee/ns.d.ts.map +1 -0
  292. package/lib/typescript/e2ee/omemo.d.ts +64 -0
  293. package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
  294. package/lib/typescript/e2ee/protobuf.d.ts +25 -0
  295. package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
  296. package/lib/typescript/e2ee/ratchet.d.ts +39 -0
  297. package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
  298. package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
  299. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
  300. package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
  301. package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
  302. package/lib/typescript/e2ee/send.d.ts +6 -0
  303. package/lib/typescript/e2ee/send.d.ts.map +1 -0
  304. package/lib/typescript/e2ee/stanza.d.ts +8 -0
  305. package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
  306. package/lib/typescript/e2ee/store.d.ts +16 -0
  307. package/lib/typescript/e2ee/store.d.ts.map +1 -0
  308. package/lib/typescript/helpers/accountName.d.ts +7 -0
  309. package/lib/typescript/helpers/accountName.d.ts.map +1 -0
  310. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  311. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  312. package/lib/typescript/helpers/displayName.d.ts +2 -0
  313. package/lib/typescript/helpers/displayName.d.ts.map +1 -0
  314. package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
  315. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
  316. package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
  317. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
  318. package/lib/typescript/helpers/videoCache.d.ts +19 -0
  319. package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
  320. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  321. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  322. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  323. package/lib/typescript/main.d.ts +2 -0
  324. package/lib/typescript/main.d.ts.map +1 -1
  325. package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
  326. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  327. package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
  328. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  329. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
  330. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  331. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  332. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  333. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  334. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  335. package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -1
  336. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  337. package/lib/typescript/types/models/message.model.d.ts +5 -0
  338. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  339. package/lib/typescript/types/models/room.model.d.ts +5 -0
  340. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  341. package/lib/typescript/types/types.d.ts +4 -0
  342. package/lib/typescript/types/types.d.ts.map +1 -1
  343. package/lib/typescript/version.d.ts +1 -1
  344. package/package.json +8 -4
  345. package/src/assets/icons.tsx +27 -0
  346. package/src/components/MainComponents/ChatHeader.tsx +30 -9
  347. package/src/components/MainComponents/ChatRoom.tsx +11 -1
  348. package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
  349. package/src/components/MainComponents/EncryptionCard.tsx +287 -0
  350. package/src/components/MainComponents/MediaMessage.tsx +5 -0
  351. package/src/components/MainComponents/ReduxWrapper.tsx +5 -0
  352. package/src/components/MainComponents/SealedAttachment.tsx +251 -0
  353. package/src/components/MessageBubble/BottomReplyContainer.tsx +2 -1
  354. package/src/components/MessageBubble/Message.tsx +96 -6
  355. package/src/components/MessageBubble/MessageInteractions.tsx +2 -3
  356. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +7 -4
  357. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +181 -35
  358. package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
  359. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +53 -8
  360. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +5 -0
  361. package/src/components/RoomComponents/ChatRoomItem.tsx +23 -11
  362. package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
  363. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
  364. package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
  365. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
  366. package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
  367. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
  368. package/src/components/Thread/ThreadWrapper.tsx +13 -0
  369. package/src/components/UsersList/UsersList.tsx +2 -1
  370. package/src/components/styled/SendInput.tsx +5 -2
  371. package/src/e2ee/crypto.ts +194 -0
  372. package/src/e2ee/deviceStore.ts +80 -0
  373. package/src/e2ee/fileCipher.ts +86 -0
  374. package/src/e2ee/fileEnvelope.ts +115 -0
  375. package/src/e2ee/index.ts +192 -0
  376. package/src/e2ee/limits.ts +2 -0
  377. package/src/e2ee/ns.ts +1 -0
  378. package/src/e2ee/omemo.ts +802 -0
  379. package/src/e2ee/protobuf.ts +188 -0
  380. package/src/e2ee/ratchet.ts +271 -0
  381. package/src/e2ee/sealedBody.ts +17 -0
  382. package/src/e2ee/sealedFiles.ts +181 -0
  383. package/src/e2ee/send.ts +70 -0
  384. package/src/e2ee/stanza.ts +133 -0
  385. package/src/e2ee/store.ts +54 -0
  386. package/src/helpers/accountName.ts +15 -0
  387. package/src/helpers/createMessageFromXml.ts +31 -6
  388. package/src/helpers/createUserNameFromSetUser.ts +2 -1
  389. package/src/helpers/displayName.ts +9 -0
  390. package/src/helpers/persistCrypto.ts +5 -0
  391. package/src/helpers/secureKeyValue.ts +15 -0
  392. package/src/helpers/videoCache.ts +138 -0
  393. package/src/hooks/useLogout.tsx +9 -0
  394. package/src/hooks/useSendMessage.tsx +71 -5
  395. package/src/i18n/strings.ts +180 -0
  396. package/src/main.ts +2 -0
  397. package/src/networking/api-requests/auth.api.ts +9 -1
  398. package/src/networking/api-requests/rooms.api.ts +121 -18
  399. package/src/networking/xmpp/handleStanzas.xmpp.ts +49 -0
  400. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
  401. package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
  402. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
  403. package/src/networking/xmppClient.ts +6 -0
  404. package/src/roomStore/persistBackend.ts +8 -11
  405. package/src/roomStore/persistence.ts +15 -0
  406. package/src/types/models/message.model.ts +5 -0
  407. package/src/types/models/room.model.ts +5 -0
  408. package/src/types/types.ts +4 -0
  409. package/src/version.ts +1 -1
@@ -12,6 +12,8 @@ import { enqueueOutboundSend, removeOutboundSend } from '../networking/outboundQ
12
12
  import { store } from '../roomStore';
13
13
  import { getGlobalXmppClient } from '../utils/clientRegistry';
14
14
  import { useEventHandlers } from './useEventHandlers';
15
+ import { canEditMessage, canSendMediaToRoom, canSendToRoom } from '../e2ee';
16
+ import { shouldEncrypt } from '../e2ee/send';
15
17
  // Watchdog: if a message stays "pending" (no server echo) for this
16
18
  // long after the optimistic dispatch, mark it failed so the bubble
17
19
  // flips out of the "sending..." state. Covers the silent-failure
@@ -79,6 +81,14 @@ export const useSendMessage = _configOverride => {
79
81
  } = useEventHandlers(config);
80
82
  const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage, existingId) => {
81
83
  if (editAction?.isEdit) {
84
+ const edited = reduxStore.getState().rooms?.rooms?.[editAction.roomJid]?.messages?.find(m => m.id === editAction.messageId);
85
+ if (edited && !canEditMessage(edited)) {
86
+ console.warn('edit not sent: the message was encrypted');
87
+ dispatch(setEditAction({
88
+ isEdit: false
89
+ }));
90
+ return;
91
+ }
82
92
  try {
83
93
  client?.editMessageStanza(editAction.roomJid, editAction.messageId, message);
84
94
  handleMessageEdited({
@@ -100,6 +110,10 @@ export const useSendMessage = _configOverride => {
100
110
  }));
101
111
  return;
102
112
  }
113
+ if (!canSendToRoom(activeRoomJID)) {
114
+ console.warn('message not sent: room is end-to-end encrypted');
115
+ return;
116
+ }
103
117
 
104
118
  // Critical-send hint to the QoS scheduler.
105
119
  client?.onCriticalSend?.(activeRoomJID);
@@ -279,6 +293,10 @@ export const useSendMessage = _configOverride => {
279
293
  }
280
294
  }, [editAction, client, user, langSource, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
281
295
  const sendMedia = useCallback(async (data, type, activeRoomJID, isReply = false, isChecked = false, mainMessage = '', existingId) => {
296
+ if (!canSendMediaToRoom(activeRoomJID)) {
297
+ console.warn('media not sent: room is end-to-end encrypted');
298
+ return;
299
+ }
282
300
  client?.onCriticalSend?.(activeRoomJID);
283
301
 
284
302
  // Defensive 50 MB guard on every send path (SendInput blocks it at
@@ -408,20 +426,40 @@ export const useSendMessage = _configOverride => {
408
426
  type: data?.type || data?.mimeType || type || 'application/octet-stream',
409
427
  name: data?.name || data?.fileName || `media_${Date.now()}`
410
428
  };
429
+ let sealed;
411
430
  const tryUpload = async () => {
431
+ if (shouldEncrypt(activeRoomJID) && !sealed) {
432
+ const {
433
+ sealPickedFile
434
+ } = require('../e2ee/sealedFiles');
435
+ sealed = await sealPickedFile({
436
+ uri: fileBlob.uri,
437
+ name: fileBlob.name,
438
+ type: fileBlob.type,
439
+ size: typeof data?.size === 'number' ? data.size : undefined
440
+ });
441
+ }
442
+ const part = sealed ? {
443
+ uri: sealed.uri,
444
+ type: 'application/octet-stream',
445
+ name: sealed.name
446
+ } : fileBlob;
447
+ const options = {
448
+ clientEncrypted: !!sealed
449
+ };
412
450
  const fd = new FormData();
413
- fd.append('files', fileBlob);
451
+ fd.append('files', part);
414
452
  try {
415
- return await uploadFileV2(fd, activeRoomJID);
453
+ return await uploadFileV2(fd, activeRoomJID, options);
416
454
  } catch (err) {
417
455
  if (err?.response?.status === 500) {
418
456
  console.warn('upload "files" field returned 500 — retrying with "file" (singular)', {
419
- name: fileBlob.name,
420
- type: fileBlob.type
457
+ name: part.name,
458
+ type: part.type
421
459
  });
422
460
  const fd2 = new FormData();
423
- fd2.append('file', fileBlob);
424
- return await uploadFileV2(fd2, activeRoomJID);
461
+ fd2.append('file', part);
462
+ return await uploadFileV2(fd2, activeRoomJID, options);
425
463
  }
426
464
  throw err;
427
465
  }
@@ -459,8 +497,25 @@ export const useSendMessage = _configOverride => {
459
497
  isReply,
460
498
  mainMessage,
461
499
  isPrivate: item?.isPrivate,
462
- __v: item.__v
500
+ __v: item.__v,
501
+ e2eeKeys: sealed ? [sealed.keyMaterial] : undefined
463
502
  };
503
+ if (sealed) {
504
+ try {
505
+ const {
506
+ rememberOpened
507
+ } = require('../e2ee/sealedFiles');
508
+ await rememberOpened(item.location, {
509
+ uri: fileBlob.uri,
510
+ name: fileBlob.name,
511
+ type: fileBlob.type,
512
+ size: typeof data?.size === 'number' ? data.size : undefined
513
+ });
514
+ } catch (err) {
515
+ console.warn('could not keep the sent attachment', err);
516
+ }
517
+ sealed.dispose();
518
+ }
464
519
  // Stanza id == placeholder id so the MUC echo's outer
465
520
  // <message id="..."> matches xmppId on the placeholder and
466
521
  // insertMessageWithDelimiter merges in place + flips pending.
@@ -510,6 +565,7 @@ export const useSendMessage = _configOverride => {
510
565
  // Upload (or stanza send) threw an explicit error. Clear the
511
566
  // watchdog so it doesn't double-fire `markMessageFailed`.
512
567
  clearTimeout(mediaWatchdog);
568
+ sealed?.dispose();
513
569
  // Surface the real server payload so we can see why the upload
514
570
  // was rejected (axios collapses the message to "Request failed
515
571
  // with status code N"; the actual reason lives in
@@ -595,6 +651,14 @@ export const useSendMessage = _configOverride => {
595
651
  if (!editAction?.isEdit || !editAction.roomJid || !editAction.messageId) {
596
652
  return;
597
653
  }
654
+ const edited = reduxStore.getState().rooms?.rooms?.[editAction.roomJid]?.messages?.find(m => m.id === editAction.messageId);
655
+ if (edited && !canEditMessage(edited)) {
656
+ console.warn('edit not sent: the message was encrypted');
657
+ dispatch(setEditAction({
658
+ isEdit: false
659
+ }));
660
+ return;
661
+ }
598
662
  try {
599
663
  client?.editMessageStanza(editAction.roomJid, editAction.messageId, message);
600
664
  handleMessageEdited({
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileV2","enqueueOutboundSend","removeOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","langSource","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","showInChannel","name","firstName","lastName","trim","disableSentLogic","watchdogExtended","runWatchdog","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","roomHeapSlice","failedMessages","streamOnline","status","console","warn","watchdogTimer","setTimeout","kind","Error","replaySend","c","sendTextMessageWithTranslateTagStanza","enqueuedAt","send","effectiveClient","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","alreadyDelivered","some","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileV2","enqueueOutboundSend","removeOutboundSend","store","getGlobalXmppClient","useEventHandlers","canEditMessage","canSendMediaToRoom","canSendToRoom","shouldEncrypt","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","langSource","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","edited","getState","roomJid","messages","find","m","id","messageId","console","warn","editMessageStanza","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","xmppId","body","date","pending","isDeleted","showInChannel","name","firstName","lastName","trim","disableSentLogic","watchdogExtended","runWatchdog","roomMsgs","stillPending","alreadyFailed","roomHeapSlice","failedMessages","streamOnline","status","watchdogTimer","setTimeout","kind","Error","replaySend","c","sendTextMessageWithTranslateTagStanza","enqueuedAt","send","effectiveClient","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","mediaWatchdog","fileBlob","mimeType","sealed","tryUpload","sealPickedFile","require","undefined","part","options","clientEncrypted","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","e2eeKeys","keyMaterial","rememberOpened","dispose","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","alreadyDelivered","some","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,35 @@ const en = {
25
25
  'date.yesterday': 'Yesterday',
26
26
  'message.deleted': 'Message deleted',
27
27
  'message.edited': 'edited',
28
+ 'e2ee.roomEncrypted': 'End-to-end encrypted',
29
+ 'e2ee.notEncrypted': 'Not encrypted',
30
+ 'e2ee.notEncryptedHint': 'Sent without end-to-end encryption, because no recipient has published a key yet.',
31
+ 'e2ee.devices.title': 'End-to-end encryption',
32
+ 'e2ee.devices.thisDevice': 'This device',
33
+ 'e2ee.devices.otherDevices': 'Other devices',
34
+ 'e2ee.devices.none': 'Has not opened an encrypted chat yet',
35
+ 'e2ee.devices.noneOwn': 'No other devices',
36
+ 'e2ee.devices.unavailable': 'Encryption is not running on this device right now',
37
+ 'e2ee.devices.loading': 'Loading devices…',
38
+ 'e2ee.devices.hint': "Compare a fingerprint with the one shown on the other person's device. Mark it verified only if they match.",
39
+ 'e2ee.trust.verified': 'Verified',
40
+ 'e2ee.trust.blind': 'Not verified',
41
+ 'e2ee.trust.untrusted': 'Not trusted',
42
+ 'e2ee.trust.verify': 'Mark as verified',
43
+ 'e2ee.trust.distrust': 'Stop trusting',
44
+ 'e2ee.trust.reset': 'Clear the mark',
45
+ 'e2ee.trust.prompt': 'Device {id}',
46
+ 'e2ee.devices.copied': 'Fingerprint copied',
47
+ 'e2ee.unsupportedMessage': "Encrypted message. This version of the app can't read it yet.",
48
+ 'e2ee.otherDevice': 'Encrypted for another device',
49
+ 'e2ee.undecryptable': 'Could not decrypt this message',
50
+ 'e2ee.sendUnavailable': "This chat is end-to-end encrypted. Sending from the mobile app isn't available yet.",
51
+ 'media.sealedFile': 'Encrypted file',
52
+ 'media.sealedUnsupported': "Can't be opened in this version of the app yet",
53
+ 'media.sealedUnavailable': 'Encrypted attachment could not be opened',
54
+ 'media.sealedDownload': 'Download and decrypt',
55
+ 'media.sealedDownloading': 'Decrypting…',
56
+ 'media.sealedDownloadFailed': 'Download failed — tap to retry',
28
57
  'message.newMessages': 'New messages',
29
58
  'notification.senderFallback': 'New message',
30
59
  'presence.online': 'online',
@@ -169,6 +198,7 @@ const en = {
169
198
  'field.referralCode': 'Your referral code',
170
199
  'action.logOut': 'Log Out',
171
200
  'action.message': 'Message',
201
+ 'action.encryptedMessage': 'Encrypted message',
172
202
  'action.videoCall': 'Video call',
173
203
  'action.call': 'Call',
174
204
  'action.audioCall': 'Audio call',
@@ -282,6 +312,35 @@ const fr = {
282
312
  'date.yesterday': 'Hier',
283
313
  'message.deleted': 'Message supprimé',
284
314
  'message.edited': 'modifié',
315
+ 'e2ee.roomEncrypted': 'Chiffré de bout en bout',
316
+ 'e2ee.notEncrypted': 'Non chiffré',
317
+ 'e2ee.notEncryptedHint': "Envoyé sans chiffrement de bout en bout, car aucun destinataire n'a encore publié de clé.",
318
+ 'e2ee.devices.title': 'Chiffrement de bout en bout',
319
+ 'e2ee.devices.thisDevice': 'Cet appareil',
320
+ 'e2ee.devices.otherDevices': 'Autres appareils',
321
+ 'e2ee.devices.none': "N'a pas encore ouvert de discussion chiffrée",
322
+ 'e2ee.devices.noneOwn': 'Aucun autre appareil',
323
+ 'e2ee.devices.unavailable': "Le chiffrement n'est pas actif sur cet appareil pour le moment",
324
+ 'e2ee.devices.loading': 'Chargement des appareils…',
325
+ 'e2ee.devices.hint': "Comparez une empreinte avec celle affichée sur l'appareil de l'autre personne. Ne la marquez comme vérifiée que si elles correspondent.",
326
+ 'e2ee.trust.verified': 'Vérifié',
327
+ 'e2ee.trust.blind': 'Non vérifié',
328
+ 'e2ee.trust.untrusted': 'Non fiable',
329
+ 'e2ee.trust.verify': 'Marquer comme vérifié',
330
+ 'e2ee.trust.distrust': 'Ne plus faire confiance',
331
+ 'e2ee.trust.reset': 'Effacer la marque',
332
+ 'e2ee.trust.prompt': 'Appareil {id}',
333
+ 'e2ee.devices.copied': 'Empreinte copiée',
334
+ 'e2ee.unsupportedMessage': "Message chiffré. Cette version de l'application ne peut pas encore le lire.",
335
+ 'e2ee.otherDevice': 'Chiffré pour un autre appareil',
336
+ 'e2ee.undecryptable': 'Impossible de déchiffrer ce message',
337
+ 'e2ee.sendUnavailable': "Cette discussion est chiffrée de bout en bout. L'envoi depuis l'application mobile n'est pas encore disponible.",
338
+ 'media.sealedFile': 'Fichier chiffré',
339
+ 'media.sealedUnsupported': "Ne peut pas encore être ouvert dans cette version de l'application",
340
+ 'media.sealedUnavailable': "La pièce jointe chiffrée n'a pas pu être ouverte",
341
+ 'media.sealedDownload': 'Télécharger et déchiffrer',
342
+ 'media.sealedDownloading': 'Déchiffrement…',
343
+ 'media.sealedDownloadFailed': 'Échec du téléchargement — appuyez pour réessayer',
285
344
  'message.newMessages': 'Nouveaux messages',
286
345
  'notification.senderFallback': 'Nouveau message',
287
346
  'presence.online': 'en ligne',
@@ -426,6 +485,7 @@ const fr = {
426
485
  'field.referralCode': 'Votre code de parrainage',
427
486
  'action.logOut': 'Déconnexion',
428
487
  'action.message': 'Message',
488
+ 'action.encryptedMessage': 'Message chiffré',
429
489
  'action.videoCall': 'Appel vidéo',
430
490
  'action.call': 'Appeler',
431
491
  'action.audioCall': 'Appel audio',
@@ -539,6 +599,35 @@ const es = {
539
599
  'date.yesterday': 'Ayer',
540
600
  'message.deleted': 'Mensaje eliminado',
541
601
  'message.edited': 'editado',
602
+ 'e2ee.roomEncrypted': 'Cifrado de extremo a extremo',
603
+ 'e2ee.notEncrypted': 'Sin cifrar',
604
+ 'e2ee.notEncryptedHint': 'Enviado sin cifrado de extremo a extremo, porque ningún destinatario ha publicado una clave todavía.',
605
+ 'e2ee.devices.title': 'Cifrado de extremo a extremo',
606
+ 'e2ee.devices.thisDevice': 'Este dispositivo',
607
+ 'e2ee.devices.otherDevices': 'Otros dispositivos',
608
+ 'e2ee.devices.none': 'Aún no ha abierto un chat cifrado',
609
+ 'e2ee.devices.noneOwn': 'No hay otros dispositivos',
610
+ 'e2ee.devices.unavailable': 'El cifrado no está activo en este dispositivo en este momento',
611
+ 'e2ee.devices.loading': 'Cargando dispositivos…',
612
+ 'e2ee.devices.hint': 'Compara una huella con la que aparece en el dispositivo de la otra persona. Márcala como verificada solo si coinciden.',
613
+ 'e2ee.trust.verified': 'Verificado',
614
+ 'e2ee.trust.blind': 'Sin verificar',
615
+ 'e2ee.trust.untrusted': 'No fiable',
616
+ 'e2ee.trust.verify': 'Marcar como verificado',
617
+ 'e2ee.trust.distrust': 'Dejar de confiar',
618
+ 'e2ee.trust.reset': 'Quitar la marca',
619
+ 'e2ee.trust.prompt': 'Dispositivo {id}',
620
+ 'e2ee.devices.copied': 'Huella copiada',
621
+ 'e2ee.unsupportedMessage': 'Mensaje cifrado. Esta versión de la aplicación aún no puede leerlo.',
622
+ 'e2ee.otherDevice': 'Cifrado para otro dispositivo',
623
+ 'e2ee.undecryptable': 'No se pudo descifrar este mensaje',
624
+ 'e2ee.sendUnavailable': 'Este chat está cifrado de extremo a extremo. El envío desde la aplicación móvil aún no está disponible.',
625
+ 'media.sealedFile': 'Archivo cifrado',
626
+ 'media.sealedUnsupported': 'Aún no se puede abrir en esta versión de la aplicación',
627
+ 'media.sealedUnavailable': 'No se pudo abrir el archivo adjunto cifrado',
628
+ 'media.sealedDownload': 'Descargar y descifrar',
629
+ 'media.sealedDownloading': 'Descifrando…',
630
+ 'media.sealedDownloadFailed': 'Error de descarga: toca para reintentar',
542
631
  'message.newMessages': 'Nuevos mensajes',
543
632
  'notification.senderFallback': 'Nuevo mensaje',
544
633
  'presence.online': 'en línea',
@@ -683,6 +772,7 @@ const es = {
683
772
  'field.referralCode': 'Tu código de referido',
684
773
  'action.logOut': 'Cerrar sesión',
685
774
  'action.message': 'Mensaje',
775
+ 'action.encryptedMessage': 'Mensaje cifrado',
686
776
  'action.videoCall': 'Videollamada',
687
777
  'action.call': 'Llamar',
688
778
  'action.audioCall': 'Llamada de audio',
@@ -796,6 +886,35 @@ const pt = {
796
886
  'date.yesterday': 'Ontem',
797
887
  'message.deleted': 'Mensagem eliminada',
798
888
  'message.edited': 'editado',
889
+ 'e2ee.roomEncrypted': 'Criptografado de ponta a ponta',
890
+ 'e2ee.notEncrypted': 'Sem criptografia',
891
+ 'e2ee.notEncryptedHint': 'Enviado sem criptografia de ponta a ponta, porque nenhum destinatário publicou uma chave ainda.',
892
+ 'e2ee.devices.title': 'Criptografia de ponta a ponta',
893
+ 'e2ee.devices.thisDevice': 'Este dispositivo',
894
+ 'e2ee.devices.otherDevices': 'Outros dispositivos',
895
+ 'e2ee.devices.none': 'Ainda não abriu uma conversa criptografada',
896
+ 'e2ee.devices.noneOwn': 'Nenhum outro dispositivo',
897
+ 'e2ee.devices.unavailable': 'A criptografia não está ativa neste dispositivo no momento',
898
+ 'e2ee.devices.loading': 'Carregando dispositivos…',
899
+ 'e2ee.devices.hint': 'Compare uma impressão digital com a exibida no dispositivo da outra pessoa. Marque como verificada somente se coincidirem.',
900
+ 'e2ee.trust.verified': 'Verificado',
901
+ 'e2ee.trust.blind': 'Não verificado',
902
+ 'e2ee.trust.untrusted': 'Não confiável',
903
+ 'e2ee.trust.verify': 'Marcar como verificado',
904
+ 'e2ee.trust.distrust': 'Deixar de confiar',
905
+ 'e2ee.trust.reset': 'Remover a marca',
906
+ 'e2ee.trust.prompt': 'Dispositivo {id}',
907
+ 'e2ee.devices.copied': 'Impressão digital copiada',
908
+ 'e2ee.unsupportedMessage': 'Mensagem criptografada. Esta versão do aplicativo ainda não consegue lê-la.',
909
+ 'e2ee.otherDevice': 'Criptografado para outro dispositivo',
910
+ 'e2ee.undecryptable': 'Não foi possível descriptografar esta mensagem',
911
+ 'e2ee.sendUnavailable': 'Esta conversa é criptografada de ponta a ponta. O envio pelo aplicativo móvel ainda não está disponível.',
912
+ 'media.sealedFile': 'Arquivo criptografado',
913
+ 'media.sealedUnsupported': 'Ainda não pode ser aberto nesta versão do aplicativo',
914
+ 'media.sealedUnavailable': 'Não foi possível abrir o anexo criptografado',
915
+ 'media.sealedDownload': 'Baixar e descriptografar',
916
+ 'media.sealedDownloading': 'Descriptografando…',
917
+ 'media.sealedDownloadFailed': 'Falha no download — toque para tentar novamente',
799
918
  'message.newMessages': 'Novas mensagens',
800
919
  'notification.senderFallback': 'Nova mensagem',
801
920
  'presence.online': 'online',
@@ -940,6 +1059,7 @@ const pt = {
940
1059
  'field.referralCode': 'O seu código de referência',
941
1060
  'action.logOut': 'Terminar sessão',
942
1061
  'action.message': 'Mensagem',
1062
+ 'action.encryptedMessage': 'Mensagem criptografada',
943
1063
  'action.videoCall': 'Videochamada',
944
1064
  'action.call': 'Ligar',
945
1065
  'action.audioCall': 'Chamada de áudio',
@@ -1053,6 +1173,35 @@ const ht = {
1053
1173
  'date.yesterday': 'Yè',
1054
1174
  'message.deleted': 'Mesaj efase',
1055
1175
  'message.edited': 'modifye',
1176
+ 'e2ee.roomEncrypted': 'Chifre bout-a-bout',
1177
+ 'e2ee.notEncrypted': 'Pa chifre',
1178
+ 'e2ee.notEncryptedHint': 'Voye san chifraj bout-a-bout, paske okenn moun ki resevwa a poko pibliye yon kle.',
1179
+ 'e2ee.devices.title': 'Chifraj bout-a-bout',
1180
+ 'e2ee.devices.thisDevice': 'Aparèy sa a',
1181
+ 'e2ee.devices.otherDevices': 'Lòt aparèy',
1182
+ 'e2ee.devices.none': 'Poko louvri yon chat chifre',
1183
+ 'e2ee.devices.noneOwn': 'Pa gen lòt aparèy',
1184
+ 'e2ee.devices.unavailable': 'Chifraj la pa aktif sou aparèy sa a kounye a',
1185
+ 'e2ee.devices.loading': 'Ap chaje aparèy yo…',
1186
+ 'e2ee.devices.hint': 'Konpare yon anprent ak sa ki parèt sou aparèy lòt moun nan. Make li kòm verifye sèlman si yo menm.',
1187
+ 'e2ee.trust.verified': 'Verifye',
1188
+ 'e2ee.trust.blind': 'Pa verifye',
1189
+ 'e2ee.trust.untrusted': 'Pa fè konfyans',
1190
+ 'e2ee.trust.verify': 'Make kòm verifye',
1191
+ 'e2ee.trust.distrust': 'Sispann fè konfyans',
1192
+ 'e2ee.trust.reset': 'Retire mak la',
1193
+ 'e2ee.trust.prompt': 'Aparèy {id}',
1194
+ 'e2ee.devices.copied': 'Anprent kopye',
1195
+ 'e2ee.unsupportedMessage': 'Mesaj chifre. Vèsyon aplikasyon sa a poko ka li li.',
1196
+ 'e2ee.otherDevice': 'Chifre pou yon lòt aparèy',
1197
+ 'e2ee.undecryptable': 'Nou pa t kapab dechifre mesaj sa a',
1198
+ 'e2ee.sendUnavailable': 'Chat sa a chifre bout-a-bout. Voye mesaj depi aplikasyon mobil la poko disponib.',
1199
+ 'media.sealedFile': 'Fichye chifre',
1200
+ 'media.sealedUnsupported': 'Poko ka louvri nan vèsyon aplikasyon sa a',
1201
+ 'media.sealedUnavailable': 'Nou pa t kapab louvri atachman chifre a',
1202
+ 'media.sealedDownload': 'Telechaje epi dechifre',
1203
+ 'media.sealedDownloading': 'Ap dechifre…',
1204
+ 'media.sealedDownloadFailed': 'Telechajman echwe — peze pou reeseye',
1056
1205
  'message.newMessages': 'Nouvo mesaj yo',
1057
1206
  'notification.senderFallback': 'Nouvo mesaj',
1058
1207
  'presence.online': 'an liy',
@@ -1197,6 +1346,7 @@ const ht = {
1197
1346
  'field.referralCode': 'Kòd referans ou',
1198
1347
  'action.logOut': 'Dekonekte',
1199
1348
  'action.message': 'Mesaj',
1349
+ 'action.encryptedMessage': 'Mesaj chifre',
1200
1350
  'action.videoCall': 'Apèl videyo',
1201
1351
  'action.call': 'Rele',
1202
1352
  'action.audioCall': 'Apèl odyo',
@@ -1310,6 +1460,35 @@ const zh = {
1310
1460
  'date.yesterday': '昨天',
1311
1461
  'message.deleted': '消息已删除',
1312
1462
  'message.edited': '已编辑',
1463
+ 'e2ee.roomEncrypted': '端到端加密',
1464
+ 'e2ee.notEncrypted': '未加密',
1465
+ 'e2ee.notEncryptedHint': '未使用端到端加密发送,因为还没有收件人发布密钥。',
1466
+ 'e2ee.devices.title': '端到端加密',
1467
+ 'e2ee.devices.thisDevice': '此设备',
1468
+ 'e2ee.devices.otherDevices': '其他设备',
1469
+ 'e2ee.devices.none': '尚未打开过加密聊天',
1470
+ 'e2ee.devices.noneOwn': '没有其他设备',
1471
+ 'e2ee.devices.unavailable': '此设备上的加密当前未运行',
1472
+ 'e2ee.devices.loading': '正在加载设备…',
1473
+ 'e2ee.devices.hint': '将指纹与对方设备上显示的指纹进行比较。仅在两者一致时才标记为已验证。',
1474
+ 'e2ee.trust.verified': '已验证',
1475
+ 'e2ee.trust.blind': '未验证',
1476
+ 'e2ee.trust.untrusted': '不受信任',
1477
+ 'e2ee.trust.verify': '标记为已验证',
1478
+ 'e2ee.trust.distrust': '停止信任',
1479
+ 'e2ee.trust.reset': '清除标记',
1480
+ 'e2ee.trust.prompt': '设备 {id}',
1481
+ 'e2ee.devices.copied': '指纹已复制',
1482
+ 'e2ee.unsupportedMessage': '加密消息。此版本的应用暂时无法读取。',
1483
+ 'e2ee.otherDevice': '已为其他设备加密',
1484
+ 'e2ee.undecryptable': '无法解密此消息',
1485
+ 'e2ee.sendUnavailable': '此聊天已启用端到端加密,暂不支持从移动应用发送消息。',
1486
+ 'media.sealedFile': '加密文件',
1487
+ 'media.sealedUnsupported': '此版本的应用暂时无法打开',
1488
+ 'media.sealedUnavailable': '无法打开加密附件',
1489
+ 'media.sealedDownload': '下载并解密',
1490
+ 'media.sealedDownloading': '正在解密…',
1491
+ 'media.sealedDownloadFailed': '下载失败 — 点击重试',
1313
1492
  'message.newMessages': '新消息',
1314
1493
  'notification.senderFallback': '新消息',
1315
1494
  'presence.online': '在线',
@@ -1454,6 +1633,7 @@ const zh = {
1454
1633
  'field.referralCode': '您的推荐码',
1455
1634
  'action.logOut': '退出登录',
1456
1635
  'action.message': '发消息',
1636
+ 'action.encryptedMessage': '加密消息',
1457
1637
  'action.videoCall': '视频通话',
1458
1638
  'action.call': '通话',
1459
1639
  'action.audioCall': '语音通话',