@ethora/chat-component-rn 26.10.5 → 26.10.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 (426) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +18 -0
  3. package/app.plugin.js +2 -0
  4. package/lib/commonjs/assets/icons.js +2 -2
  5. package/lib/commonjs/assets/icons.js.map +1 -1
  6. package/lib/commonjs/components/MainComponents/AlbumGrid.js +152 -0
  7. package/lib/commonjs/components/MainComponents/AlbumGrid.js.map +1 -0
  8. package/lib/commonjs/components/MainComponents/ChatRoom.js +2 -2
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/MediaMessage.js +199 -123
  11. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/MediaUploadOverlay.js +109 -0
  13. package/lib/commonjs/components/MainComponents/MediaUploadOverlay.js.map +1 -0
  14. package/lib/commonjs/components/MessageBubble/MediaCaption.js +51 -0
  15. package/lib/commonjs/components/MessageBubble/MediaCaption.js.map +1 -0
  16. package/lib/commonjs/components/MessageBubble/Message.js +40 -1
  17. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  18. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +2 -1
  19. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  20. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +75 -0
  21. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  22. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +20 -4
  23. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  24. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +3 -2
  25. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  26. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +3 -2
  27. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  28. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +3 -2
  29. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  30. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +3 -2
  31. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  32. package/lib/commonjs/components/Thread/ThreadWrapper.js +3 -2
  33. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  34. package/lib/commonjs/components/styled/MediaFilePreview.js +60 -47
  35. package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
  36. package/lib/commonjs/components/styled/MessageImage.js +16 -6
  37. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  38. package/lib/commonjs/components/styled/SendInput.js +99 -68
  39. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  40. package/lib/commonjs/components/styled/VideoMessage.js +24 -10
  41. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  42. package/lib/commonjs/context/xmppProvider.js +46 -0
  43. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  44. package/lib/commonjs/e2ee/fileEnvelope.js +6 -0
  45. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -1
  46. package/lib/commonjs/e2ee/sealedBody.js +32 -2
  47. package/lib/commonjs/e2ee/sealedBody.js.map +1 -1
  48. package/lib/commonjs/helpers/albumLayout.js +150 -0
  49. package/lib/commonjs/helpers/albumLayout.js.map +1 -0
  50. package/lib/commonjs/helpers/attachments.js +255 -0
  51. package/lib/commonjs/helpers/attachments.js.map +1 -0
  52. package/lib/commonjs/helpers/caption.js +214 -0
  53. package/lib/commonjs/helpers/caption.js.map +1 -0
  54. package/lib/commonjs/helpers/createMainMessageForThread.js +5 -1
  55. package/lib/commonjs/helpers/createMainMessageForThread.js.map +1 -1
  56. package/lib/commonjs/helpers/createMessageFromXml.js +19 -5
  57. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  58. package/lib/commonjs/helpers/fileKind.js +40 -0
  59. package/lib/commonjs/helpers/fileKind.js.map +1 -0
  60. package/lib/commonjs/helpers/getDataFromXml.js +6 -1
  61. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  62. package/lib/commonjs/helpers/mapWithConcurrency.js +41 -0
  63. package/lib/commonjs/helpers/mapWithConcurrency.js.map +1 -0
  64. package/lib/commonjs/helpers/mediaLimits.js +33 -0
  65. package/lib/commonjs/helpers/mediaLimits.js.map +1 -0
  66. package/lib/commonjs/helpers/mediaSendRetry.js +64 -0
  67. package/lib/commonjs/helpers/mediaSendRetry.js.map +1 -0
  68. package/lib/commonjs/helpers/mediaWireData.js +62 -0
  69. package/lib/commonjs/helpers/mediaWireData.js.map +1 -0
  70. package/lib/commonjs/helpers/mentionSpans.js +19 -0
  71. package/lib/commonjs/helpers/mentionSpans.js.map +1 -0
  72. package/lib/commonjs/helpers/mimeToExtension.js +45 -0
  73. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  74. package/lib/commonjs/helpers/readReceipts.js +173 -0
  75. package/lib/commonjs/helpers/readReceipts.js.map +1 -0
  76. package/lib/commonjs/helpers/repairFilenameEncoding.js +79 -0
  77. package/lib/commonjs/helpers/repairFilenameEncoding.js.map +1 -0
  78. package/lib/commonjs/helpers/safeJson.js +18 -0
  79. package/lib/commonjs/helpers/safeJson.js.map +1 -0
  80. package/lib/commonjs/helpers/secureStoreRuntime.js +10 -1
  81. package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -1
  82. package/lib/commonjs/hooks/useSendMessage.js +384 -193
  83. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  84. package/lib/commonjs/i18n/strings.js +96 -0
  85. package/lib/commonjs/i18n/strings.js.map +1 -1
  86. package/lib/commonjs/main.js +81 -0
  87. package/lib/commonjs/main.js.map +1 -1
  88. package/lib/commonjs/networking/api-requests/auth.api.js +62 -3
  89. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  90. package/lib/commonjs/networking/api-requests/push.api.js +22 -7
  91. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  92. package/lib/commonjs/networking/stanzaHandlers.js +100 -3
  93. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  94. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +4 -2
  95. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  96. package/lib/commonjs/networking/xmpp/sendDisplayedMarker.xmpp.js +28 -0
  97. package/lib/commonjs/networking/xmpp/sendDisplayedMarker.xmpp.js.map +1 -0
  98. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +53 -2
  99. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  100. package/lib/commonjs/networking/xmpp/sendReceivedReceipt.xmpp.js +28 -0
  101. package/lib/commonjs/networking/xmpp/sendReceivedReceipt.xmpp.js.map +1 -0
  102. package/lib/commonjs/networking/xmppClient.js +64 -0
  103. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  104. package/lib/commonjs/push/pushKeyStore.js +169 -0
  105. package/lib/commonjs/push/pushKeyStore.js.map +1 -0
  106. package/lib/commonjs/push/sealedBox.js +106 -0
  107. package/lib/commonjs/push/sealedBox.js.map +1 -0
  108. package/lib/commonjs/push/sealedPush.js +124 -0
  109. package/lib/commonjs/push/sealedPush.js.map +1 -0
  110. package/lib/commonjs/push/sealedPushTask.js +195 -0
  111. package/lib/commonjs/push/sealedPushTask.js.map +1 -0
  112. package/lib/commonjs/roomStore/persistence.js +78 -5
  113. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  114. package/lib/commonjs/roomStore/roomHeapSlice.js +4 -0
  115. package/lib/commonjs/roomStore/roomHeapSlice.js.map +1 -1
  116. package/lib/commonjs/roomStore/roomsSlice.js +114 -1
  117. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  118. package/lib/commonjs/services/pushRegistration.js +12 -7
  119. package/lib/commonjs/services/pushRegistration.js.map +1 -1
  120. package/lib/commonjs/types/models/attachment.model.js +2 -0
  121. package/lib/commonjs/types/models/attachment.model.js.map +1 -0
  122. package/lib/commonjs/version.js +1 -1
  123. package/lib/module/assets/icons.js +1 -1
  124. package/lib/module/assets/icons.js.map +1 -1
  125. package/lib/module/components/MainComponents/AlbumGrid.js +146 -0
  126. package/lib/module/components/MainComponents/AlbumGrid.js.map +1 -0
  127. package/lib/module/components/MainComponents/ChatRoom.js +2 -2
  128. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  129. package/lib/module/components/MainComponents/MediaMessage.js +200 -124
  130. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  131. package/lib/module/components/MainComponents/MediaUploadOverlay.js +104 -0
  132. package/lib/module/components/MainComponents/MediaUploadOverlay.js.map +1 -0
  133. package/lib/module/components/MessageBubble/MediaCaption.js +46 -0
  134. package/lib/module/components/MessageBubble/MediaCaption.js.map +1 -0
  135. package/lib/module/components/MessageBubble/Message.js +44 -5
  136. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  137. package/lib/module/components/MessageBubble/MessageInteractions.js +2 -1
  138. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  139. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +75 -0
  140. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  141. package/lib/module/components/RoomComponents/LastMessageItem.js +20 -4
  142. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  143. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +3 -2
  144. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  145. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +3 -2
  146. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  147. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +3 -2
  148. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  149. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +3 -2
  150. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  151. package/lib/module/components/Thread/ThreadWrapper.js +3 -2
  152. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  153. package/lib/module/components/styled/MediaFilePreview.js +61 -48
  154. package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
  155. package/lib/module/components/styled/MessageImage.js +16 -6
  156. package/lib/module/components/styled/MessageImage.js.map +1 -1
  157. package/lib/module/components/styled/SendInput.js +99 -68
  158. package/lib/module/components/styled/SendInput.js.map +1 -1
  159. package/lib/module/components/styled/VideoMessage.js +24 -10
  160. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  161. package/lib/module/context/xmppProvider.js +46 -0
  162. package/lib/module/context/xmppProvider.js.map +1 -1
  163. package/lib/module/e2ee/fileEnvelope.js +1 -1
  164. package/lib/module/e2ee/fileEnvelope.js.map +1 -1
  165. package/lib/module/e2ee/sealedBody.js +32 -2
  166. package/lib/module/e2ee/sealedBody.js.map +1 -1
  167. package/lib/module/helpers/albumLayout.js +143 -0
  168. package/lib/module/helpers/albumLayout.js.map +1 -0
  169. package/lib/module/helpers/attachments.js +245 -0
  170. package/lib/module/helpers/attachments.js.map +1 -0
  171. package/lib/module/helpers/caption.js +207 -0
  172. package/lib/module/helpers/caption.js.map +1 -0
  173. package/lib/module/helpers/createMainMessageForThread.js +5 -1
  174. package/lib/module/helpers/createMainMessageForThread.js.map +1 -1
  175. package/lib/module/helpers/createMessageFromXml.js +20 -6
  176. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  177. package/lib/module/helpers/fileKind.js +34 -0
  178. package/lib/module/helpers/fileKind.js.map +1 -0
  179. package/lib/module/helpers/getDataFromXml.js +6 -1
  180. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  181. package/lib/module/helpers/mapWithConcurrency.js +37 -0
  182. package/lib/module/helpers/mapWithConcurrency.js.map +1 -0
  183. package/lib/module/helpers/mediaLimits.js +27 -0
  184. package/lib/module/helpers/mediaLimits.js.map +1 -0
  185. package/lib/module/helpers/mediaSendRetry.js +55 -0
  186. package/lib/module/helpers/mediaSendRetry.js.map +1 -0
  187. package/lib/module/helpers/mediaWireData.js +58 -0
  188. package/lib/module/helpers/mediaWireData.js.map +1 -0
  189. package/lib/module/helpers/mentionSpans.js +14 -0
  190. package/lib/module/helpers/mentionSpans.js.map +1 -0
  191. package/lib/module/helpers/mimeToExtension.js +43 -0
  192. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  193. package/lib/module/helpers/readReceipts.js +160 -0
  194. package/lib/module/helpers/readReceipts.js.map +1 -0
  195. package/lib/module/helpers/repairFilenameEncoding.js +74 -0
  196. package/lib/module/helpers/repairFilenameEncoding.js.map +1 -0
  197. package/lib/module/helpers/safeJson.js +13 -0
  198. package/lib/module/helpers/safeJson.js.map +1 -0
  199. package/lib/module/helpers/secureStoreRuntime.js +10 -1
  200. package/lib/module/helpers/secureStoreRuntime.js.map +1 -1
  201. package/lib/module/hooks/useSendMessage.js +387 -195
  202. package/lib/module/hooks/useSendMessage.js.map +1 -1
  203. package/lib/module/i18n/strings.js +96 -0
  204. package/lib/module/i18n/strings.js.map +1 -1
  205. package/lib/module/main.js +6 -0
  206. package/lib/module/main.js.map +1 -1
  207. package/lib/module/networking/api-requests/auth.api.js +62 -3
  208. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  209. package/lib/module/networking/api-requests/push.api.js +21 -6
  210. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  211. package/lib/module/networking/stanzaHandlers.js +97 -4
  212. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  213. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +5 -3
  214. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  215. package/lib/module/networking/xmpp/sendDisplayedMarker.xmpp.js +25 -0
  216. package/lib/module/networking/xmpp/sendDisplayedMarker.xmpp.js.map +1 -0
  217. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +53 -2
  218. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  219. package/lib/module/networking/xmpp/sendReceivedReceipt.xmpp.js +25 -0
  220. package/lib/module/networking/xmpp/sendReceivedReceipt.xmpp.js.map +1 -0
  221. package/lib/module/networking/xmppClient.js +64 -0
  222. package/lib/module/networking/xmppClient.js.map +1 -1
  223. package/lib/module/push/pushKeyStore.js +159 -0
  224. package/lib/module/push/pushKeyStore.js.map +1 -0
  225. package/lib/module/push/sealedBox.js +97 -0
  226. package/lib/module/push/sealedBox.js.map +1 -0
  227. package/lib/module/push/sealedPush.js +117 -0
  228. package/lib/module/push/sealedPush.js.map +1 -0
  229. package/lib/module/push/sealedPushTask.js +187 -0
  230. package/lib/module/push/sealedPushTask.js.map +1 -0
  231. package/lib/module/roomStore/persistence.js +78 -5
  232. package/lib/module/roomStore/persistence.js.map +1 -1
  233. package/lib/module/roomStore/roomHeapSlice.js +4 -0
  234. package/lib/module/roomStore/roomHeapSlice.js.map +1 -1
  235. package/lib/module/roomStore/roomsSlice.js +109 -0
  236. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  237. package/lib/module/services/pushRegistration.js +12 -7
  238. package/lib/module/services/pushRegistration.js.map +1 -1
  239. package/lib/module/types/models/attachment.model.js +2 -0
  240. package/lib/module/types/models/attachment.model.js.map +1 -0
  241. package/lib/module/version.js +1 -1
  242. package/lib/typescript/assets/icons.d.ts +6 -1
  243. package/lib/typescript/assets/icons.d.ts.map +1 -1
  244. package/lib/typescript/components/MainComponents/AlbumGrid.d.ts +21 -0
  245. package/lib/typescript/components/MainComponents/AlbumGrid.d.ts.map +1 -0
  246. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  247. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  248. package/lib/typescript/components/MainComponents/MediaUploadOverlay.d.ts +17 -0
  249. package/lib/typescript/components/MainComponents/MediaUploadOverlay.d.ts.map +1 -0
  250. package/lib/typescript/components/MessageBubble/MediaCaption.d.ts +12 -0
  251. package/lib/typescript/components/MessageBubble/MediaCaption.d.ts.map +1 -0
  252. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  253. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  254. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  255. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  256. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts +2 -0
  257. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  258. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +2 -0
  259. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  260. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +2 -0
  261. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  262. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +2 -0
  263. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  264. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  265. package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
  266. package/lib/typescript/components/styled/MessageImage.d.ts +10 -0
  267. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  268. package/lib/typescript/components/styled/SendInput.d.ts +7 -1
  269. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  270. package/lib/typescript/components/styled/VideoMessage.d.ts +7 -0
  271. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  272. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  273. package/lib/typescript/e2ee/fileEnvelope.d.ts +1 -1
  274. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -1
  275. package/lib/typescript/e2ee/sealedBody.d.ts +16 -0
  276. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -1
  277. package/lib/typescript/helpers/albumLayout.d.ts +66 -0
  278. package/lib/typescript/helpers/albumLayout.d.ts.map +1 -0
  279. package/lib/typescript/helpers/attachments.d.ts +55 -0
  280. package/lib/typescript/helpers/attachments.d.ts.map +1 -0
  281. package/lib/typescript/helpers/caption.d.ts +64 -0
  282. package/lib/typescript/helpers/caption.d.ts.map +1 -0
  283. package/lib/typescript/helpers/createMainMessageForThread.d.ts.map +1 -1
  284. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  285. package/lib/typescript/helpers/fileKind.d.ts +20 -0
  286. package/lib/typescript/helpers/fileKind.d.ts.map +1 -0
  287. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  288. package/lib/typescript/helpers/mapWithConcurrency.d.ts +9 -0
  289. package/lib/typescript/helpers/mapWithConcurrency.d.ts.map +1 -0
  290. package/lib/typescript/helpers/mediaLimits.d.ts +13 -0
  291. package/lib/typescript/helpers/mediaLimits.d.ts.map +1 -0
  292. package/lib/typescript/helpers/mediaSendRetry.d.ts +26 -0
  293. package/lib/typescript/helpers/mediaSendRetry.d.ts.map +1 -0
  294. package/lib/typescript/helpers/mediaWireData.d.ts +16 -0
  295. package/lib/typescript/helpers/mediaWireData.d.ts.map +1 -0
  296. package/lib/typescript/helpers/mentionSpans.d.ts +8 -0
  297. package/lib/typescript/helpers/mentionSpans.d.ts.map +1 -0
  298. package/lib/typescript/helpers/mimeToExtension.d.ts +7 -0
  299. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  300. package/lib/typescript/helpers/readReceipts.d.ts +82 -0
  301. package/lib/typescript/helpers/readReceipts.d.ts.map +1 -0
  302. package/lib/typescript/helpers/repairFilenameEncoding.d.ts +12 -0
  303. package/lib/typescript/helpers/repairFilenameEncoding.d.ts.map +1 -0
  304. package/lib/typescript/helpers/safeJson.d.ts +2 -0
  305. package/lib/typescript/helpers/safeJson.d.ts.map +1 -0
  306. package/lib/typescript/helpers/secureStoreRuntime.d.ts +17 -3
  307. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -1
  308. package/lib/typescript/hooks/useSendMessage.d.ts +2 -1
  309. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  310. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  311. package/lib/typescript/main.d.ts +6 -0
  312. package/lib/typescript/main.d.ts.map +1 -1
  313. package/lib/typescript/networking/api-requests/auth.api.d.ts +2 -0
  314. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  315. package/lib/typescript/networking/api-requests/push.api.d.ts +14 -2
  316. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  317. package/lib/typescript/networking/stanzaHandlers.d.ts +7 -3
  318. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  319. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  320. package/lib/typescript/networking/xmpp/sendDisplayedMarker.xmpp.d.ts +3 -0
  321. package/lib/typescript/networking/xmpp/sendDisplayedMarker.xmpp.d.ts.map +1 -0
  322. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts +12 -0
  323. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  324. package/lib/typescript/networking/xmpp/sendReceivedReceipt.xmpp.d.ts +3 -0
  325. package/lib/typescript/networking/xmpp/sendReceivedReceipt.xmpp.d.ts.map +1 -0
  326. package/lib/typescript/networking/xmppClient.d.ts +15 -0
  327. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  328. package/lib/typescript/push/pushKeyStore.d.ts +35 -0
  329. package/lib/typescript/push/pushKeyStore.d.ts.map +1 -0
  330. package/lib/typescript/push/sealedBox.d.ts +24 -0
  331. package/lib/typescript/push/sealedBox.d.ts.map +1 -0
  332. package/lib/typescript/push/sealedPush.d.ts +61 -0
  333. package/lib/typescript/push/sealedPush.d.ts.map +1 -0
  334. package/lib/typescript/push/sealedPushTask.d.ts +33 -0
  335. package/lib/typescript/push/sealedPushTask.d.ts.map +1 -0
  336. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  337. package/lib/typescript/roomStore/roomHeapSlice.d.ts +22 -1
  338. package/lib/typescript/roomStore/roomHeapSlice.d.ts.map +1 -1
  339. package/lib/typescript/roomStore/roomsSlice.d.ts +67 -3
  340. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  341. package/lib/typescript/services/pushRegistration.d.ts +8 -0
  342. package/lib/typescript/services/pushRegistration.d.ts.map +1 -1
  343. package/lib/typescript/types/models/attachment.model.d.ts +52 -0
  344. package/lib/typescript/types/models/attachment.model.d.ts.map +1 -0
  345. package/lib/typescript/types/models/message.model.d.ts +26 -0
  346. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  347. package/lib/typescript/types/models/modal.model.d.ts +7 -0
  348. package/lib/typescript/types/models/modal.model.d.ts.map +1 -1
  349. package/lib/typescript/types/models/room.model.d.ts +2 -0
  350. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  351. package/lib/typescript/types/types.d.ts +35 -1
  352. package/lib/typescript/types/types.d.ts.map +1 -1
  353. package/lib/typescript/version.d.ts +1 -1
  354. package/package.json +14 -1
  355. package/plugins/notification-service/Info.plist +31 -0
  356. package/plugins/notification-service/NotificationService.swift +195 -0
  357. package/plugins/notification-service/SealedBox.swift +355 -0
  358. package/plugins/notification-service/check/gen-vectors.mjs +24 -0
  359. package/plugins/notification-service/check/main.swift +37 -0
  360. package/plugins/notification-service/check/run.sh +12 -0
  361. package/plugins/notification-service/check/vectors.json +1 -0
  362. package/plugins/withNotificationServiceExtension.js +189 -0
  363. package/src/assets/icons.tsx +20 -2
  364. package/src/components/MainComponents/AlbumGrid.tsx +183 -0
  365. package/src/components/MainComponents/ChatRoom.tsx +4 -2
  366. package/src/components/MainComponents/MediaMessage.tsx +246 -130
  367. package/src/components/MainComponents/MediaUploadOverlay.tsx +102 -0
  368. package/src/components/MessageBubble/MediaCaption.tsx +45 -0
  369. package/src/components/MessageBubble/Message.tsx +71 -3
  370. package/src/components/MessageBubble/MessageInteractions.tsx +2 -1
  371. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +64 -0
  372. package/src/components/RoomComponents/LastMessageItem.tsx +15 -4
  373. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +6 -3
  374. package/src/components/RoomComponents/styled/LastMessageFile.tsx +6 -2
  375. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +6 -2
  376. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +6 -2
  377. package/src/components/Thread/ThreadWrapper.tsx +5 -9
  378. package/src/components/styled/MediaFilePreview.tsx +49 -34
  379. package/src/components/styled/MessageImage.tsx +21 -5
  380. package/src/components/styled/SendInput.tsx +101 -87
  381. package/src/components/styled/VideoMessage.tsx +34 -9
  382. package/src/context/xmppProvider.tsx +32 -0
  383. package/src/e2ee/fileEnvelope.ts +1 -1
  384. package/src/e2ee/sealedBody.ts +44 -5
  385. package/src/helpers/albumLayout.ts +207 -0
  386. package/src/helpers/attachments.ts +316 -0
  387. package/src/helpers/caption.ts +283 -0
  388. package/src/helpers/createMainMessageForThread.ts +6 -1
  389. package/src/helpers/createMessageFromXml.ts +21 -5
  390. package/src/helpers/fileKind.ts +38 -0
  391. package/src/helpers/getDataFromXml.ts +5 -1
  392. package/src/helpers/mapWithConcurrency.ts +32 -0
  393. package/src/helpers/mediaLimits.ts +27 -0
  394. package/src/helpers/mediaSendRetry.ts +59 -0
  395. package/src/helpers/mediaWireData.ts +57 -0
  396. package/src/helpers/mentionSpans.ts +17 -0
  397. package/src/helpers/mimeToExtension.ts +51 -0
  398. package/src/helpers/readReceipts.ts +219 -0
  399. package/src/helpers/repairFilenameEncoding.ts +82 -0
  400. package/src/helpers/safeJson.ts +11 -0
  401. package/src/helpers/secureStoreRuntime.ts +21 -3
  402. package/src/hooks/useSendMessage.tsx +448 -249
  403. package/src/i18n/strings.ts +96 -0
  404. package/src/main.ts +30 -0
  405. package/src/networking/api-requests/auth.api.ts +60 -3
  406. package/src/networking/api-requests/push.api.ts +29 -4
  407. package/src/networking/stanzaHandlers.ts +91 -2
  408. package/src/networking/xmpp/handleStanzas.xmpp.ts +6 -2
  409. package/src/networking/xmpp/sendDisplayedMarker.xmpp.ts +31 -0
  410. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +60 -3
  411. package/src/networking/xmpp/sendReceivedReceipt.xmpp.ts +31 -0
  412. package/src/networking/xmppClient.ts +48 -0
  413. package/src/push/pushKeyStore.ts +163 -0
  414. package/src/push/sealedBox.ts +104 -0
  415. package/src/push/sealedPush.ts +127 -0
  416. package/src/push/sealedPushTask.ts +175 -0
  417. package/src/roomStore/persistence.ts +94 -3
  418. package/src/roomStore/roomHeapSlice.ts +23 -1
  419. package/src/roomStore/roomsSlice.ts +112 -1
  420. package/src/services/pushRegistration.ts +25 -5
  421. package/src/types/models/attachment.model.ts +51 -0
  422. package/src/types/models/message.model.ts +29 -0
  423. package/src/types/models/modal.model.ts +7 -0
  424. package/src/types/models/room.model.ts +2 -0
  425. package/src/types/types.ts +41 -1
  426. package/src/version.ts +1 -1
