@ethora/chat-component-rn 26.8.6 → 26.8.8

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 (537) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +64 -2
  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/ChatWrapper.js +5 -3
  10. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
  12. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  13. package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
  14. package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
  15. package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
  16. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +13 -0
  18. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
  20. package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
  21. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +26 -13
  22. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  23. package/lib/commonjs/components/MenuRoom/MenuRoom.js +5 -3
  24. package/lib/commonjs/components/MenuRoom/MenuRoom.js.map +1 -1
  25. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +2 -1
  26. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  27. package/lib/commonjs/components/MessageBubble/Message.js +69 -9
  28. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  29. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +7 -4
  30. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  31. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +8 -5
  32. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  33. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +2 -2
  34. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  35. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +166 -21
  36. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
  38. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  39. package/lib/commonjs/components/Modals/Modal/Modal.js +33 -11
  40. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +8 -8
  42. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  43. package/lib/commonjs/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js +279 -0
  44. package/lib/commonjs/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js.map +1 -0
  45. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +10 -8
  46. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  47. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +13 -11
  48. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +50 -15
  50. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js +121 -0
  52. package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -0
  53. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +10 -1
  54. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  55. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +32 -9
  56. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  57. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
  58. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  59. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  60. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
  62. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/Thread/ThreadWrapper.js +56 -46
  70. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  71. package/lib/commonjs/components/UsersList/UsersList.js +2 -1
  72. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  73. package/lib/commonjs/components/styled/SendInput.js +4 -2
  74. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  75. package/lib/commonjs/e2ee/crypto.js +207 -0
  76. package/lib/commonjs/e2ee/crypto.js.map +1 -0
  77. package/lib/commonjs/e2ee/deviceStore.js +84 -0
  78. package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
  79. package/lib/commonjs/e2ee/fileCipher.js +95 -0
  80. package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
  81. package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
  82. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
  83. package/lib/commonjs/e2ee/index.js +210 -0
  84. package/lib/commonjs/e2ee/index.js.map +1 -0
  85. package/lib/commonjs/e2ee/limits.js +9 -0
  86. package/lib/commonjs/e2ee/limits.js.map +1 -0
  87. package/lib/commonjs/e2ee/ns.js +8 -0
  88. package/lib/commonjs/e2ee/ns.js.map +1 -0
  89. package/lib/commonjs/e2ee/omemo.js +622 -0
  90. package/lib/commonjs/e2ee/omemo.js.map +1 -0
  91. package/lib/commonjs/e2ee/protobuf.js +149 -0
  92. package/lib/commonjs/e2ee/protobuf.js.map +1 -0
  93. package/lib/commonjs/e2ee/ratchet.js +238 -0
  94. package/lib/commonjs/e2ee/ratchet.js.map +1 -0
  95. package/lib/commonjs/e2ee/sealedBody.js +23 -0
  96. package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
  97. package/lib/commonjs/e2ee/sealedFiles.js +174 -0
  98. package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
  99. package/lib/commonjs/e2ee/send.js +54 -0
  100. package/lib/commonjs/e2ee/send.js.map +1 -0
  101. package/lib/commonjs/e2ee/stanza.js +114 -0
  102. package/lib/commonjs/e2ee/stanza.js.map +1 -0
  103. package/lib/commonjs/e2ee/store.js +43 -0
  104. package/lib/commonjs/e2ee/store.js.map +1 -0
  105. package/lib/commonjs/helpers/accountName.js +23 -0
  106. package/lib/commonjs/helpers/accountName.js.map +1 -0
  107. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +2 -0
  108. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  109. package/lib/commonjs/helpers/constants/MODAL_TYPES.js +1 -0
  110. package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
  111. package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
  112. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  113. package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
  114. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  115. package/lib/commonjs/helpers/displayName.js +16 -0
  116. package/lib/commonjs/helpers/displayName.js.map +1 -0
  117. package/lib/commonjs/helpers/persistCrypto.js +5 -0
  118. package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
  119. package/lib/commonjs/helpers/preferencesStorage.js.map +1 -1
  120. package/lib/commonjs/helpers/secureKeyValue.js +20 -0
  121. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
  122. package/lib/commonjs/helpers/videoCache.js +136 -0
  123. package/lib/commonjs/helpers/videoCache.js.map +1 -0
  124. package/lib/commonjs/hooks/useChatSettingState.js +2 -0
  125. package/lib/commonjs/hooks/useChatSettingState.js.map +1 -1
  126. package/lib/commonjs/hooks/useChatWrapperInit.js +4 -0
  127. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  128. package/lib/commonjs/hooks/useLogout.js +8 -0
  129. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  130. package/lib/commonjs/hooks/useSendMessage.js +71 -7
  131. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  132. package/lib/commonjs/i18n/strings.js +367 -1
  133. package/lib/commonjs/i18n/strings.js.map +1 -1
  134. package/lib/commonjs/i18n/useT.js +8 -4
  135. package/lib/commonjs/i18n/useT.js.map +1 -1
  136. package/lib/commonjs/main.js +13 -0
  137. package/lib/commonjs/main.js.map +1 -1
  138. package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
  139. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  140. package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
  141. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  142. package/lib/commonjs/networking/api-requests/user.api.js +13 -0
  143. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  144. package/lib/commonjs/networking/stanzaHandlers.js +1 -1
  145. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  146. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +40 -0
  147. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  148. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  149. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  150. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  151. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  152. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  153. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  154. package/lib/commonjs/networking/xmppClient.js +6 -0
  155. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  156. package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -2
  157. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  158. package/lib/commonjs/roomStore/persistBackend.js +9 -12
  159. package/lib/commonjs/roomStore/persistBackend.js.map +1 -1
  160. package/lib/commonjs/roomStore/persistence.js +8 -1
  161. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  162. package/lib/commonjs/services/languageSettings.js +177 -0
  163. package/lib/commonjs/services/languageSettings.js.map +1 -0
  164. package/lib/commonjs/version.js +1 -1
  165. package/lib/module/assets/icons.js +3 -1
  166. package/lib/module/assets/icons.js.map +1 -1
  167. package/lib/module/components/MainComponents/ChatHeader.js +29 -7
  168. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  169. package/lib/module/components/MainComponents/ChatRoom.js +9 -1
  170. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  171. package/lib/module/components/MainComponents/ChatWrapper.js +5 -3
  172. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  173. package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
  174. package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  175. package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
  176. package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
  177. package/lib/module/components/MainComponents/MediaMessage.js +7 -0
  178. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  179. package/lib/module/components/MainComponents/ReduxWrapper.js +14 -1
  180. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  181. package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
  182. package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
  183. package/lib/module/components/Menu/HeaderRoomListMenu.js +26 -13
  184. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  185. package/lib/module/components/MenuRoom/MenuRoom.js +5 -3
  186. package/lib/module/components/MenuRoom/MenuRoom.js.map +1 -1
  187. package/lib/module/components/MessageBubble/BottomReplyContainer.js +2 -1
  188. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  189. package/lib/module/components/MessageBubble/Message.js +72 -12
  190. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  191. package/lib/module/components/MessageBubble/MessageInteractions.js +7 -4
  192. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  193. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +8 -5
  194. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  195. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +2 -2
  196. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  197. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +168 -23
  198. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  199. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
  200. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  201. package/lib/module/components/Modals/Modal/Modal.js +33 -11
  202. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  203. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +8 -8
  204. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  205. package/lib/module/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js +274 -0
  206. package/lib/module/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js.map +1 -0
  207. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +10 -8
  208. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  209. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +13 -11
  210. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  211. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +54 -18
  212. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  213. package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js +116 -0
  214. package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -0
  215. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +10 -1
  216. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  217. package/lib/module/components/RoomComponents/ChatRoomItem.js +32 -9
  218. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  219. package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
  220. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  221. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  222. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  223. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
  224. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  225. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  226. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  227. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
  228. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  229. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  230. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  231. package/lib/module/components/Thread/ThreadWrapper.js +57 -47
  232. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  233. package/lib/module/components/UsersList/UsersList.js +2 -1
  234. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  235. package/lib/module/components/styled/SendInput.js +4 -2
  236. package/lib/module/components/styled/SendInput.js.map +1 -1
  237. package/lib/module/e2ee/crypto.js +170 -0
  238. package/lib/module/e2ee/crypto.js.map +1 -0
  239. package/lib/module/e2ee/deviceStore.js +77 -0
  240. package/lib/module/e2ee/deviceStore.js.map +1 -0
  241. package/lib/module/e2ee/fileCipher.js +90 -0
  242. package/lib/module/e2ee/fileCipher.js.map +1 -0
  243. package/lib/module/e2ee/fileEnvelope.js +66 -0
  244. package/lib/module/e2ee/fileEnvelope.js.map +1 -0
  245. package/lib/module/e2ee/index.js +185 -0
  246. package/lib/module/e2ee/index.js.map +1 -0
  247. package/lib/module/e2ee/limits.js +5 -0
  248. package/lib/module/e2ee/limits.js.map +1 -0
  249. package/lib/module/e2ee/ns.js +4 -0
  250. package/lib/module/e2ee/ns.js.map +1 -0
  251. package/lib/module/e2ee/omemo.js +610 -0
  252. package/lib/module/e2ee/omemo.js.map +1 -0
  253. package/lib/module/e2ee/protobuf.js +140 -0
  254. package/lib/module/e2ee/protobuf.js.map +1 -0
  255. package/lib/module/e2ee/ratchet.js +228 -0
  256. package/lib/module/e2ee/ratchet.js.map +1 -0
  257. package/lib/module/e2ee/sealedBody.js +19 -0
  258. package/lib/module/e2ee/sealedBody.js.map +1 -0
  259. package/lib/module/e2ee/sealedFiles.js +154 -0
  260. package/lib/module/e2ee/sealedFiles.js.map +1 -0
  261. package/lib/module/e2ee/send.js +48 -0
  262. package/lib/module/e2ee/send.js.map +1 -0
  263. package/lib/module/e2ee/stanza.js +107 -0
  264. package/lib/module/e2ee/stanza.js.map +1 -0
  265. package/lib/module/e2ee/store.js +35 -0
  266. package/lib/module/e2ee/store.js.map +1 -0
  267. package/lib/module/helpers/accountName.js +18 -0
  268. package/lib/module/helpers/accountName.js.map +1 -0
  269. package/lib/module/helpers/constants/MODAL_COMPONENTS.js +2 -0
  270. package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  271. package/lib/module/helpers/constants/MODAL_TYPES.js +1 -0
  272. package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
  273. package/lib/module/helpers/createMessageFromXml.js +19 -4
  274. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  275. package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
  276. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  277. package/lib/module/helpers/displayName.js +11 -0
  278. package/lib/module/helpers/displayName.js.map +1 -0
  279. package/lib/module/helpers/persistCrypto.js +4 -0
  280. package/lib/module/helpers/persistCrypto.js.map +1 -1
  281. package/lib/module/helpers/preferencesStorage.js.map +1 -1
  282. package/lib/module/helpers/secureKeyValue.js +19 -0
  283. package/lib/module/helpers/secureKeyValue.js.map +1 -1
  284. package/lib/module/helpers/videoCache.js +125 -0
  285. package/lib/module/helpers/videoCache.js.map +1 -0
  286. package/lib/module/hooks/useChatSettingState.js +2 -0
  287. package/lib/module/hooks/useChatSettingState.js.map +1 -1
  288. package/lib/module/hooks/useChatWrapperInit.js +4 -0
  289. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  290. package/lib/module/hooks/useLogout.js +8 -0
  291. package/lib/module/hooks/useLogout.js.map +1 -1
  292. package/lib/module/hooks/useSendMessage.js +71 -7
  293. package/lib/module/hooks/useSendMessage.js.map +1 -1
  294. package/lib/module/i18n/strings.js +367 -1
  295. package/lib/module/i18n/strings.js.map +1 -1
  296. package/lib/module/i18n/useT.js +8 -4
  297. package/lib/module/i18n/useT.js.map +1 -1
  298. package/lib/module/main.js +1 -0
  299. package/lib/module/main.js.map +1 -1
  300. package/lib/module/networking/api-requests/auth.api.js +4 -1
  301. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  302. package/lib/module/networking/api-requests/rooms.api.js +109 -18
  303. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  304. package/lib/module/networking/api-requests/user.api.js +12 -0
  305. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  306. package/lib/module/networking/stanzaHandlers.js +1 -1
  307. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  308. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +38 -0
  309. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  310. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  311. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  312. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  313. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  314. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  315. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  316. package/lib/module/networking/xmppClient.js +6 -0
  317. package/lib/module/networking/xmppClient.js.map +1 -1
  318. package/lib/module/roomStore/chatSettingsSlice.js +5 -1
  319. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  320. package/lib/module/roomStore/persistBackend.js +10 -13
  321. package/lib/module/roomStore/persistBackend.js.map +1 -1
  322. package/lib/module/roomStore/persistence.js +8 -1
  323. package/lib/module/roomStore/persistence.js.map +1 -1
  324. package/lib/module/services/languageSettings.js +164 -0
  325. package/lib/module/services/languageSettings.js.map +1 -0
  326. package/lib/module/version.js +1 -1
  327. package/lib/typescript/assets/icons.d.ts +8 -0
  328. package/lib/typescript/assets/icons.d.ts.map +1 -1
  329. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  330. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  331. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  332. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts +4 -0
  333. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
  334. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
  335. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
  336. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  337. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  338. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
  339. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
  340. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +7 -1
  341. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  342. package/lib/typescript/components/MenuRoom/MenuRoom.d.ts.map +1 -1
  343. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  344. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  345. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  346. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  347. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  348. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  349. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.d.ts +15 -0
  351. package/lib/typescript/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.d.ts.map +1 -0
  352. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  353. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  354. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  355. package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts +14 -0
  356. package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts.map +1 -0
  357. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  358. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  359. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  360. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  361. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
  362. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
  363. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  364. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  365. package/lib/typescript/components/styled/SendInput.d.ts +1 -0
  366. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  367. package/lib/typescript/e2ee/crypto.d.ts +28 -0
  368. package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
  369. package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
  370. package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
  371. package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
  372. package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
  373. package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
  374. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
  375. package/lib/typescript/e2ee/index.d.ts +23 -0
  376. package/lib/typescript/e2ee/index.d.ts.map +1 -0
  377. package/lib/typescript/e2ee/limits.d.ts +3 -0
  378. package/lib/typescript/e2ee/limits.d.ts.map +1 -0
  379. package/lib/typescript/e2ee/ns.d.ts +2 -0
  380. package/lib/typescript/e2ee/ns.d.ts.map +1 -0
  381. package/lib/typescript/e2ee/omemo.d.ts +64 -0
  382. package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
  383. package/lib/typescript/e2ee/protobuf.d.ts +25 -0
  384. package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
  385. package/lib/typescript/e2ee/ratchet.d.ts +39 -0
  386. package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
  387. package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
  388. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
  389. package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
  390. package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
  391. package/lib/typescript/e2ee/send.d.ts +6 -0
  392. package/lib/typescript/e2ee/send.d.ts.map +1 -0
  393. package/lib/typescript/e2ee/stanza.d.ts +8 -0
  394. package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
  395. package/lib/typescript/e2ee/store.d.ts +16 -0
  396. package/lib/typescript/e2ee/store.d.ts.map +1 -0
  397. package/lib/typescript/helpers/accountName.d.ts +7 -0
  398. package/lib/typescript/helpers/accountName.d.ts.map +1 -0
  399. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  400. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +1 -0
  401. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  402. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  403. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  404. package/lib/typescript/helpers/displayName.d.ts +2 -0
  405. package/lib/typescript/helpers/displayName.d.ts.map +1 -0
  406. package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
  407. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
  408. package/lib/typescript/helpers/preferencesStorage.d.ts +4 -0
  409. package/lib/typescript/helpers/preferencesStorage.d.ts.map +1 -1
  410. package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
  411. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
  412. package/lib/typescript/helpers/videoCache.d.ts +19 -0
  413. package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
  414. package/lib/typescript/hooks/useChatSettingState.d.ts +1 -0
  415. package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
  416. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  417. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  418. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  419. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  420. package/lib/typescript/i18n/useT.d.ts.map +1 -1
  421. package/lib/typescript/main.d.ts +2 -0
  422. package/lib/typescript/main.d.ts.map +1 -1
  423. package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
  424. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  425. package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
  426. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  427. package/lib/typescript/networking/api-requests/user.api.d.ts +6 -0
  428. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  429. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  430. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
  431. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  432. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  433. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  434. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  435. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  436. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
  437. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  438. package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -1
  439. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  440. package/lib/typescript/services/languageSettings.d.ts +29 -0
  441. package/lib/typescript/services/languageSettings.d.ts.map +1 -0
  442. package/lib/typescript/types/models/message.model.d.ts +5 -0
  443. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  444. package/lib/typescript/types/models/room.model.d.ts +5 -0
  445. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  446. package/lib/typescript/types/models/user.model.d.ts +4 -0
  447. package/lib/typescript/types/models/user.model.d.ts.map +1 -1
  448. package/lib/typescript/types/types.d.ts +25 -0
  449. package/lib/typescript/types/types.d.ts.map +1 -1
  450. package/lib/typescript/version.d.ts +1 -1
  451. package/package.json +8 -4
  452. package/src/assets/icons.tsx +27 -0
  453. package/src/components/MainComponents/ChatHeader.tsx +30 -9
  454. package/src/components/MainComponents/ChatRoom.tsx +11 -1
  455. package/src/components/MainComponents/ChatWrapper.tsx +5 -3
  456. package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
  457. package/src/components/MainComponents/EncryptionCard.tsx +287 -0
  458. package/src/components/MainComponents/MediaMessage.tsx +5 -0
  459. package/src/components/MainComponents/ReduxWrapper.tsx +11 -0
  460. package/src/components/MainComponents/SealedAttachment.tsx +251 -0
  461. package/src/components/Menu/HeaderRoomListMenu.tsx +40 -13
  462. package/src/components/MenuRoom/MenuRoom.tsx +5 -3
  463. package/src/components/MessageBubble/BottomReplyContainer.tsx +2 -1
  464. package/src/components/MessageBubble/Message.tsx +99 -9
  465. package/src/components/MessageBubble/MessageInteractions.tsx +7 -6
  466. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +8 -5
  467. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +2 -2
  468. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +188 -40
  469. package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
  470. package/src/components/Modals/Modal/Modal.tsx +44 -16
  471. package/src/components/Modals/NewChatModal/NewChatModal.tsx +8 -8
  472. package/src/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.tsx +316 -0
  473. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +10 -15
  474. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +13 -14
  475. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +72 -20
  476. package/src/components/Modals/UserSettingsModal/LanguageCard.tsx +144 -0
  477. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +13 -1
  478. package/src/components/RoomComponents/ChatRoomItem.tsx +23 -11
  479. package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
  480. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
  481. package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
  482. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
  483. package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
  484. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
  485. package/src/components/Thread/ThreadWrapper.tsx +17 -2
  486. package/src/components/UsersList/UsersList.tsx +2 -1
  487. package/src/components/styled/SendInput.tsx +5 -2
  488. package/src/e2ee/crypto.ts +194 -0
  489. package/src/e2ee/deviceStore.ts +80 -0
  490. package/src/e2ee/fileCipher.ts +86 -0
  491. package/src/e2ee/fileEnvelope.ts +115 -0
  492. package/src/e2ee/index.ts +192 -0
  493. package/src/e2ee/limits.ts +2 -0
  494. package/src/e2ee/ns.ts +1 -0
  495. package/src/e2ee/omemo.ts +802 -0
  496. package/src/e2ee/protobuf.ts +188 -0
  497. package/src/e2ee/ratchet.ts +271 -0
  498. package/src/e2ee/sealedBody.ts +17 -0
  499. package/src/e2ee/sealedFiles.ts +181 -0
  500. package/src/e2ee/send.ts +70 -0
  501. package/src/e2ee/stanza.ts +133 -0
  502. package/src/e2ee/store.ts +54 -0
  503. package/src/helpers/accountName.ts +15 -0
  504. package/src/helpers/constants/MODAL_COMPONENTS.tsx +2 -0
  505. package/src/helpers/constants/MODAL_TYPES.ts +1 -0
  506. package/src/helpers/createMessageFromXml.ts +31 -6
  507. package/src/helpers/createUserNameFromSetUser.ts +2 -1
  508. package/src/helpers/displayName.ts +9 -0
  509. package/src/helpers/persistCrypto.ts +5 -0
  510. package/src/helpers/preferencesStorage.ts +4 -0
  511. package/src/helpers/secureKeyValue.ts +15 -0
  512. package/src/helpers/videoCache.ts +138 -0
  513. package/src/hooks/useChatSettingState.tsx +4 -0
  514. package/src/hooks/useChatWrapperInit.ts +4 -0
  515. package/src/hooks/useLogout.tsx +9 -0
  516. package/src/hooks/useSendMessage.tsx +71 -5
  517. package/src/i18n/strings.ts +367 -1
  518. package/src/i18n/useT.ts +6 -4
  519. package/src/main.ts +2 -0
  520. package/src/networking/api-requests/auth.api.ts +9 -1
  521. package/src/networking/api-requests/rooms.api.ts +121 -18
  522. package/src/networking/api-requests/user.api.ts +9 -0
  523. package/src/networking/stanzaHandlers.ts +1 -0
  524. package/src/networking/xmpp/handleStanzas.xmpp.ts +49 -0
  525. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
  526. package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
  527. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
  528. package/src/networking/xmppClient.ts +6 -0
  529. package/src/roomStore/chatSettingsSlice.ts +13 -0
  530. package/src/roomStore/persistBackend.ts +8 -11
  531. package/src/roomStore/persistence.ts +15 -0
  532. package/src/services/languageSettings.ts +143 -0
  533. package/src/types/models/message.model.ts +5 -0
  534. package/src/types/models/room.model.ts +5 -0
  535. package/src/types/models/user.model.ts +4 -0
  536. package/src/types/types.ts +25 -0
  537. package/src/version.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useMemo, useEffect } from 'react';
