@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
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { xml } from '@xmpp/client';
4
4
  import { sendSealedMedia, shouldEncrypt } from '../../e2ee/send';
5
+ import { serializeAttachments } from '../../helpers/attachments';
6
+ import { normalizeCaptionInput } from '../../helpers/caption';
5
7
 
6
8
  // Monotonic counter — see sendTextMessage for the rationale (avoids
7
9
  // Date.now() id collisions on <1ms-apart sends).
@@ -29,6 +31,19 @@ const toServiceXmlns = (devServer, client) => {
29
31
  }
30
32
  return `wss://${ds.replace(/^\/+|\/+$/g, '')}/ws`;
31
33
  };
34
+
35
+ /**
36
+ * One media stanza for one or more files.
37
+ *
38
+ * `data` carries the flat fields that describe attachment #0, so a client
39
+ * that predates multi-attach still shows the first file. With more than one
40
+ * file the whole list rides on `<data attachments='JSON'>` (selection order).
41
+ *
42
+ * A typed caption rides on the message too: as `caption` / `captionMentions`
43
+ * attributes in a plain room, and inside the sealed <body> in an e2ee room
44
+ * (never as an attribute there). A message with one file and no caption is
45
+ * byte-identical to what this function produced before multi-attach.
46
+ */
32
47
  export function sendMediaMessage(client, roomJID, data, customId, devServer) {
33
48
  const id = customId || `send-media-message-${Date.now()}-${_sendMediaSeq = _sendMediaSeq + 1 >>> 0}`;
34
49
  const dataToSend = {
@@ -63,20 +78,56 @@ export function sendMediaMessage(client, roomJID, data, customId, devServer) {
63
78
  roomJid: data?.roomJid,
64
79
  push: 'true'
65
80
  };
81
+
82
+ // Only stamped when there is more than one file, so a single-file stanza
83
+ // keeps exactly the attributes it always had.
84
+ const files = Array.isArray(data?.attachments) ? data.attachments : [];
85
+ if (files.length > 1) {
86
+ // The flat fields describe attachment #0, whatever the caller passed, so
87
+ // an older client shows the first file of the message.
88
+ const head = files[0];
89
+ const flat = ['attachmentId', 'location', 'locationPreview', 'mimetype', 'originalName', 'fileName', 'size', 'duration'];
90
+ for (const key of flat) {
91
+ const value = head[key];
92
+ if (value !== undefined && value !== null && value !== '') {
93
+ dataToSend[key] = value;
94
+ }
95
+ }
96
+ dataToSend.attachments = serializeAttachments(files);
97
+ }
66
98
  const keys = data?.e2eeKeys;
67
99
  if (keys?.length) {
68
100
  dataToSend.clientEncrypted = 'true';
69
101
  }
102
+ const caption = normalizeCaptionInput({
103
+ text: typeof data?.caption === 'string' ? data.caption : '',
104
+ mentions: data?.captionMentions
105
+ });
70
106
  const hints = xml('store', {
71
107
  xmlns: 'urn:xmpp:hints'
72
108
  });
73
109
  if (keys?.length && shouldEncrypt(roomJID)) {
74
- sendSealedMedia(client, roomJID, id, xml('body', {}, JSON.stringify({
110
+ // The caption is sealed with the keys. It is never copied onto <data>.
111
+ const sealedBody = caption ? {
112
+ v: 1,
113
+ keys,
114
+ caption: caption.caption,
115
+ ...(caption.mentions ? {
116
+ captionMentions: caption.mentions
117
+ } : {})
118
+ } : {
75
119
  v: 1,
76
120
  keys
77
- })), [xml('data', dataToSend), hints]);
121
+ };
122
+ sendSealedMedia(client, roomJID, id, xml('body', {}, JSON.stringify(sealedBody)), [xml('data', dataToSend), hints]);
78
123
  return id;
79
124
  }
125
+ if (caption) {
126
+ dataToSend.caption = caption.caption;
127
+ if (caption.mentions) {
128
+ dataToSend.captionMentions = JSON.stringify(caption.mentions);
129
+ }
130
+ }
80
131
  const message = xml('message', {
81
132
  id: id,
82
133
  type: 'groupchat',
@@ -1 +1 @@
1
- {"version":3,"names":["xml","sendSealedMedia","shouldEncrypt","_sendMediaSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendMediaMessage","roomJID","data","customId","id","Date","now","dataToSend","xmlns","senderJID","jid","toString","senderFirstName","firstName","senderLastName","lastName","senderWalletAddress","walletAddress","tokenAmount","receiverMessageId","mucname","chatName","photoURL","userAvatar","isMediafile","createdAt","expiresAt","fileName","isVisible","location","locationPreview","mimetype","originalName","ownerKey","size","duration","updatedAt","userId","waveForm","attachmentId","isReply","showInChannel","mainMessage","roomJid","push","keys","e2eeKeys","length","clientEncrypted","hints","JSON","stringify","v","message","type","from","to","sendResult","send","then","console","log","catch","err","error"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendMediaMessage.xmpp.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["xml","sendSealedMedia","shouldEncrypt","serializeAttachments","normalizeCaptionInput","_sendMediaSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendMediaMessage","roomJID","data","customId","id","Date","now","dataToSend","xmlns","senderJID","jid","toString","senderFirstName","firstName","senderLastName","lastName","senderWalletAddress","walletAddress","tokenAmount","receiverMessageId","mucname","chatName","photoURL","userAvatar","isMediafile","createdAt","expiresAt","fileName","isVisible","location","locationPreview","mimetype","originalName","ownerKey","size","duration","updatedAt","userId","waveForm","attachmentId","isReply","showInChannel","mainMessage","roomJid","push","files","Array","isArray","attachments","length","head","flat","key","value","undefined","keys","e2eeKeys","clientEncrypted","caption","text","mentions","captionMentions","hints","sealedBody","v","JSON","stringify","message","type","from","to","sendResult","send","then","console","log","catch","err","error"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendMediaMessage.xmpp.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import { xml } from '@xmpp/client';
4
+
5
+ // XEP-0184 delivery receipt, broadcast to the room (mirrors
6
+ // sendMessageReaction.xmpp.ts) so every occupant can render tick state.
7
+ // The top-level stanza `from` gets rewritten to the room/nick by the MUC
8
+ // server, so the real xmppUsername travels in the <received> `from` attr.
9
+ export function sendReceivedReceipt(client, messageId, roomJid) {
10
+ const id = `message-received:${Date.now().toString()}`;
11
+ const message = xml('message', {
12
+ id,
13
+ type: 'groupchat',
14
+ from: client.jid?.toString(),
15
+ to: roomJid
16
+ }, xml('received', {
17
+ xmlns: 'urn:xmpp:receipts',
18
+ id: messageId,
19
+ from: client.jid?.toString()
20
+ }), xml('store', {
21
+ xmlns: 'urn:xmpp:hints'
22
+ }));
23
+ client.send(message);
24
+ }
25
+ //# sourceMappingURL=sendReceivedReceipt.xmpp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["xml","sendReceivedReceipt","client","messageId","roomJid","id","Date","now","toString","message","type","from","jid","to","xmlns","send"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendReceivedReceipt.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;;AAE1C;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CACjCC,MAAc,EACdC,SAAiB,EACjBC,OAAe,EACf;EACA,MAAMC,EAAE,GAAG,oBAAoBC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE;EAEtD,MAAMC,OAAO,GAAGT,GAAG,CACjB,SAAS,EACT;IACEK,EAAE;IACFK,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAET,MAAM,CAACU,GAAG,EAAEJ,QAAQ,CAAC,CAAC;IAC5BK,EAAE,EAAET;EACN,CAAC,EACDJ,GAAG,CAAC,UAAU,EAAE;IACdc,KAAK,EAAE,mBAAmB;IAC1BT,EAAE,EAAEF,SAAS;IACbQ,IAAI,EAAET,MAAM,CAACU,GAAG,EAAEJ,QAAQ,CAAC;EAC7B,CAAC,CAAC,EACFR,GAAG,CAAC,OAAO,EAAE;IAAEc,KAAK,EAAE;EAAiB,CAAC,CAC1C,CAAC;EAEDZ,MAAM,CAACa,IAAI,CAACN,OAAO,CAAC;AACtB","ignoreList":[]}
@@ -11,6 +11,8 @@ import { sendPing } from './xmpp/sendPing.xmpp';
11
11
  import { fetchHistoryPage, getHistory, getHistoryPage } from './xmpp/getHistory.xmpp';
12
12
  import { sendTextMessage } from './xmpp/sendTextMessage.xmpp';
13
13
  import { sendMessageReaction } from './xmpp/sendMessageReaction.xmpp';
14
+ import { sendReceivedReceipt } from './xmpp/sendReceivedReceipt.xmpp';
15
+ import { sendDisplayedMarker } from './xmpp/sendDisplayedMarker.xmpp';
14
16
  import { sendTextMessageWithTranslateTag } from './xmpp/sendTextMessageWithTranslateTag.xmpp';
15
17
  import { deleteMessage } from './xmpp/deleteMessage.xmpp';
16
18
  import { RoomJoinManager } from './xmpp/roomJoinSweep';
@@ -35,6 +37,8 @@ import { getServerReadTimestamp, isCorruptFutureReadMarker } from '../helpers/ge
35
37
 
36
38
  // Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
37
39
  const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
40
+ // Upper bound on remembered XEP-0184 acks (oldest forgotten first).
41
+ const RECEIPT_ACKED_CAP = 2000;
38
42
 
39
43
  // How long to wait for the old client's stop() during a reconnect before
40
44
  // giving up on it. Short on purpose: we are already tearing this client
@@ -208,6 +212,13 @@ export class XmppClient {
208
212
  }
209
213
  disableLastRead = false;
210
214
  activeRoomJID = null;
215
+ // XEP-0184 acks already sent, as `room:messageId`. A message is acked once,
216
+ // whether it arrived live or again inside a MAM page. Oldest entries drop
217
+ // first once the set passes the cap.
218
+ receiptAckedIds = new Set();
219
+ // XEP-0333: the last read watermark sent per room. A repeat flush for the
220
+ // same newest message sends nothing.
221
+ lastWatermarkSentByRoom = new Map();
211
222
  activeRoomBoostUntil = 0;
212
223
  softPauseUntil = 0;
213
224
  mamInFlightByRoom = new Map();
@@ -1391,6 +1402,59 @@ export class XmppClient {
1391
1402
  const result = await this.createRoomStanza(title, description, to);
1392
1403
  return typeof result === 'string' ? result : '';
1393
1404
  }
1405
+
1406
+ /**
1407
+ * XEP-0184 delivery receipt for a message from someone else. Sent for live
1408
+ * messages and for messages a MAM page brings in; a message already acked
1409
+ * is skipped. When the stream is down (or `config.disableReadReceipts` is
1410
+ * on) nothing is recorded, so a later page can still ack it.
1411
+ */
1412
+ sendReceivedReceiptStanza(messageId, roomJid) {
1413
+ // Privacy switch: with read receipts off this client stays silent, so
1414
+ // nobody learns that (or when) it received their message.
1415
+ if (store.getState().chatSettingStore.config?.disableReadReceipts) {
1416
+ return;
1417
+ }
1418
+ if (!messageId || !roomJid || !this.isStreamReady()) {
1419
+ return;
1420
+ }
1421
+ const jid = normalizeRoomJid(roomJid, this.conference);
1422
+ const key = `${jid}:${messageId}`;
1423
+ if (this.receiptAckedIds.has(key)) {
1424
+ return;
1425
+ }
1426
+ this.receiptAckedIds.add(key);
1427
+ if (this.receiptAckedIds.size > RECEIPT_ACKED_CAP) {
1428
+ const oldest = this.receiptAckedIds.values().next().value;
1429
+ if (oldest !== undefined) {
1430
+ this.receiptAckedIds.delete(oldest);
1431
+ }
1432
+ }
1433
+ sendReceivedReceipt(this.client, messageId, jid);
1434
+ }
1435
+
1436
+ /**
1437
+ * XEP-0333 read watermark for a room: the newest message the user has
1438
+ * displayed. Off with `disableLastRead` or `config.disableReadReceipts`.
1439
+ * The caller decides when the room counts as read (see computeReadWatermark).
1440
+ */
1441
+ sendDisplayedMarkerStanza(messageId, roomJid) {
1442
+ if (this.disableLastRead) {
1443
+ return;
1444
+ }
1445
+ if (store.getState().chatSettingStore.config?.disableReadReceipts) {
1446
+ return;
1447
+ }
1448
+ if (!messageId || !roomJid || !this.isStreamReady()) {
1449
+ return;
1450
+ }
1451
+ const jid = normalizeRoomJid(roomJid, this.conference);
1452
+ if (this.lastWatermarkSentByRoom.get(jid) === messageId) {
1453
+ return;
1454
+ }
1455
+ this.lastWatermarkSentByRoom.set(jid, messageId);
1456
+ sendDisplayedMarker(this.client, messageId, jid);
1457
+ }
1394
1458
  sendMessageReactionStanza(messageId, roomJid, reactionsList, data) {
1395
1459
  sendMessageReaction(this.client, messageId, normalizeRoomJid(roomJid, this.conference), reactionsList, data || {});
1396
1460
  }
@@ -1 +1 @@
1
- {"version":3,"names":["xmpp","xml","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","sendPing","fetchHistoryPage","getHistory","getHistoryPage","sendTextMessage","sendMessageReaction","sendTextMessageWithTranslateTag","deleteMessage","RoomJoinManager","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","onOnline","e2eeOnOnline","pushLog","devPushLog","isDevLogActive","normalizeRoomJid","store","applyPrivateStoreMarkers","setConnectionState","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","getServerReadTimestamp","isCorruptFutureReadMarker","DEFAULT_DEV_SERVER","STOP_TIMEOUT_MS","withTimeout","promise","ms","Promise","resolve","settled","done","clearTimeout","timer","setTimeout","then","AUTH_RECOVERY_MAX_FAILURES","AUTH_REJECTIONS_LIMIT","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","HISTORY_WATCHDOG_MS","CREDENTIALS_REFRESH_MIN_INTERVAL_MS","XmppClient","host","service","conference","_status","status","next","changed","reported","suppressReconnect","getState","chatSettingStore","connection","dispatch","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","reconnectTimer","reconnecting","lastAuthError","credentialsRefreshedAt","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","connectionEpoch","joins","getClient","client","getConnectionEpoch","isOnline","waitForOnline","timeoutMs","getConference","getHistoryQoS","xmppSettings","historyQoS","presencesReady","value","priorityPresencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","authLostHandler","authRecoveryFailures","authLostFired","authRejectionsSinceOnline","setAuthLostHandler","handler","markAuthRecoveryFailed","reason","console","warn","e","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","devServer","qos","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","ensureRoomPresence","waitForJoin","source","options","sendAllPresencesAndMarkReady","bumpConnectionEpoch","reset","enqueueHistoryTask","params","reissued","chatJID","max","before","existing","get","existingIsTeaser","Math","min","sourceRank","ctl","aborted","guarded","releaseMamEntry","String","catch","undefined","runHistoryTask","messages","self","entry","cur","delete","id","selfApplied","r","wait","startedAt","set","s","clientAlreadyStopped","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","result","Object","defineProperty","writable","configurable","attachEventListeners","start","scheduleReconnect","onDisconnect","log","flushPendingSends","onError","onStanza","from","on","c","removeListener","reject","tick","Error","ensureConnected","timeout","exp","delay","pow","forceReconnect","streamAliveProbe","verifyStreamAlive","underlying","alive","finally","ensureStreamAlive","authFailed","staleCreds","rejectedPassword","refreshCredentialsOnce","old","suspendedForBackground","stopClientQuietly","fresh","sock","socket","end","suspend","resume","isSuspended","disconnect","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","presenceInRoomStanza","getHistoryStanza","coalesceRoom","cursor","ok","complete","first","last","count","received","finSeen","getHistoryWindow","failed","page","window","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","joinForSend","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","markers","normalized","roomsState","rooms","heapState","roomHeapSlice","jid","keys","n","Number","isFinite","newestKnownMs","length","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","messageId","reactionsList","sendTextMessageWithTranslateTagStanza","langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["xmpp","xml","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","sendPing","fetchHistoryPage","getHistory","getHistoryPage","sendTextMessage","sendMessageReaction","sendReceivedReceipt","sendDisplayedMarker","sendTextMessageWithTranslateTag","deleteMessage","RoomJoinManager","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","onOnline","e2eeOnOnline","pushLog","devPushLog","isDevLogActive","normalizeRoomJid","store","applyPrivateStoreMarkers","setConnectionState","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","getServerReadTimestamp","isCorruptFutureReadMarker","DEFAULT_DEV_SERVER","RECEIPT_ACKED_CAP","STOP_TIMEOUT_MS","withTimeout","promise","ms","Promise","resolve","settled","done","clearTimeout","timer","setTimeout","then","AUTH_RECOVERY_MAX_FAILURES","AUTH_REJECTIONS_LIMIT","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","HISTORY_WATCHDOG_MS","CREDENTIALS_REFRESH_MIN_INTERVAL_MS","XmppClient","host","service","conference","_status","status","next","changed","reported","suppressReconnect","getState","chatSettingStore","connection","dispatch","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","reconnectTimer","reconnecting","lastAuthError","credentialsRefreshedAt","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","connectionEpoch","joins","getClient","client","getConnectionEpoch","isOnline","waitForOnline","timeoutMs","getConference","getHistoryQoS","xmppSettings","historyQoS","presencesReady","value","priorityPresencesReady","disableLastRead","activeRoomJID","receiptAckedIds","Set","lastWatermarkSentByRoom","Map","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","authLostHandler","authRecoveryFailures","authLostFired","authRejectionsSinceOnline","setAuthLostHandler","handler","markAuthRecoveryFailed","reason","console","warn","e","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","devServer","qos","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","ensureRoomPresence","waitForJoin","source","options","sendAllPresencesAndMarkReady","bumpConnectionEpoch","reset","enqueueHistoryTask","params","reissued","chatJID","max","before","existing","get","existingIsTeaser","Math","min","sourceRank","ctl","aborted","guarded","releaseMamEntry","String","catch","undefined","runHistoryTask","messages","self","entry","cur","delete","id","selfApplied","r","wait","startedAt","set","s","clientAlreadyStopped","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","result","Object","defineProperty","writable","configurable","attachEventListeners","start","scheduleReconnect","onDisconnect","log","flushPendingSends","onError","onStanza","from","on","c","removeListener","reject","tick","Error","ensureConnected","timeout","exp","delay","pow","forceReconnect","streamAliveProbe","verifyStreamAlive","underlying","alive","finally","ensureStreamAlive","authFailed","staleCreds","rejectedPassword","refreshCredentialsOnce","old","suspendedForBackground","stopClientQuietly","fresh","sock","socket","end","suspend","resume","isSuspended","disconnect","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","presenceInRoomStanza","getHistoryStanza","coalesceRoom","cursor","ok","complete","first","last","count","received","finSeen","getHistoryWindow","failed","page","window","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","joinForSend","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","markers","normalized","roomsState","rooms","heapState","roomHeapSlice","jid","keys","n","Number","isFinite","newestKnownMs","length","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendReceivedReceiptStanza","messageId","config","disableReadReceipts","key","has","add","oldest","values","sendDisplayedMarkerStanza","sendMessageReactionStanza","reactionsList","sendTextMessageWithTranslateTagStanza","langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ import { fromBase64, toBase64 } from '../e2ee/crypto';
4
+ import { loadSecureStore } from '../helpers/secureStoreRuntime';
5
+ import { pushLog } from '../utils/devLogger';
6
+ import { SEALED_BOX_PUBLIC_KEY_BYTES, SEALED_BOX_SECRET_KEY_BYTES, generateSealedBoxKeyPair, sealedBoxKeyId, sealedBoxPublicKeyOf } from './sealedBox';
7
+ // The device key for encrypted pushes: one X25519 pair per install, in the
8
+ // platform keychain / keystore through expo-secure-store. The public half
9
+ // goes to the push service with the token (`pushKey`); the secret half
10
+ // never leaves the device and is read by whoever renders a sealed push —
11
+ // the Android background task (`sealedPushTask.ts`, same process, same
12
+ // store) and the iOS notification service extension, which reads the
13
+ // keychain item directly (plugins/notification-service), so the item's
14
+ // attributes below are a contract with the Swift side:
15
+ // service `ethora.push` (expo-secure-store stores it as `ethora.push:no-auth`)
16
+ // account `ethora_push_secret_key`, UTF-8
17
+ // value base64 of the 32-byte secret key, UTF-8
18
+ // group the app's first keychain access group, which the config
19
+ // plugin shares with the extension
20
+ // Readable after the first unlock so a push that arrives while the phone
21
+ // is locked still decrypts; this device only, so an iCloud keychain copy
22
+ // on another device is never a key for pushes that go to this one.
23
+
24
+ export const PUSH_KEY_KEYCHAIN_SERVICE = 'ethora.push';
25
+ export const PUSH_SECRET_KEY_ITEM = 'ethora_push_secret_key';
26
+ export const PUSH_PUBLIC_KEY_ITEM = 'ethora_push_public_key';
27
+ let warnedMissingStore = false;
28
+ const warnMissingStoreOnce = () => {
29
+ if (warnedMissingStore) {
30
+ return;
31
+ }
32
+ warnedMissingStore = true;
33
+ pushLog('warn', 'push: expo-secure-store is not installed, so no device key for encrypted ' + 'pushes can be kept; pushes stay in the clear.');
34
+ };
35
+ const storeOptions = () => {
36
+ const store = loadSecureStore();
37
+ if (!store) {
38
+ return null;
39
+ }
40
+ const accessible = store.accessible.afterFirstUnlockThisDeviceOnly;
41
+ return {
42
+ keychainService: PUSH_KEY_KEYCHAIN_SERVICE,
43
+ ...(accessible !== undefined ? {
44
+ keychainAccessible: accessible
45
+ } : {})
46
+ };
47
+ };
48
+ const readItem = async item => {
49
+ const store = loadSecureStore();
50
+ const options = storeOptions();
51
+ if (!store || !options) {
52
+ return null;
53
+ }
54
+ try {
55
+ return await store.getItemAsync(item, options);
56
+ } catch (e) {
57
+ pushLog('warn', `push: reading ${item} failed`, e);
58
+ return null;
59
+ }
60
+ };
61
+ const decodeKey = (raw, length) => {
62
+ if (!raw) {
63
+ return null;
64
+ }
65
+ try {
66
+ const bytes = fromBase64(raw);
67
+ return bytes.length === length ? bytes : null;
68
+ } catch {
69
+ return null;
70
+ }
71
+ };
72
+
73
+ /**
74
+ * The stored pair, or null when there is none (or it is unreadable).
75
+ * The public key is re-derived from the secret, so the pair is consistent
76
+ * even if only the secret item survived.
77
+ */
78
+ export async function loadPushSecretKey() {
79
+ const secretKey = decodeKey(await readItem(PUSH_SECRET_KEY_ITEM), SEALED_BOX_SECRET_KEY_BYTES);
80
+ if (!secretKey) {
81
+ return null;
82
+ }
83
+ const stored = decodeKey(await readItem(PUSH_PUBLIC_KEY_ITEM), SEALED_BOX_PUBLIC_KEY_BYTES);
84
+ return {
85
+ publicKey: stored ?? sealedBoxPublicKeyOf(secretKey),
86
+ secretKey
87
+ };
88
+ }
89
+ const describe = publicKey => ({
90
+ publicKey: toBase64(publicKey),
91
+ keyId: sealedBoxKeyId(publicKey)
92
+ });
93
+
94
+ /** The public half of the stored pair, null when the device has no key. */
95
+ export async function getPushKeyPair() {
96
+ const key = await loadPushSecretKey();
97
+ return key ? describe(key.publicKey) : null;
98
+ }
99
+
100
+ /**
101
+ * Generate and store a new pair, replacing any existing one. Pushes sealed
102
+ * for the old key stop opening at once, so re-register the token with the
103
+ * new `publicKey` right after. Null when expo-secure-store is missing or
104
+ * the keychain refused the write.
105
+ */
106
+ export async function resetPushKeyPair() {
107
+ const store = loadSecureStore();
108
+ const options = storeOptions();
109
+ if (!store || !options) {
110
+ warnMissingStoreOnce();
111
+ return null;
112
+ }
113
+ const pair = generateSealedBoxKeyPair();
114
+ try {
115
+ await store.setItemAsync(PUSH_SECRET_KEY_ITEM, toBase64(pair.secretKey), options);
116
+ await store.setItemAsync(PUSH_PUBLIC_KEY_ITEM, toBase64(pair.publicKey), options);
117
+ } catch (e) {
118
+ pushLog('warn', 'push: storing the device key failed', e);
119
+ return null;
120
+ }
121
+ const check = await loadPushSecretKey();
122
+ if (!check || toBase64(check.publicKey) !== toBase64(pair.publicKey)) {
123
+ pushLog('warn', 'push: the device key was not kept');
124
+ return null;
125
+ }
126
+ pushLog('rn', `push: new device key ${sealedBoxKeyId(pair.publicKey)}`);
127
+ return describe(pair.publicKey);
128
+ }
129
+
130
+ /**
131
+ * The device key for encrypted pushes, created on first call. Hand
132
+ * `publicKey` to `registerPushToken` (or send it as `pushKey` yourself).
133
+ */
134
+ export async function ensurePushKeyPair() {
135
+ const existing = await getPushKeyPair();
136
+ return existing ?? resetPushKeyPair();
137
+ }
138
+
139
+ /** Remove the pair; the next `ensurePushKeyPair` creates a new one. */
140
+ export async function clearPushKeyPair() {
141
+ const store = loadSecureStore();
142
+ const options = storeOptions();
143
+ if (!store || !options) {
144
+ return;
145
+ }
146
+ for (const item of [PUSH_SECRET_KEY_ITEM, PUSH_PUBLIC_KEY_ITEM]) {
147
+ try {
148
+ await store.deleteItemAsync(item, options);
149
+ } catch {
150
+ // Not there — nothing to remove.
151
+ }
152
+ }
153
+ }
154
+
155
+ /** Test seam only. */
156
+ export const __resetPushKeyStoreForTests = () => {
157
+ warnedMissingStore = false;
158
+ };
159
+ //# sourceMappingURL=pushKeyStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fromBase64","toBase64","loadSecureStore","pushLog","SEALED_BOX_PUBLIC_KEY_BYTES","SEALED_BOX_SECRET_KEY_BYTES","generateSealedBoxKeyPair","sealedBoxKeyId","sealedBoxPublicKeyOf","PUSH_KEY_KEYCHAIN_SERVICE","PUSH_SECRET_KEY_ITEM","PUSH_PUBLIC_KEY_ITEM","warnedMissingStore","warnMissingStoreOnce","storeOptions","store","accessible","afterFirstUnlockThisDeviceOnly","keychainService","undefined","keychainAccessible","readItem","item","options","getItemAsync","e","decodeKey","raw","length","bytes","loadPushSecretKey","secretKey","stored","publicKey","describe","keyId","getPushKeyPair","key","resetPushKeyPair","pair","setItemAsync","check","ensurePushKeyPair","existing","clearPushKeyPair","deleteItemAsync","__resetPushKeyStoreForTests"],"sourceRoot":"../../../src","sources":["push/pushKeyStore.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,gBAAgB;AACrD,SAASC,eAAe,QAAiC,+BAA+B;AACxF,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SACEC,2BAA2B,EAC3BC,2BAA2B,EAC3BC,wBAAwB,EACxBC,cAAc,EACdC,oBAAoB,QACf,aAAa;AAGpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,yBAAyB,GAAG,aAAa;AACtD,OAAO,MAAMC,oBAAoB,GAAG,wBAAwB;AAC5D,OAAO,MAAMC,oBAAoB,GAAG,wBAAwB;AAS5D,IAAIC,kBAAkB,GAAG,KAAK;AAC9B,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACjC,IAAID,kBAAkB,EAAE;IAAC;EAAO;EAChCA,kBAAkB,GAAG,IAAI;EACzBT,OAAO,CACL,MAAM,EACN,2EAA2E,GACzE,+CACJ,CAAC;AACH,CAAC;AAED,MAAMW,YAAY,GAAGA,CAAA,KAAiC;EACpD,MAAMC,KAAK,GAAGb,eAAe,CAAC,CAAC;EAC/B,IAAI,CAACa,KAAK,EAAE;IAAC,OAAO,IAAI;EAAC;EACzB,MAAMC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,8BAA8B;EAClE,OAAO;IACLC,eAAe,EAAET,yBAAyB;IAC1C,IAAIO,UAAU,KAAKG,SAAS,GAAG;MAAEC,kBAAkB,EAAEJ;IAAW,CAAC,GAAG,CAAC,CAAC;EACxE,CAAC;AACH,CAAC;AAED,MAAMK,QAAQ,GAAG,MAAOC,IAAY,IAA6B;EAC/D,MAAMP,KAAK,GAAGb,eAAe,CAAC,CAAC;EAC/B,MAAMqB,OAAO,GAAGT,YAAY,CAAC,CAAC;EAC9B,IAAI,CAACC,KAAK,IAAI,CAACQ,OAAO,EAAE;IAAC,OAAO,IAAI;EAAC;EACrC,IAAI;IACF,OAAO,MAAMR,KAAK,CAACS,YAAY,CAACF,IAAI,EAAEC,OAAO,CAAC;EAChD,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVtB,OAAO,CAAC,MAAM,EAAE,iBAAiBmB,IAAI,SAAS,EAAEG,CAAC,CAAC;IAClD,OAAO,IAAI;EACb;AACF,CAAC;AAED,MAAMC,SAAS,GAAGA,CAACC,GAAkB,EAAEC,MAAc,KAAwB;EAC3E,IAAI,CAACD,GAAG,EAAE;IAAC,OAAO,IAAI;EAAC;EACvB,IAAI;IACF,MAAME,KAAK,GAAG7B,UAAU,CAAC2B,GAAG,CAAC;IAC7B,OAAOE,KAAK,CAACD,MAAM,KAAKA,MAAM,GAAGC,KAAK,GAAG,IAAI;EAC/C,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,iBAAiBA,CAAA,EAAkC;EACvE,MAAMC,SAAS,GAAGL,SAAS,CAAC,MAAML,QAAQ,CAACX,oBAAoB,CAAC,EAAEL,2BAA2B,CAAC;EAC9F,IAAI,CAAC0B,SAAS,EAAE;IAAC,OAAO,IAAI;EAAC;EAC7B,MAAMC,MAAM,GAAGN,SAAS,CAAC,MAAML,QAAQ,CAACV,oBAAoB,CAAC,EAAEP,2BAA2B,CAAC;EAC3F,OAAO;IAAE6B,SAAS,EAAED,MAAM,IAAIxB,oBAAoB,CAACuB,SAAS,CAAC;IAAEA;EAAU,CAAC;AAC5E;AAEA,MAAMG,QAAQ,GAAID,SAAqB,KAAmB;EACxDA,SAAS,EAAEhC,QAAQ,CAACgC,SAAS,CAAC;EAC9BE,KAAK,EAAE5B,cAAc,CAAC0B,SAAS;AACjC,CAAC,CAAC;;AAEF;AACA,OAAO,eAAeG,cAAcA,CAAA,EAAgC;EAClE,MAAMC,GAAG,GAAG,MAAMP,iBAAiB,CAAC,CAAC;EACrC,OAAOO,GAAG,GAAGH,QAAQ,CAACG,GAAG,CAACJ,SAAS,CAAC,GAAG,IAAI;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeK,gBAAgBA,CAAA,EAAgC;EACpE,MAAMvB,KAAK,GAAGb,eAAe,CAAC,CAAC;EAC/B,MAAMqB,OAAO,GAAGT,YAAY,CAAC,CAAC;EAC9B,IAAI,CAACC,KAAK,IAAI,CAACQ,OAAO,EAAE;IACtBV,oBAAoB,CAAC,CAAC;IACtB,OAAO,IAAI;EACb;EACA,MAAM0B,IAAI,GAAGjC,wBAAwB,CAAC,CAAC;EACvC,IAAI;IACF,MAAMS,KAAK,CAACyB,YAAY,CAAC9B,oBAAoB,EAAET,QAAQ,CAACsC,IAAI,CAACR,SAAS,CAAC,EAAER,OAAO,CAAC;IACjF,MAAMR,KAAK,CAACyB,YAAY,CAAC7B,oBAAoB,EAAEV,QAAQ,CAACsC,IAAI,CAACN,SAAS,CAAC,EAAEV,OAAO,CAAC;EACnF,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVtB,OAAO,CAAC,MAAM,EAAE,qCAAqC,EAAEsB,CAAC,CAAC;IACzD,OAAO,IAAI;EACb;EACA,MAAMgB,KAAK,GAAG,MAAMX,iBAAiB,CAAC,CAAC;EACvC,IAAI,CAACW,KAAK,IAAIxC,QAAQ,CAACwC,KAAK,CAACR,SAAS,CAAC,KAAKhC,QAAQ,CAACsC,IAAI,CAACN,SAAS,CAAC,EAAE;IACpE9B,OAAO,CAAC,MAAM,EAAE,mCAAmC,CAAC;IACpD,OAAO,IAAI;EACb;EACAA,OAAO,CAAC,IAAI,EAAE,wBAAwBI,cAAc,CAACgC,IAAI,CAACN,SAAS,CAAC,EAAE,CAAC;EACvE,OAAOC,QAAQ,CAACK,IAAI,CAACN,SAAS,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeS,iBAAiBA,CAAA,EAAgC;EACrE,MAAMC,QAAQ,GAAG,MAAMP,cAAc,CAAC,CAAC;EACvC,OAAOO,QAAQ,IAAIL,gBAAgB,CAAC,CAAC;AACvC;;AAEA;AACA,OAAO,eAAeM,gBAAgBA,CAAA,EAAkB;EACtD,MAAM7B,KAAK,GAAGb,eAAe,CAAC,CAAC;EAC/B,MAAMqB,OAAO,GAAGT,YAAY,CAAC,CAAC;EAC9B,IAAI,CAACC,KAAK,IAAI,CAACQ,OAAO,EAAE;IAAC;EAAO;EAChC,KAAK,MAAMD,IAAI,IAAI,CAACZ,oBAAoB,EAAEC,oBAAoB,CAAC,EAAE;IAC/D,IAAI;MACF,MAAMI,KAAK,CAAC8B,eAAe,CAACvB,IAAI,EAAEC,OAAO,CAAC;IAC5C,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF;;AAEA;AACA,OAAO,MAAMuB,2BAA2B,GAAGA,CAAA,KAAY;EACrDlC,kBAAkB,GAAG,KAAK;AAC5B,CAAC","ignoreList":[]}