@@ -33,6 +33,18 @@ Object.defineProperty(exports, "LIGHT_THEME", {
33
33
  return _theme.LIGHT_THEME;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "PUSH_KEY_KEYCHAIN_SERVICE", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _pushKeyStore.PUSH_KEY_KEYCHAIN_SERVICE;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "PUSH_SECRET_KEY_ITEM", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _pushKeyStore.PUSH_SECRET_KEY_ITEM;
46
+ }
47
+ });
36
48
  Object.defineProperty(exports, "PushRegistrationError", {
37
49
  enumerable: true,
38
50
  get: function () {
@@ -45,18 +57,48 @@ Object.defineProperty(exports, "RefreshFatalError", {
45
57
  return _authRefresh.RefreshFatalError;
46
58
  }
47
59
  });
60
+ Object.defineProperty(exports, "SEALED_PUSH_ALG", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _sealedPush.SEALED_PUSH_ALG;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "SEALED_PUSH_TASK", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _sealedPushTask.SEALED_PUSH_TASK;
70
+ }
71
+ });
48
72
  Object.defineProperty(exports, "XmppProvider", {
49
73
  enumerable: true,
50
74
  get: function () {
51
75
  return _xmppProvider.XmppProvider;
52
76
  }
53
77
  });
78
+ Object.defineProperty(exports, "clearPushKeyPair", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _pushKeyStore.clearPushKeyPair;
82
+ }
83
+ });
54
84
  Object.defineProperty(exports, "detectPushTokenType", {
55
85
  enumerable: true,
56
86
  get: function () {
57
87
  return _push.detectPushTokenType;
58
88
  }
59
89
  });
