@ethora/chat-component-rn 26.9.1 → 26.10.1

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 (816) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +19 -0
  3. package/lib/commonjs/assets/icons.js +2 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/Header/HeaderRoomList.js +22 -6
  6. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  7. package/lib/commonjs/components/InputComponents/Search.js +38 -1
  8. package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js +166 -0
  10. package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js.map +1 -0
  11. package/lib/commonjs/components/MainComponents/ChatHeader.js +22 -5
  12. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatRoom.js +56 -25
  14. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/ChatWrapper.js +31 -1
  16. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +18 -3
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageList.js +739 -42
  20. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageSearchButton.js +58 -0
  22. package/lib/commonjs/components/MainComponents/MessageSearchButton.js.map +1 -0
  23. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +15 -6
  24. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +110 -1
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +14 -3
  28. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  29. package/lib/commonjs/components/MessageBubble/BubbleHighlight.js +112 -0
  30. package/lib/commonjs/components/MessageBubble/BubbleHighlight.js.map +1 -0
  31. package/lib/commonjs/components/MessageBubble/Message.js +169 -125
  32. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  33. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +98 -78
  34. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  35. package/lib/commonjs/components/MessageBubble/messageMenuLayout.js +50 -0
  36. package/lib/commonjs/components/MessageBubble/messageMenuLayout.js.map +1 -0
  37. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +73 -37
  38. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  39. package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js +253 -0
  40. package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
  41. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +488 -0
  42. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
  43. package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js +51 -0
  44. package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js.map +1 -0
  45. package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js +47 -0
  46. package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
  47. package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js +83 -0
  48. package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
  49. package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js +61 -0
  50. package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js.map +1 -0
  51. package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js +136 -0
  52. package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
  53. package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js +306 -0
  54. package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
  55. package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js +36 -0
  56. package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
  57. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
  58. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js +14 -12
  60. package/lib/commonjs/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js.map +1 -1
  61. package/lib/commonjs/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js +41 -39
  62. package/lib/commonjs/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js.map +1 -1
  63. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +137 -50
  64. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  65. package/lib/commonjs/components/Modals/SettingsModals/ProfileShares/ProfileShares.js +15 -13
  66. package/lib/commonjs/components/Modals/SettingsModals/ProfileShares/ProfileShares.js.map +1 -1
  67. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js +57 -55
  68. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  69. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js +15 -1
  70. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  71. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +61 -59
  72. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  73. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +8 -3
  74. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  75. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +13 -2
  76. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  77. package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js +38 -6
  78. package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
  79. package/lib/commonjs/components/Thread/ThreadHeader.js +3 -1
  80. package/lib/commonjs/components/Thread/ThreadHeader.js.map +1 -1
  81. package/lib/commonjs/components/Thread/ThreadWrapper.js +90 -10
  82. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  83. package/lib/commonjs/components/styled/AudioDecoderHost.js +338 -0
  84. package/lib/commonjs/components/styled/AudioDecoderHost.js.map +1 -0
  85. package/lib/commonjs/components/styled/AudioMessage.js +493 -420
  86. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  87. package/lib/commonjs/components/styled/SendInput.js +31 -5
  88. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  89. package/lib/commonjs/context/MessageNotificationContext.js +14 -4
  90. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  91. package/lib/commonjs/context/xmppProvider.js +41 -77
  92. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  93. package/lib/commonjs/helpers/audioWaveform.js +165 -0
  94. package/lib/commonjs/helpers/audioWaveform.js.map +1 -0
  95. package/lib/commonjs/helpers/backgroundJoinSweep.js +36 -0
  96. package/lib/commonjs/helpers/backgroundJoinSweep.js.map +1 -0
  97. package/lib/commonjs/helpers/bubbleHighlight.js +44 -0
  98. package/lib/commonjs/helpers/bubbleHighlight.js.map +1 -0
  99. package/lib/commonjs/helpers/checkUniqueUsers.js +14 -12
  100. package/lib/commonjs/helpers/checkUniqueUsers.js.map +1 -1
  101. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +5 -1
  102. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  103. package/lib/commonjs/helpers/constants/MODAL_TYPES.js +3 -1
  104. package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
  105. package/lib/commonjs/helpers/createRoomFromApi.js +40 -3
  106. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  107. package/lib/commonjs/helpers/dedupeMembers.js +34 -0
  108. package/lib/commonjs/helpers/dedupeMembers.js.map +1 -0
  109. package/lib/commonjs/helpers/ethoraLogger.js +56 -0
  110. package/lib/commonjs/helpers/ethoraLogger.js.map +1 -0
  111. package/lib/commonjs/helpers/getUnnamedUsers.js +9 -4
  112. package/lib/commonjs/helpers/getUnnamedUsers.js.map +1 -1
  113. package/lib/commonjs/helpers/historyPreloadConfig.js +44 -0
  114. package/lib/commonjs/helpers/historyPreloadConfig.js.map +1 -0
  115. package/lib/commonjs/helpers/historyPreloadScheduler.js +372 -137
  116. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  117. package/lib/commonjs/helpers/initRoomsPresence.js +17 -5
  118. package/lib/commonjs/helpers/initRoomsPresence.js.map +1 -1
  119. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +5 -0
  120. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  121. package/lib/commonjs/helpers/isLikelyMucJid.js +67 -0
  122. package/lib/commonjs/helpers/isLikelyMucJid.js.map +1 -0
  123. package/lib/commonjs/helpers/isMessageSearchEnabled.js +18 -0
  124. package/lib/commonjs/helpers/isMessageSearchEnabled.js.map +1 -0
  125. package/lib/commonjs/helpers/joiningRoom.js +14 -0
  126. package/lib/commonjs/helpers/joiningRoom.js.map +1 -0
  127. package/lib/commonjs/helpers/jumpThread.js +100 -0
  128. package/lib/commonjs/helpers/jumpThread.js.map +1 -0
  129. package/lib/commonjs/helpers/jumpToMessage.js +58 -0
  130. package/lib/commonjs/helpers/jumpToMessage.js.map +1 -0
  131. package/lib/commonjs/helpers/jumpWindow.js +187 -0
  132. package/lib/commonjs/helpers/jumpWindow.js.map +1 -0
  133. package/lib/commonjs/helpers/loadRoomHistory.js +75 -0
  134. package/lib/commonjs/helpers/loadRoomHistory.js.map +1 -0
  135. package/lib/commonjs/helpers/notificationPolicy.js +77 -0
  136. package/lib/commonjs/helpers/notificationPolicy.js.map +1 -0
  137. package/lib/commonjs/helpers/openRoomAtMessage.js +47 -0
  138. package/lib/commonjs/helpers/openRoomAtMessage.js.map +1 -0
  139. package/lib/commonjs/helpers/openThreadForJump.js +72 -0
  140. package/lib/commonjs/helpers/openThreadForJump.js.map +1 -0
  141. package/lib/commonjs/helpers/parseMessageReference.js +27 -8
  142. package/lib/commonjs/helpers/parseMessageReference.js.map +1 -1
  143. package/lib/commonjs/helpers/publicChatsEntry.js +17 -0
  144. package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -0
  145. package/lib/commonjs/helpers/roomActivityScore.js +37 -0
  146. package/lib/commonjs/helpers/roomActivityScore.js.map +1 -0
  147. package/lib/commonjs/helpers/roomUserCount.js +36 -0
  148. package/lib/commonjs/helpers/roomUserCount.js.map +1 -0
  149. package/lib/commonjs/helpers/runConfiguredHistoryPreload.js +68 -0
  150. package/lib/commonjs/helpers/runConfiguredHistoryPreload.js.map +1 -0
  151. package/lib/commonjs/helpers/sessionAppId.js +24 -0
  152. package/lib/commonjs/helpers/sessionAppId.js.map +1 -0
  153. package/lib/commonjs/helpers/timestamp.js +43 -0
  154. package/lib/commonjs/helpers/timestamp.js.map +1 -0
  155. package/lib/commonjs/helpers/userResolver.js +517 -0
  156. package/lib/commonjs/helpers/userResolver.js.map +1 -0
  157. package/lib/commonjs/helpers/xmppIdShape.js +52 -0
  158. package/lib/commonjs/helpers/xmppIdShape.js.map +1 -0
  159. package/lib/commonjs/hooks/useChatWrapperInit.js +27 -5
  160. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  161. package/lib/commonjs/hooks/useHeapSender.js +54 -3
  162. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  163. package/lib/commonjs/hooks/useJumpToMessage.js +411 -0
  164. package/lib/commonjs/hooks/useJumpToMessage.js.map +1 -0
  165. package/lib/commonjs/hooks/useMessageLoaderQueue.js +32 -5
  166. package/lib/commonjs/hooks/useMessageLoaderQueue.js.map +1 -1
  167. package/lib/commonjs/hooks/useMessageQueue.js +13 -5
  168. package/lib/commonjs/hooks/useMessageQueue.js.map +1 -1
  169. package/lib/commonjs/hooks/useRoomDirectory.js +29 -0
  170. package/lib/commonjs/hooks/useRoomDirectory.js.map +1 -0
  171. package/lib/commonjs/hooks/useRoomInitialization.js +27 -5
  172. package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
  173. package/lib/commonjs/hooks/useRoomMute.js +62 -0
  174. package/lib/commonjs/hooks/useRoomMute.js.map +1 -0
  175. package/lib/commonjs/hooks/useRoomState.js +3 -1
  176. package/lib/commonjs/hooks/useRoomState.js.map +1 -1
  177. package/lib/commonjs/hooks/useSendMessage.js +13 -3
  178. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  179. package/lib/commonjs/i18n/strings.js +312 -6
  180. package/lib/commonjs/i18n/strings.js.map +1 -1
  181. package/lib/commonjs/networking/api-requests/messageSearch.api.js +87 -0
  182. package/lib/commonjs/networking/api-requests/messageSearch.api.js.map +1 -0
  183. package/lib/commonjs/networking/api-requests/publicChats.api.js +48 -0
  184. package/lib/commonjs/networking/api-requests/publicChats.api.js.map +1 -0
  185. package/lib/commonjs/networking/api-requests/roomMembers.api.js +253 -4
  186. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  187. package/lib/commonjs/networking/api-requests/rooms.api.js +48 -12
  188. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  189. package/lib/commonjs/networking/api-requests/user.api.js +32 -3
  190. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  191. package/lib/commonjs/networking/api-requests/xmppToken.api.js +71 -0
  192. package/lib/commonjs/networking/api-requests/xmppToken.api.js.map +1 -0
  193. package/lib/commonjs/networking/ethoraEvents.js +227 -0
  194. package/lib/commonjs/networking/ethoraEvents.js.map +1 -0
  195. package/lib/commonjs/networking/stanzaHandlers.js +153 -16
  196. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  197. package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js +124 -3
  198. package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
  199. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +319 -35
  200. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
  201. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +7 -0
  202. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  203. package/lib/commonjs/networking/xmpp/historyCursor.js +101 -0
  204. package/lib/commonjs/networking/xmpp/historyCursor.js.map +1 -0
  205. package/lib/commonjs/networking/xmpp/mamQueryIds.js +17 -0
  206. package/lib/commonjs/networking/xmpp/mamQueryIds.js.map +1 -0
  207. package/lib/commonjs/networking/xmpp/mamRouter.js +24 -9
  208. package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -1
  209. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +70 -65
  210. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  211. package/lib/commonjs/networking/xmpp/roomJoinSweep.js +389 -0
  212. package/lib/commonjs/networking/xmpp/roomJoinSweep.js.map +1 -0
  213. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
  214. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  215. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +0 -1
  216. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  217. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
  218. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  219. package/lib/commonjs/networking/xmppClient.js +269 -41
  220. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  221. package/lib/commonjs/networking/xmppCredentials.js +80 -0
  222. package/lib/commonjs/networking/xmppCredentials.js.map +1 -0
  223. package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js +158 -0
  224. package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
  225. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +6 -0
  226. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  227. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +45 -7
  228. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  229. package/lib/commonjs/roomStore/chatSettingsSlice.js +21 -1
  230. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  231. package/lib/commonjs/roomStore/index.js +13 -3
  232. package/lib/commonjs/roomStore/index.js.map +1 -1
  233. package/lib/commonjs/roomStore/persistence.js +48 -1
  234. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  235. package/lib/commonjs/roomStore/roomsSlice.js +474 -60
  236. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  237. package/lib/commonjs/roomStore/safeKey.js +44 -0
  238. package/lib/commonjs/roomStore/safeKey.js.map +1 -0
  239. package/lib/commonjs/roomStore/usersSetCap.js +37 -0
  240. package/lib/commonjs/roomStore/usersSetCap.js.map +1 -0
  241. package/lib/commonjs/version.js +1 -1
  242. package/lib/commonjs/version.js.map +1 -1
  243. package/lib/module/assets/icons.js +1 -1
  244. package/lib/module/assets/icons.js.map +1 -1
  245. package/lib/module/components/Header/HeaderRoomList.js +23 -7
  246. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  247. package/lib/module/components/InputComponents/Search.js +39 -2
  248. package/lib/module/components/InputComponents/Search.js.map +1 -1
  249. package/lib/module/components/MainComponents/ArchivedMessageCard.js +161 -0
  250. package/lib/module/components/MainComponents/ArchivedMessageCard.js.map +1 -0
  251. package/lib/module/components/MainComponents/ChatHeader.js +22 -5
  252. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  253. package/lib/module/components/MainComponents/ChatRoom.js +57 -26
  254. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  255. package/lib/module/components/MainComponents/ChatWrapper.js +31 -1
  256. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  257. package/lib/module/components/MainComponents/MediaMessage.js +18 -3
  258. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  259. package/lib/module/components/MainComponents/MessageList.js +740 -42
  260. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  261. package/lib/module/components/MainComponents/MessageSearchButton.js +48 -0
  262. package/lib/module/components/MainComponents/MessageSearchButton.js.map +1 -0
  263. package/lib/module/components/MainComponents/ReduxWrapper.js +15 -7
  264. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  265. package/lib/module/components/MainComponents/RoomList.js +111 -2
  266. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  267. package/lib/module/components/Menu/HeaderRoomListMenu.js +15 -4
  268. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  269. package/lib/module/components/MessageBubble/BubbleHighlight.js +106 -0
  270. package/lib/module/components/MessageBubble/BubbleHighlight.js.map +1 -0
  271. package/lib/module/components/MessageBubble/Message.js +172 -127
  272. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  273. package/lib/module/components/MessageBubble/MessageInteractions.js +98 -78
  274. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  275. package/lib/module/components/MessageBubble/messageMenuLayout.js +45 -0
  276. package/lib/module/components/MessageBubble/messageMenuLayout.js.map +1 -0
  277. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +74 -38
  278. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  279. package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js +243 -0
  280. package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
  281. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +482 -0
  282. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
  283. package/lib/module/components/Modals/MessageSearchModal/openHit.js +45 -0
  284. package/lib/module/components/Modals/MessageSearchModal/openHit.js.map +1 -0
  285. package/lib/module/components/Modals/MessageSearchModal/resolveSender.js +41 -0
  286. package/lib/module/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
  287. package/lib/module/components/Modals/MessageSearchModal/searchFilters.js +74 -0
  288. package/lib/module/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
  289. package/lib/module/components/Modals/MessageSearchModal/snippet.js +57 -0
  290. package/lib/module/components/Modals/MessageSearchModal/snippet.js.map +1 -0
  291. package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js +131 -0
  292. package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
  293. package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js +300 -0
  294. package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
  295. package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js +30 -0
  296. package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
  297. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
  298. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  299. package/lib/module/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js +15 -13
  300. package/lib/module/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js.map +1 -1
  301. package/lib/module/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js +42 -40
  302. package/lib/module/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js.map +1 -1
  303. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +138 -52
  304. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  305. package/lib/module/components/Modals/SettingsModals/ProfileShares/ProfileShares.js +16 -14
  306. package/lib/module/components/Modals/SettingsModals/ProfileShares/ProfileShares.js.map +1 -1
  307. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +58 -56
  308. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  309. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +14 -0
  310. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  311. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +62 -60
  312. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  313. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +9 -4
  314. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  315. package/lib/module/components/RoomComponents/ChatRoomItem.js +14 -3
  316. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  317. package/lib/module/components/RoomComponents/SwipeableRoomRow.js +39 -7
  318. package/lib/module/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
  319. package/lib/module/components/Thread/ThreadHeader.js +3 -1
  320. package/lib/module/components/Thread/ThreadHeader.js.map +1 -1
  321. package/lib/module/components/Thread/ThreadWrapper.js +89 -9
  322. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  323. package/lib/module/components/styled/AudioDecoderHost.js +332 -0
  324. package/lib/module/components/styled/AudioDecoderHost.js.map +1 -0
  325. package/lib/module/components/styled/AudioMessage.js +495 -422
  326. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  327. package/lib/module/components/styled/SendInput.js +32 -6
  328. package/lib/module/components/styled/SendInput.js.map +1 -1
  329. package/lib/module/context/MessageNotificationContext.js +15 -5
  330. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  331. package/lib/module/context/xmppProvider.js +42 -78
  332. package/lib/module/context/xmppProvider.js.map +1 -1
  333. package/lib/module/helpers/audioWaveform.js +153 -0
  334. package/lib/module/helpers/audioWaveform.js.map +1 -0
  335. package/lib/module/helpers/backgroundJoinSweep.js +30 -0
  336. package/lib/module/helpers/backgroundJoinSweep.js.map +1 -0
  337. package/lib/module/helpers/bubbleHighlight.js +38 -0
  338. package/lib/module/helpers/bubbleHighlight.js.map +1 -0
  339. package/lib/module/helpers/checkUniqueUsers.js +15 -13
  340. package/lib/module/helpers/checkUniqueUsers.js.map +1 -1
  341. package/lib/module/helpers/constants/MODAL_COMPONENTS.js +5 -1
  342. package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  343. package/lib/module/helpers/constants/MODAL_TYPES.js +3 -1
  344. package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
  345. package/lib/module/helpers/createRoomFromApi.js +37 -3
  346. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  347. package/lib/module/helpers/dedupeMembers.js +28 -0
  348. package/lib/module/helpers/dedupeMembers.js.map +1 -0
  349. package/lib/module/helpers/ethoraLogger.js +52 -0
  350. package/lib/module/helpers/ethoraLogger.js.map +1 -0
  351. package/lib/module/helpers/getUnnamedUsers.js +9 -4
  352. package/lib/module/helpers/getUnnamedUsers.js.map +1 -1
  353. package/lib/module/helpers/historyPreloadConfig.js +39 -0
  354. package/lib/module/helpers/historyPreloadConfig.js.map +1 -0
  355. package/lib/module/helpers/historyPreloadScheduler.js +368 -134
  356. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  357. package/lib/module/helpers/initRoomsPresence.js +18 -5
  358. package/lib/module/helpers/initRoomsPresence.js.map +1 -1
  359. package/lib/module/helpers/insertMessageWithDelimiter.js +5 -0
  360. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  361. package/lib/module/helpers/isLikelyMucJid.js +60 -0
  362. package/lib/module/helpers/isLikelyMucJid.js.map +1 -0
  363. package/lib/module/helpers/isMessageSearchEnabled.js +13 -0
  364. package/lib/module/helpers/isMessageSearchEnabled.js.map +1 -0
  365. package/lib/module/helpers/joiningRoom.js +9 -0
  366. package/lib/module/helpers/joiningRoom.js.map +1 -0
  367. package/lib/module/helpers/jumpThread.js +83 -0
  368. package/lib/module/helpers/jumpThread.js.map +1 -0
  369. package/lib/module/helpers/jumpToMessage.js +52 -0
  370. package/lib/module/helpers/jumpToMessage.js.map +1 -0
  371. package/lib/module/helpers/jumpWindow.js +177 -0
  372. package/lib/module/helpers/jumpWindow.js.map +1 -0
  373. package/lib/module/helpers/loadRoomHistory.js +69 -0
  374. package/lib/module/helpers/loadRoomHistory.js.map +1 -0
  375. package/lib/module/helpers/notificationPolicy.js +70 -0
  376. package/lib/module/helpers/notificationPolicy.js.map +1 -0
  377. package/lib/module/helpers/openRoomAtMessage.js +41 -0
  378. package/lib/module/helpers/openRoomAtMessage.js.map +1 -0
  379. package/lib/module/helpers/openThreadForJump.js +68 -0
  380. package/lib/module/helpers/openThreadForJump.js.map +1 -0
  381. package/lib/module/helpers/parseMessageReference.js +26 -6
  382. package/lib/module/helpers/parseMessageReference.js.map +1 -1
  383. package/lib/module/helpers/publicChatsEntry.js +12 -0
  384. package/lib/module/helpers/publicChatsEntry.js.map +1 -0
  385. package/lib/module/helpers/roomActivityScore.js +30 -0
  386. package/lib/module/helpers/roomActivityScore.js.map +1 -0
  387. package/lib/module/helpers/roomUserCount.js +29 -0
  388. package/lib/module/helpers/roomUserCount.js.map +1 -0
  389. package/lib/module/helpers/runConfiguredHistoryPreload.js +63 -0
  390. package/lib/module/helpers/runConfiguredHistoryPreload.js.map +1 -0
  391. package/lib/module/helpers/sessionAppId.js +20 -0
  392. package/lib/module/helpers/sessionAppId.js.map +1 -0
  393. package/lib/module/helpers/timestamp.js +37 -0
  394. package/lib/module/helpers/timestamp.js.map +1 -0
  395. package/lib/module/helpers/userResolver.js +503 -0
  396. package/lib/module/helpers/userResolver.js.map +1 -0
  397. package/lib/module/helpers/xmppIdShape.js +46 -0
  398. package/lib/module/helpers/xmppIdShape.js.map +1 -0
  399. package/lib/module/hooks/useChatWrapperInit.js +16 -5
  400. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  401. package/lib/module/hooks/useHeapSender.js +54 -3
  402. package/lib/module/hooks/useHeapSender.js.map +1 -1
  403. package/lib/module/hooks/useJumpToMessage.js +389 -0
  404. package/lib/module/hooks/useJumpToMessage.js.map +1 -0
  405. package/lib/module/hooks/useMessageLoaderQueue.js +32 -5
  406. package/lib/module/hooks/useMessageLoaderQueue.js.map +1 -1
  407. package/lib/module/hooks/useMessageQueue.js +13 -5
  408. package/lib/module/hooks/useMessageQueue.js.map +1 -1
  409. package/lib/module/hooks/useRoomDirectory.js +24 -0
  410. package/lib/module/hooks/useRoomDirectory.js.map +1 -0
  411. package/lib/module/hooks/useRoomInitialization.js +29 -7
  412. package/lib/module/hooks/useRoomInitialization.js.map +1 -1
  413. package/lib/module/hooks/useRoomMute.js +58 -0
  414. package/lib/module/hooks/useRoomMute.js.map +1 -0
  415. package/lib/module/hooks/useRoomState.js +3 -1
  416. package/lib/module/hooks/useRoomState.js.map +1 -1
  417. package/lib/module/hooks/useSendMessage.js +13 -3
  418. package/lib/module/hooks/useSendMessage.js.map +1 -1
  419. package/lib/module/i18n/strings.js +312 -6
  420. package/lib/module/i18n/strings.js.map +1 -1
  421. package/lib/module/networking/api-requests/messageSearch.api.js +81 -0
  422. package/lib/module/networking/api-requests/messageSearch.api.js.map +1 -0
  423. package/lib/module/networking/api-requests/publicChats.api.js +43 -0
  424. package/lib/module/networking/api-requests/publicChats.api.js.map +1 -0
  425. package/lib/module/networking/api-requests/roomMembers.api.js +248 -4
  426. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  427. package/lib/module/networking/api-requests/rooms.api.js +48 -12
  428. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  429. package/lib/module/networking/api-requests/user.api.js +31 -3
  430. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  431. package/lib/module/networking/api-requests/xmppToken.api.js +66 -0
  432. package/lib/module/networking/api-requests/xmppToken.api.js.map +1 -0
  433. package/lib/module/networking/ethoraEvents.js +220 -0
  434. package/lib/module/networking/ethoraEvents.js.map +1 -0
  435. package/lib/module/networking/stanzaHandlers.js +155 -18
  436. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  437. package/lib/module/networking/xmpp/allRoomPresences.xmpp.js +125 -3
  438. package/lib/module/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
  439. package/lib/module/networking/xmpp/getHistory.xmpp.js +318 -35
  440. package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
  441. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +7 -0
  442. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  443. package/lib/module/networking/xmpp/historyCursor.js +95 -0
  444. package/lib/module/networking/xmpp/historyCursor.js.map +1 -0
  445. package/lib/module/networking/xmpp/mamQueryIds.js +12 -0
  446. package/lib/module/networking/xmpp/mamQueryIds.js.map +1 -0
  447. package/lib/module/networking/xmpp/mamRouter.js +22 -8
  448. package/lib/module/networking/xmpp/mamRouter.js.map +1 -1
  449. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +68 -62
  450. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  451. package/lib/module/networking/xmpp/roomJoinSweep.js +385 -0
  452. package/lib/module/networking/xmpp/roomJoinSweep.js.map +1 -0
  453. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
  454. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  455. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +0 -1
  456. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  457. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
  458. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  459. package/lib/module/networking/xmppClient.js +269 -41
  460. package/lib/module/networking/xmppClient.js.map +1 -1
  461. package/lib/module/networking/xmppCredentials.js +76 -0
  462. package/lib/module/networking/xmppCredentials.js.map +1 -0
  463. package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js +153 -0
  464. package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
  465. package/lib/module/roomStore/Middleware/reactionsMiddleware.js +6 -0
  466. package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  467. package/lib/module/roomStore/Middleware/unreadMidlleware.js +46 -7
  468. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  469. package/lib/module/roomStore/chatSettingsSlice.js +19 -0
  470. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  471. package/lib/module/roomStore/index.js +7 -3
  472. package/lib/module/roomStore/index.js.map +1 -1
  473. package/lib/module/roomStore/persistence.js +46 -1
  474. package/lib/module/roomStore/persistence.js.map +1 -1
  475. package/lib/module/roomStore/roomsSlice.js +459 -58
  476. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  477. package/lib/module/roomStore/safeKey.js +37 -0
  478. package/lib/module/roomStore/safeKey.js.map +1 -0
  479. package/lib/module/roomStore/usersSetCap.js +32 -0
  480. package/lib/module/roomStore/usersSetCap.js.map +1 -0
  481. package/lib/module/version.js +1 -1
  482. package/lib/module/version.js.map +1 -1
  483. package/lib/typescript/assets/icons.d.ts +4 -0
  484. package/lib/typescript/assets/icons.d.ts.map +1 -1
  485. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  486. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  487. package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts +12 -0
  488. package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts.map +1 -0
  489. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  490. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  491. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  492. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  493. package/lib/typescript/components/MainComponents/MessageList.d.ts +22 -1
  494. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  495. package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts +7 -0
  496. package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts.map +1 -0
  497. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  498. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  499. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  500. package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts +12 -0
  501. package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts.map +1 -0
  502. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  503. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +5 -0
  504. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  505. package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts +29 -0
  506. package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts.map +1 -0
  507. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +2 -0
  508. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  509. package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts +44 -0
  510. package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts.map +1 -0
  511. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +12 -0
  512. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -0
  513. package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts +15 -0
  514. package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts.map +1 -0
  515. package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts +34 -0
  516. package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts.map +1 -0
  517. package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts +41 -0
  518. package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts.map +1 -0
  519. package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts +15 -0
  520. package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts.map +1 -0
  521. package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts +23 -0
  522. package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts.map +1 -0
  523. package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts +16 -0
  524. package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts.map +1 -0
  525. package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts +14 -0
  526. package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts.map +1 -0
  527. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  528. package/lib/typescript/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.d.ts.map +1 -1
  529. package/lib/typescript/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.d.ts.map +1 -1
  530. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  531. package/lib/typescript/components/Modals/SettingsModals/ProfileShares/ProfileShares.d.ts.map +1 -1
  532. package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
  533. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +1 -0
  534. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
  535. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  536. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  537. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  538. package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts +5 -1
  539. package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts.map +1 -1
  540. package/lib/typescript/components/Thread/ThreadHeader.d.ts.map +1 -1
  541. package/lib/typescript/components/Thread/ThreadWrapper.d.ts +1 -0
  542. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  543. package/lib/typescript/components/styled/AudioDecoderHost.d.ts +39 -0
  544. package/lib/typescript/components/styled/AudioDecoderHost.d.ts.map +1 -0
  545. package/lib/typescript/components/styled/AudioMessage.d.ts +14 -1
  546. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  547. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  548. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  549. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  550. package/lib/typescript/helpers/audioWaveform.d.ts +54 -0
  551. package/lib/typescript/helpers/audioWaveform.d.ts.map +1 -0
  552. package/lib/typescript/helpers/backgroundJoinSweep.d.ts +14 -0
  553. package/lib/typescript/helpers/backgroundJoinSweep.d.ts.map +1 -0
  554. package/lib/typescript/helpers/bubbleHighlight.d.ts +17 -0
  555. package/lib/typescript/helpers/bubbleHighlight.d.ts.map +1 -0
  556. package/lib/typescript/helpers/checkUniqueUsers.d.ts +2 -2
  557. package/lib/typescript/helpers/checkUniqueUsers.d.ts.map +1 -1
  558. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  559. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
  560. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  561. package/lib/typescript/helpers/createRoomFromApi.d.ts +25 -0
  562. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  563. package/lib/typescript/helpers/dedupeMembers.d.ts +11 -0
  564. package/lib/typescript/helpers/dedupeMembers.d.ts.map +1 -0
  565. package/lib/typescript/helpers/ethoraLogger.d.ts +13 -0
  566. package/lib/typescript/helpers/ethoraLogger.d.ts.map +1 -0
  567. package/lib/typescript/helpers/getUnnamedUsers.d.ts.map +1 -1
  568. package/lib/typescript/helpers/historyPreloadConfig.d.ts +26 -0
  569. package/lib/typescript/helpers/historyPreloadConfig.d.ts.map +1 -0
  570. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +8 -4
  571. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  572. package/lib/typescript/helpers/initRoomsPresence.d.ts +7 -0
  573. package/lib/typescript/helpers/initRoomsPresence.d.ts.map +1 -1
  574. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  575. package/lib/typescript/helpers/isLikelyMucJid.d.ts +19 -0
  576. package/lib/typescript/helpers/isLikelyMucJid.d.ts.map +1 -0
  577. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts +12 -0
  578. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts.map +1 -0
  579. package/lib/typescript/helpers/joiningRoom.d.ts +7 -0
  580. package/lib/typescript/helpers/joiningRoom.d.ts.map +1 -0
  581. package/lib/typescript/helpers/jumpThread.d.ts +48 -0
  582. package/lib/typescript/helpers/jumpThread.d.ts.map +1 -0
  583. package/lib/typescript/helpers/jumpToMessage.d.ts +26 -0
  584. package/lib/typescript/helpers/jumpToMessage.d.ts.map +1 -0
  585. package/lib/typescript/helpers/jumpWindow.d.ts +74 -0
  586. package/lib/typescript/helpers/jumpWindow.d.ts.map +1 -0
  587. package/lib/typescript/helpers/loadRoomHistory.d.ts +34 -0
  588. package/lib/typescript/helpers/loadRoomHistory.d.ts.map +1 -0
  589. package/lib/typescript/helpers/notificationPolicy.d.ts +42 -0
  590. package/lib/typescript/helpers/notificationPolicy.d.ts.map +1 -0
  591. package/lib/typescript/helpers/openRoomAtMessage.d.ts +17 -0
  592. package/lib/typescript/helpers/openRoomAtMessage.d.ts.map +1 -0
  593. package/lib/typescript/helpers/openThreadForJump.d.ts +27 -0
  594. package/lib/typescript/helpers/openThreadForJump.d.ts.map +1 -0
  595. package/lib/typescript/helpers/parseMessageReference.d.ts +18 -5
  596. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -1
  597. package/lib/typescript/helpers/publicChatsEntry.d.ts +11 -0
  598. package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -0
  599. package/lib/typescript/helpers/roomActivityScore.d.ts +5 -0
  600. package/lib/typescript/helpers/roomActivityScore.d.ts.map +1 -0
  601. package/lib/typescript/helpers/roomUserCount.d.ts +20 -0
  602. package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -0
  603. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts +21 -0
  604. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts.map +1 -0
  605. package/lib/typescript/helpers/sessionAppId.d.ts +8 -0
  606. package/lib/typescript/helpers/sessionAppId.d.ts.map +1 -0
  607. package/lib/typescript/helpers/timestamp.d.ts +3 -0
  608. package/lib/typescript/helpers/timestamp.d.ts.map +1 -0
  609. package/lib/typescript/helpers/userResolver.d.ts +58 -0
  610. package/lib/typescript/helpers/userResolver.d.ts.map +1 -0
  611. package/lib/typescript/helpers/xmppIdShape.d.ts +10 -0
  612. package/lib/typescript/helpers/xmppIdShape.d.ts.map +1 -0
  613. package/lib/typescript/hooks/useChatWrapperInit.d.ts +2 -0
  614. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  615. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  616. package/lib/typescript/hooks/useJumpToMessage.d.ts +116 -0
  617. package/lib/typescript/hooks/useJumpToMessage.d.ts.map +1 -0
  618. package/lib/typescript/hooks/useMessageLoaderQueue.d.ts.map +1 -1
  619. package/lib/typescript/hooks/useMessageQueue.d.ts.map +1 -1
  620. package/lib/typescript/hooks/useRoomDirectory.d.ts +12 -0
  621. package/lib/typescript/hooks/useRoomDirectory.d.ts.map +1 -0
  622. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  623. package/lib/typescript/hooks/useRoomMute.d.ts +8 -0
  624. package/lib/typescript/hooks/useRoomMute.d.ts.map +1 -0
  625. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  626. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  627. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  628. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  629. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts +57 -0
  630. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts.map +1 -0
  631. package/lib/typescript/networking/api-requests/publicChats.api.d.ts +24 -0
  632. package/lib/typescript/networking/api-requests/publicChats.api.d.ts.map +1 -0
  633. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts +19 -1
  634. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts.map +1 -1
  635. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  636. package/lib/typescript/networking/api-requests/user.api.d.ts +8 -0
  637. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  638. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts +2 -0
  639. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts.map +1 -0
  640. package/lib/typescript/networking/ethoraEvents.d.ts +45 -0
  641. package/lib/typescript/networking/ethoraEvents.d.ts.map +1 -0
  642. package/lib/typescript/networking/stanzaHandlers.d.ts +1 -1
  643. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  644. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts +32 -1
  645. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts.map +1 -1
  646. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +64 -0
  647. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  648. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  649. package/lib/typescript/networking/xmpp/historyCursor.d.ts +35 -0
  650. package/lib/typescript/networking/xmpp/historyCursor.d.ts.map +1 -0
  651. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts +10 -0
  652. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts.map +1 -0
  653. package/lib/typescript/networking/xmpp/mamRouter.d.ts +7 -0
  654. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -1
  655. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +13 -2
  656. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  657. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts +82 -0
  658. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts.map +1 -0
  659. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  660. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  661. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  662. package/lib/typescript/networking/xmppClient.d.ts +90 -4
  663. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  664. package/lib/typescript/networking/xmppCredentials.d.ts +12 -0
  665. package/lib/typescript/networking/xmppCredentials.d.ts.map +1 -0
  666. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts +3 -0
  667. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts.map +1 -0
  668. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  669. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  670. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
  671. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  672. package/lib/typescript/roomStore/index.d.ts +2 -1
  673. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  674. package/lib/typescript/roomStore/persistence.d.ts +8 -0
  675. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  676. package/lib/typescript/roomStore/roomsSlice.d.ts +138 -2
  677. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  678. package/lib/typescript/roomStore/safeKey.d.ts +13 -0
  679. package/lib/typescript/roomStore/safeKey.d.ts.map +1 -0
  680. package/lib/typescript/roomStore/usersSetCap.d.ts +16 -0
  681. package/lib/typescript/roomStore/usersSetCap.d.ts.map +1 -0
  682. package/lib/typescript/types/models/media.model.d.ts +2 -0
  683. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  684. package/lib/typescript/types/models/room.model.d.ts +18 -5
  685. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  686. package/lib/typescript/types/models/xmpp.model.d.ts +8 -1
  687. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  688. package/lib/typescript/types/types.d.ts +88 -5
  689. package/lib/typescript/types/types.d.ts.map +1 -1
  690. package/lib/typescript/version.d.ts +1 -1
  691. package/lib/typescript/version.d.ts.map +1 -1
  692. package/package.json +1 -1
  693. package/src/assets/icons.tsx +13 -0
  694. package/src/components/Header/HeaderRoomList.tsx +21 -4
  695. package/src/components/InputComponents/Search.tsx +33 -0
  696. package/src/components/MainComponents/ArchivedMessageCard.tsx +139 -0
  697. package/src/components/MainComponents/ChatHeader.tsx +19 -3
  698. package/src/components/MainComponents/ChatRoom.tsx +60 -23
  699. package/src/components/MainComponents/ChatWrapper.tsx +23 -4
  700. package/src/components/MainComponents/MediaMessage.tsx +17 -0
  701. package/src/components/MainComponents/MessageList.tsx +823 -84
  702. package/src/components/MainComponents/MessageSearchButton.tsx +48 -0
  703. package/src/components/MainComponents/ReduxWrapper.tsx +16 -5
  704. package/src/components/MainComponents/RoomList.tsx +125 -0
  705. package/src/components/Menu/HeaderRoomListMenu.tsx +26 -2
  706. package/src/components/MessageBubble/BubbleHighlight.tsx +106 -0
  707. package/src/components/MessageBubble/Message.tsx +265 -177
  708. package/src/components/MessageBubble/MessageInteractions.tsx +109 -86
  709. package/src/components/MessageBubble/messageMenuLayout.ts +59 -0
  710. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +92 -21
  711. package/src/components/Modals/MessageSearchModal/MessageHitResults.tsx +271 -0
  712. package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +487 -0
  713. package/src/components/Modals/MessageSearchModal/openHit.ts +50 -0
  714. package/src/components/Modals/MessageSearchModal/resolveSender.ts +57 -0
  715. package/src/components/Modals/MessageSearchModal/searchFilters.ts +109 -0
  716. package/src/components/Modals/MessageSearchModal/snippet.ts +58 -0
  717. package/src/components/Modals/MessageSearchModal/useMessageSearch.ts +151 -0
  718. package/src/components/Modals/PublicChatsModal/PublicChatsModal.tsx +288 -0
  719. package/src/components/Modals/PublicChatsModal/publicChatsLogic.ts +36 -0
  720. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +8 -1
  721. package/src/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.tsx +20 -17
  722. package/src/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.tsx +58 -55
  723. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +156 -62
  724. package/src/components/Modals/SettingsModals/ProfileShares/ProfileShares.tsx +22 -19
  725. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +48 -45
  726. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +11 -0
  727. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +63 -60
  728. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +11 -3
  729. package/src/components/RoomComponents/ChatRoomItem.tsx +16 -3
  730. package/src/components/RoomComponents/SwipeableRoomRow.tsx +39 -6
  731. package/src/components/Thread/ThreadHeader.tsx +3 -1
  732. package/src/components/Thread/ThreadWrapper.tsx +96 -10
  733. package/src/components/styled/AudioDecoderHost.tsx +351 -0
  734. package/src/components/styled/AudioMessage.tsx +482 -425
  735. package/src/components/styled/SendInput.tsx +42 -4
  736. package/src/context/MessageNotificationContext.tsx +19 -5
  737. package/src/context/xmppProvider.tsx +44 -91
  738. package/src/helpers/audioWaveform.ts +142 -0
  739. package/src/helpers/backgroundJoinSweep.ts +35 -0
  740. package/src/helpers/bubbleHighlight.ts +47 -0
  741. package/src/helpers/checkUniqueUsers.tsx +15 -17
  742. package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -0
  743. package/src/helpers/constants/MODAL_TYPES.ts +3 -0
  744. package/src/helpers/createRoomFromApi.tsx +45 -4
  745. package/src/helpers/dedupeMembers.ts +29 -0
  746. package/src/helpers/ethoraLogger.ts +50 -0
  747. package/src/helpers/getUnnamedUsers.ts +7 -4
  748. package/src/helpers/historyPreloadConfig.ts +68 -0
  749. package/src/helpers/historyPreloadScheduler.ts +437 -199
  750. package/src/helpers/initRoomsPresence.ts +20 -7
  751. package/src/helpers/insertMessageWithDelimiter.ts +3 -0
  752. package/src/helpers/isLikelyMucJid.ts +72 -0
  753. package/src/helpers/isMessageSearchEnabled.ts +18 -0
  754. package/src/helpers/joiningRoom.ts +13 -0
  755. package/src/helpers/jumpThread.ts +102 -0
  756. package/src/helpers/jumpToMessage.ts +57 -0
  757. package/src/helpers/jumpWindow.ts +212 -0
  758. package/src/helpers/loadRoomHistory.ts +83 -0
  759. package/src/helpers/notificationPolicy.ts +82 -0
  760. package/src/helpers/openRoomAtMessage.ts +38 -0
  761. package/src/helpers/openThreadForJump.ts +96 -0
  762. package/src/helpers/parseMessageReference.ts +37 -8
  763. package/src/helpers/publicChatsEntry.ts +15 -0
  764. package/src/helpers/roomActivityScore.ts +45 -0
  765. package/src/helpers/roomUserCount.ts +44 -0
  766. package/src/helpers/runConfiguredHistoryPreload.ts +76 -0
  767. package/src/helpers/sessionAppId.ts +17 -0
  768. package/src/helpers/timestamp.ts +44 -0
  769. package/src/helpers/userResolver.ts +542 -0
  770. package/src/helpers/xmppIdShape.ts +46 -0
  771. package/src/hooks/useChatWrapperInit.ts +22 -4
  772. package/src/hooks/useHeapSender.tsx +54 -3
  773. package/src/hooks/useJumpToMessage.ts +538 -0
  774. package/src/hooks/useMessageLoaderQueue.tsx +40 -4
  775. package/src/hooks/useMessageQueue.ts +9 -5
  776. package/src/hooks/useRoomDirectory.ts +39 -0
  777. package/src/hooks/useRoomInitialization.tsx +33 -7
  778. package/src/hooks/useRoomMute.ts +42 -0
  779. package/src/hooks/useRoomState.tsx +6 -0
  780. package/src/hooks/useSendMessage.tsx +14 -2
  781. package/src/i18n/strings.ts +306 -0
  782. package/src/networking/api-requests/messageSearch.api.ts +130 -0
  783. package/src/networking/api-requests/publicChats.api.ts +71 -0
  784. package/src/networking/api-requests/roomMembers.api.ts +263 -11
  785. package/src/networking/api-requests/rooms.api.ts +52 -12
  786. package/src/networking/api-requests/user.api.ts +28 -2
  787. package/src/networking/api-requests/xmppToken.api.ts +62 -0
  788. package/src/networking/ethoraEvents.ts +262 -0
  789. package/src/networking/stanzaHandlers.ts +145 -19
  790. package/src/networking/xmpp/allRoomPresences.xmpp.ts +155 -5
  791. package/src/networking/xmpp/getHistory.xmpp.ts +433 -47
  792. package/src/networking/xmpp/handleStanzas.xmpp.ts +8 -0
  793. package/src/networking/xmpp/historyCursor.ts +124 -0
  794. package/src/networking/xmpp/mamQueryIds.ts +11 -0
  795. package/src/networking/xmpp/mamRouter.ts +24 -10
  796. package/src/networking/xmpp/presenceInRoom.xmpp.ts +91 -68
  797. package/src/networking/xmpp/roomJoinSweep.ts +412 -0
  798. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +0 -1
  799. package/src/networking/xmpp/sendTextMessage.xmpp.ts +0 -1
  800. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +0 -1
  801. package/src/networking/xmppClient.ts +323 -47
  802. package/src/networking/xmppCredentials.ts +87 -0
  803. package/src/roomStore/Middleware/jumpThreadMiddleware.ts +163 -0
  804. package/src/roomStore/Middleware/reactionsMiddleware.tsx +4 -0
  805. package/src/roomStore/Middleware/unreadMidlleware.tsx +59 -11
  806. package/src/roomStore/chatSettingsSlice.ts +17 -0
  807. package/src/roomStore/index.ts +10 -3
  808. package/src/roomStore/persistence.ts +54 -0
  809. package/src/roomStore/roomsSlice.ts +547 -65
  810. package/src/roomStore/safeKey.ts +49 -0
  811. package/src/roomStore/usersSetCap.ts +37 -0
  812. package/src/types/models/media.model.ts +4 -0
  813. package/src/types/models/room.model.ts +18 -5
  814. package/src/types/models/xmpp.model.ts +15 -1
  815. package/src/types/types.ts +93 -5
  816. package/src/version.ts +1 -1
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decodeAudioClip = exports.MAX_DECODE_BYTES = exports.AudioDecoderHost = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeWebview = require("react-native-webview");
10
+ var _audioWaveform = require("../../helpers/audioWaveform");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ /**
14
+ * One hidden WebView, shared by every voice message, used as an audio
15
+ * DECODER (never as a player):
16
+ * • `decodeAudioData` is the only API on iOS that understands the WebM /
17
+ * Ogg Opus the web client records, and it works on a suspended
18
+ * AudioContext — decoding needs no user gesture.
19
+ * • On both platforms it is also how a bubble gets its waveform: RN has
20
+ * no PCM access to a file, the WebView does, so the bars are computed
21
+ * there with the same curve the web client uses.
22
+ * Playing audio OUT of a WebView is gated behind an in-page gesture an RN
23
+ * tap cannot supply, so when a playable copy is needed the page re-encodes
24
+ * the PCM to WAV and ships it back; expo-audio plays that natively.
25
+ *
26
+ * Jobs run one at a time (each holds a whole clip in memory), and the
27
+ * WebView is mounted only while there is work, then dropped after a while.
28
+ */
29
+
30
+ // Largest WAV we ship back over the bridge. Voice messages are a couple
31
+ // hundred KB of WAV; this only guards against a multi-minute attachment.
32
+ const MAX_DECODE_BYTES = exports.MAX_DECODE_BYTES = 25 * 1024 * 1024;
33
+ const JOB_TIMEOUT_MS = 20000;
34
+ const IDLE_UNMOUNT_MS = 30000;
35
+ const queue = [];
36
+ let nextId = 1;
37
+ let hosts = 0;
38
+ const listeners = new Set();
39
+ const notify = () => listeners.forEach(fn => fn());
40
+
41
+ /**
42
+ * Decode a clip (base64 of the file as downloaded) to its waveform and
43
+ * length, plus a WAV copy when `wantWav`. Rejects when no host is mounted,
44
+ * the format cannot be decoded, or it takes too long.
45
+ */
46
+ const decodeAudioClip = (base64, {
47
+ wantWav = false
48
+ } = {}) => new Promise((resolve, reject) => {
49
+ if (hosts === 0) {
50
+ reject(new Error('audio_decoder_unavailable'));
51
+ return;
52
+ }
53
+ queue.push({
54
+ id: nextId++,
55
+ base64,
56
+ wantWav,
57
+ resolve,
58
+ reject
59
+ });
60
+ notify();
61
+ });
62
+ exports.decodeAudioClip = decodeAudioClip;
63
+ const DECODER_HTML = `<!doctype html>
64
+ <html>
65
+ <head>
66
+ <meta charset="utf-8" />
67
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
68
+ <style>html,body{margin:0;padding:0;width:1px;height:1px;overflow:hidden;background:transparent}</style>
69
+ </head>
70
+ <body>
71
+ <script>
72
+ (function () {
73
+ var MAX_WAV = ${MAX_DECODE_BYTES};
74
+ var BARS = ${_audioWaveform.WAVEFORM_RESOLUTION};
75
+ var MIN_BAR = 0.08;
76
+ var post = function (payload) {
77
+ if (window.ReactNativeWebView) {
78
+ window.ReactNativeWebView.postMessage(JSON.stringify(payload));
79
+ }
80
+ };
81
+ var ctx = null;
82
+ // Same curve as buildWaveformPeaks in helpers/audioWaveform.ts.
83
+ var peaksOf = function (samples) {
84
+ var bucket = Math.floor(samples.length / BARS);
85
+ var out = [];
86
+ var i;
87
+ if (bucket < 1) { for (i = 0; i < BARS; i += 1) { out.push(MIN_BAR); } return out; }
88
+ var rms = [];
89
+ for (i = 0; i < BARS; i += 1) {
90
+ var sum = 0;
91
+ for (var j = i * bucket; j < (i + 1) * bucket; j += 1) { sum += samples[j] * samples[j]; }
92
+ rms.push(Math.sqrt(sum / bucket));
93
+ }
94
+ var sorted = rms.slice().sort(function (a, b) { return a - b; });
95
+ var ref = sorted[Math.floor(sorted.length * 0.95)] || sorted[sorted.length - 1] || 0;
96
+ for (i = 0; i < BARS; i += 1) {
97
+ if (ref <= 0) { out.push(MIN_BAR); continue; }
98
+ var scaled = Math.sqrt(Math.min(rms[i] / ref, 1));
99
+ out.push(Math.min(1, MIN_BAR + scaled * (1 - MIN_BAR)));
100
+ }
101
+ return out;
102
+ };
103
+ var encodeWav = function (buffer) {
104
+ var numCh = buffer.numberOfChannels;
105
+ var frames = buffer.length;
106
+ var sr = buffer.sampleRate;
107
+ var bytesLen = 44 + frames * numCh * 2;
108
+ var ab = new ArrayBuffer(bytesLen);
109
+ var view = new DataView(ab);
110
+ var off = 0;
111
+ var ws = function (s) { for (var i = 0; i < s.length; i += 1) { view.setUint8(off++, s.charCodeAt(i)); } };
112
+ var u32 = function (d) { view.setUint32(off, d, true); off += 4; };
113
+ var u16 = function (d) { view.setUint16(off, d, true); off += 2; };
114
+ ws('RIFF'); u32(bytesLen - 8); ws('WAVE');
115
+ ws('fmt '); u32(16); u16(1); u16(numCh); u32(sr); u32(sr * numCh * 2); u16(numCh * 2); u16(16);
116
+ ws('data'); u32(frames * numCh * 2);
117
+ var chans = [];
118
+ for (var c = 0; c < numCh; c += 1) { chans.push(buffer.getChannelData(c)); }
119
+ for (var f = 0; f < frames; f += 1) {
120
+ for (var c2 = 0; c2 < numCh; c2 += 1) {
121
+ var s = Math.max(-1, Math.min(1, chans[c2][f]));
122
+ view.setInt16(off, s < 0 ? s * 0x8000 : s * 0x7fff, true);
123
+ off += 2;
124
+ }
125
+ }
126
+ return ab;
127
+ };
128
+ var abToBase64 = function (ab) {
129
+ var bytes = new Uint8Array(ab);
130
+ var binary = '';
131
+ var chunk = 0x8000;
132
+ for (var i = 0; i < bytes.length; i += chunk) {
133
+ binary += String.fromCharCode.apply(null, bytes.subarray(i, i + chunk));
134
+ }
135
+ return window.btoa(binary);
136
+ };
137
+ var fail = function (id, message) { post({ type: 'error', id: id, message: message }); };
138
+ window.__decodeAudio = function (id, base64, wantWav) {
139
+ try {
140
+ if (!ctx) {
141
+ var Ctx = window.AudioContext || window.webkitAudioContext;
142
+ ctx = new Ctx();
143
+ }
144
+ var bin = window.atob(base64);
145
+ var len = bin.length;
146
+ var bytes = new Uint8Array(len);
147
+ for (var i = 0; i < len; i += 1) { bytes[i] = bin.charCodeAt(i); }
148
+ ctx.decodeAudioData(
149
+ bytes.buffer,
150
+ function (decoded) {
151
+ try {
152
+ var result = {
153
+ type: 'decoded',
154
+ id: id,
155
+ durationMillis: Math.floor(decoded.duration * 1000),
156
+ peaks: peaksOf(decoded.getChannelData(0))
157
+ };
158
+ if (wantWav) {
159
+ var wav = encodeWav(decoded);
160
+ if (wav.byteLength > MAX_WAV) { fail(id, 'audio_too_long'); return; }
161
+ result.wavBase64 = abToBase64(wav);
162
+ }
163
+ post(result);
164
+ } catch (e) {
165
+ fail(id, 'encode_failed:' + (e && e.message ? e.message : e));
166
+ }
167
+ },
168
+ function (err) {
169
+ fail(id, 'decode_failed:' + (err && err.message ? err.message : err));
170
+ }
171
+ );
172
+ } catch (e) {
173
+ fail(id, 'load_failed:' + (e && e.message ? e.message : e));
174
+ }
175
+ };
176
+ post({ type: 'bridge_ready' });
177
+ })();
178
+ </script>
179
+ </body>
180
+ </html>`;
181
+ /**
182
+ * Mounted once near the SDK root (ReduxWrapper). Renders nothing until a
183
+ * voice message asks for a decode.
184
+ */
185
+ const AudioDecoderHost = () => {
186
+ const [mounted, setMounted] = (0, _react.useState)(false);
187
+ const webViewRef = (0, _react.useRef)(null);
188
+ const readyRef = (0, _react.useRef)(false);
189
+ const activeRef = (0, _react.useRef)(null);
190
+ const jobTimerRef = (0, _react.useRef)(null);
191
+ const idleTimerRef = (0, _react.useRef)(null);
192
+ const pump = (0, _react.useCallback)(() => {
193
+ if (activeRef.current) {
194
+ return;
195
+ }
196
+ const job = queue.shift();
197
+ if (!job) {
198
+ // Nothing left: let the WebView go after a quiet spell.
199
+ if (idleTimerRef.current) {
200
+ clearTimeout(idleTimerRef.current);
201
+ }
202
+ idleTimerRef.current = setTimeout(() => {
203
+ if (!activeRef.current && !queue.length) {
204
+ readyRef.current = false;
205
+ setMounted(false);
206
+ }
207
+ }, IDLE_UNMOUNT_MS);
208
+ return;
209
+ }
210
+ if (idleTimerRef.current) {
211
+ clearTimeout(idleTimerRef.current);
212
+ idleTimerRef.current = null;
213
+ }
214
+ if (!readyRef.current || !webViewRef.current) {
215
+ // Not up yet: put it back and wait for bridge_ready.
216
+ queue.unshift(job);
217
+ setMounted(true);
218
+ return;
219
+ }
220
+ activeRef.current = job;
221
+ jobTimerRef.current = setTimeout(() => {
222
+ finish(job.id, undefined, new Error('audio_decode_timeout'));
223
+ }, JOB_TIMEOUT_MS);
224
+ webViewRef.current.injectJavaScript(`window.__decodeAudio(${job.id}, ${JSON.stringify(job.base64)}, ${job.wantWav ? 'true' : 'false'}); true;`);
225
+ // eslint-disable-next-line react-hooks/exhaustive-deps
226
+ }, []);
227
+ const finish = (0, _react.useCallback)((id, clip, error) => {
228
+ const job = activeRef.current;
229
+ if (!job || job.id !== id) {
230
+ return;
231
+ }
232
+ activeRef.current = null;
233
+ if (jobTimerRef.current) {
234
+ clearTimeout(jobTimerRef.current);
235
+ jobTimerRef.current = null;
236
+ }
237
+ if (clip) {
238
+ job.resolve(clip);
239
+ } else {
240
+ job.reject(error ?? new Error('audio_decode_failed'));
241
+ }
242
+ pump();
243
+ }, [pump]);
244
+ (0, _react.useEffect)(() => {
245
+ hosts += 1;
246
+ listeners.add(pump);
247
+ pump();
248
+ return () => {
249
+ hosts -= 1;
250
+ listeners.delete(pump);
251
+ if (jobTimerRef.current) {
252
+ clearTimeout(jobTimerRef.current);
253
+ }
254
+ if (idleTimerRef.current) {
255
+ clearTimeout(idleTimerRef.current);
256
+ }
257
+ const active = activeRef.current;
258
+ activeRef.current = null;
259
+ active?.reject(new Error('audio_decoder_unmounted'));
260
+ if (hosts === 0) {
261
+ queue.splice(0).forEach(job => job.reject(new Error('audio_decoder_unmounted')));
262
+ }
263
+ };
264
+ }, [pump]);
265
+ const onMessage = event => {
266
+ let payload;
267
+ try {
268
+ payload = JSON.parse(event.nativeEvent.data);
269
+ } catch {
270
+ return;
271
+ }
272
+ if (payload.type === 'bridge_ready') {
273
+ readyRef.current = true;
274
+ pump();
275
+ return;
276
+ }
277
+ if (payload.type === 'decoded') {
278
+ finish(payload.id, {
279
+ durationMillis: payload.durationMillis,
280
+ peaks: payload.peaks,
281
+ wavBase64: payload.wavBase64
282
+ });
283
+ return;
284
+ }
285
+ finish(payload.id, undefined, new Error(payload.message || 'audio_decode_failed'));
286
+ };
287
+ if (!mounted) {
288
+ return null;
289
+ }
290
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
291
+ style: styles.host,
292
+ pointerEvents: "none",
293
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeWebview.WebView, {
294
+ ref: webViewRef,
295
+ source: {
296
+ html: DECODER_HTML
297
+ },
298
+ originWhitelist: ['*'],
299
+ onMessage: onMessage
300
+ // iOS can kill the web content process under memory pressure:
301
+ // fail the clip in flight and start a fresh page for the rest.
302
+ ,
303
+ onContentProcessDidTerminate: () => {
304
+ readyRef.current = false;
305
+ const active = activeRef.current;
306
+ if (active) {
307
+ finish(active.id, undefined, new Error('audio_decoder_crashed'));
308
+ }
309
+ webViewRef.current?.reload();
310
+ },
311
+ javaScriptEnabled: true,
312
+ domStorageEnabled: false,
313
+ scrollEnabled: false,
314
+ pointerEvents: "none",
315
+ showsHorizontalScrollIndicator: false,
316
+ showsVerticalScrollIndicator: false,
317
+ style: styles.webView
318
+ })
319
+ });
320
+ };
321
+ exports.AudioDecoderHost = AudioDecoderHost;
322
+ const styles = _reactNative.StyleSheet.create({
323
+ host: {
324
+ position: 'absolute',
325
+ top: 0,
326
+ left: 0,
327
+ width: 1,
328
+ height: 1,
329
+ overflow: 'hidden',
330
+ opacity: 0
331
+ },
332
+ webView: {
333
+ width: 1,
334
+ height: 1,
335
+ opacity: 0
336
+ }
337
+ });
338
+ //# sourceMappingURL=AudioDecoderHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_audioWaveform","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_DECODE_BYTES","exports","JOB_TIMEOUT_MS","IDLE_UNMOUNT_MS","queue","nextId","hosts","listeners","Set","notify","forEach","fn","decodeAudioClip","base64","wantWav","Promise","resolve","reject","Error","push","id","DECODER_HTML","WAVEFORM_RESOLUTION","AudioDecoderHost","mounted","setMounted","useState","webViewRef","useRef","readyRef","activeRef","jobTimerRef","idleTimerRef","pump","useCallback","current","job","shift","clearTimeout","setTimeout","length","unshift","finish","undefined","injectJavaScript","JSON","stringify","clip","error","useEffect","add","delete","active","splice","onMessage","event","payload","parse","nativeEvent","data","type","durationMillis","peaks","wavBase64","message","jsx","View","style","styles","host","pointerEvents","children","WebView","ref","source","html","originWhitelist","onContentProcessDidTerminate","reload","javaScriptEnabled","domStorageEnabled","scrollEnabled","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","webView","StyleSheet","create","position","top","left","width","height","overflow","opacity"],"sourceRoot":"../../../../src","sources":["components/styled/AudioDecoderHost.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAAkE,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMkB,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;AAChD,MAAME,cAAc,GAAG,KAAK;AAC5B,MAAMC,eAAe,GAAG,KAAK;AAkB7B,MAAMC,KAAY,GAAG,EAAE;AACvB,IAAIC,MAAM,GAAG,CAAC;AACd,IAAIC,KAAK,GAAG,CAAC;AACb,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AACvC,MAAMC,MAAM,GAAGA,CAAA,KAAMF,SAAS,CAACG,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;;AAEpD;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,GAAGA,CAC7BC,MAAc,EACd;EAAEC,OAAO,GAAG;AAA6B,CAAC,GAAG,CAAC,CAAC,KAE/C,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;EAC/B,IAAIX,KAAK,KAAK,CAAC,EAAE;IACfW,MAAM,CAAC,IAAIC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC9C;EACF;EACAd,KAAK,CAACe,IAAI,CAAC;IAAEC,EAAE,EAAEf,MAAM,EAAE;IAAEQ,MAAM;IAAEC,OAAO;IAAEE,OAAO;IAAEC;EAAO,CAAC,CAAC;EAC9DR,MAAM,CAAC,CAAC;AACV,CAAC,CAAC;AAACR,OAAA,CAAAW,eAAA,GAAAA,eAAA;AAEL,MAAMS,YAAY,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwBrB,gBAAgB;AACxC,qBAAqBsB,kCAAmB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","ignoreList":[]}