4
+ import { composeName } from '../../helpers/displayName';
4
5
  import { ModalTitle } from '../Modals/styledModalComponents';
5
6
  import { ScrollableContainer, UserItem, Label } from './StyledComponents';
6
7
  import Checkbox from './Checkbox';
@@ -75,7 +76,7 @@ const UsersList = ({
75
76
  disabled: selectedUsers.length === 20
76
77
  }), /*#__PURE__*/_jsx(View, {
77
78
  children: /*#__PURE__*/_jsx(Label, {
78
- children: `${user.firstName} ${user.lastName}`
79
+ children: composeName(user.firstName, user.lastName)
79
80
  })
80
81
  })]
81
82
  }, user._id))
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useMemo","useEffect","ModalTitle","ScrollableContainer","UserItem","Label","Checkbox","debounce","StyledInput","useRoomState","Text","View","useT","jsx","_jsx","jsxs","_jsxs","UsersList","style","selectedUsers","setSelectedUsers","headerElement","filter","usersSet","t","searchTerm","setSearchTerm","filteredUsers","setFilteredUsers","handleUserSelect","user","prev","isSelected","some","u","_id","debouncedFilter","term","lower","toLowerCase","users","Object","values","firstName","lastName","includes","maxHeight","children","fontSize","fontWeight","placeholder","value","onChangeText","width","map","onPress","cursor","onValueChange","disabled","length"],"sourceRoot":"../../../../src","sources":["components/UsersList/UsersList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useMemo","useEffect","composeName","ModalTitle","ScrollableContainer","UserItem","Label","Checkbox","debounce","StyledInput","useRoomState","Text","View","useT","jsx","_jsx","jsxs","_jsxs","UsersList","style","selectedUsers","setSelectedUsers","headerElement","filter","usersSet","t","searchTerm","setSearchTerm","filteredUsers","setFilteredUsers","handleUserSelect","user","prev","isSelected","some","u","_id","debouncedFilter","term","lower","toLowerCase","users","Object","values","firstName","lastName","includes","maxHeight","children","fontSize","fontWeight","placeholder","value","onChangeText","width","map","onPress","cursor","onValueChange","disabled","length"],"sourceRoot":"../../../../src","sources":["components/UsersList/UsersList.tsx"],"mappings":"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","ignoreList":[]}
@@ -66,6 +66,7 @@ const SendInput = ({
66
66
  sendMessage,
67
67
  sendMedia,
68
68
  config,
69
+ maxMediaBytes,
69
70
  onFocus,
70
71
  onBlur,
71
72
  editMessage,
@@ -123,9 +124,10 @@ const SendInput = ({
123
124
  // Enforce the upload size cap before anything reaches the network.
124
125
  // The backend rejects oversized bodies with HTTP 413; catching it
125
126
  // here gives a clear message instead of a silent failed bubble.
126
- const oversize = files.find(f => typeof f.size === 'number' && f.size > MAX_MEDIA_BYTES);
127
+ const limit = maxMediaBytes ?? MAX_MEDIA_BYTES;
128
+ const oversize = files.find(f => typeof f.size === 'number' && f.size > limit);
127
129
  if (oversize) {
128
- Alert.alert('File too large', `"${oversize.name}" is ${formatBytes(oversize.size)}. The maximum allowed size is ${Math.round(MAX_MEDIA_BYTES / (1024 * 1024))} MB.`);
130
+ Alert.alert('File too large', `"${oversize.name}" is ${formatBytes(oversize.size)}. The maximum allowed size is ${Math.round(limit / (1024 * 1024))} MB.`);
129
131
  return;
130
132
  }
131
133
  filePreviewsRef.current = files;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useCallback","useEffect","useRef","MessageInputContainer","InputContainer","MessageInput","Button","SendIcon","AttachIcon","RecordIcon","View","Text","TouchableOpacity","Alert","Linking","AttachSheet","MediaFilePreview","getIconColor","getElementFont","useTheme","useT","getMediaLibrary","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","useAudioRecorder","setAudioModeAsync","requestRecordingPermissionsAsync","RecordingPresets","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MEDIA_BYTES","formatBytes","bytes","toFixed","normalizeImageAsset","asset","mime","mimeType","toLowerCase","looksLikeHeic","includes","uri","endsWith","name","fileName","split","pop","Date","now","result","manipulateAsync","compress","format","SaveFormat","JPEG","baseName","replace","SendInput","sendMessage","sendMedia","config","onFocus","onBlur","editMessage","isLoading","isMessageProcessing","t","theme","message","setMessage","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","HIGH_QUALITY","isRecordingRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","oversize","find","f","size","alert","Math","round","current","promptOpenSettings","text","style","onPress","openSettings","handleCameraSelection","perm","requestCameraPermissionsAsync","granted","launchCameraAsync","mediaTypes","quality","videoQuality","UIImagePickerControllerQualityType","Medium","canceled","assets","type","fileSize","normalized","error","console","handleGallerySelection","requestMediaLibraryPermissionsAsync","launchImageLibraryAsync","allowsEditing","preferredAssetRepresentationMode","UIImagePickerPreferredAssetRepresentationMode","Compatible","handleRecentMediaSelection","media","info","getInfoAsync","exists","isVideo","handleFileSelection","getDocumentAsync","multiple","copyToCacheDirectory","undefined","err","ensureLibraryPermission","MediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","allowsRecording","playsInSilentMode","handleStartRecording","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","catch","handleRemoveImage","index","next","filter","_","i","handleSendClick","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","isText","children","disableMedia","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","color","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","borderRadius","surfaceSecondary","danger","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","textOnPrimary","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":";;AAAA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACvE,SACEC,qBAAqB,EACrBC,cAAc,EACdC,YAAY,QACP,+CAA+C;AAEtD,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AACrE,SAAyCC,IAAI,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,KAAK,EAAEC,OAAO,QAAQ,cAAc;AAC3G,OAAOC,WAAW,MAAuB,mCAAmC;AAC5E,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,YAAY,QAAQ,4BAA4B;AACzD,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,IAAI,QAAQ,iBAAiB;AACtC,SAASC,eAAe,QAAQ,mCAAmC;AACnE,OAAO,KAAKC,WAAW,MAAM,mBAAmB;AAChD,OAAO,KAAKC,cAAc,MAAM,sBAAsB;AACtD,OAAO,KAAKC,gBAAgB,MAAM,wBAAwB;AAC1D,OAAO,KAAKC,UAAU,MAAM,yBAAyB;AACrD;AACA;AACA;AACA;AACA,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,gCAAgC,EAChCC,gBAAgB,QACX,YAAY;;AAEnB;AACA;AACA;AACA;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;AAExC,MAAMC,WAAW,GAAIC,KAAa,IAAa;EAC7C,IAAIA,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE;IACxB,OAAO,GAAG,CAACA,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,EAAEC,OAAO,CAAC,CAAC,CAAC,KAAK;EACnD;EACA,IAAID,KAAK,IAAI,IAAI,EAAE;IACjB,OAAO,GAAG,CAACA,KAAK,GAAG,IAAI,EAAEC,OAAO,CAAC,CAAC,CAAC,KAAK;EAC1C;EACA,OAAO,GAAGD,KAAK,IAAI;AACrB,CAAC;AAED,MAAME,mBAAmB,GAAG,MAAOC,KAAmC,IAAK;EACzE,MAAMC,IAAI,GAAG,CAACD,KAAK,CAACE,QAAQ,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC;EACjD,MAAMC,aAAa,GACjBH,IAAI,CAACI,QAAQ,CAAC,MAAM,CAAC,IACrBJ,IAAI,CAACI,QAAQ,CAAC,MAAM,CAAC,IACrBL,KAAK,CAACM,GAAG,CAACH,WAAW,CAAC,CAAC,CAACI,QAAQ,CAAC,OAAO,CAAC,IACzCP,KAAK,CAACM,GAAG,CAACH,WAAW,CAAC,CAAC,CAACI,QAAQ,CAAC,OAAO,CAAC;EAC3C,IAAI,CAACH,aAAa,EAAE;IAClB,OAAO;MACLE,GAAG,EAAEN,KAAK,CAACM,GAAG;MACdL,IAAI,EAAED,KAAK,CAACE,QAAQ,IAAI,YAAY;MACpCM,IAAI,EAAER,KAAK,CAACS,QAAQ,IAAIT,KAAK,CAACM,GAAG,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,SAASC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC3E,CAAC;EACH;EACA,MAAMC,MAAM,GAAG,MAAM/B,gBAAgB,CAACgC,eAAe,CAACf,KAAK,CAACM,GAAG,EAAE,EAAE,EAAE;IACnEU,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAElC,gBAAgB,CAACmC,UAAU,CAACC;EACtC,CAAC,CAAC;EACF,MAAMC,QAAQ,GAAG,CAACpB,KAAK,CAACS,QAAQ,IAAIT,KAAK,CAACM,GAAG,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,SAASC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,EACpFQ,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;EACrC,OAAO;IAAEf,GAAG,EAAEQ,MAAM,CAACR,GAAG;IAAEL,IAAI,EAAE,YAAY;IAAEO,IAAI,EAAEY;EAAS,CAAC;AAChE,CAAC;AAkBD,MAAME,SAAmC,GAAGA,CAAC;EAC3CC,WAAW;EACXC,SAAS;EACTC,MAAM;EACNC,OAAO;EACPC,MAAM;EACNC,WAAW;EACXC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAMC,CAAC,GAAGpD,IAAI,CAAC,CAAC;EAChB,MAAMqD,KAAK,GAAGtD,QAAQ,CAAC,CAAC;EACxB,MAAM,CAACuD,OAAO,EAAEC,UAAU,CAAC,GAAG5E,QAAQ,CAAC,EAAE,CAAC;EAC1C,MAAM,CAAC6E,WAAW,EAAEC,cAAc,CAAC,GAAG9E,QAAQ,CAAC,KAAK,CAAC;EACrD;EACA;EACA,MAAM,CAAC+E,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGhF,QAAQ,CAAC,CAAC,CAAC;EAC7D,MAAM,CAACiF,SAAS,EAAEC,YAAY,CAAC,GAAGlF,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACmF,YAAY,EAAEC,eAAe,CAAC,GAAGpF,QAAQ,CAAc,EAAE,CAAC;EACjE,MAAM,CAACqF,aAAa,EAAEC,gBAAgB,CAAC,GAAGtF,QAAQ,CAAC,KAAK,CAAC;;EAEzD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMuF,aAAa,GAAG5D,gBAAgB,CAACG,gBAAgB,CAAC0D,YAAY,CAAC;EACrE;EACA;EACA;EACA,MAAMC,cAAc,GAAGtF,MAAM,CAAC,KAAK,CAAC;EACpC,MAAMuF,iBAAiB,GAAGvF,MAAM,CAAwC,IAAI,CAAC;;EAE7E;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMwF,UAAU,GAAGxF,MAAM,CAACwE,OAAO,CAAC;EAClC,MAAMiB,eAAe,GAAGzF,MAAM,CAAcgF,YAAY,CAAC;EACzD;EACA;EACA,MAAMU,UAAU,GAAG1F,MAAM,CAAC,KAAK,CAAC;;EAEhC;EACA;EACA;EACA;EACA;EACA,MAAM2F,aAAa,GAAG3F,MAAM,CAAC,KAAK,CAAC;EAEnC,MAAM4F,gBAAgB,GAAIC,KAAkB,IAAK;IAC/C;IACA;IACA;IACA,MAAMC,QAAQ,GAAGD,KAAK,CAACE,IAAI,CACxBC,CAAC,IAAK,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,GAAG/D,eAChD,CAAC;IACD,IAAI4D,QAAQ,EAAE;MACZnF,KAAK,CAACuF,KAAK,CACT,gBAAgB,EAChB,IAAIJ,QAAQ,CAAC/C,IAAI,QAAQZ,WAAW,CAAC2D,QAAQ,CAACG,IAAK,CAAC,iCAAiCE,IAAI,CAACC,KAAK,CAC7FlE,eAAe,IAAI,IAAI,GAAG,IAAI,CAChC,CAAC,MACH,CAAC;MACD;IACF;IACAuD,eAAe,CAACY,OAAO,GAAGR,KAAK;IAC/BZ,eAAe,CAAC,CAAC,GAAGY,KAAK,CAAC,CAAC;EAC7B,CAAC;;EAED;EACA;EACA;EACA;;EAEA,MAAMS,kBAAkB,GAAI9B,OAAe,IAAK;IAC9C7D,KAAK,CAACuF,KAAK,CAAC5B,CAAC,CAAC,0BAA0B,CAAC,EAAEE,OAAO,EAAE,CAClD;MAAE+B,IAAI,EAAEjC,CAAC,CAAC,eAAe,CAAC;MAAEkC,KAAK,EAAE;IAAS,CAAC,EAC7C;MAAED,IAAI,EAAEjC,CAAC,CAAC,qBAAqB,CAAC;MAAEmC,OAAO,EAAEA,CAAA,KAAM7F,OAAO,CAAC8F,YAAY,CAAC;IAAE,CAAC,CAC1E,CAAC;EACJ,CAAC;EAED,MAAMC,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxC,MAAMC,IAAI,GAAG,MAAMxF,WAAW,CAACyF,6BAA6B,CAAC,CAAC;IAC9D,IAAI,CAACD,IAAI,CAACE,OAAO,EAAE;MACjBR,kBAAkB,CAAChC,CAAC,CAAC,mBAAmB,CAAC,CAAC;MAC1C;IACF;IAEA,IAAI;MACF,MAAMjB,MAAM,GAAG,MAAMjC,WAAW,CAAC2F,iBAAiB,CAAC;QACjDC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChCC,OAAO,EAAE,GAAG;QACZC,YAAY,EAAE9F,WAAW,CAAC+F,kCAAkC,CAACC;MAC/D,CAAC,CAAC;MACF,IAAI/D,MAAM,CAACgE,QAAQ,IAAI,CAAChE,MAAM,CAACiE,MAAM,GAAG,CAAC,CAAC,EAAE;QAAC;MAAO;MACpD,MAAM/E,KAAK,GAAGc,MAAM,CAACiE,MAAM,CAAC,CAAC,CAAC;MAC9B,IAAI/E,KAAK,CAACgF,IAAI,KAAK,OAAO,EAAE;QAC1B3B,gBAAgB,CAAC,CACf;UACE/C,GAAG,EAAEN,KAAK,CAACM,GAAG;UACd0E,IAAI,EAAEhF,KAAK,CAACE,QAAQ,IAAI,WAAW;UACnCM,IAAI,EAAER,KAAK,CAACS,QAAQ,IAAIT,KAAK,CAACM,GAAG,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,UAAUC,IAAI,CAACC,GAAG,CAAC,CAAC,MAAM;UAChF6C,IAAI,EAAG1D,KAAK,CAASiF;QACvB,CAAC,CACF,CAAC;QACF;MACF;MACA,MAAMC,UAAU,GAAG,MAAMnF,mBAAmB,CAACC,KAAK,CAAC;MACnDqD,gBAAgB,CAAC,CACf;QACE/C,GAAG,EAAE4E,UAAU,CAAC5E,GAAG;QACnB0E,IAAI,EAAEE,UAAU,CAACjF,IAAI;QACrBO,IAAI,EAAE0E,UAAU,CAAC1E,IAAI;QACrBkD,IAAI,EAAG1D,KAAK,CAASiF;MACvB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,eAAe,EAAEA,KAAK,CAAC;IACvC;EACF,CAAC;EAED,MAAME,sBAAsB,GAAG,MAAAA,CAAA,KAAY;IACzC,MAAMhB,IAAI,GAAG,MAAMxF,WAAW,CAACyG,mCAAmC,CAAC,CAAC;IACpE,IAAI,CAACjB,IAAI,CAACE,OAAO,EAAE;MACjBR,kBAAkB,CAAChC,CAAC,CAAC,oBAAoB,CAAC,CAAC;MAC3C;IACF;IAEA,IAAI;MACF,MAAMjB,MAAM,GAAG,MAAMjC,WAAW,CAAC0G,uBAAuB,CAAC;QACvDd,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChCe,aAAa,EAAE,KAAK;QACpBd,OAAO,EAAE,GAAG;QACZe,gCAAgC,EAC9B5G,WAAW,CAAC6G,6CAA6C,CAACC;MAC9D,CAAC,CAAC;MACF,IAAI7E,MAAM,CAACgE,QAAQ,IAAI,CAAChE,MAAM,CAACiE,MAAM,GAAG,CAAC,CAAC,EAAE;QAAC;MAAO;MACpD,MAAM/E,KAAK,GAAGc,MAAM,CAACiE,MAAM,CAAC,CAAC,CAAC;MAC9B;MACA;MACA,IAAI/E,KAAK,CAACgF,IAAI,KAAK,OAAO,EAAE;QAC1B3B,gBAAgB,CAAC,CACf;UACE/C,GAAG,EAAEN,KAAK,CAACM,GAAG;UACd0E,IAAI,EAAEhF,KAAK,CAACE,QAAQ,IAAI,WAAW;UACnCM,IAAI,EAAER,KAAK,CAACS,QAAQ,IAAIT,KAAK,CAACM,GAAG,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,IAAI,WAAWC,IAAI,CAACC,GAAG,CAAC,CAAC,MAAM;UACjF6C,IAAI,EAAG1D,KAAK,CAASiF;QACvB,CAAC,CACF,CAAC;QACF;MACF;MACA,MAAMC,UAAU,GAAG,MAAMnF,mBAAmB,CAACC,KAAK,CAAC;MACnDqD,gBAAgB,CAAC,CACf;QACE/C,GAAG,EAAE4E,UAAU,CAAC5E,GAAG;QACnB0E,IAAI,EAAEE,UAAU,CAACjF,IAAI;QACrBO,IAAI,EAAE0E,UAAU,CAAC1E,IAAI;QACrBkD,IAAI,EAAG1D,KAAK,CAASiF;MACvB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;IACxC;EACF,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA,MAAMS,0BAA0B,GAAG,MAAOC,KAAkB,IAAK;IAC/D,IAAI;MACF,IAAInC,IAAwB;MAC5B,IAAI;QACF,MAAMoC,IAAI,GAAG,MAAM9G,UAAU,CAAC+G,YAAY,CAACF,KAAK,CAACvF,GAAG,CAAC;QACrD,IAAIwF,IAAI,CAACE,MAAM,IAAI,OAAQF,IAAI,CAASpC,IAAI,KAAK,QAAQ,EAAE;UACzDA,IAAI,GAAIoC,IAAI,CAASpC,IAAI;QAC3B;MACF,CAAC,CAAC,MAAM;QACN;MAAA;MAGF,IAAImC,KAAK,CAACI,OAAO,EAAE;QACjB5C,gBAAgB,CAAC,CACf;UACE/C,GAAG,EAAEuF,KAAK,CAACvF,GAAG;UACd0E,IAAI,EAAEa,KAAK,CAAC3F,QAAQ,IAAI,WAAW;UACnCM,IAAI,EAAEqF,KAAK,CAACrF,IAAI;UAChBkD;QACF,CAAC,CACF,CAAC;QACF;MACF;MAEA,MAAMwB,UAAU,GAAG,MAAMnF,mBAAmB,CAAC;QAC3CO,GAAG,EAAEuF,KAAK,CAACvF,GAAG;QACdJ,QAAQ,EAAE2F,KAAK,CAAC3F,QAAQ;QACxBO,QAAQ,EAAEoF,KAAK,CAACrF;MAClB,CAAiC,CAAC;MAClC6C,gBAAgB,CAAC,CACf;QACE/C,GAAG,EAAE4E,UAAU,CAAC5E,GAAG;QACnB0E,IAAI,EAAEE,UAAU,CAACjF,IAAI;QACrBO,IAAI,EAAE0E,UAAU,CAAC1E,IAAI;QACrBkD;MACF,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,OAAOyB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;IAC7C;EACF,CAAC;EAED,MAAMe,mBAAmB,GAAG,MAAAA,CAAA,KAAY;IACtC;IACA;IACA,IAAI9C,aAAa,CAACU,OAAO,EAAE;MAAC;IAAO;IACnCV,aAAa,CAACU,OAAO,GAAG,IAAI;IAC5B,IAAI;MACF,MAAMhD,MAAM,GAAG,MAAMhC,cAAc,CAACqH,gBAAgB,CAAC;QACnDnB,IAAI,EAAE,KAAK;QACXoB,QAAQ,EAAE,KAAK;QACfC,oBAAoB,EAAE;MACxB,CAAC,CAAC;MACF,IAAIvF,MAAM,CAACgE,QAAQ,IAAI,CAAChE,MAAM,CAACiE,MAAM,GAAG,CAAC,CAAC,EAAE;QAAC;MAAO;MACpD,MAAM/E,KAAK,GAAGc,MAAM,CAACiE,MAAM,CAAC,CAAC,CAAC;MAC9B1B,gBAAgB,CAAC,CACf;QACE/C,GAAG,EAAEN,KAAK,CAACM,GAAG;QACd0E,IAAI,EAAEhF,KAAK,CAACE,QAAQ,IAAI,0BAA0B;QAClDM,IAAI,EAAER,KAAK,CAACQ,IAAI,IAAI,QAAQI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;QACxC6C,IAAI,EAAE1D,KAAK,CAAC0D,IAAI,IAAI4C;MACtB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZnB,OAAO,CAACD,KAAK,CAAC,uBAAuB,EAAEoB,GAAG,CAAC;IAC7C,CAAC,SAAS;MACRnD,aAAa,CAACU,OAAO,GAAG,KAAK;IAC/B;EACF,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM0C,uBAAuB,GAAG,MAAAA,CAAA,KAAY;IAC1C,MAAMC,YAAY,GAAG7H,eAAe,CAAC,CAAC;IACtC,IAAI,CAAC6H,YAAY,EAAEC,mBAAmB,EAAE;MAAC;IAAO;IAChD,IAAI;MACF,MAAMrC,IAAI,GAAG,MAAMoC,YAAY,CAACC,mBAAmB,CAAC,CAAC;MACrD,IAAIrC,IAAI,EAAEE,OAAO,IAAIF,IAAI,EAAEsC,WAAW,KAAK,KAAK,EAAE;QAAC;MAAO;MAC1D,MAAMF,YAAY,CAACG,uBAAuB,CAAC,CAAC;IAC9C,CAAC,CAAC,OAAOL,GAAG,EAAE;MACZ;MACA;MACAnB,OAAO,CAACyB,IAAI,CAAC,wCAAwC,EAAEN,GAAG,CAAC;IAC7D;EACF,CAAC;;EAED;EACA;EACA,MAAMO,2BAA2B,GAAGrJ,MAAM,CAAC,KAAK,CAAC;EAEjD,MAAMsJ,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,IAAID,2BAA2B,CAAChD,OAAO,EAAE;MACvClB,gBAAgB,CAAC,IAAI,CAAC;MACtB;IACF;IACAkE,2BAA2B,CAAChD,OAAO,GAAG,IAAI;IAC1C0C,uBAAuB,CAAC,CAAC,CAACQ,OAAO,CAAC,MAAMpE,gBAAgB,CAAC,IAAI,CAAC,CAAC;EACjE,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,MAAMqE,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAIjE,iBAAiB,CAACc,OAAO,EAAE;MAC7BoD,aAAa,CAAClE,iBAAiB,CAACc,OAAO,CAAC;MACxCd,iBAAiB,CAACc,OAAO,GAAG,IAAI;IAClC;EACF,CAAC;;EAED;EACA;EACA,MAAMqD,gBAAgB,GAAG,MAAAA,CAAA,KAAY;IACnC,IAAI;MACF,MAAMjI,iBAAiB,CAAC;QACtBkI,eAAe,EAAE,KAAK;QACtBC,iBAAiB,EAAE;MACrB,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC;EAED,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAAY;IACvC,IAAInF,WAAW,IAAIY,cAAc,CAACe,OAAO,EAAE;MAAC;IAAO;IACnD,IAAI;MACF,MAAMO,IAAI,GAAG,MAAMlF,gCAAgC,CAAC,CAAC;MACrD,IAAI,CAACkF,IAAI,CAACE,OAAO,EAAE;QACjBR,kBAAkB,CAAChC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC9C;MACF;MACA;MACA;MACA;MACA;MACA,MAAM7C,iBAAiB,CAAC;QACtBkI,eAAe,EAAE,IAAI;QACrBC,iBAAiB,EAAE;MACrB,CAAC,CAAC;MACF;MACA;MACA;MACA;MACA,MAAMxE,aAAa,CAAC0E,oBAAoB,CAACnI,gBAAgB,CAAC0D,YAAY,CAAC;MACvED,aAAa,CAAC2E,MAAM,CAAC,CAAC;MACtBzE,cAAc,CAACe,OAAO,GAAG,IAAI;MAC7B1B,cAAc,CAAC,IAAI,CAAC;MACpBE,oBAAoB,CAAC,CAAC,CAAC;MACvB,MAAMmF,SAAS,GAAG7G,IAAI,CAACC,GAAG,CAAC,CAAC;MAC5B;MACAmC,iBAAiB,CAACc,OAAO,GAAG4D,WAAW,CAAC,MAAM;QAC5CpF,oBAAoB,CAACsB,IAAI,CAAC+D,KAAK,CAAC,CAAC/G,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG4G,SAAS,IAAI,IAAI,CAAC,CAAC;MACnE,CAAC,EAAE,GAAG,CAAC;IACT,CAAC,CAAC,OAAOlB,GAAG,EAAE;MACZnB,OAAO,CAACyB,IAAI,CAAC,uBAAuB,EAAEN,GAAG,CAAC;MAC1CxD,cAAc,CAACe,OAAO,GAAG,KAAK;MAC9B1B,cAAc,CAAC,KAAK,CAAC;MACrBE,oBAAoB,CAAC,CAAC,CAAC;MACvB,MAAM6E,gBAAgB,CAAC,CAAC;IAC1B;EACF,CAAC;EAED,MAAMS,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxCX,kBAAkB,CAAC,CAAC;IACpB,MAAMY,YAAY,GAAG9E,cAAc,CAACe,OAAO;IAC3Cf,cAAc,CAACe,OAAO,GAAG,KAAK;IAC9B1B,cAAc,CAAC,KAAK,CAAC;IACrBE,oBAAoB,CAAC,CAAC,CAAC;IACvB,IAAIuF,YAAY,EAAE;MAChB,IAAI;QACF,MAAMhF,aAAa,CAACiF,IAAI,CAAC,CAAC;MAC5B,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;IACA,MAAMX,gBAAgB,CAAC,CAAC;EAC1B,CAAC;EAED,MAAMY,0BAA0B,GAAG,MAAAA,CAAA,KAAY;IAC7Cd,kBAAkB,CAAC,CAAC;IACpB,MAAMY,YAAY,GAAG9E,cAAc,CAACe,OAAO;IAC3Cf,cAAc,CAACe,OAAO,GAAG,KAAK;IAC9B1B,cAAc,CAAC,KAAK,CAAC;IACrB,MAAM4F,OAAO,GAAG3F,iBAAiB;IACjCC,oBAAoB,CAAC,CAAC,CAAC;IACvB,IAAI,CAACuF,YAAY,EAAE;MACjB,MAAMV,gBAAgB,CAAC,CAAC;MACxB;IACF;IACA;IACA;IACA,IAAIa,OAAO,GAAG,CAAC,EAAE;MACf,IAAI;QACF,MAAMnF,aAAa,CAACiF,IAAI,CAAC,CAAC;MAC5B,CAAC,CAAC,MAAM,CAAC;MACT,MAAMX,gBAAgB,CAAC,CAAC;MACxB;IACF;IACA,IAAI;MACF,MAAMtE,aAAa,CAACiF,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAOvB,GAAG,EAAE;MACZnB,OAAO,CAACyB,IAAI,CAAC,sBAAsB,EAAEN,GAAG,CAAC;IAC3C;IACA;IACA;IACA,MAAMjG,GAAG,GAAGuC,aAAa,CAACvC,GAAG;IAC7B,MAAM6G,gBAAgB,CAAC,CAAC;IACxB,IAAI,CAAC7G,GAAG,EAAE;MAAC;IAAO;IAClB;IACA;IACA;IACA;IACA,MAAM2H,EAAE,GAAGrH,IAAI,CAACC,GAAG,CAAC,CAAC;IACrB,MAAMqH,IAAe,GAAG;MACtB5H,GAAG;MACH0E,IAAI,EAAE,WAAW;MACjBxE,IAAI,EAAE,SAASyH,EAAE;IACnB,CAAC;IACD,IAAI;MACF,MAAMzG,SAAS,CAAC0G,IAAI,EAAEA,IAAI,CAAClD,IAAI,CAAC;IAClC,CAAC,CAAC,OAAOuB,GAAG,EAAE;MACZnB,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEoB,GAAG,CAAC;IAC9C;EACF,CAAC;;EAED;EACA;EACA/I,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXyJ,kBAAkB,CAAC,CAAC;MACpB,IAAIlE,cAAc,CAACe,OAAO,EAAE;QAC1Bf,cAAc,CAACe,OAAO,GAAG,KAAK;QAC9BjB,aAAa,CAACiF,IAAI,CAAC,CAAC,CAACK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACtC;MACAhB,gBAAgB,CAAC,CAAC;IACpB,CAAC;IACD;IACA;IACA;EACF,CAAC,EAAE,CAACtE,aAAa,CAAC,CAAC;EAEnB,MAAMuF,iBAAiB,GAAIC,KAAa,IAAK;IAC3C,MAAMC,IAAI,GAAGpF,eAAe,CAACY,OAAO,CAACyE,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,KAAKJ,KAAK,CAAC;IAClEnF,eAAe,CAACY,OAAO,GAAGwE,IAAI;IAC9B5F,eAAe,CAAC4F,IAAI,CAAC;EACvB,CAAC;EAED,MAAMI,eAAe,GAAGnL,WAAW,CAAC,YAAY;IAC9C;IACA;IACA;IACA,MAAMoL,aAAa,GAAG1F,UAAU,CAACa,OAAO;IACxC,MAAM8E,WAAW,GAAG1F,eAAe,CAACY,OAAO;;IAE3C;IACA;IACA;IACA,IAAI,CAAC6E,aAAa,IAAIC,WAAW,CAACC,MAAM,KAAK,CAAC,EAAE;MAAC;IAAO;;IAExD;IACA;IACA;IACA,IAAI1F,UAAU,CAACW,OAAO,EAAE;MAAC;IAAO;IAChCX,UAAU,CAACW,OAAO,GAAG,IAAI;;IAEzB;IACA;IACA;IACAb,UAAU,CAACa,OAAO,GAAG,EAAE;IACvBZ,eAAe,CAACY,OAAO,GAAG,EAAE;IAC5B5B,UAAU,CAAC,EAAE,CAAC;IACdQ,eAAe,CAAC,EAAE,CAAC;IAEnB,IAAI;MACF,KAAK,MAAMwF,IAAI,IAAIU,WAAW,EAAE;QAC9B,IAAI;UACF,MAAMpH,SAAS,CAAC0G,IAAI,EAAEA,IAAI,CAAClD,IAAI,CAAC;QAClC,CAAC,CAAC,OAAOuB,GAAG,EAAE;UACZnB,OAAO,CAACD,KAAK,CAACoB,GAAG,CAAC;UAClB;QACF;MACF;MACA,IAAIoC,aAAa,EAAE;QACjBpH,WAAW,CAACoH,aAAa,CAAC;MAC5B;IACF,CAAC,SAAS;MACRxF,UAAU,CAACW,OAAO,GAAG,KAAK;IAC5B;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CAACvC,WAAW,EAAEC,SAAS,CAAC,CAAC;EAE5BhE,SAAS,CAAC,MAAM;IACd,MAAM8K,IAAI,GAAG1G,WAAW,IAAI,EAAE;IAC9BqB,UAAU,CAACa,OAAO,GAAGwE,IAAI;IACzBpG,UAAU,CAACoG,IAAI,CAAC;EAClB,CAAC,EAAE,CAAC1G,WAAW,CAAC,CAAC;;EAEjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMkH,aAAa,GACjBrH,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEC,QAAQ,IACnCxH,MAAM,EAAEsH,UAAU,EAAEG,QAAQ,EAAEC,SAAS,EAAEF,QAAQ,IACjD,EAAE;EACJ,MAAMG,cAAc,GAAG3H,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEK,SAAS,IAAI,EAAE;EACjE,MAAMC,mBAAmB,GAAGR,aAAa,GAAG,GAAG;EAC/C,MAAMS,oBAAoB,GAAG3F,IAAI,CAAC4F,GAAG,CACnC,CAAC,EACD,CAACJ,cAAc,GAAGE,mBAAmB,IAAI,CAC3C,CAAC;EAED,oBACE5J,KAAA,CAAC/B,cAAc;IAAC8L,MAAM,EAAE,CAAC,CAACxH,OAAQ;IAAAyH,QAAA,GAC7BjH,YAAY,CAACoG,MAAM,GAAG,CAAC,iBACtBvJ,IAAA,CAACf,gBAAgB;MACfkE,YAAY,EAAEA,YAAa;MAC3B2F,iBAAiB,EAAEA;IAAkB,CACtC,CACF,eACD1I,KAAA,CAAChC,qBAAqB;MAAAgM,QAAA,GACnB,CAACvH,WAAW,iBACXzC,KAAA,CAAAF,SAAA;QAAAkK,QAAA,GAEG,CAACjI,MAAM,EAAEkI,YAAY,iBACpBrK,IAAA,CAACnB,gBAAgB;UACf+F,OAAO,EAAE6C,iBAAkB;UAC3B9C,KAAK,EAAE;YACL2F,KAAK,EAAE,EAAE;YACTC,MAAM,EAAE,EAAE;YACVC,cAAc,EAAE,QAAQ;YACxBC,UAAU,EAAE,QAAQ;YACpBC,eAAe,EAAE;UACnB,CAAE;UACFC,aAAa,EAAE,GAAI;UAAAP,QAAA,eAEnBpK,IAAA,CAACvB,UAAU;YAACmM,KAAK,EAAE1L,YAAY,CAACiD,MAAM;UAAE,CAAE;QAAC,CAC3B,CACnB,eACDnC,IAAA,CAAC1B,YAAY;UACXuM,MAAM,EAAC,oBAAoB;UAC3BC,kBAAkB,EAAC,oBAAoB;UACvC7H,SAAS,EAAEA,SAAU;UACrB2H,KAAK,EAAEzI,MAAM,EAAE4I,MAAM,EAAEC,OAAQ;UAC/BrB,QAAQ,EAAExH,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEC,QAAS;UAC9CsB,UAAU,EAAE9I,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEuB,UAAkB;UACzDC,WAAW,EAAEzI,CAAC,CAAC,mBAAmB,CAAE;UACpC0I,oBAAoB,EAAEzI,KAAK,CAAC0I,SAAU;UACtCC,kBAAkB,EAAE3I,KAAK,CAAC4I,IAAI,GAAG,MAAM,GAAG,OAAQ;UAClDC,KAAK,EAAE5I,OAAQ;UACf6I,YAAY,EAAG9G,IAAI,IAAK;YACtBf,UAAU,CAACa,OAAO,GAAGE,IAAI;YACzB9B,UAAU,CAAC8B,IAAI,CAAC;UAClB,CAAE;UACFtC,OAAO,EAAEA,CAAA,KAAM;YACbA,OAAO,GAAG,CAAC;YACXc,YAAY,CAAC,IAAI,CAAC;UACpB,CAAE;UACFb,MAAM,EAAEA,CAAA,KAAM;YACZA,MAAM,GAAG,CAAC;YACVa,YAAY,CAAC,KAAK,CAAC;UACrB,CAAE;UACFuI,QAAQ,EAAE,CAAClJ,SAAS,IAAI,CAACC,mBAAoB;UAC7CkJ,SAAS,EAAE;UACX;UACA;UACA;UACA;UACA;UACA;UACA;UAAA;UACA/G,KAAK,EAAE,CACL;YACEoF,SAAS,EAAED,cAAc;YACzB6B,SAAS,EAAExJ,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEiC,SAAS,IAAI,GAAG;YACtDC,UAAU,EAAE3B,oBAAoB;YAChC4B,aAAa,EAAE5B,oBAAoB;YACnC6B,IAAI,EAAE;UACR,CAAC,EACD3M,cAAc,CAACgD,MAAM,EAAE,WAAW,CAAC;QACnC,CACH,CAAC;MAAA,CACF,CACH,EACAU,WAAW,iBACVzC,KAAA,CAAAF,SAAA;QAAAkK,QAAA,gBACEpK,IAAA,CAACnB,gBAAgB;UACfgM,MAAM,EAAC,oBAAoB;UAC3BC,kBAAkB,EAAC,oBAAoB;UACvClG,OAAO,EAAE0D,qBAAsB;UAC/B3D,KAAK,EAAE;YACL2F,KAAK,EAAE,EAAE;YACTC,MAAM,EAAE,EAAE;YACVwB,YAAY,EAAE,EAAE;YAChBtB,UAAU,EAAE,QAAQ;YACpBD,cAAc,EAAE,QAAQ;YACxB;YACA;YACAE,eAAe,EAAEhI,KAAK,CAAC4I,IAAI,GAAG5I,KAAK,CAACsJ,gBAAgB,GAAG;UACzD,CAAE;UACFrB,aAAa,EAAE,GAAI;UAAAP,QAAA,eAEnBpK,IAAA,CAACpB,IAAI;YACH+F,KAAK,EAAE;cACLiG,KAAK,EAAElI,KAAK,CAAC4I,IAAI,GAAG5I,KAAK,CAACuJ,MAAM,GAAG,SAAS;cAC5ChB,UAAU,EAAE,KAAK;cACjBtB,QAAQ,EAAE;YACZ,CAAE;YAAAS,QAAA,EACH;UAED,CAAM;QAAC,CACS,CAAC,eAGnBhK,KAAA,CAACzB,IAAI;UACHgG,KAAK,EAAE;YACLmH,IAAI,EAAE,CAAC;YACPI,aAAa,EAAE,KAAK;YACpBzB,UAAU,EAAE,QAAQ;YACpB0B,GAAG,EAAE,CAAC;YACNC,iBAAiB,EAAE,CAAC;YACpBrC,SAAS,EAAE;UACb,CAAE;UAAAK,QAAA,gBAEFpK,IAAA,CAACrB,IAAI;YACHgG,KAAK,EAAE;cACL2F,KAAK,EAAE,EAAE;cACTC,MAAM,EAAE,EAAE;cACVwB,YAAY,EAAE,CAAC;cACfrB,eAAe,EAAEhI,KAAK,CAAC4I,IAAI,GAAG5I,KAAK,CAACuJ,MAAM,GAAG;YAC/C;UAAE,CACH,CAAC,eACF7L,KAAA,CAACxB,IAAI;YAAC+F,KAAK,EAAE;cAAEgF,QAAQ,EAAE,EAAE;cAAEiB,KAAK,EAAElI,KAAK,CAACgC,IAAI;cAAEuG,UAAU,EAAE;YAAM,CAAE;YAAAb,QAAA,GACjE9F,IAAI,CAAC+D,KAAK,CAACtF,iBAAiB,GAAG,EAAE,CAAC,EAAC,GACpC,EAAC,CAACA,iBAAiB,GAAG,EAAE,EAAEsJ,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;UAAA,CACjD,CAAC,eACPtM,IAAA,CAACpB,IAAI;YAAC+F,KAAK,EAAE;cAAEgF,QAAQ,EAAE,EAAE;cAAEiB,KAAK,EAAElI,KAAK,CAAC6J;YAAc,CAAE;YAAAnC,QAAA,EAAC;UAAU,CAAM,CAAC;QAAA,CACxE,CAAC;MAAA,CACP,CACH,EAaA,CAAC,MAAM;QACN,MAAMoC,UAAU,GAAG,CAAC,CAAC7J,OAAO,IAAIQ,YAAY,CAACoG,MAAM,GAAG,CAAC;QACvD,MAAMkD,OAAO,GAAG,CAAC5J,WAAW,IAAI,CAAC2J,UAAU,IAAI,CAAC,CAACrK,MAAM,EAAEuK,WAAW;QACpE,MAAM9H,OAAO,GAAG/B,WAAW,GACvB4F,0BAA0B,GAC1BgE,OAAO,GACLzE,oBAAoB,GACpBoB,eAAe;QACrB,MAAMuD,QAAQ,GAAG,CAAC9J,WAAW,IAAI,CAAC4J,OAAO,IAAI,CAACD,UAAU;QACxD,MAAMI,MAAM,GAAG/J,WAAW,IAAI2J,UAAU,IAAIC,OAAO;QACnD,oBACEzM,IAAA,CAACzB,MAAM;UACLsM,MAAM,EAAE4B,OAAO,GAAG,oBAAoB,GAAG,kBAAmB;UAC5D3B,kBAAkB,EAAE2B,OAAO,GAAG,oBAAoB,GAAG,kBAAmB;UACxE7H,OAAO,EAAEA,OAAQ;UACjB+H,QAAQ,EAAEA,QAAS;UACnBE,OAAO,EACLJ,OAAO,gBACLzM,IAAA,CAACtB,UAAU;YAACkM,KAAK,EAAElI,KAAK,CAACoK;UAAc,CAAE,CAAC,gBAE1C9M,IAAA,CAACxB,QAAQ;YACPoM,KAAK,EAAEgC,MAAM,GAAGlK,KAAK,CAACoK,aAAa,GAAGpK,KAAK,CAAC0I;UAAU,CACvD,CAEJ;UACDzG,KAAK,EAAE;YACL2F,KAAK,EAAEnI,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEqD,cAAc,IAAI,EAAE;YACtDxC,MAAM,EAAEpI,MAAM,EAAEsH,UAAU,EAAEC,KAAK,EAAEqD,cAAc,IAAI,EAAE;YACvDhB,YAAY,EAAE,EAAE;YAChBtB,UAAU,EAAE,QAAQ;YACpBD,cAAc,EAAE,QAAQ;YACxBwC,UAAU,EAAE,CAAC;YACbC,WAAW,EAAE,CAAC;YACdvC,eAAe,EAAEkC,MAAM,GACnB1N,YAAY,CAACiD,MAAM,CAAC,GACpB,aAAa;YACjB+K,OAAO,EAAEN,MAAM,GAAG,CAAC,GAAG;UACxB;QAAE,CACH,CAAC;MAEN,CAAC,EAAE,CAAC;IAAA,CACiB,CAAC,eACxB5M,IAAA,CAAChB,WAAW;MACVmO,OAAO,EAAE9J,aAAc;MACvB+J,OAAO,EAAEA,CAAA,KAAM9J,gBAAgB,CAAC,KAAK,CAAE;MACvC+J,QAAQ,EAAEvI,qBAAsB;MAChCwI,SAAS,EAAEvH,sBAAuB;MAClCwH,UAAU,EAAE3G,mBAAoB;MAChC4G,WAAW,EAAElH,0BAA2B;MACxCmH,YAAY,EAAEvO,YAAY,CAACiD,MAAM;IAAE,CACpC,CAAC;EAAA,CACY,CAAC;AAEvB,CAAC;AAED,eAAeH,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useCallback","useEffect","useRef","MessageInputContainer","InputContainer","MessageInput","Button","SendIcon","AttachIcon","RecordIcon","View","Text","TouchableOpacity","Alert","Linking","AttachSheet","MediaFilePreview","getIconColor","getElementFont","useTheme","useT","getMediaLibrary","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","useAudioRecorder","setAudioModeAsync","requestRecordingPermissionsAsync","RecordingPresets","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MEDIA_BYTES","formatBytes","bytes","toFixed","normalizeImageAsset","asset","mime","mimeType","toLowerCase","looksLikeHeic","includes","uri","endsWith","name","fileName","split","pop","Date","now","result","manipulateAsync","compress","format","SaveFormat","JPEG","baseName","replace","SendInput","sendMessage","sendMedia","config","maxMediaBytes","onFocus","onBlur","editMessage","isLoading","isMessageProcessing","t","theme","message","setMessage","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","HIGH_QUALITY","isRecordingRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","limit","oversize","find","f","size","alert","Math","round","current","promptOpenSettings","text","style","onPress","openSettings","handleCameraSelection","perm","requestCameraPermissionsAsync","granted","launchCameraAsync","mediaTypes","quality","videoQuality","UIImagePickerControllerQualityType","Medium","canceled","assets","type","fileSize","normalized","error","console","handleGallerySelection","requestMediaLibraryPermissionsAsync","launchImageLibraryAsync","allowsEditing","preferredAssetRepresentationMode","UIImagePickerPreferredAssetRepresentationMode","Compatible","handleRecentMediaSelection","media","info","getInfoAsync","exists","isVideo","handleFileSelection","getDocumentAsync","multiple","copyToCacheDirectory","undefined","err","ensureLibraryPermission","MediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","allowsRecording","playsInSilentMode","handleStartRecording","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","catch","handleRemoveImage","index","next","filter","_","i","handleSendClick","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","isText","children","disableMedia","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","color","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","borderRadius","surfaceSecondary","danger","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","textOnPrimary","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ import { cbc } from '@noble/ciphers/aes.js';
4
+ import { ed25519, x25519 } from '@noble/curves/ed25519.js';
5
+ import { hkdf } from '@noble/hashes/hkdf.js';
6
+ import { hmac } from '@noble/hashes/hmac.js';
7
+ import { sha256 } from '@noble/hashes/sha2.js';
8
+ import { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils.js';
9
+ export { concatBytes, randomBytes, utf8ToBytes };
10
+ const ZERO_SALT = new Uint8Array(32);
11
+ export function hkdfSha256(ikm, salt, info, length) {
12
+ return hkdf(sha256, ikm, salt ?? ZERO_SALT, utf8ToBytes(info), length);
13
+ }
14
+ export function hmacSha256(key, data) {
15
+ return hmac(sha256, key, data);
16
+ }
17
+ export function aesEncrypt(key, iv, data) {
18
+ return cbc(key, iv).encrypt(data);
19
+ }
20
+ export function aesDecrypt(key, iv, data) {
21
+ return cbc(key, iv).decrypt(data);
22
+ }
23
+ export function generateKeyPair() {
24
+ const {
25
+ secretKey,
26
+ publicKey
27
+ } = x25519.keygen();
28
+ return {
29
+ priv: secretKey,
30
+ pub: publicKey
31
+ };
32
+ }
33
+ export function generateIdentity() {
34
+ const {
35
+ secretKey,
36
+ publicKey
37
+ } = ed25519.keygen();
38
+ return {
39
+ seed: secretKey,
40
+ pub: publicKey
41
+ };
42
+ }
43
+ export function dh(priv, pub) {
44
+ return x25519.getSharedSecret(priv, pub);
45
+ }
46
+ export function identityDhPrivate(identity) {
47
+ return ed25519.utils.toMontgomerySecret(identity.seed);
48
+ }
49
+ export function identityDhPublic(identityPub) {
50
+ return ed25519.utils.toMontgomery(identityPub);
51
+ }
52
+ export function sign(identity, message) {
53
+ return ed25519.sign(message, identity.seed);
54
+ }
55
+ export function verify(signature, message, identityPub) {
56
+ try {
57
+ return ed25519.verify(signature, message, identityPub);
58
+ } catch {
59
+ return false;
60
+ }
61
+ }
62
+ export function bytesEqual(a, b) {
63
+ if (a.length !== b.length) {
64
+ return false;
65
+ }
66
+ let diff = 0;
67
+ for (let i = 0; i < a.length; i++) {
68
+ diff |= a[i] ^ b[i];
69
+ }
70
+ return diff === 0;
71
+ }
72
+ const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
73
+ const B64_VALUE = new Int16Array(128).fill(-1);
74
+ for (let i = 0; i < B64.length; i++) {
75
+ B64_VALUE[B64.charCodeAt(i)] = i;
76
+ }
77
+ export function toBase64(bytes) {
78
+ let out = '';
79
+ let i = 0;
80
+ for (; i + 2 < bytes.length; i += 3) {
81
+ const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
82
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
83
+ }
84
+ if (i + 1 === bytes.length) {
85
+ const n = bytes[i] << 16;
86
+ out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
87
+ } else if (i + 2 === bytes.length) {
88
+ const n = bytes[i] << 16 | bytes[i + 1] << 8;
89
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
90
+ }
91
+ return out;
92
+ }
93
+ export function fromBase64(text) {
94
+ const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
95
+ if (clean.length % 4 === 1) {
96
+ throw new Error('Invalid base64');
97
+ }
98
+ const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
99
+ let acc = 0;
100
+ let bits = 0;
101
+ let pos = 0;
102
+ for (let i = 0; i < clean.length; i++) {
103
+ const code = clean.charCodeAt(i);
104
+ const value = code < 128 ? B64_VALUE[code] : -1;
105
+ if (value < 0) {
106
+ throw new Error('Invalid base64');
107
+ }
108
+ acc = acc << 6 | value;
109
+ bits += 6;
110
+ if (bits >= 8) {
111
+ bits -= 8;
112
+ out[pos++] = acc >> bits & 0xff;
113
+ }
114
+ }
115
+ return out;
116
+ }
117
+ export function toHex(bytes) {
118
+ return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
119
+ }
120
+ export function randomInt(min, max) {
121
+ const bytes = randomBytes(4);
122
+ const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
123
+ return min + n % (max - min + 1);
124
+ }
125
+ export function bytesToUtf8(bytes) {
126
+ const chunks = [];
127
+ let units = [];
128
+ const push = unit => {
129
+ units.push(unit);
130
+ if (units.length >= 8192) {
131
+ chunks.push(String.fromCharCode.apply(null, units));
132
+ units = [];
133
+ }
134
+ };
135
+ let i = 0;
136
+ while (i < bytes.length) {
137
+ const b = bytes[i++];
138
+ if (b < 0x80) {
139
+ push(b);
140
+ continue;
141
+ }
142
+ const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
143
+ let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
144
+ let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
145
+ for (let k = 0; valid && k < extra; k++) {
146
+ const next = bytes[i + k];
147
+ if ((next & 0xc0) !== 0x80) {
148
+ valid = false;
149
+ }
150
+ code = code << 6 | next & 0x3f;
151
+ }
152
+ if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
153
+ push(0xfffd);
154
+ continue;
155
+ }
156
+ i += extra;
157
+ if (code > 0xffff) {
158
+ code -= 0x10000;
159
+ push(0xd800 | code >> 10);
160
+ push(0xdc00 | code & 0x3ff);
161
+ } else {
162
+ push(code);
163
+ }
164
+ }
165
+ if (units.length) {
166
+ chunks.push(String.fromCharCode.apply(null, units));
167
+ }
168
+ return chunks.join('');
169
+ }
170
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cbc","ed25519","x25519","hkdf","hmac","sha256","concatBytes","randomBytes","utf8ToBytes","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hmacSha256","key","data","aesEncrypt","iv","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","keygen","priv","pub","generateIdentity","seed","dh","getSharedSecret","identityDhPrivate","identity","utils","toMontgomerySecret","identityDhPublic","identityPub","toMontgomery","sign","message","verify","signature","bytesEqual","a","b","diff","i","B64","B64_VALUE","Int16Array","fill","charCodeAt","toBase64","bytes","out","n","fromBase64","text","clean","replace","Error","Math","floor","acc","bits","pos","code","value","toHex","Array","from","toString","padStart","join","randomInt","min","max","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import AsyncStorage from '@react-native-async-storage/async-storage';
4
+ import { secureGetOrCreate } from '../helpers/secureKeyValue';
5
+ import { decryptFromPersist, encryptForPersist, isPersistKeyKept } from '../helpers/persistCrypto';
6
+ import { randomBytes, toHex } from './crypto';
7
+ import { createStore } from './store';
8
+ const MMKV_INSTANCE_ID = 'ethora-omemo';
9
+ const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
10
+ const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
11
+ const createMmkvBackend = async () => {
12
+ let MMKV;
13
+ try {
14
+ MMKV = require('react-native-mmkv').MMKV;
15
+ } catch {
16
+ return null;
17
+ }
18
+ if (typeof MMKV !== 'function') {
19
+ return null;
20
+ }
21
+ const key = await secureGetOrCreate(MMKV_KEY_STORE_KEY, () => toHex(randomBytes(8)));
22
+ if (!key) {
23
+ throw new Error('e2ee: the device store key was not kept');
24
+ }
25
+ try {
26
+ const storage = new MMKV({
27
+ id: MMKV_INSTANCE_ID,
28
+ encryptionKey: key.value
29
+ });
30
+ if (key.created) {
31
+ storage.clearAll();
32
+ }
33
+ return {
34
+ getItem: async key => storage.getString(key) ?? null,
35
+ setItem: async (key, value) => void storage.set(key, value),
36
+ removeItem: async key => void storage.delete(key)
37
+ };
38
+ } catch (e) {
39
+ console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
40
+ return null;
41
+ }
42
+ };
43
+ const asyncStorageBackend = {
44
+ getItem: async key => {
45
+ const raw = await AsyncStorage.getItem(ASYNC_STORAGE_PREFIX + key);
46
+ return raw ? decryptFromPersist(raw) : null;
47
+ },
48
+ setItem: async (key, value) => AsyncStorage.setItem(ASYNC_STORAGE_PREFIX + key, await encryptForPersist(value)),
49
+ removeItem: key => AsyncStorage.removeItem(ASYNC_STORAGE_PREFIX + key)
50
+ };
51
+ const createAsyncStorageBackend = async () => {
52
+ if (!(await isPersistKeyKept())) {
53
+ throw new Error('e2ee: the storage cipher key was not kept');
54
+ }
55
+ return asyncStorageBackend;
56
+ };
57
+ let backendPromise = null;
58
+ const getBackend = () => {
59
+ if (!backendPromise) {
60
+ const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
61
+ backendPromise = opening;
62
+ // A refusal is not cached: the next start may find the store usable.
63
+ opening.catch(() => {
64
+ if (backendPromise === opening) {
65
+ backendPromise = null;
66
+ }
67
+ });
68
+ }
69
+ return backendPromise;
70
+ };
71
+ export async function openDeviceStore(jid) {
72
+ return createStore(await getBackend(), jid);
73
+ }
74
+ export const __resetDeviceStoreForTests = () => {
75
+ backendPromise = null;
76
+ };
77
+ //# sourceMappingURL=deviceStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AsyncStorage","secureGetOrCreate","decryptFromPersist","encryptForPersist","isPersistKeyKept","randomBytes","toHex","createStore","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","require","key","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","e","console","warn","asyncStorageBackend","raw","createAsyncStorageBackend","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","__resetDeviceStoreForTests"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ import { cbc } from '@noble/ciphers/aes.js';
4
+ import { hmac } from '@noble/hashes/hmac.js';
5
+ import { sha256 } from '@noble/hashes/sha2.js';
6
+ import { bytesEqual, concatBytes, hkdfSha256, randomBytes } from './crypto';
7
+ const SLICE = 32 * 1024;
8
+ const BLOCK = 16;
9
+ const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
10
+ function payloadKeys(key) {
11
+ const km = hkdfSha256(key, undefined, 'OMEMO Payload', 80);
12
+ return {
13
+ enc: km.slice(0, 32),
14
+ auth: km.slice(32, 64),
15
+ iv: km.slice(64)
16
+ };
17
+ }
18
+ export async function encryptLargePayload(plaintext, onProgress) {
19
+ const key = randomBytes(32);
20
+ const {
21
+ enc,
22
+ auth,
23
+ iv
24
+ } = payloadKeys(key);
25
+ const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
26
+ const mac = hmac.create(sha256, auth);
27
+ let offset = 0;
28
+ let chain = iv;
29
+ while (plaintext.length - offset > SLICE) {
30
+ const out = payload.subarray(offset, offset + SLICE);
31
+ out.set(cbc(enc, chain, {
32
+ disablePadding: true
33
+ }).encrypt(plaintext.subarray(offset, offset + SLICE)));
34
+ mac.update(out);
35
+ chain = out.slice(SLICE - BLOCK);
36
+ offset += SLICE;
37
+ onProgress?.(offset / plaintext.length);
38
+ await yieldToUi();
39
+ }
40
+ const last = cbc(enc, chain).encrypt(plaintext.subarray(offset));
41
+ payload.set(last, offset);
42
+ mac.update(last);
43
+ onProgress?.(1);
44
+ return {
45
+ keyMaterial: concatBytes(key, mac.digest().slice(0, 16)),
46
+ payload
47
+ };
48
+ }
49
+ export async function decryptLargePayload(keyMaterial, payload, onProgress) {
50
+ if (keyMaterial.length !== 48) {
51
+ throw new Error('Invalid key material');
52
+ }
53
+ if (payload.length === 0 || payload.length % BLOCK !== 0) {
54
+ throw new Error('Payload authentication failed');
55
+ }
56
+ const {
57
+ enc,
58
+ auth,
59
+ iv
60
+ } = payloadKeys(keyMaterial.slice(0, 32));
61
+ const mac = hmac.create(sha256, auth);
62
+ for (let offset = 0; offset < payload.length; offset += SLICE) {
63
+ mac.update(payload.subarray(offset, offset + SLICE));
64
+ onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
65
+ if (offset + SLICE < payload.length) {
66
+ await yieldToUi();
67
+ }
68
+ }
69
+ if (!bytesEqual(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
70
+ throw new Error('Payload authentication failed');
71
+ }
72
+ const plaintext = new Uint8Array(payload.length);
73
+ let offset = 0;
74
+ let chain = iv;
75
+ while (payload.length - offset > SLICE) {
76
+ const part = payload.subarray(offset, offset + SLICE);
77
+ plaintext.set(cbc(enc, chain, {
78
+ disablePadding: true
79
+ }).decrypt(part), offset);
80
+ chain = part.slice(SLICE - BLOCK);
81
+ offset += SLICE;
82
+ onProgress?.(0.65 + offset / payload.length * 0.35);
83
+ await yieldToUi();
84
+ }
85
+ const last = cbc(enc, chain).decrypt(payload.subarray(offset));
86
+ plaintext.set(last, offset);
87
+ onProgress?.(1);
88
+ return plaintext.subarray(0, offset + last.length);
89
+ }
90
+ //# sourceMappingURL=fileCipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cbc","hmac","sha256","bytesEqual","concatBytes","hkdfSha256","randomBytes","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","payload","Uint8Array","Math","floor","length","mac","create","offset","chain","out","subarray","set","disablePadding","encrypt","update","last","keyMaterial","digest","decryptLargePayload","Error","min","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ import { bytesToUtf8, fromBase64, randomBytes, toBase64, toHex, utf8ToBytes } from './crypto';
4
+ import { decryptLargePayload, encryptLargePayload } from './fileCipher';
5
+ export { parseSealedMediaBody } from './sealedBody';
6
+ const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
7
+ const VERSION = 1;
8
+ const HEADER_OFFSET = MAGIC.length + 1 + 4;
9
+ export function encodeFileEnvelope(meta, bytes) {
10
+ const header = utf8ToBytes(JSON.stringify({
11
+ mimetype: meta.mimetype,
12
+ originalname: meta.originalname,
13
+ size: meta.size
14
+ }));
15
+ const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
16
+ out.set(MAGIC, 0);
17
+ out[MAGIC.length] = VERSION;
18
+ new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
19
+ out.set(header, HEADER_OFFSET);
20
+ out.set(bytes, HEADER_OFFSET + header.length);
21
+ return out;
22
+ }
23
+ export function decodeFileEnvelope(envelope) {
24
+ if (envelope.length < HEADER_OFFSET) {
25
+ throw new Error('file_envelope_truncated');
26
+ }
27
+ for (let i = 0; i < MAGIC.length; i++) {
28
+ if (envelope[i] !== MAGIC[i]) {
29
+ throw new Error('file_envelope_bad_magic');
30
+ }
31
+ }
32
+ const version = envelope[MAGIC.length];
33
+ if (version !== VERSION) {
34
+ throw new Error(`file_envelope_unsupported_version_${version}`);
35
+ }
36
+ const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
37
+ const bodyStart = HEADER_OFFSET + headerLen;
38
+ if (bodyStart > envelope.length) {
39
+ throw new Error('file_envelope_truncated');
40
+ }
41
+ const meta = JSON.parse(bytesToUtf8(envelope.subarray(HEADER_OFFSET, bodyStart)));
42
+ return {
43
+ meta,
44
+ bytes: envelope.subarray(bodyStart)
45
+ };
46
+ }
47
+ export async function sealFileForUpload(file, onProgress) {
48
+ const envelope = encodeFileEnvelope({
49
+ mimetype: file.type || 'application/octet-stream',
50
+ originalname: file.name || 'blob',
51
+ size: file.bytes.length
52
+ }, file.bytes);
53
+ const {
54
+ keyMaterial,
55
+ payload
56
+ } = await encryptLargePayload(envelope, onProgress);
57
+ return {
58
+ ciphertext: payload,
59
+ keyMaterial: toBase64(keyMaterial),
60
+ filename: toHex(randomBytes(16))
61
+ };
62
+ }
63
+ export async function openSealedFile(ciphertext, keyMaterial, onProgress) {
64
+ return decodeFileEnvelope(await decryptLargePayload(fromBase64(keyMaterial), ciphertext, onProgress));
65
+ }
66
+ //# sourceMappingURL=fileEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bytesToUtf8","fromBase64","randomBytes","toBase64","toHex","utf8ToBytes","decryptLargePayload","encryptLargePayload","parseSealedMediaBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","ciphertext","filename","openSealedFile"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}