90
+ Object.defineProperty(exports, "ensurePushKeyPair", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _pushKeyStore.ensurePushKeyPair;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "getPushKeyPair", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _pushKeyStore.getPushKeyPair;
100
+ }
101
+ });
60
102
  Object.defineProperty(exports, "getRegisteredPushToken", {
61
103
  enumerable: true,
62
104
  get: function () {
@@ -105,6 +147,12 @@ Object.defineProperty(exports, "isRefreshFatalError", {
105
147
  return _authRefresh.isRefreshFatalError;
106
148
  }
107
149
  });
150
+ Object.defineProperty(exports, "isSealedPush", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _sealedPush.isSealedPush;
154
+ }
155
+ });
108
156
  Object.defineProperty(exports, "logoutService", {
109
157
  enumerable: true,
110
158
  get: function () {
@@ -123,6 +171,18 @@ Object.defineProperty(exports, "openRoomFromPush", {
123
171
  return _pushPayload.openRoomFromPush;
124
172
  }
125
173
  });
174
+ Object.defineProperty(exports, "openSealedPush", {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _sealedPush.openSealedPush;
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "presentSealedPush", {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _sealedPushTask.presentSealedPush;
184
+ }
185
+ });
126
186
  Object.defineProperty(exports, "refreshAuthTokens", {
127
187
  enumerable: true,
128
188
  get: function () {
@@ -141,12 +201,24 @@ Object.defineProperty(exports, "registerPushToken", {
141
201
  return _pushRegistration.registerPushToken;
142
202
  }
143
203
  });
204
+ Object.defineProperty(exports, "registerSealedPushTask", {
205
+ enumerable: true,
206
+ get: function () {
207
+ return _sealedPushTask.registerSealedPushTask;
208
+ }
209
+ });
144
210
  Object.defineProperty(exports, "resendMessage", {
145
211
  enumerable: true,
146
212
  get: function () {
147
213
  return _resendMessage.resendMessage;
148
214
  }
149
215
  });
216
+ Object.defineProperty(exports, "resetPushKeyPair", {
217
+ enumerable: true,
218
+ get: function () {
219
+ return _pushKeyStore.resetPushKeyPair;
220
+ }
221
+ });
150
222
  Object.defineProperty(exports, "resolveStringTable", {
151
223
  enumerable: true,
152
224
  get: function () {
@@ -159,6 +231,12 @@ Object.defineProperty(exports, "resolveTheme", {
159
231
  return _theme.resolveTheme;
160
232
  }
161
233
  });
234
+ Object.defineProperty(exports, "sealedPushEnvelopeOf", {
235
+ enumerable: true,
236
+ get: function () {
237
+ return _sealedPush.sealedPushEnvelopeOf;
238
+ }
239
+ });
162
240
  Object.defineProperty(exports, "setPushEnabled", {
163
241
  enumerable: true,
164
242
  get: function () {
@@ -244,6 +322,9 @@ var _useUnreadMessagesCounter = require("./hooks/useUnreadMessagesCounter");
244
322
  var _pushPayload = require("./helpers/pushPayload");
245
323
  var _pushRegistration = require("./services/pushRegistration");
246
324
  var _push = require("./networking/api-requests/push.api");
325
+ var _pushKeyStore = require("./push/pushKeyStore");
326
+ var _sealedPushTask = require("./push/sealedPushTask");
327
+ var _sealedPush = require("./push/sealedPush");
247
328
  var _useChatRoomFocus = require("./hooks/useChatRoomFocus");
248
329
  var _useLogout = require("./hooks/useLogout");
249
330
  var _useQRCodeChatHandler = require("./hooks/useQRCodeChatHandler");
@@ -1 +1 @@
1
- {"version":3,"names":["require","_ReduxWrapper","_xmppProvider","_useUnreadMessagesCounter","_pushPayload","_pushRegistration","_push","_useChatRoomFocus","_useLogout","_useQRCodeChatHandler","_resendMessage","_useChatFonts","_useT","_strings","_authRefresh","_theme","_chatSettingsSlice","_e2ee"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBAA,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAGA,IAAAG,yBAAA,GAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,iBAAA,GAAAL,OAAA;AAYA,IAAAM,KAAA,GAAAN,OAAA;AAUA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,qBAAA,GAAAT,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AAEA,IAAAW,aAAA,GAAAX,OAAA;AAKA,IAAAY,KAAA,GAAAZ,OAAA;AACA,IAAAa,QAAA,GAAAb,OAAA;AAqCA,IAAAc,YAAA,GAAAd,OAAA;AAYA,IAAAe,MAAA,GAAAf,OAAA;AASA,IAAAgB,kBAAA,GAAAhB,OAAA;AACA,IAAAiB,KAAA,GAAAjB,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["require","_ReduxWrapper","_xmppProvider","_useUnreadMessagesCounter","_pushPayload","_pushRegistration","_push","_pushKeyStore","_sealedPushTask","_sealedPush","_useChatRoomFocus","_useLogout","_useQRCodeChatHandler","_resendMessage","_useChatFonts","_useT","_strings","_authRefresh","_theme","_chatSettingsSlice","_e2ee"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBAA,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAGA,IAAAG,yBAAA,GAAAH,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,iBAAA,GAAAL,OAAA;AAYA,IAAAM,KAAA,GAAAN,OAAA;AAaA,IAAAO,aAAA,GAAAP,OAAA;AASA,IAAAQ,eAAA,GAAAR,OAAA;AAMA,IAAAS,WAAA,GAAAT,OAAA;AAYA,IAAAU,iBAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AACA,IAAAY,qBAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAb,OAAA;AAEA,IAAAc,aAAA,GAAAd,OAAA;AAKA,IAAAe,KAAA,GAAAf,OAAA;AACA,IAAAgB,QAAA,GAAAhB,OAAA;AAqCA,IAAAiB,YAAA,GAAAjB,OAAA;AAYA,IAAAkB,MAAA,GAAAlB,OAAA;AASA,IAAAmB,kBAAA,GAAAnB,OAAA;AACA,IAAAoB,KAAA,GAAApB,OAAA","ignoreList":[]}
@@ -174,7 +174,10 @@ const cloneFormData = formData => {
174
174
  }
175
175
  return copy;
176
176
  };
177
- function postMultipart(url, body, path) {
177
+
178
+ // How long an upload may sit without progress before it is aborted.
179
+ const UPLOAD_STALL_MS = 90_000;
180
+ function postMultipart(url, body, path, onProgress) {
178
181
  const token = _roomStore.store.getState().chatSettingStore?.user?.token ?? '';
179
182
  (0, _devLogger.pushLog)('http', `→ POST ${url} (xhr)`, {
180
183
  path,
@@ -233,10 +236,66 @@ function postMultipart(url, body, path) {
233
236
  xhr.onerror = () => failNetwork('Network request failed');
234
237
  xhr.ontimeout = () => failNetwork('Upload timed out');
235
238
  xhr.onabort = () => failNetwork('Upload aborted');
239
+
240
+ // A stalled connection must not hold an upload (and the message waiting on
241
+ // it) forever: abort when the body makes no progress for UPLOAD_STALL_MS,
242
+ // and again while the server takes that long to answer once it is up.
243
+ let stallTimer = null;
244
+ const armStall = () => {
245
+ if (stallTimer) {
246
+ clearTimeout(stallTimer);
247
+ }
248
+ stallTimer = setTimeout(() => {
249
+ try {
250
+ xhr.abort();
251
+ } catch {
252
+ // already finished
253
+ }
254
+ }, UPLOAD_STALL_MS);
255
+ };
256
+ const disarmStall = () => {
257
+ if (stallTimer) {
258
+ clearTimeout(stallTimer);
259
+ }
260
+ stallTimer = null;
261
+ };
262
+ const settledOnload = xhr.onload;
263
+ xhr.onload = (...args) => {
264
+ disarmStall();
265
+ settledOnload?.apply(xhr, args);
266
+ };
267
+ const settledOnerror = xhr.onerror;
268
+ xhr.onerror = (...args) => {
269
+ disarmStall();
270
+ settledOnerror?.apply(xhr, args);
271
+ };
272
+ const settledOnabort = xhr.onabort;
273
+ xhr.onabort = (...args) => {
274
+ disarmStall();
275
+ settledOnabort?.apply(xhr, args);
276
+ };
277
+ if (xhr.upload) {
278
+ xhr.upload.onprogress = event => {
279
+ armStall();
280
+ if (!onProgress) {
281
+ return;
282
+ }
283
+ if (!event.lengthComputable || !(event.total > 0)) {
284
+ return;
285
+ }
286
+ const percent = Math.min(100, Math.max(0, Math.round(event.loaded / event.total * 100)));
287
+ try {
288
+ onProgress(percent);
289
+ } catch {
290
+ // A progress listener must never fail the upload itself.
291
+ }
292
+ };
293
+ }
236
294
  xhr.open('POST', url);
237
295
  xhr.setRequestHeader('Authorization', token);
238
296
  xhr.setRequestHeader('Accept', '*/*');
239
297
  // Deliberately no Content-Type — see the note above.
298
+ armStall();
240
299
  xhr.send(body);
241
300
  });
242
301
  }
@@ -258,7 +317,7 @@ async function uploadFileV2(formData, activeRoomJID, options = {}) {
258
317
  const body = cloneFormData(formData);
259
318
  body.append('chatName', chatName);
260
319
  try {
261
- return await postMultipart(`${apiRoot}${SECURE_UPLOAD_PATH}`, body, SECURE_UPLOAD_PATH);
320
+ return await postMultipart(`${apiRoot}${SECURE_UPLOAD_PATH}`, body, SECURE_UPLOAD_PATH, options.onProgress);
262
321
  } catch (error) {
263
322
  if (!canFallBackToLegacyUpload(error)) {
264
323
  throw error;
@@ -267,7 +326,7 @@ async function uploadFileV2(formData, activeRoomJID, options = {}) {
267
326
  console.warn(`[chat] ${SECURE_UPLOAD_PATH} unreachable, falling back to ${LEGACY_UPLOAD_PATH} for this session`, error);
268
327
  }
269
328
  }
270
- return postMultipart(`${apiRoot}${LEGACY_UPLOAD_PATH}`, formData, LEGACY_UPLOAD_PATH);
329
+ return postMultipart(`${apiRoot}${LEGACY_UPLOAD_PATH}`, formData, LEGACY_UPLOAD_PATH, options.onProgress);
271
330
  }
272
331
  const __resetSecureUploadLatchForTests = () => {
273
332
  secureUploadUnavailable = false;
@@ -1 +1 @@
1
- {"version":3,"names":["_apiClient","_interopRequireWildcard","require","_roomStore","_devLogger","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","loginEmail","email","password","res","http","post","headers","Authorization","getCurrentAppToken","console","log","data","user","fileToken","loginSocial","idToken","accessToken","loginType","authToken","registerSocial","signUpPlan","signupPlan","checkEmailExist","loginViaJwt","clientToken","response","hasUser","hasToken","token","hasRefreshToken","refreshToken","userData","_id","firstName","lastName","xmppUsername","uploadFile","formData","store","getState","chatSettingStore","Accept","transformRequest","delete","SECURE_UPLOAD_PATH","LEGACY_UPLOAD_PATH","cloneFormData","copy","FormData","source","Array","isArray","_parts","key","value","append","forEach","getParts","part","fieldName","string","_headers","file","undefined","postMultipart","url","body","path","pushLog","baseUrl","getCurrentBaseURL","slice","Promise","resolve","reject","xhr","XMLHttpRequest","failNetwork","reason","err","Error","code","config","onload","status","responseBody","JSON","parse","responseText","statusText","resultsCount","results","length","onerror","ontimeout","onabort","open","setRequestHeader","send","canFallBackToLegacyUpload","error","secureUploadUnavailable","uploadFileV2","activeRoomJID","options","clientEncrypted","chatName","split","apiRoot","replace","warn","__resetSecureUploadLatchForTests","exports"],"sourceRoot":"../../../../src","sources":["networking/api-requests/auth.api.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_apiClient","_interopRequireWildcard","require","_roomStore","_devLogger","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","loginEmail","email","password","res","http","post","headers","Authorization","getCurrentAppToken","console","log","data","user","fileToken","loginSocial","idToken","accessToken","loginType","authToken","registerSocial","signUpPlan","signupPlan","checkEmailExist","loginViaJwt","clientToken","response","hasUser","hasToken","token","hasRefreshToken","refreshToken","userData","_id","firstName","lastName","xmppUsername","uploadFile","formData","store","getState","chatSettingStore","Accept","transformRequest","delete","SECURE_UPLOAD_PATH","LEGACY_UPLOAD_PATH","cloneFormData","copy","FormData","source","Array","isArray","_parts","key","value","append","forEach","getParts","part","fieldName","string","_headers","file","undefined","UPLOAD_STALL_MS","postMultipart","url","body","path","onProgress","pushLog","baseUrl","getCurrentBaseURL","slice","Promise","resolve","reject","xhr","XMLHttpRequest","failNetwork","reason","err","Error","code","config","onload","status","responseBody","JSON","parse","responseText","statusText","resultsCount","results","length","onerror","ontimeout","onabort","stallTimer","armStall","clearTimeout","setTimeout","abort","disarmStall","settledOnload","args","apply","settledOnerror","settledOnabort","upload","onprogress","event","lengthComputable","total","percent","Math","min","max","round","loaded","open","setRequestHeader","send","canFallBackToLegacyUpload","error","secureUploadUnavailable","uploadFileV2","activeRoomJID","options","clientEncrypted","chatName","split","apiRoot","replace","warn","__resetSecureUploadLatchForTests","exports"],"sourceRoot":"../../../../src","sources":["networking/api-requests/auth.api.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isPushRegistrationError = exports.detectPushTokenType = exports.buildPushSubscriptionPayload = exports.buildPushGatewayPayload = exports.PushRegistrationError = void 0;
6
+ exports.isPushRegistrationError = exports.detectPushTokenType = exports.buildPushSubscriptionPayload = exports.buildPushGatewayPayload = exports.PushRegistrationError = exports.PUSH_KEY_ALG = void 0;
7
7
  exports.registerPushSubscription = registerPushSubscription;
8
8
  exports.resolvePushDeviceType = void 0;
9
9
  exports.subscribeToPushGateway = subscribeToPushGateway;
@@ -51,32 +51,47 @@ const toRegistrationError = (error, what) => {
51
51
  return new PushRegistrationError(status ? `${what} refused (HTTP ${status}): ${detail}` : `${what} failed: ${detail}`, status, body);
52
52
  };
53
53
  const isUnknownFieldError = error => error?.response?.status === 422 && /not allowed/i.test(String(error?.response?.data?.error ?? ''));
54
- const buildPushSubscriptionPayload = (token, tokenType) => ({
54
+
55
+ /** The only sealing scheme the push service knows (README, "Encrypted pushes"). */
56
+ const PUSH_KEY_ALG = exports.PUSH_KEY_ALG = 'sealed-box-x25519';
57
+ const buildPushSubscriptionPayload = (token, tokenType, pushKey, pushKeyId) => ({
55
58
  registrationToken: token,
56
59
  deviceType: resolvePushDeviceType(),
57
- tokenType
60
+ tokenType,
61
+ ...(pushKey ? {
62
+ pushKey,
63
+ pushKeyAlg: PUSH_KEY_ALG,
64
+ ...(pushKeyId ? {
65
+ pushKeyId
66
+ } : {})
67
+ } : {})
58
68
  });
59
69
  exports.buildPushSubscriptionPayload = buildPushSubscriptionPayload;
60
70
  async function registerPushSubscription({
61
71
  appId,
62
72
  token,
63
73
  tokenType,
64
- authToken
74
+ authToken,
75
+ pushKey,
76
+ pushKeyId
65
77
  }) {
66
78
  const path = `/v1/push/subscription/${encodeURIComponent(appId)}`;
67
79
  const headers = {
68
80
  Authorization: authToken
69
81
  };
70
- const payload = buildPushSubscriptionPayload(token, tokenType);
82
+ const payload = buildPushSubscriptionPayload(token, tokenType, pushKey, pushKeyId);
71
83
  try {
72
84
  await _apiClient.default.post(path, payload, {
73
85
  headers
74
86
  });
75
87
  return;
76
88
  } catch (error) {
77
- const canDowngrade = tokenType === 'apns' || tokenType === 'fcm';
89
+ // A backend that predates `tokenType` still delivers to apns / fcm
90
+ // tokens. One that predates `pushKey` would deliver in the clear: the
91
+ // host asked for encryption, so that is an error, never a quiet fallback.
92
+ const canDowngrade = (tokenType === 'apns' || tokenType === 'fcm') && !pushKey;
78
93
  if (!(canDowngrade && isUnknownFieldError(error))) {
79
- throw toRegistrationError(error, tokenType === 'expo' ? 'Push registration (the backend does not accept Expo push tokens yet)' : 'Push registration');
94
+ throw toRegistrationError(error, tokenType === 'expo' ? 'Push registration (the backend does not accept Expo push tokens yet)' : pushKey && isUnknownFieldError(error) ? 'Push registration (the backend does not support encrypted pushes)' : 'Push registration');
80
95
  }
81
96
  }
82
97
  try {
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","_reactNative","_roomStore","_apiClient","e","__esModule","default","PushRegistrationError","Error","constructor","message","status","body","name","exports","isPushRegistrationError","error","EXPO_PUSH_TOKEN","APNS_TOKEN","detectPushTokenType","token","t","trim","test","resolvePushDeviceType","Platform","OS","toRegistrationError","what","response","data","detail","isUnknownFieldError","String","buildPushSubscriptionPayload","tokenType","registrationToken","deviceType","registerPushSubscription","appId","authToken","path","encodeURIComponent","headers","Authorization","payload","http","post","canDowngrade","unregisterPushSubscription","delete","endpoint","DEFAULT_XMPP_HOST","resolveXmppHost","config","store","getState","chatSettingStore","xmppSettings","host","gatewayAxios","axios","create","buildPushGatewayPayload","userJid","projectName","jid","includes","subscribeToPushGateway","args","baseURL","apiUrl"],"sourceRoot":"../../../../src","sources":["networking/api-requests/push.api.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","_reactNative","_roomStore","_apiClient","e","__esModule","default","PushRegistrationError","Error","constructor","message","status","body","name","exports","isPushRegistrationError","error","EXPO_PUSH_TOKEN","APNS_TOKEN","detectPushTokenType","token","t","trim","test","resolvePushDeviceType","Platform","OS","toRegistrationError","what","response","data","detail","isUnknownFieldError","String","PUSH_KEY_ALG","buildPushSubscriptionPayload","tokenType","pushKey","pushKeyId","registrationToken","deviceType","pushKeyAlg","registerPushSubscription","appId","authToken","path","encodeURIComponent","headers","Authorization","payload","http","post","canDowngrade","unregisterPushSubscription","delete","endpoint","DEFAULT_XMPP_HOST","resolveXmppHost","config","store","getState","chatSettingStore","xmppSettings","host","gatewayAxios","axios","create","buildPushGatewayPayload","userJid","projectName","jid","includes","subscribeToPushGateway","args","baseURL","apiUrl"],"sourceRoot":"../../../../src","sources":["networking/api-requests/push.api.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.onRoomKicked = exports.onRealtimeMessage = exports.onReactionMessage = exports.onReactionHistory = exports.onPresenceInRoom = exports.onNewRoomCreated = exports.onMessageHistory = exports.onMessageError = exports.onGetRoomInfo = exports.onGetMembers = exports.onGetLastMessageArchive = exports.onGetChatRooms = exports.onEditMessage = exports.onDeleteMessage = exports.onChatInvite = exports.handleComposing = void 0;
6
+ exports.onRoomKicked = exports.onReceivedReceipt = exports.onRealtimeMessage = exports.onReactionMessage = exports.onReactionHistory = exports.onPresenceInRoom = exports.onNewRoomCreated = exports.onMessageHistory = exports.onMessageError = exports.onGetRoomInfo = exports.onGetMembers = exports.onGetLastMessageArchive = exports.onGetChatRooms = exports.onEditMessage = exports.onDisplayedMarker = exports.onDeleteMessage = exports.onChatInvite = exports.isReceiptMarkerStanza = exports.handleComposing = void 0;
7
7
  var _roomStore = require("../roomStore");
8
8
  var _mamRouter = require("./xmpp/mamRouter");
9
9
  var _mamReactions = require("../helpers/mamReactions");
@@ -20,6 +20,40 @@ var _strings = require("../i18n/strings");
20
20
  var _mamQueryIds = require("./xmpp/mamQueryIds");
21
21
  var _rooms = require("./api-requests/rooms.api");
22
22
  var _pushSubscriptionService = require("../services/pushSubscriptionService");
23
+ var _readReceipts = require("../helpers/readReceipts");
24
+ const RECEIPTS_NS = 'urn:xmpp:receipts';
25
+ const CHAT_MARKERS_NS = 'urn:xmpp:chat-markers:0';
26
+
27
+ // XEP-0184 / XEP-0333 frames: broadcast to the room, carry no <data>, and are
28
+ // never chat messages (no bubble, no unread, no toast).
29
+ const isReceiptMarkerStanza = stanza => (0, _readReceipts.isReceiptMarkerId)(stanza?.attrs?.id) || !!stanza?.getChild?.('received', RECEIPTS_NS) || !!stanza?.getChild?.('displayed', CHAT_MARKERS_NS);
30
+
31
+ // XEP-0184: ack a message from someone else so their client can move its
32
+ // tick to "delivered". Our own echo and system messages are never acked.
33
+ exports.isReceiptMarkerStanza = isReceiptMarkerStanza;
34
+ const ackReceivedMessage = (message, roomJID, stanzaFrom, senderJID, xmppWs) => {
35
+ if (!xmppWs?.sendReceivedReceiptStanza || !message?.id) {
36
+ return;
37
+ }
38
+ if (message.isSystemMessage === 'true') {
39
+ return;
40
+ }
41
+ // A call-log row is built on this device; the sender has no such message.
42
+ if (String(message.id).startsWith('calllog-')) {
43
+ return;
44
+ }
45
+ const user = _roomStore.store.getState().chatSettingStore.user;
46
+ if ((0, _notificationPolicy.isOwnIncomingMessage)({
47
+ message,
48
+ stanzaFrom,
49
+ senderJID,
50
+ user
51
+ })) {
52
+ return;
53
+ }
54
+ xmppWs.sendReceivedReceiptStanza(String(message.id), roomJID);
55
+ };
56
+
23
57
  // TO DO: we are thinking to refactor this code in the following way:
24
58
  // each stanza will be parsed for 'type'
25
59
  // then it will be handled based on the type
@@ -29,7 +63,10 @@ var _pushSubscriptionService = require("../services/pushSubscriptionService");
29
63
  // types can be added into our chat protocol (XMPP stanza add field type="") to make it easier to parse here
30
64
 
31
65
  //core default
32
- const onRealtimeMessage = async stanza => {
66
+ const onRealtimeMessage = async (stanza, xmppWs) => {
67
+ if (isReceiptMarkerStanza(stanza)) {
68
+ return;
69
+ }
33
70
  if (!stanza?.getChild('result') && !stanza.getChild('composing') && !stanza.getChild('paused') && !stanza.getChild('subject') && !stanza.is('iq') && stanza.attrs.id !== 'deleteMessageStanza' && !stanza.getChild('reactions')) {
34
71
  const body = stanza?.getChild('body');
35
72
  const archived = stanza?.getChild('archived');
@@ -96,6 +133,7 @@ const onRealtimeMessage = async stanza => {
96
133
  roomJID,
97
134
  message
98
135
  }));
136
+ ackReceivedMessage(message, roomJID, stanza.attrs.from, senderJID, xmppWs);
99
137
  // A sender missing from usersSet (a big room only carries 30 members)
100
138
  // is resolved lazily; known and recently failed ids are dropped inside.
101
139
  try {
@@ -153,7 +191,55 @@ const onDeleteMessage = async stanza => {
153
191
  }));
154
192
  }
155
193
  };
194
+
195
+ // XEP-0184 delivery receipt from an occupant. The real sender travels in the
196
+ // <received> `from` attr, because the stanza's own `from` is the room nick.
156
197
  exports.onDeleteMessage = onDeleteMessage;
198
+ const onReceivedReceipt = stanza => {
199
+ if (!String(stanza?.attrs?.id || '').startsWith('message-received')) {
200
+ return;
201
+ }
202
+ const received = stanza.getChild('received', RECEIPTS_NS);
203
+ if (!received) {
204
+ return;
205
+ }
206
+ const messageId = received.attrs.id;
207
+ const fromXmppUsername = String(received.attrs.from || '').split('@')[0];
208
+ const roomJID = String(stanza.attrs.from || '').split('/')[0];
209
+ if (!messageId || !fromXmppUsername || !roomJID) {
210
+ return;
211
+ }
212
+ _roomStore.store.dispatch((0, _roomsSlice.setReceivedReceipt)({
213
+ roomJID,
214
+ messageId,
215
+ fromXmppUsername,
216
+ timestamp: Date.now()
217
+ }));
218
+ };
219
+
220
+ // XEP-0333 read marker from an occupant: one watermark per user and room.
221
+ exports.onReceivedReceipt = onReceivedReceipt;
222
+ const onDisplayedMarker = stanza => {
223
+ if (!String(stanza?.attrs?.id || '').startsWith('message-displayed')) {
224
+ return;
225
+ }
226
+ const displayed = stanza.getChild('displayed', CHAT_MARKERS_NS);
227
+ if (!displayed) {
228
+ return;
229
+ }
230
+ const messageId = displayed.attrs.id;
231
+ const xmppUsername = String(displayed.attrs.from || '').split('@')[0];
232
+ const roomJID = String(stanza.attrs.from || '').split('/')[0];
233
+ if (!messageId || !xmppUsername || !roomJID) {
234
+ return;
235
+ }
236
+ _roomStore.store.dispatch((0, _roomsSlice.setDisplayedMarker)({
237
+ roomJID,
238
+ xmppUsername,
239
+ messageId
240
+ }));
241
+ };
242
+ exports.onDisplayedMarker = onDisplayedMarker;
157
243
  const onEditMessage = async stanza => {
158
244
  if (stanza?.attrs?.id?.includes('edit-message')) {
159
245
  const stanzaId = stanza.getChild('stanza-id');
@@ -173,6 +259,11 @@ const isMamResult = stanza => !!stanza?.is?.('message') && stanza.getChild?.('re
173
259
  const parseMamResult = async stanza => {
174
260
  {
175
261
  const forwardedMsg = stanza.getChild('result')?.getChild('forwarded')?.getChild('message');
262
+ // A receipt or read marker archived with the room is not a message: the
263
+ // page still counts it (the paging cursor follows it), nothing is shown.
264
+ if (isReceiptMarkerStanza(forwardedMsg)) {
265
+ return undefined;
266
+ }
176
267
  if (forwardedMsg?.getChild?.('reactions')) {
177
268
  const reaction = (0, _mamReactions.extractReaction)(forwardedMsg, stanza.attrs?.from, stanza.getChild('result')?.attrs?.id);
178
269
  if (reaction && !(0, _mamRouter.collectMamReaction)(stanza, reaction)) {
@@ -265,7 +356,7 @@ const parseMamResult = async stanza => {
265
356
  return message;
266
357
  }
267
358
  };
268
- const onMessageHistory = async stanza => {
359
+ const onMessageHistory = async (stanza, xmppWs) => {
269
360
  if (!isMamResult(stanza)) {
270
361
  return;
271
362
  }
@@ -284,6 +375,12 @@ const onMessageHistory = async stanza => {
284
375
  (0, _mamRouter.collectMamMessage)(stanza, message);
285
376
  }
286
377
  }
378
+ if (message) {
379
+ // A message fetched by catch-up never reaches the live ack, so it is
380
+ // acked here (the client remembers which ones it already acked).
381
+ const innerFrom = stanza.getChild('result')?.getChild('forwarded')?.getChild('message')?.attrs?.from;
382
+ ackReceivedMessage(message, String(stanza.attrs?.from || '').split('/')[0], innerFrom, undefined, xmppWs);
383
+ }
287
384
  if (!claimed && message) {
288
385
  _roomStore.store.dispatch((0, _roomsSlice.addRoomMessage)({
289
386
  roomJID: stanza.attrs.from,