@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
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_StyledInputComponents","_Button","_interopRequireDefault","_icons","_reactNative","_AttachSheet","_MediaFilePreview","_getIconColor","_getElementFont","_useTheme","_useT","_mediaLibraryRuntime","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","_expoAudio","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","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","useT","theme","useTheme","message","setMessage","useState","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","useAudioRecorder","RecordingPresets","HIGH_QUALITY","isRecordingRef","useRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","oversize","find","size","Alert","alert","Math","round","current","promptOpenSettings","text","style","onPress","Linking","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","getMediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","setAudioModeAsync","allowsRecording","playsInSilentMode","handleStartRecording","requestRecordingPermissionsAsync","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","useEffect","catch","handleRemoveImage","index","next","filter","_","handleSendClick","useCallback","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","jsxs","InputContainer","isText","children","jsx","MediaFilePreview","MessageInputContainer","Fragment","disableMedia","TouchableOpacity","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","AttachIcon","color","getIconColor","MessageInput","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","getElementFont","borderRadius","surfaceSecondary","Text","danger","View","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","RecordIcon","textOnPrimary","SendIcon","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor","_default","exports"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AAMA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,oBAAA,GAAAZ,OAAA;AACA,IAAAa,WAAA,GAAAd,uBAAA,CAAAC,OAAA;AACA,IAAAc,cAAA,GAAAf,uBAAA,CAAAC,OAAA;AACA,IAAAe,gBAAA,GAAAhB,uBAAA,CAAAC,OAAA;AACA,IAAAgB,UAAA,GAAAjB,uBAAA,CAAAC,OAAA;AAKA,IAAAiB,UAAA,GAAAjB,OAAA;AAKoB,IAAAkB,WAAA,GAAAlB,OAAA;AAAA,SAAAG,uBAAAgB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAApB,wBAAAoB,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAxB,uBAAA,YAAAA,CAAAoB,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAhCpB;;AAuBA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgB,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,MAAM1C,gBAAgB,CAAC2C,eAAe,CAACf,KAAK,CAACM,GAAG,EAAE,EAAE,EAAE;IACnEU,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAE7C,gBAAgB,CAAC8C,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,MAAMnD,CAAC,GAAG,IAAAoD,UAAI,EAAC,CAAC;EAChB,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAC1C,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACrD;EACA;EACA,MAAM,CAACG,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAJ,eAAQ,EAAC,CAAC,CAAC;EAC7D,MAAM,CAACK,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAN,eAAQ,EAAC,KAAK,CAAC;EACjD,MAAM,CAACO,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAR,eAAQ,EAAc,EAAE,CAAC;EACjE,MAAM,CAACS,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAV,eAAQ,EAAC,KAAK,CAAC;;EAEzD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMW,aAAa,GAAG,IAAAC,2BAAgB,EAACC,2BAAgB,CAACC,YAAY,CAAC;EACrE;EACA;EACA;EACA,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EACpC,MAAMC,iBAAiB,GAAG,IAAAD,aAAM,EAAwC,IAAI,CAAC;;EAE7E;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAME,UAAU,GAAG,IAAAF,aAAM,EAAClB,OAAO,CAAC;EAClC,MAAMqB,eAAe,GAAG,IAAAH,aAAM,EAAcT,YAAY,CAAC;EACzD;EACA;EACA,MAAMa,UAAU,GAAG,IAAAJ,aAAM,EAAC,KAAK,CAAC;;EAEhC;EACA;EACA;EACA;EACA;EACA,MAAMK,aAAa,GAAG,IAAAL,aAAM,EAAC,KAAK,CAAC;EAEnC,MAAMM,gBAAgB,GAAIC,KAAkB,IAAK;IAC/C;IACA;IACA;IACA,MAAMC,QAAQ,GAAGD,KAAK,CAACE,IAAI,CACxB5E,CAAC,IAAK,OAAOA,CAAC,CAAC6E,IAAI,KAAK,QAAQ,IAAI7E,CAAC,CAAC6E,IAAI,GAAGnE,eAChD,CAAC;IACD,IAAIiE,QAAQ,EAAE;MACZG,kBAAK,CAACC,KAAK,CACT,gBAAgB,EAChB,IAAIJ,QAAQ,CAACpD,IAAI,QAAQZ,WAAW,CAACgE,QAAQ,CAACE,IAAK,CAAC,iCAAiCG,IAAI,CAACC,KAAK,CAC7FvE,eAAe,IAAI,IAAI,GAAG,IAAI,CAChC,CAAC,MACH,CAAC;MACD;IACF;IACA4D,eAAe,CAACY,OAAO,GAAGR,KAAK;IAC/Bf,eAAe,CAAC,CAAC,GAAGe,KAAK,CAAC,CAAC;EAC7B,CAAC;;EAED;EACA;EACA;EACA;;EAEA,MAAMS,kBAAkB,GAAIlC,OAAe,IAAK;IAC9C6B,kBAAK,CAACC,KAAK,CAACrF,CAAC,CAAC,0BAA0B,CAAC,EAAEuD,OAAO,EAAE,CAClD;MAAEmC,IAAI,EAAE1F,CAAC,CAAC,eAAe,CAAC;MAAE2F,KAAK,EAAE;IAAS,CAAC,EAC7C;MAAED,IAAI,EAAE1F,CAAC,CAAC,qBAAqB,CAAC;MAAE4F,OAAO,EAAEA,CAAA,KAAMC,oBAAO,CAACC,YAAY,CAAC;IAAE,CAAC,CAC1E,CAAC;EACJ,CAAC;EAED,MAAMC,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxC,MAAMC,IAAI,GAAG,MAAMzG,WAAW,CAAC0G,6BAA6B,CAAC,CAAC;IAC9D,IAAI,CAACD,IAAI,CAACE,OAAO,EAAE;MACjBT,kBAAkB,CAACzF,CAAC,CAAC,mBAAmB,CAAC,CAAC;MAC1C;IACF;IAEA,IAAI;MACF,MAAMmC,MAAM,GAAG,MAAM5C,WAAW,CAAC4G,iBAAiB,CAAC;QACjDC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChCC,OAAO,EAAE,GAAG;QACZC,YAAY,EAAE/G,WAAW,CAACgH,kCAAkC,CAACC;MAC/D,CAAC,CAAC;MACF,IAAIrE,MAAM,CAACsE,QAAQ,IAAI,CAACtE,MAAM,CAACuE,MAAM,GAAG,CAAC,CAAC,EAAE;QAAC;MAAO;MACpD,MAAMrF,KAAK,GAAGc,MAAM,CAACuE,MAAM,CAAC,CAAC,CAAC;MAC9B,IAAIrF,KAAK,CAACsF,IAAI,KAAK,OAAO,EAAE;QAC1B5B,gBAAgB,CAAC,CACf;UACEpD,GAAG,EAAEN,KAAK,CAACM,GAAG;UACdgF,IAAI,EAAEtF,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;UAChFiD,IAAI,EAAG9D,KAAK,CAASuF;QACvB,CAAC,CACF,CAAC;QACF;MACF;MACA,MAAMC,UAAU,GAAG,MAAMzF,mBAAmB,CAACC,KAAK,CAAC;MACnD0D,gBAAgB,CAAC,CACf;QACEpD,GAAG,EAAEkF,UAAU,CAAClF,GAAG;QACnBgF,IAAI,EAAEE,UAAU,CAACvF,IAAI;QACrBO,IAAI,EAAEgF,UAAU,CAAChF,IAAI;QACrBsD,IAAI,EAAG9D,KAAK,CAASuF;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,MAAMzG,WAAW,CAAC0H,mCAAmC,CAAC,CAAC;IACpE,IAAI,CAACjB,IAAI,CAACE,OAAO,EAAE;MACjBT,kBAAkB,CAACzF,CAAC,CAAC,oBAAoB,CAAC,CAAC;MAC3C;IACF;IAEA,IAAI;MACF,MAAMmC,MAAM,GAAG,MAAM5C,WAAW,CAAC2H,uBAAuB,CAAC;QACvDd,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChCe,aAAa,EAAE,KAAK;QACpBd,OAAO,EAAE,GAAG;QACZe,gCAAgC,EAC9B7H,WAAW,CAAC8H,6CAA6C,CAACC;MAC9D,CAAC,CAAC;MACF,IAAInF,MAAM,CAACsE,QAAQ,IAAI,CAACtE,MAAM,CAACuE,MAAM,GAAG,CAAC,CAAC,EAAE;QAAC;MAAO;MACpD,MAAMrF,KAAK,GAAGc,MAAM,CAACuE,MAAM,CAAC,CAAC,CAAC;MAC9B;MACA;MACA,IAAIrF,KAAK,CAACsF,IAAI,KAAK,OAAO,EAAE;QAC1B5B,gBAAgB,CAAC,CACf;UACEpD,GAAG,EAAEN,KAAK,CAACM,GAAG;UACdgF,IAAI,EAAEtF,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;UACjFiD,IAAI,EAAG9D,KAAK,CAASuF;QACvB,CAAC,CACF,CAAC;QACF;MACF;MACA,MAAMC,UAAU,GAAG,MAAMzF,mBAAmB,CAACC,KAAK,CAAC;MACnD0D,gBAAgB,CAAC,CACf;QACEpD,GAAG,EAAEkF,UAAU,CAAClF,GAAG;QACnBgF,IAAI,EAAEE,UAAU,CAACvF,IAAI;QACrBO,IAAI,EAAEgF,UAAU,CAAChF,IAAI;QACrBsD,IAAI,EAAG9D,KAAK,CAASuF;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,IAAIrC,IAAwB;MAC5B,IAAI;QACF,MAAMsC,IAAI,GAAG,MAAM/H,UAAU,CAACgI,YAAY,CAACF,KAAK,CAAC7F,GAAG,CAAC;QACrD,IAAI8F,IAAI,CAACE,MAAM,IAAI,OAAQF,IAAI,CAAStC,IAAI,KAAK,QAAQ,EAAE;UACzDA,IAAI,GAAIsC,IAAI,CAAStC,IAAI;QAC3B;MACF,CAAC,CAAC,MAAM;QACN;MAAA;MAGF,IAAIqC,KAAK,CAACI,OAAO,EAAE;QACjB7C,gBAAgB,CAAC,CACf;UACEpD,GAAG,EAAE6F,KAAK,CAAC7F,GAAG;UACdgF,IAAI,EAAEa,KAAK,CAACjG,QAAQ,IAAI,WAAW;UACnCM,IAAI,EAAE2F,KAAK,CAAC3F,IAAI;UAChBsD;QACF,CAAC,CACF,CAAC;QACF;MACF;MAEA,MAAM0B,UAAU,GAAG,MAAMzF,mBAAmB,CAAC;QAC3CO,GAAG,EAAE6F,KAAK,CAAC7F,GAAG;QACdJ,QAAQ,EAAEiG,KAAK,CAACjG,QAAQ;QACxBO,QAAQ,EAAE0F,KAAK,CAAC3F;MAClB,CAAiC,CAAC;MAClCkD,gBAAgB,CAAC,CACf;QACEpD,GAAG,EAAEkF,UAAU,CAAClF,GAAG;QACnBgF,IAAI,EAAEE,UAAU,CAACvF,IAAI;QACrBO,IAAI,EAAEgF,UAAU,CAAChF,IAAI;QACrBsD;MACF,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,OAAO2B,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;IAC7C;EACF,CAAC;EAED,MAAMe,mBAAmB,GAAG,MAAAA,CAAA,KAAY;IACtC;IACA;IACA,IAAI/C,aAAa,CAACU,OAAO,EAAE;MAAC;IAAO;IACnCV,aAAa,CAACU,OAAO,GAAG,IAAI;IAC5B,IAAI;MACF,MAAMrD,MAAM,GAAG,MAAM3C,cAAc,CAACsI,gBAAgB,CAAC;QACnDnB,IAAI,EAAE,KAAK;QACXoB,QAAQ,EAAE,KAAK;QACfC,oBAAoB,EAAE;MACxB,CAAC,CAAC;MACF,IAAI7F,MAAM,CAACsE,QAAQ,IAAI,CAACtE,MAAM,CAACuE,MAAM,GAAG,CAAC,CAAC,EAAE;QAAC;MAAO;MACpD,MAAMrF,KAAK,GAAGc,MAAM,CAACuE,MAAM,CAAC,CAAC,CAAC;MAC9B3B,gBAAgB,CAAC,CACf;QACEpD,GAAG,EAAEN,KAAK,CAACM,GAAG;QACdgF,IAAI,EAAEtF,KAAK,CAACE,QAAQ,IAAI,0BAA0B;QAClDM,IAAI,EAAER,KAAK,CAACQ,IAAI,IAAI,QAAQI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;QACxCiD,IAAI,EAAE9D,KAAK,CAAC8D,IAAI,IAAI8C;MACtB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZnB,OAAO,CAACD,KAAK,CAAC,uBAAuB,EAAEoB,GAAG,CAAC;IAC7C,CAAC,SAAS;MACRpD,aAAa,CAACU,OAAO,GAAG,KAAK;IAC/B;EACF,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM2C,uBAAuB,GAAG,MAAAA,CAAA,KAAY;IAC1C,MAAMC,YAAY,GAAG,IAAAC,oCAAe,EAAC,CAAC;IACtC,IAAI,CAACD,YAAY,EAAEE,mBAAmB,EAAE;MAAC;IAAO;IAChD,IAAI;MACF,MAAMtC,IAAI,GAAG,MAAMoC,YAAY,CAACE,mBAAmB,CAAC,CAAC;MACrD,IAAItC,IAAI,EAAEE,OAAO,IAAIF,IAAI,EAAEuC,WAAW,KAAK,KAAK,EAAE;QAAC;MAAO;MAC1D,MAAMH,YAAY,CAACI,uBAAuB,CAAC,CAAC;IAC9C,CAAC,CAAC,OAAON,GAAG,EAAE;MACZ;MACA;MACAnB,OAAO,CAAC0B,IAAI,CAAC,wCAAwC,EAAEP,GAAG,CAAC;IAC7D;EACF,CAAC;;EAED;EACA;EACA,MAAMQ,2BAA2B,GAAG,IAAAjE,aAAM,EAAC,KAAK,CAAC;EAEjD,MAAMkE,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,IAAID,2BAA2B,CAAClD,OAAO,EAAE;MACvCrB,gBAAgB,CAAC,IAAI,CAAC;MACtB;IACF;IACAuE,2BAA2B,CAAClD,OAAO,GAAG,IAAI;IAC1C2C,uBAAuB,CAAC,CAAC,CAACS,OAAO,CAAC,MAAMzE,gBAAgB,CAAC,IAAI,CAAC,CAAC;EACjE,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,MAAM0E,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAInE,iBAAiB,CAACc,OAAO,EAAE;MAC7BsD,aAAa,CAACpE,iBAAiB,CAACc,OAAO,CAAC;MACxCd,iBAAiB,CAACc,OAAO,GAAG,IAAI;IAClC;EACF,CAAC;;EAED;EACA;EACA,MAAMuD,gBAAgB,GAAG,MAAAA,CAAA,KAAY;IACnC,IAAI;MACF,MAAM,IAAAC,4BAAiB,EAAC;QACtBC,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,IAAIzF,WAAW,IAAIc,cAAc,CAACgB,OAAO,EAAE;MAAC;IAAO;IACnD,IAAI;MACF,MAAMQ,IAAI,GAAG,MAAM,IAAAoD,2CAAgC,EAAC,CAAC;MACrD,IAAI,CAACpD,IAAI,CAACE,OAAO,EAAE;QACjBT,kBAAkB,CAACzF,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC9C;MACF;MACA;MACA;MACA;MACA;MACA,MAAM,IAAAgJ,4BAAiB,EAAC;QACtBC,eAAe,EAAE,IAAI;QACrBC,iBAAiB,EAAE;MACrB,CAAC,CAAC;MACF;MACA;MACA;MACA;MACA,MAAM9E,aAAa,CAACiF,oBAAoB,CAAC/E,2BAAgB,CAACC,YAAY,CAAC;MACvEH,aAAa,CAACkF,MAAM,CAAC,CAAC;MACtB9E,cAAc,CAACgB,OAAO,GAAG,IAAI;MAC7B7B,cAAc,CAAC,IAAI,CAAC;MACpBE,oBAAoB,CAAC,CAAC,CAAC;MACvB,MAAM0F,SAAS,GAAGtH,IAAI,CAACC,GAAG,CAAC,CAAC;MAC5B;MACAwC,iBAAiB,CAACc,OAAO,GAAGgE,WAAW,CAAC,MAAM;QAC5C3F,oBAAoB,CAACyB,IAAI,CAACmE,KAAK,CAAC,CAACxH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGqH,SAAS,IAAI,IAAI,CAAC,CAAC;MACnE,CAAC,EAAE,GAAG,CAAC;IACT,CAAC,CAAC,OAAOrB,GAAG,EAAE;MACZnB,OAAO,CAAC0B,IAAI,CAAC,uBAAuB,EAAEP,GAAG,CAAC;MAC1C1D,cAAc,CAACgB,OAAO,GAAG,KAAK;MAC9B7B,cAAc,CAAC,KAAK,CAAC;MACrBE,oBAAoB,CAAC,CAAC,CAAC;MACvB,MAAMkF,gBAAgB,CAAC,CAAC;IAC1B;EACF,CAAC;EAED,MAAMW,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxCb,kBAAkB,CAAC,CAAC;IACpB,MAAMc,YAAY,GAAGnF,cAAc,CAACgB,OAAO;IAC3ChB,cAAc,CAACgB,OAAO,GAAG,KAAK;IAC9B7B,cAAc,CAAC,KAAK,CAAC;IACrBE,oBAAoB,CAAC,CAAC,CAAC;IACvB,IAAI8F,YAAY,EAAE;MAChB,IAAI;QACF,MAAMvF,aAAa,CAACwF,IAAI,CAAC,CAAC;MAC5B,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;IACA,MAAMb,gBAAgB,CAAC,CAAC;EAC1B,CAAC;EAED,MAAMc,0BAA0B,GAAG,MAAAA,CAAA,KAAY;IAC7ChB,kBAAkB,CAAC,CAAC;IACpB,MAAMc,YAAY,GAAGnF,cAAc,CAACgB,OAAO;IAC3ChB,cAAc,CAACgB,OAAO,GAAG,KAAK;IAC9B7B,cAAc,CAAC,KAAK,CAAC;IACrB,MAAMmG,OAAO,GAAGlG,iBAAiB;IACjCC,oBAAoB,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC8F,YAAY,EAAE;MACjB,MAAMZ,gBAAgB,CAAC,CAAC;MACxB;IACF;IACA;IACA;IACA,IAAIe,OAAO,GAAG,CAAC,EAAE;MACf,IAAI;QACF,MAAM1F,aAAa,CAACwF,IAAI,CAAC,CAAC;MAC5B,CAAC,CAAC,MAAM,CAAC;MACT,MAAMb,gBAAgB,CAAC,CAAC;MACxB;IACF;IACA,IAAI;MACF,MAAM3E,aAAa,CAACwF,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAO1B,GAAG,EAAE;MACZnB,OAAO,CAAC0B,IAAI,CAAC,sBAAsB,EAAEP,GAAG,CAAC;IAC3C;IACA;IACA;IACA,MAAMvG,GAAG,GAAGyC,aAAa,CAACzC,GAAG;IAC7B,MAAMoH,gBAAgB,CAAC,CAAC;IACxB,IAAI,CAACpH,GAAG,EAAE;MAAC;IAAO;IAClB;IACA;IACA;IACA;IACA,MAAMoI,EAAE,GAAG9H,IAAI,CAACC,GAAG,CAAC,CAAC;IACrB,MAAM8H,IAAe,GAAG;MACtBrI,GAAG;MACHgF,IAAI,EAAE,WAAW;MACjB9E,IAAI,EAAE,SAASkI,EAAE;IACnB,CAAC;IACD,IAAI;MACF,MAAMlH,SAAS,CAACmH,IAAI,EAAEA,IAAI,CAACrD,IAAI,CAAC;IAClC,CAAC,CAAC,OAAOuB,GAAG,EAAE;MACZnB,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEoB,GAAG,CAAC;IAC9C;EACF,CAAC;;EAED;EACA;EACA,IAAA+B,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACXpB,kBAAkB,CAAC,CAAC;MACpB,IAAIrE,cAAc,CAACgB,OAAO,EAAE;QAC1BhB,cAAc,CAACgB,OAAO,GAAG,KAAK;QAC9BpB,aAAa,CAACwF,IAAI,CAAC,CAAC,CAACM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACtC;MACAnB,gBAAgB,CAAC,CAAC;IACpB,CAAC;IACD;IACA;IACA;EACF,CAAC,EAAE,CAAC3E,aAAa,CAAC,CAAC;EAEnB,MAAM+F,iBAAiB,GAAIC,KAAa,IAAK;IAC3C,MAAMC,IAAI,GAAGzF,eAAe,CAACY,OAAO,CAAC8E,MAAM,CAAC,CAACC,CAAC,EAAElK,CAAC,KAAKA,CAAC,KAAK+J,KAAK,CAAC;IAClExF,eAAe,CAACY,OAAO,GAAG6E,IAAI;IAC9BpG,eAAe,CAACoG,IAAI,CAAC;EACvB,CAAC;EAED,MAAMG,eAAe,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAC9C;IACA;IACA;IACA,MAAMC,aAAa,GAAG/F,UAAU,CAACa,OAAO;IACxC,MAAMmF,WAAW,GAAG/F,eAAe,CAACY,OAAO;;IAE3C;IACA;IACA;IACA,IAAI,CAACkF,aAAa,IAAIC,WAAW,CAACC,MAAM,KAAK,CAAC,EAAE;MAAC;IAAO;;IAExD;IACA;IACA;IACA,IAAI/F,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;IAC5BhC,UAAU,CAAC,EAAE,CAAC;IACdS,eAAe,CAAC,EAAE,CAAC;IAEnB,IAAI;MACF,KAAK,MAAM+F,IAAI,IAAIW,WAAW,EAAE;QAC9B,IAAI;UACF,MAAM9H,SAAS,CAACmH,IAAI,EAAEA,IAAI,CAACrD,IAAI,CAAC;QAClC,CAAC,CAAC,OAAOuB,GAAG,EAAE;UACZnB,OAAO,CAACD,KAAK,CAACoB,GAAG,CAAC;UAClB;QACF;MACF;MACA,IAAIwC,aAAa,EAAE;QACjB9H,WAAW,CAAC8H,aAAa,CAAC;MAC5B;IACF,CAAC,SAAS;MACR7F,UAAU,CAACW,OAAO,GAAG,KAAK;IAC5B;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CAAC5C,WAAW,EAAEC,SAAS,CAAC,CAAC;EAE5B,IAAAoH,gBAAS,EAAC,MAAM;IACd,MAAMI,IAAI,GAAGpH,WAAW,IAAI,EAAE;IAC9B0B,UAAU,CAACa,OAAO,GAAG6E,IAAI;IACzB7G,UAAU,CAAC6G,IAAI,CAAC;EAClB,CAAC,EAAE,CAACpH,WAAW,CAAC,CAAC;;EAEjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM4H,aAAa,GACjB/H,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAEC,QAAQ,IACnClI,MAAM,EAAEgI,UAAU,EAAEG,QAAQ,EAAEC,SAAS,EAAEF,QAAQ,IACjD,EAAE;EACJ,MAAMG,cAAc,GAAGrI,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAEK,SAAS,IAAI,EAAE;EACjE,MAAMC,mBAAmB,GAAGR,aAAa,GAAG,GAAG;EAC/C,MAAMS,oBAAoB,GAAGhG,IAAI,CAACiG,GAAG,CACnC,CAAC,EACD,CAACJ,cAAc,GAAGE,mBAAmB,IAAI,CAC3C,CAAC;EAED,oBACE,IAAAzL,WAAA,CAAA4L,IAAA,EAAC7M,sBAAA,CAAA8M,cAAc;IAACC,MAAM,EAAE,CAAC,CAACnI,OAAQ;IAAAoI,QAAA,GAC7B3H,YAAY,CAAC4G,MAAM,GAAG,CAAC,iBACtB,IAAAhL,WAAA,CAAAgM,GAAA,EAAC3M,iBAAA,CAAA4M,gBAAgB;MACf7H,YAAY,EAAEA,YAAa;MAC3BmG,iBAAiB,EAAEA;IAAkB,CACtC,CACF,eACD,IAAAvK,WAAA,CAAA4L,IAAA,EAAC7M,sBAAA,CAAAmN,qBAAqB;MAAAH,QAAA,GACnB,CAACjI,WAAW,iBACX,IAAA9D,WAAA,CAAA4L,IAAA,EAAA5L,WAAA,CAAAmM,QAAA;QAAAJ,QAAA,GAEG,CAAC7I,MAAM,EAAEkJ,YAAY,iBACpB,IAAApM,WAAA,CAAAgM,GAAA,EAAC7M,YAAA,CAAAkN,gBAAgB;UACfrG,OAAO,EAAE+C,iBAAkB;UAC3BhD,KAAK,EAAE;YACLuG,KAAK,EAAE,EAAE;YACTC,MAAM,EAAE,EAAE;YACVC,cAAc,EAAE,QAAQ;YACxBC,UAAU,EAAE,QAAQ;YACpBC,eAAe,EAAE;UACnB,CAAE;UACFC,aAAa,EAAE,GAAI;UAAAZ,QAAA,eAEnB,IAAA/L,WAAA,CAAAgM,GAAA,EAAC9M,MAAA,CAAA0N,UAAU;YAACC,KAAK,EAAE,IAAAC,0BAAY,EAAC5J,MAAM;UAAE,CAAE;QAAC,CAC3B,CACnB,eACD,IAAAlD,WAAA,CAAAgM,GAAA,EAACjN,sBAAA,CAAAgO,YAAY;UACXC,MAAM,EAAC,oBAAoB;UAC3BC,kBAAkB,EAAC,oBAAoB;UACvC/I,SAAS,EAAEA,SAAU;UACrB2I,KAAK,EAAE3J,MAAM,EAAEgK,MAAM,EAAEC,OAAQ;UAC/B/B,QAAQ,EAAElI,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAEC,QAAS;UAC9CgC,UAAU,EAAElK,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAEiC,UAAkB;UACzDC,WAAW,EAAEjN,CAAC,CAAC,mBAAmB,CAAE;UACpCkN,oBAAoB,EAAE7J,KAAK,CAAC8J,SAAU;UACtCC,kBAAkB,EAAE/J,KAAK,CAACgK,IAAI,GAAG,MAAM,GAAG,OAAQ;UAClDC,KAAK,EAAE/J,OAAQ;UACfgK,YAAY,EAAG7H,IAAI,IAAK;YACtBf,UAAU,CAACa,OAAO,GAAGE,IAAI;YACzBlC,UAAU,CAACkC,IAAI,CAAC;UAClB,CAAE;UACF3C,OAAO,EAAEA,CAAA,KAAM;YACbA,OAAO,GAAG,CAAC;YACXgB,YAAY,CAAC,IAAI,CAAC;UACpB,CAAE;UACFf,MAAM,EAAEA,CAAA,KAAM;YACZA,MAAM,GAAG,CAAC;YACVe,YAAY,CAAC,KAAK,CAAC;UACrB,CAAE;UACFyJ,QAAQ,EAAE,CAACtK,SAAS,IAAI,CAACC,mBAAoB;UAC7CsK,SAAS,EAAE;UACX;UACA;UACA;UACA;UACA;UACA;UACA;UAAA;UACA9H,KAAK,EAAE,CACL;YACEyF,SAAS,EAAED,cAAc;YACzBuC,SAAS,EAAE5K,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAE2C,SAAS,IAAI,GAAG;YACtDC,UAAU,EAAErC,oBAAoB;YAChCsC,aAAa,EAAEtC,oBAAoB;YACnCuC,IAAI,EAAE;UACR,CAAC,EACD,IAAAC,8BAAc,EAAChL,MAAM,EAAE,WAAW,CAAC;QACnC,CACH,CAAC;MAAA,CACF,CACH,EACAY,WAAW,iBACV,IAAA9D,WAAA,CAAA4L,IAAA,EAAA5L,WAAA,CAAAmM,QAAA;QAAAJ,QAAA,gBACE,IAAA/L,WAAA,CAAAgM,GAAA,EAAC7M,YAAA,CAAAkN,gBAAgB;UACfW,MAAM,EAAC,oBAAoB;UAC3BC,kBAAkB,EAAC,oBAAoB;UACvCjH,OAAO,EAAE8D,qBAAsB;UAC/B/D,KAAK,EAAE;YACLuG,KAAK,EAAE,EAAE;YACTC,MAAM,EAAE,EAAE;YACV4B,YAAY,EAAE,EAAE;YAChB1B,UAAU,EAAE,QAAQ;YACpBD,cAAc,EAAE,QAAQ;YACxB;YACA;YACAE,eAAe,EAAEjJ,KAAK,CAACgK,IAAI,GAAGhK,KAAK,CAAC2K,gBAAgB,GAAG;UACzD,CAAE;UACFzB,aAAa,EAAE,GAAI;UAAAZ,QAAA,eAEnB,IAAA/L,WAAA,CAAAgM,GAAA,EAAC7M,YAAA,CAAAkP,IAAI;YACHtI,KAAK,EAAE;cACL8G,KAAK,EAAEpJ,KAAK,CAACgK,IAAI,GAAGhK,KAAK,CAAC6K,MAAM,GAAG,SAAS;cAC5ClB,UAAU,EAAE,KAAK;cACjBhC,QAAQ,EAAE;YACZ,CAAE;YAAAW,QAAA,EACH;UAED,CAAM;QAAC,CACS,CAAC,eAGnB,IAAA/L,WAAA,CAAA4L,IAAA,EAACzM,YAAA,CAAAoP,IAAI;UACHxI,KAAK,EAAE;YACLkI,IAAI,EAAE,CAAC;YACPO,aAAa,EAAE,KAAK;YACpB/B,UAAU,EAAE,QAAQ;YACpBgC,GAAG,EAAE,CAAC;YACNC,iBAAiB,EAAE,CAAC;YACpBlD,SAAS,EAAE;UACb,CAAE;UAAAO,QAAA,gBAEF,IAAA/L,WAAA,CAAAgM,GAAA,EAAC7M,YAAA,CAAAoP,IAAI;YACHxI,KAAK,EAAE;cACLuG,KAAK,EAAE,EAAE;cACTC,MAAM,EAAE,EAAE;cACV4B,YAAY,EAAE,CAAC;cACfzB,eAAe,EAAEjJ,KAAK,CAACgK,IAAI,GAAGhK,KAAK,CAAC6K,MAAM,GAAG;YAC/C;UAAE,CACH,CAAC,eACF,IAAAtO,WAAA,CAAA4L,IAAA,EAACzM,YAAA,CAAAkP,IAAI;YAACtI,KAAK,EAAE;cAAEqF,QAAQ,EAAE,EAAE;cAAEyB,KAAK,EAAEpJ,KAAK,CAACqC,IAAI;cAAEsH,UAAU,EAAE;YAAM,CAAE;YAAArB,QAAA,GACjErG,IAAI,CAACmE,KAAK,CAAC7F,iBAAiB,GAAG,EAAE,CAAC,EAAC,GACpC,EAAC,CAACA,iBAAiB,GAAG,EAAE,EAAE2K,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;UAAA,CACjD,CAAC,eACP,IAAA5O,WAAA,CAAAgM,GAAA,EAAC7M,YAAA,CAAAkP,IAAI;YAACtI,KAAK,EAAE;cAAEqF,QAAQ,EAAE,EAAE;cAAEyB,KAAK,EAAEpJ,KAAK,CAACoL;YAAc,CAAE;YAAA9C,QAAA,EAAC;UAAU,CAAM,CAAC;QAAA,CACxE,CAAC;MAAA,CACP,CACH,EAaA,CAAC,MAAM;QACN,MAAM+C,UAAU,GAAG,CAAC,CAACnL,OAAO,IAAIS,YAAY,CAAC4G,MAAM,GAAG,CAAC;QACvD,MAAM+D,OAAO,GAAG,CAACjL,WAAW,IAAI,CAACgL,UAAU,IAAI,CAAC,CAAC5L,MAAM,EAAE8L,WAAW;QACpE,MAAMhJ,OAAO,GAAGlC,WAAW,GACvBmG,0BAA0B,GAC1B8E,OAAO,GACLxF,oBAAoB,GACpBqB,eAAe;QACrB,MAAMqE,QAAQ,GAAG,CAACnL,WAAW,IAAI,CAACiL,OAAO,IAAI,CAACD,UAAU;QACxD,MAAMI,MAAM,GAAGpL,WAAW,IAAIgL,UAAU,IAAIC,OAAO;QACnD,oBACE,IAAA/O,WAAA,CAAAgM,GAAA,EAAChN,OAAA,CAAAmB,OAAM;UACL6M,MAAM,EAAE+B,OAAO,GAAG,oBAAoB,GAAG,kBAAmB;UAC5D9B,kBAAkB,EAAE8B,OAAO,GAAG,oBAAoB,GAAG,kBAAmB;UACxE/I,OAAO,EAAEA,OAAQ;UACjBiJ,QAAQ,EAAEA,QAAS;UACnBE,OAAO,EACLJ,OAAO,gBACL,IAAA/O,WAAA,CAAAgM,GAAA,EAAC9M,MAAA,CAAAkQ,UAAU;YAACvC,KAAK,EAAEpJ,KAAK,CAAC4L;UAAc,CAAE,CAAC,gBAE1C,IAAArP,WAAA,CAAAgM,GAAA,EAAC9M,MAAA,CAAAoQ,QAAQ;YACPzC,KAAK,EAAEqC,MAAM,GAAGzL,KAAK,CAAC4L,aAAa,GAAG5L,KAAK,CAAC8J;UAAU,CACvD,CAEJ;UACDxH,KAAK,EAAE;YACLuG,KAAK,EAAEpJ,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAEoE,cAAc,IAAI,EAAE;YACtDhD,MAAM,EAAErJ,MAAM,EAAEgI,UAAU,EAAEC,KAAK,EAAEoE,cAAc,IAAI,EAAE;YACvDpB,YAAY,EAAE,EAAE;YAChB1B,UAAU,EAAE,QAAQ;YACpBD,cAAc,EAAE,QAAQ;YACxBgD,UAAU,EAAE,CAAC;YACbC,WAAW,EAAE,CAAC;YACd/C,eAAe,EAAEwC,MAAM,GACnB,IAAApC,0BAAY,EAAC5J,MAAM,CAAC,GACpB,aAAa;YACjBwM,OAAO,EAAER,MAAM,GAAG,CAAC,GAAG;UACxB;QAAE,CACH,CAAC;MAEN,CAAC,EAAE,CAAC;IAAA,CACiB,CAAC,eACxB,IAAAlP,WAAA,CAAAgM,GAAA,EAAC5M,YAAA,CAAAe,OAAW;MACVwP,OAAO,EAAErL,aAAc;MACvBsL,OAAO,EAAEA,CAAA,KAAMrL,gBAAgB,CAAC,KAAK,CAAE;MACvCsL,QAAQ,EAAE1J,qBAAsB;MAChC2J,SAAS,EAAE1I,sBAAuB;MAClC2I,UAAU,EAAE9H,mBAAoB;MAChC+H,WAAW,EAAErI,0BAA2B;MACxCsI,YAAY,EAAE,IAAAnD,0BAAY,EAAC5J,MAAM;IAAE,CACpC,CAAC;EAAA,CACY,CAAC;AAEvB,CAAC;AAAC,IAAAgN,QAAA,GAAAC,OAAA,CAAAhQ,OAAA,GAEa4C,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_StyledInputComponents","_Button","_interopRequireDefault","_icons","_reactNative","_AttachSheet","_MediaFilePreview","_getIconColor","_getElementFont","_useTheme","_useT","_mediaLibraryRuntime","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","_expoAudio","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","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","useT","theme","useTheme","message","setMessage","useState","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","useAudioRecorder","RecordingPresets","HIGH_QUALITY","isRecordingRef","useRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","limit","oversize","find","size","Alert","alert","Math","round","current","promptOpenSettings","text","style","onPress","Linking","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","getMediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","setAudioModeAsync","allowsRecording","playsInSilentMode","handleStartRecording","requestRecordingPermissionsAsync","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","useEffect","catch","handleRemoveImage","index","next","filter","_","handleSendClick","useCallback","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","jsxs","InputContainer","isText","children","jsx","MediaFilePreview","MessageInputContainer","Fragment","disableMedia","TouchableOpacity","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","AttachIcon","color","getIconColor","MessageInput","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","getElementFont","borderRadius","surfaceSecondary","Text","danger","View","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","RecordIcon","textOnPrimary","SendIcon","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor","_default","exports"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.aesDecrypt = aesDecrypt;
7
+ exports.aesEncrypt = aesEncrypt;
8
+ exports.bytesEqual = bytesEqual;
9
+ exports.bytesToUtf8 = bytesToUtf8;
10
+ Object.defineProperty(exports, "concatBytes", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _utils.concatBytes;
14
+ }
15
+ });
16
+ exports.dh = dh;
17
+ exports.fromBase64 = fromBase64;
18
+ exports.generateIdentity = generateIdentity;
19
+ exports.generateKeyPair = generateKeyPair;
20
+ exports.hkdfSha256 = hkdfSha256;
21
+ exports.hmacSha256 = hmacSha256;
22
+ exports.identityDhPrivate = identityDhPrivate;
23
+ exports.identityDhPublic = identityDhPublic;
24
+ Object.defineProperty(exports, "randomBytes", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _utils.randomBytes;
28
+ }
29
+ });
30
+ exports.randomInt = randomInt;
31
+ exports.sign = sign;
32
+ exports.toBase64 = toBase64;
33
+ exports.toHex = toHex;
34
+ Object.defineProperty(exports, "utf8ToBytes", {
35
+ enumerable: true,
36
+ get: function () {
37
+ return _utils.utf8ToBytes;
38
+ }
39
+ });
40
+ exports.verify = verify;
41
+ var _aes = require("@noble/ciphers/aes.js");
42
+ var _ed = require("@noble/curves/ed25519.js");
43
+ var _hkdf = require("@noble/hashes/hkdf.js");
44
+ var _hmac = require("@noble/hashes/hmac.js");
45
+ var _sha = require("@noble/hashes/sha2.js");
46
+ var _utils = require("@noble/hashes/utils.js");
47
+ const ZERO_SALT = new Uint8Array(32);
48
+ function hkdfSha256(ikm, salt, info, length) {
49
+ return (0, _hkdf.hkdf)(_sha.sha256, ikm, salt ?? ZERO_SALT, (0, _utils.utf8ToBytes)(info), length);
50
+ }
51
+ function hmacSha256(key, data) {
52
+ return (0, _hmac.hmac)(_sha.sha256, key, data);
53
+ }
54
+ function aesEncrypt(key, iv, data) {
55
+ return (0, _aes.cbc)(key, iv).encrypt(data);
56
+ }
57
+ function aesDecrypt(key, iv, data) {
58
+ return (0, _aes.cbc)(key, iv).decrypt(data);
59
+ }
60
+ function generateKeyPair() {
61
+ const {
62
+ secretKey,
63
+ publicKey
64
+ } = _ed.x25519.keygen();
65
+ return {
66
+ priv: secretKey,
67
+ pub: publicKey
68
+ };
69
+ }
70
+ function generateIdentity() {
71
+ const {
72
+ secretKey,
73
+ publicKey
74
+ } = _ed.ed25519.keygen();
75
+ return {
76
+ seed: secretKey,
77
+ pub: publicKey
78
+ };
79
+ }
80
+ function dh(priv, pub) {
81
+ return _ed.x25519.getSharedSecret(priv, pub);
82
+ }
83
+ function identityDhPrivate(identity) {
84
+ return _ed.ed25519.utils.toMontgomerySecret(identity.seed);
85
+ }
86
+ function identityDhPublic(identityPub) {
87
+ return _ed.ed25519.utils.toMontgomery(identityPub);
88
+ }
89
+ function sign(identity, message) {
90
+ return _ed.ed25519.sign(message, identity.seed);
91
+ }
92
+ function verify(signature, message, identityPub) {
93
+ try {
94
+ return _ed.ed25519.verify(signature, message, identityPub);
95
+ } catch {
96
+ return false;
97
+ }
98
+ }
99
+ function bytesEqual(a, b) {
100
+ if (a.length !== b.length) {
101
+ return false;
102
+ }
103
+ let diff = 0;
104
+ for (let i = 0; i < a.length; i++) {
105
+ diff |= a[i] ^ b[i];
106
+ }
107
+ return diff === 0;
108
+ }
109
+ const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
110
+ const B64_VALUE = new Int16Array(128).fill(-1);
111
+ for (let i = 0; i < B64.length; i++) {
112
+ B64_VALUE[B64.charCodeAt(i)] = i;
113
+ }
114
+ function toBase64(bytes) {
115
+ let out = '';
116
+ let i = 0;
117
+ for (; i + 2 < bytes.length; i += 3) {
118
+ const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
119
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
120
+ }
121
+ if (i + 1 === bytes.length) {
122
+ const n = bytes[i] << 16;
123
+ out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
124
+ } else if (i + 2 === bytes.length) {
125
+ const n = bytes[i] << 16 | bytes[i + 1] << 8;
126
+ out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
127
+ }
128
+ return out;
129
+ }
130
+ function fromBase64(text) {
131
+ const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
132
+ if (clean.length % 4 === 1) {
133
+ throw new Error('Invalid base64');
134
+ }
135
+ const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
136
+ let acc = 0;
137
+ let bits = 0;
138
+ let pos = 0;
139
+ for (let i = 0; i < clean.length; i++) {
140
+ const code = clean.charCodeAt(i);
141
+ const value = code < 128 ? B64_VALUE[code] : -1;
142
+ if (value < 0) {
143
+ throw new Error('Invalid base64');
144
+ }
145
+ acc = acc << 6 | value;
146
+ bits += 6;
147
+ if (bits >= 8) {
148
+ bits -= 8;
149
+ out[pos++] = acc >> bits & 0xff;
150
+ }
151
+ }
152
+ return out;
153
+ }
154
+ function toHex(bytes) {
155
+ return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
156
+ }
157
+ function randomInt(min, max) {
158
+ const bytes = (0, _utils.randomBytes)(4);
159
+ const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
160
+ return min + n % (max - min + 1);
161
+ }
162
+ function bytesToUtf8(bytes) {
163
+ const chunks = [];
164
+ let units = [];
165
+ const push = unit => {
166
+ units.push(unit);
167
+ if (units.length >= 8192) {
168
+ chunks.push(String.fromCharCode.apply(null, units));
169
+ units = [];
170
+ }
171
+ };
172
+ let i = 0;
173
+ while (i < bytes.length) {
174
+ const b = bytes[i++];
175
+ if (b < 0x80) {
176
+ push(b);
177
+ continue;
178
+ }
179
+ const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
180
+ let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
181
+ let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
182
+ for (let k = 0; valid && k < extra; k++) {
183
+ const next = bytes[i + k];
184
+ if ((next & 0xc0) !== 0x80) {
185
+ valid = false;
186
+ }
187
+ code = code << 6 | next & 0x3f;
188
+ }
189
+ if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
190
+ push(0xfffd);
191
+ continue;
192
+ }
193
+ i += extra;
194
+ if (code > 0xffff) {
195
+ code -= 0x10000;
196
+ push(0xd800 | code >> 10);
197
+ push(0xdc00 | code & 0x3ff);
198
+ } else {
199
+ push(code);
200
+ }
201
+ }
202
+ if (units.length) {
203
+ chunks.push(String.fromCharCode.apply(null, units));
204
+ }
205
+ return chunks.join('');
206
+ }
207
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_aes","require","_ed","_hkdf","_hmac","_sha","_utils","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hkdf","sha256","utf8ToBytes","hmacSha256","key","data","hmac","aesEncrypt","iv","cbc","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","x25519","keygen","priv","pub","generateIdentity","ed25519","seed","dh","getSharedSecret","identityDhPrivate","identity","utils","toMontgomerySecret","identityDhPublic","identityPub","toMontgomery","sign","message","verify","signature","bytesEqual","a","b","diff","i","B64","B64_VALUE","Int16Array","fill","charCodeAt","toBase64","bytes","out","n","fromBase64","text","clean","replace","Error","Math","floor","acc","bits","pos","code","value","toHex","Array","from","toString","padStart","join","randomInt","min","max","randomBytes","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__resetDeviceStoreForTests = void 0;
7
+ exports.openDeviceStore = openDeviceStore;
8
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
9
+ var _secureKeyValue = require("../helpers/secureKeyValue");
10
+ var _persistCrypto = require("../helpers/persistCrypto");
11
+ var _crypto = require("./crypto");
12
+ var _store = require("./store");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const MMKV_INSTANCE_ID = 'ethora-omemo';
15
+ const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
16
+ const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
17
+ const createMmkvBackend = async () => {
18
+ let MMKV;
19
+ try {
20
+ MMKV = require('react-native-mmkv').MMKV;
21
+ } catch {
22
+ return null;
23
+ }
24
+ if (typeof MMKV !== 'function') {
25
+ return null;
26
+ }
27
+ const key = await (0, _secureKeyValue.secureGetOrCreate)(MMKV_KEY_STORE_KEY, () => (0, _crypto.toHex)((0, _crypto.randomBytes)(8)));
28
+ if (!key) {
29
+ throw new Error('e2ee: the device store key was not kept');
30
+ }
31
+ try {
32
+ const storage = new MMKV({
33
+ id: MMKV_INSTANCE_ID,
34
+ encryptionKey: key.value
35
+ });
36
+ if (key.created) {
37
+ storage.clearAll();
38
+ }
39
+ return {
40
+ getItem: async key => storage.getString(key) ?? null,
41
+ setItem: async (key, value) => void storage.set(key, value),
42
+ removeItem: async key => void storage.delete(key)
43
+ };
44
+ } catch (e) {
45
+ console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
46
+ return null;
47
+ }
48
+ };
49
+ const asyncStorageBackend = {
50
+ getItem: async key => {
51
+ const raw = await _asyncStorage.default.getItem(ASYNC_STORAGE_PREFIX + key);
52
+ return raw ? (0, _persistCrypto.decryptFromPersist)(raw) : null;
53
+ },
54
+ setItem: async (key, value) => _asyncStorage.default.setItem(ASYNC_STORAGE_PREFIX + key, await (0, _persistCrypto.encryptForPersist)(value)),
55
+ removeItem: key => _asyncStorage.default.removeItem(ASYNC_STORAGE_PREFIX + key)
56
+ };
57
+ const createAsyncStorageBackend = async () => {
58
+ if (!(await (0, _persistCrypto.isPersistKeyKept)())) {
59
+ throw new Error('e2ee: the storage cipher key was not kept');
60
+ }
61
+ return asyncStorageBackend;
62
+ };
63
+ let backendPromise = null;
64
+ const getBackend = () => {
65
+ if (!backendPromise) {
66
+ const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
67
+ backendPromise = opening;
68
+ // A refusal is not cached: the next start may find the store usable.
69
+ opening.catch(() => {
70
+ if (backendPromise === opening) {
71
+ backendPromise = null;
72
+ }
73
+ });
74
+ }
75
+ return backendPromise;
76
+ };
77
+ async function openDeviceStore(jid) {
78
+ return (0, _store.createStore)(await getBackend(), jid);
79
+ }
80
+ const __resetDeviceStoreForTests = () => {
81
+ backendPromise = null;
82
+ };
83
+ exports.__resetDeviceStoreForTests = __resetDeviceStoreForTests;
84
+ //# sourceMappingURL=deviceStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureKeyValue","_persistCrypto","_crypto","_store","e","__esModule","default","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","key","secureGetOrCreate","toHex","randomBytes","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","console","warn","asyncStorageBackend","raw","AsyncStorage","decryptFromPersist","encryptForPersist","createAsyncStorageBackend","isPersistKeyKept","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","createStore","__resetDeviceStoreForTests","exports"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":";;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAKA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAA2E,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3E,MAAMG,gBAAgB,GAAG,cAAc;AACvC,MAAMC,kBAAkB,GAAG,wBAAwB;AACnD,MAAMC,oBAAoB,GAAG,gBAAgB;AAE7C,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAA2C;EACnE,IAAIC,IAAS;EACb,IAAI;IACFA,IAAI,GAAGZ,OAAO,CAAC,mBAAmB,CAAC,CAACY,IAAI;EAC1C,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;EACA,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAAC,OAAO,IAAI;EAAC;EAC7C,MAAMC,GAAG,GAAG,MAAM,IAAAC,iCAAiB,EAACL,kBAAkB,EAAE,MACtD,IAAAM,aAAK,EAAC,IAAAC,mBAAW,EAAC,CAAC,CAAC,CACtB,CAAC;EACD,IAAI,CAACH,GAAG,EAAE;IAAC,MAAM,IAAII,KAAK,CAAC,yCAAyC,CAAC;EAAC;EACtE,IAAI;IACF,MAAMC,OAAO,GAAG,IAAIN,IAAI,CAAC;MAAEO,EAAE,EAAEX,gBAAgB;MAAEY,aAAa,EAAEP,GAAG,CAACQ;IAAM,CAAC,CAAC;IAC5E,IAAIR,GAAG,CAACS,OAAO,EAAE;MAACJ,OAAO,CAACK,QAAQ,CAAC,CAAC;IAAC;IACrC,OAAO;MACLC,OAAO,EAAE,MAAOX,GAAG,IAAKK,OAAO,CAACO,SAAS,CAACZ,GAAG,CAAC,IAAI,IAAI;MACtDa,OAAO,EAAE,MAAAA,CAAOb,GAAG,EAAEQ,KAAK,KAAK,KAAKH,OAAO,CAACS,GAAG,CAACd,GAAG,EAAEQ,KAAK,CAAC;MAC3DO,UAAU,EAAE,MAAOf,GAAG,IAAK,KAAKK,OAAO,CAACW,MAAM,CAAChB,GAAG;IACpD,CAAC;EACH,CAAC,CAAC,OAAOR,CAAC,EAAE;IACVyB,OAAO,CAACC,IAAI,CAAC,6DAA6D,EAAE1B,CAAC,CAAC;IAC9E,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAM2B,mBAAkC,GAAG;EACzCR,OAAO,EAAE,MAAOX,GAAG,IAAK;IACtB,MAAMoB,GAAG,GAAG,MAAMC,qBAAY,CAACV,OAAO,CAACd,oBAAoB,GAAGG,GAAG,CAAC;IAClE,OAAOoB,GAAG,GAAG,IAAAE,iCAAkB,EAACF,GAAG,CAAC,GAAG,IAAI;EAC7C,CAAC;EACDP,OAAO,EAAE,MAAAA,CAAOb,GAAG,EAAEQ,KAAK,KACxBa,qBAAY,CAACR,OAAO,CAAChB,oBAAoB,GAAGG,GAAG,EAAE,MAAM,IAAAuB,gCAAiB,EAACf,KAAK,CAAC,CAAC;EAClFO,UAAU,EAAGf,GAAG,IAAKqB,qBAAY,CAACN,UAAU,CAAClB,oBAAoB,GAAGG,GAAG;AACzE,CAAC;AAED,MAAMwB,yBAAyB,GAAG,MAAAA,CAAA,KAAoC;EACpE,IAAI,EAAE,MAAM,IAAAC,+BAAgB,EAAC,CAAC,CAAC,EAAE;IAC/B,MAAM,IAAIrB,KAAK,CAAC,2CAA2C,CAAC;EAC9D;EACA,OAAOe,mBAAmB;AAC5B,CAAC;AAED,IAAIO,cAA6C,GAAG,IAAI;AAExD,MAAMC,UAAU,GAAGA,CAAA,KAA8B;EAC/C,IAAI,CAACD,cAAc,EAAE;IACnB,MAAME,OAAO,GAAG9B,iBAAiB,CAAC,CAAC,CAAC+B,IAAI,CACrCC,IAAI,IAAKA,IAAI,IAAIN,yBAAyB,CAAC,CAC9C,CAAC;IACDE,cAAc,GAAGE,OAAO;IACxB;IACAA,OAAO,CAACG,KAAK,CAAC,MAAM;MAClB,IAAIL,cAAc,KAAKE,OAAO,EAAE;QAACF,cAAc,GAAG,IAAI;MAAC;IACzD,CAAC,CAAC;EACJ;EACA,OAAOA,cAAc;AACvB,CAAC;AAEM,eAAeM,eAAeA,CAACC,GAAW,EAAuB;EACtE,OAAO,IAAAC,kBAAW,EAAC,MAAMP,UAAU,CAAC,CAAC,EAAEM,GAAG,CAAC;AAC7C;AAEO,MAAME,0BAA0B,GAAGA,CAAA,KAAY;EACpDT,cAAc,GAAG,IAAI;AACvB,CAAC;AAACU,OAAA,CAAAD,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decryptLargePayload = decryptLargePayload;
7
+ exports.encryptLargePayload = encryptLargePayload;
8
+ var _aes = require("@noble/ciphers/aes.js");
9
+ var _hmac = require("@noble/hashes/hmac.js");
10
+ var _sha = require("@noble/hashes/sha2.js");
11
+ var _crypto = require("./crypto");
12
+ const SLICE = 32 * 1024;
13
+ const BLOCK = 16;
14
+ const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
15
+ function payloadKeys(key) {
16
+ const km = (0, _crypto.hkdfSha256)(key, undefined, 'OMEMO Payload', 80);
17
+ return {
18
+ enc: km.slice(0, 32),
19
+ auth: km.slice(32, 64),
20
+ iv: km.slice(64)
21
+ };
22
+ }
23
+ async function encryptLargePayload(plaintext, onProgress) {
24
+ const key = (0, _crypto.randomBytes)(32);
25
+ const {
26
+ enc,
27
+ auth,
28
+ iv
29
+ } = payloadKeys(key);
30
+ const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
31
+ const mac = _hmac.hmac.create(_sha.sha256, auth);
32
+ let offset = 0;
33
+ let chain = iv;
34
+ while (plaintext.length - offset > SLICE) {
35
+ const out = payload.subarray(offset, offset + SLICE);
36
+ out.set((0, _aes.cbc)(enc, chain, {
37
+ disablePadding: true
38
+ }).encrypt(plaintext.subarray(offset, offset + SLICE)));
39
+ mac.update(out);
40
+ chain = out.slice(SLICE - BLOCK);
41
+ offset += SLICE;
42
+ onProgress?.(offset / plaintext.length);
43
+ await yieldToUi();
44
+ }
45
+ const last = (0, _aes.cbc)(enc, chain).encrypt(plaintext.subarray(offset));
46
+ payload.set(last, offset);
47
+ mac.update(last);
48
+ onProgress?.(1);
49
+ return {
50
+ keyMaterial: (0, _crypto.concatBytes)(key, mac.digest().slice(0, 16)),
51
+ payload
52
+ };
53
+ }
54
+ async function decryptLargePayload(keyMaterial, payload, onProgress) {
55
+ if (keyMaterial.length !== 48) {
56
+ throw new Error('Invalid key material');
57
+ }
58
+ if (payload.length === 0 || payload.length % BLOCK !== 0) {
59
+ throw new Error('Payload authentication failed');
60
+ }
61
+ const {
62
+ enc,
63
+ auth,
64
+ iv
65
+ } = payloadKeys(keyMaterial.slice(0, 32));
66
+ const mac = _hmac.hmac.create(_sha.sha256, auth);
67
+ for (let offset = 0; offset < payload.length; offset += SLICE) {
68
+ mac.update(payload.subarray(offset, offset + SLICE));
69
+ onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
70
+ if (offset + SLICE < payload.length) {
71
+ await yieldToUi();
72
+ }
73
+ }
74
+ if (!(0, _crypto.bytesEqual)(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
75
+ throw new Error('Payload authentication failed');
76
+ }
77
+ const plaintext = new Uint8Array(payload.length);
78
+ let offset = 0;
79
+ let chain = iv;
80
+ while (payload.length - offset > SLICE) {
81
+ const part = payload.subarray(offset, offset + SLICE);
82
+ plaintext.set((0, _aes.cbc)(enc, chain, {
83
+ disablePadding: true
84
+ }).decrypt(part), offset);
85
+ chain = part.slice(SLICE - BLOCK);
86
+ offset += SLICE;
87
+ onProgress?.(0.65 + offset / payload.length * 0.35);
88
+ await yieldToUi();
89
+ }
90
+ const last = (0, _aes.cbc)(enc, chain).decrypt(payload.subarray(offset));
91
+ plaintext.set(last, offset);
92
+ onProgress?.(1);
93
+ return plaintext.subarray(0, offset + last.length);
94
+ }
95
+ //# sourceMappingURL=fileCipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_aes","require","_hmac","_sha","_crypto","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","hkdfSha256","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","randomBytes","payload","Uint8Array","Math","floor","length","mac","hmac","create","sha256","offset","chain","out","subarray","set","cbc","disablePadding","encrypt","update","last","keyMaterial","concatBytes","digest","decryptLargePayload","Error","min","bytesEqual","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decodeFileEnvelope = decodeFileEnvelope;
7
+ exports.encodeFileEnvelope = encodeFileEnvelope;
8
+ exports.openSealedFile = openSealedFile;
9
+ Object.defineProperty(exports, "parseSealedMediaBody", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _sealedBody.parseSealedMediaBody;
13
+ }
14
+ });
15
+ exports.sealFileForUpload = sealFileForUpload;
16
+ var _crypto = require("./crypto");
17
+ var _fileCipher = require("./fileCipher");
18
+ var _sealedBody = require("./sealedBody");
19
+ const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
20
+ const VERSION = 1;
21
+ const HEADER_OFFSET = MAGIC.length + 1 + 4;
22
+ function encodeFileEnvelope(meta, bytes) {
23
+ const header = (0, _crypto.utf8ToBytes)(JSON.stringify({
24
+ mimetype: meta.mimetype,
25
+ originalname: meta.originalname,
26
+ size: meta.size
27
+ }));
28
+ const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
29
+ out.set(MAGIC, 0);
30
+ out[MAGIC.length] = VERSION;
31
+ new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
32
+ out.set(header, HEADER_OFFSET);
33
+ out.set(bytes, HEADER_OFFSET + header.length);
34
+ return out;
35
+ }
36
+ function decodeFileEnvelope(envelope) {
37
+ if (envelope.length < HEADER_OFFSET) {
38
+ throw new Error('file_envelope_truncated');
39
+ }
40
+ for (let i = 0; i < MAGIC.length; i++) {
41
+ if (envelope[i] !== MAGIC[i]) {
42
+ throw new Error('file_envelope_bad_magic');
43
+ }
44
+ }
45
+ const version = envelope[MAGIC.length];
46
+ if (version !== VERSION) {
47
+ throw new Error(`file_envelope_unsupported_version_${version}`);
48
+ }
49
+ const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
50
+ const bodyStart = HEADER_OFFSET + headerLen;
51
+ if (bodyStart > envelope.length) {
52
+ throw new Error('file_envelope_truncated');
53
+ }
54
+ const meta = JSON.parse((0, _crypto.bytesToUtf8)(envelope.subarray(HEADER_OFFSET, bodyStart)));
55
+ return {
56
+ meta,
57
+ bytes: envelope.subarray(bodyStart)
58
+ };
59
+ }
60
+ async function sealFileForUpload(file, onProgress) {
61
+ const envelope = encodeFileEnvelope({
62
+ mimetype: file.type || 'application/octet-stream',
63
+ originalname: file.name || 'blob',
64
+ size: file.bytes.length
65
+ }, file.bytes);
66
+ const {
67
+ keyMaterial,
68
+ payload
69
+ } = await (0, _fileCipher.encryptLargePayload)(envelope, onProgress);
70
+ return {
71
+ ciphertext: payload,
72
+ keyMaterial: (0, _crypto.toBase64)(keyMaterial),
73
+ filename: (0, _crypto.toHex)((0, _crypto.randomBytes)(16))
74
+ };
75
+ }
76
+ async function openSealedFile(ciphertext, keyMaterial, onProgress) {
77
+ return decodeFileEnvelope(await (0, _fileCipher.decryptLargePayload)((0, _crypto.fromBase64)(keyMaterial), ciphertext, onProgress));
78
+ }
79
+ //# sourceMappingURL=fileEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_crypto","require","_fileCipher","_sealedBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","utf8ToBytes","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","bytesToUtf8","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","encryptLargePayload","ciphertext","toBase64","filename","toHex","randomBytes","openSealedFile","decryptLargePayload","fromBase64"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}