@ethora/chat-component-rn 26.5.17 → 26.5.19

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 (201) hide show
  1. package/lib/commonjs/assets/EmptyChatIllustration.js +106 -0
  2. package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -0
  3. package/lib/commonjs/assets/icons.js +13 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +2 -1
  6. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatHeader.js +4 -1
  8. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js +5 -2
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChooseChatMessage.js +9 -2
  12. package/lib/commonjs/components/MainComponents/ChooseChatMessage.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/EditWrapper.js +12 -4
  14. package/lib/commonjs/components/MainComponents/EditWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/MessageList.js +2 -1
  16. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js +11 -3
  18. package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +12 -7
  20. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/RoomList.js +2 -1
  22. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  23. package/lib/commonjs/components/MessageBubble/Avatar.js +16 -7
  24. package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
  25. package/lib/commonjs/components/MessageBubble/Message.js +19 -1
  26. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  27. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +7 -5
  28. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  29. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -2
  30. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  31. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
  32. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  33. package/lib/commonjs/components/styled/Button.js +4 -2
  34. package/lib/commonjs/components/styled/Button.js.map +1 -1
  35. package/lib/commonjs/components/styled/DateLabel.js +12 -4
  36. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  37. package/lib/commonjs/components/styled/SendInput.js +14 -10
  38. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  39. package/lib/commonjs/context/xmppProvider.js +8 -1
  40. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  41. package/lib/commonjs/helpers/getAvatarColor.js +33 -0
  42. package/lib/commonjs/helpers/getAvatarColor.js.map +1 -0
  43. package/lib/commonjs/helpers/getDateLabelColor.js +9 -0
  44. package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -0
  45. package/lib/commonjs/helpers/getElementFont.js +29 -0
  46. package/lib/commonjs/helpers/getElementFont.js.map +1 -0
  47. package/lib/commonjs/helpers/getIconColor.js +9 -0
  48. package/lib/commonjs/helpers/getIconColor.js.map +1 -0
  49. package/lib/commonjs/helpers/getSenderNameColor.js +9 -0
  50. package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -0
  51. package/lib/commonjs/hooks/useSendMessage.js +73 -23
  52. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  53. package/lib/commonjs/networking/outboundQueue.js +23 -5
  54. package/lib/commonjs/networking/outboundQueue.js.map +1 -1
  55. package/lib/commonjs/networking/xmppClient.js +50 -0
  56. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  57. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +22 -0
  58. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  59. package/lib/commonjs/roomStore/roomsSlice.js +13 -1
  60. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  61. package/lib/module/assets/EmptyChatIllustration.js +99 -0
  62. package/lib/module/assets/EmptyChatIllustration.js.map +1 -0
  63. package/lib/module/assets/icons.js +13 -2
  64. package/lib/module/assets/icons.js.map +1 -1
  65. package/lib/module/components/DropdownMenu/DropdownMenu.js +2 -1
  66. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  67. package/lib/module/components/MainComponents/ChatHeader.js +4 -1
  68. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  69. package/lib/module/components/MainComponents/ChatRoom.js +5 -2
  70. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  71. package/lib/module/components/MainComponents/ChooseChatMessage.js +9 -2
  72. package/lib/module/components/MainComponents/ChooseChatMessage.js.map +1 -1
  73. package/lib/module/components/MainComponents/EditWrapper.js +12 -4
  74. package/lib/module/components/MainComponents/EditWrapper.js.map +1 -1
  75. package/lib/module/components/MainComponents/MessageList.js +2 -1
  76. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  77. package/lib/module/components/MainComponents/NoMessagesPlaceholder.js +11 -3
  78. package/lib/module/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
  79. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +12 -7
  80. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  81. package/lib/module/components/MainComponents/RoomList.js +2 -1
  82. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  83. package/lib/module/components/MessageBubble/Avatar.js +16 -7
  84. package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
  85. package/lib/module/components/MessageBubble/Message.js +19 -1
  86. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  87. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +7 -5
  88. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  89. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -2
  90. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  91. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
  92. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  93. package/lib/module/components/styled/Button.js +4 -2
  94. package/lib/module/components/styled/Button.js.map +1 -1
  95. package/lib/module/components/styled/DateLabel.js +12 -4
  96. package/lib/module/components/styled/DateLabel.js.map +1 -1
  97. package/lib/module/components/styled/SendInput.js +14 -10
  98. package/lib/module/components/styled/SendInput.js.map +1 -1
  99. package/lib/module/context/xmppProvider.js +8 -1
  100. package/lib/module/context/xmppProvider.js.map +1 -1
  101. package/lib/module/helpers/getAvatarColor.js +28 -0
  102. package/lib/module/helpers/getAvatarColor.js.map +1 -0
  103. package/lib/module/helpers/getDateLabelColor.js +4 -0
  104. package/lib/module/helpers/getDateLabelColor.js.map +1 -0
  105. package/lib/module/helpers/getElementFont.js +24 -0
  106. package/lib/module/helpers/getElementFont.js.map +1 -0
  107. package/lib/module/helpers/getIconColor.js +4 -0
  108. package/lib/module/helpers/getIconColor.js.map +1 -0
  109. package/lib/module/helpers/getSenderNameColor.js +4 -0
  110. package/lib/module/helpers/getSenderNameColor.js.map +1 -0
  111. package/lib/module/hooks/useSendMessage.js +73 -23
  112. package/lib/module/hooks/useSendMessage.js.map +1 -1
  113. package/lib/module/networking/outboundQueue.js +22 -5
  114. package/lib/module/networking/outboundQueue.js.map +1 -1
  115. package/lib/module/networking/xmppClient.js +50 -0
  116. package/lib/module/networking/xmppClient.js.map +1 -1
  117. package/lib/module/roomStore/Middleware/newMessageMidlleware.js +22 -0
  118. package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  119. package/lib/module/roomStore/roomsSlice.js +13 -1
  120. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  121. package/lib/typescript/assets/EmptyChatIllustration.d.ts +10 -0
  122. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -0
  123. package/lib/typescript/assets/icons.d.ts +3 -12
  124. package/lib/typescript/assets/icons.d.ts.map +1 -1
  125. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  126. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  127. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  128. package/lib/typescript/components/MainComponents/ChooseChatMessage.d.ts.map +1 -1
  129. package/lib/typescript/components/MainComponents/EditWrapper.d.ts +5 -1
  130. package/lib/typescript/components/MainComponents/EditWrapper.d.ts.map +1 -1
  131. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  132. package/lib/typescript/components/MainComponents/NoMessagesPlaceholder.d.ts.map +1 -1
  133. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  134. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  135. package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
  136. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  137. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +3 -0
  138. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  139. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  140. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  141. package/lib/typescript/components/styled/Button.d.ts +1 -0
  142. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  143. package/lib/typescript/components/styled/DateLabel.d.ts +9 -8
  144. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  145. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  146. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  147. package/lib/typescript/helpers/getAvatarColor.d.ts +7 -0
  148. package/lib/typescript/helpers/getAvatarColor.d.ts.map +1 -0
  149. package/lib/typescript/helpers/getDateLabelColor.d.ts +8 -0
  150. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -0
  151. package/lib/typescript/helpers/getElementFont.d.ts +13 -0
  152. package/lib/typescript/helpers/getElementFont.d.ts.map +1 -0
  153. package/lib/typescript/helpers/getIconColor.d.ts +8 -0
  154. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -0
  155. package/lib/typescript/helpers/getSenderNameColor.d.ts +8 -0
  156. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -0
  157. package/lib/typescript/hooks/useSendMessage.d.ts +1 -1
  158. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  159. package/lib/typescript/networking/outboundQueue.d.ts +17 -2
  160. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
  161. package/lib/typescript/networking/xmppClient.d.ts +3 -0
  162. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  163. package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
  164. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  165. package/lib/typescript/types/models/message.model.d.ts +1 -0
  166. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  167. package/lib/typescript/types/types.d.ts +61 -1
  168. package/lib/typescript/types/types.d.ts.map +1 -1
  169. package/package.json +1 -1
  170. package/src/assets/EmptyChatIllustration.tsx +49 -0
  171. package/src/assets/icons.tsx +64 -81
  172. package/src/components/DropdownMenu/DropdownMenu.tsx +2 -1
  173. package/src/components/MainComponents/ChatHeader.tsx +8 -2
  174. package/src/components/MainComponents/ChatRoom.tsx +5 -2
  175. package/src/components/MainComponents/ChooseChatMessage.tsx +5 -2
  176. package/src/components/MainComponents/EditWrapper.tsx +9 -6
  177. package/src/components/MainComponents/MessageList.tsx +2 -1
  178. package/src/components/MainComponents/NoMessagesPlaceholder.tsx +4 -1
  179. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -7
  180. package/src/components/MainComponents/RoomList.tsx +2 -1
  181. package/src/components/MessageBubble/Avatar.tsx +18 -9
  182. package/src/components/MessageBubble/Message.tsx +22 -1
  183. package/src/components/Modals/AttachSheet/AttachSheet.tsx +32 -4
  184. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +10 -2
  185. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +6 -0
  186. package/src/components/styled/Button.tsx +5 -1
  187. package/src/components/styled/DateLabel.tsx +10 -7
  188. package/src/components/styled/SendInput.tsx +18 -11
  189. package/src/context/xmppProvider.tsx +6 -1
  190. package/src/helpers/getAvatarColor.ts +31 -0
  191. package/src/helpers/getDateLabelColor.ts +3 -0
  192. package/src/helpers/getElementFont.ts +25 -0
  193. package/src/helpers/getIconColor.ts +3 -0
  194. package/src/helpers/getSenderNameColor.ts +3 -0
  195. package/src/hooks/useSendMessage.tsx +102 -59
  196. package/src/networking/outboundQueue.ts +26 -5
  197. package/src/networking/xmppClient.ts +47 -0
  198. package/src/roomStore/Middleware/newMessageMidlleware.tsx +25 -0
  199. package/src/roomStore/roomsSlice.ts +15 -1
  200. package/src/types/models/message.model.ts +3 -0
  201. package/src/types/types.ts +67 -2
@@ -16,10 +16,24 @@ import { useEventHandlers } from './useEventHandlers';
16
16
  // long after the optimistic dispatch, mark it failed so the bubble
17
17
  // flips out of the "sending..." state. Covers the silent-failure
18
18
  // case (e.g. device offline before the message ever made it to the
19
- // XMPP socket) — bug #18. Tuned generously so a brief network blip
20
- // followed by reconnect within 30s still resolves naturally via the
21
- // server echo.
22
- const PENDING_WATCHDOG_MS = 30_000;
19
+ // XMPP socket) — bug #18.
20
+ //
21
+ // 10s window: a brief network blip that reconnects inside this window
22
+ // still resolves on its own — the offline send is buffered in the
23
+ // outbound queue (OUTBOUND_QUEUE_TTL_MS, kept in lockstep) and replayed
24
+ // the moment the stream comes back, so the server echo flips the bubble
25
+ // to delivered. Only a drop that outlasts 10s flips it to "Failed → tap
26
+ // to retry". If a slow send completes just after the window, the
27
+ // delivery clears the failed flag (see newMessageMidlleware) so it
28
+ // doesn't get stuck showing "Failed".
29
+ const PENDING_WATCHDOG_MS = 10_000;
30
+
31
+ // Media gets a longer window than text: the optimistic bubble appears before
32
+ // the file upload even starts, and a large file (up to the 50MB cap) over a
33
+ // slow link can legitimately take far longer than 10s to upload + send. Failing
34
+ // it at 10s mid-upload would flash a wrong "Failed" and let the user kick off a
35
+ // duplicate upload.
36
+ const MEDIA_PENDING_WATCHDOG_MS = 30_000;
23
37
 
24
38
  // Monotonic counter for stanza ids. Bumped on each send within a single
25
39
  // process. Two rapid sends in the same millisecond used to collide on
@@ -59,7 +73,7 @@ export const useSendMessage = _configOverride => {
59
73
  handleMessageRetry
60
74
  } = useEventHandlers(config);
61
75
  const failedMessages = useSelector(state => state.roomHeapSlice?.failedMessages || {});
62
- const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage) => {
76
+ const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage, existingId) => {
63
77
  if (editAction?.isEdit) {
64
78
  try {
65
79
  client?.editMessageStanza(editAction.roomJid, editAction.messageId, message);
@@ -93,7 +107,7 @@ export const useSendMessage = _configOverride => {
93
107
  // dedupes by id and flips `pending: false` → DoubleTick renders.
94
108
  // Without this, the user taps send and sees nothing for ~200ms
95
109
  // until the echo lands, which feels broken.
96
- const optimisticId = nextStanzaId('send-text-message');
110
+ const optimisticId = existingId || nextStanzaId('send-text-message');
97
111
  const optimisticDate = new Date().toISOString();
98
112
  const selfId = user?.xmppUsername || user?.walletAddress || '';
99
113
  const optimisticMessage = {
@@ -114,7 +128,11 @@ export const useSendMessage = _configOverride => {
114
128
  name: `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || selfId
115
129
  }
116
130
  };
117
- if (!config?.disableSentLogic) {
131
+ // On retry (`existingId`) the original optimistic bubble is still in
132
+ // the room (pending:true) — clearMessageFailure just flipped it back out
133
+ // of the "failed" state — so re-adding would duplicate it. Only push a
134
+ // fresh bubble for a brand-new send.
135
+ if (!config?.disableSentLogic && !existingId) {
118
136
  dispatch(addRoomMessage({
119
137
  roomJID: activeRoomJID,
120
138
  message: optimisticMessage
@@ -150,26 +168,46 @@ export const useSendMessage = _configOverride => {
150
168
  }
151
169
  }, PENDING_WATCHDOG_MS);
152
170
  try {
153
- const effectiveClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
171
+ // The single send closure, used both for the immediate send and for
172
+ // the buffered replay. Passing the optimistic id as the stanza id
173
+ // means the server echoes it back with the same value, so the
174
+ // reducer's dedupe matches and the bubble flips pending → delivered
175
+ // in-place (rather than rendering a second copy).
176
+ const replaySend = c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
177
+
178
+ // Always buffer a copy BEFORE attempting the live send. The WebSocket
179
+ // can still read `status: 'online'` for a beat after the network
180
+ // actually drops (the WS error lands a moment later), so a stanza sent
181
+ // "while online" can vanish into a dying socket and never get echoed.
182
+ // Buffering every send means the onOnline reconnect flush replays
183
+ // anything that wasn't confirmed within the window. The server echo
184
+ // removes the entry (see newMessageMidlleware), so a healthy online
185
+ // send never actually replays — only genuinely-lost ones do.
186
+ enqueueOutboundSend({
187
+ optimisticId,
188
+ roomJID: activeRoomJID,
189
+ enqueuedAt: Date.now(),
190
+ send: replaySend
191
+ });
192
+
193
+ // Only treat a client as usable if its underlying stream is actually
194
+ // `online` — the instance survives a network drop with a stale
195
+ // 'connecting'/'offline' status, and sending through it would just
196
+ // lose the stanza.
197
+ const effectiveClient = [client, getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
154
198
  if (!effectiveClient) {
199
+ // No live stream — kick a reconnect; the buffered copy above is
200
+ // replayed by the onOnline flush once the stream is back.
155
201
  const anyClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
156
202
  try {
157
203
  anyClient?.forceReconnect?.();
158
204
  } catch {}
159
- enqueueOutboundSend({
160
- optimisticId,
161
- roomJID: activeRoomJID,
162
- enqueuedAt: Date.now(),
163
- send: c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId)
164
- });
165
205
  return;
166
206
  }
167
- // Pass the optimistic id as the stanza id so the server echoes
168
- // it back with the same value — the reducer's dedupe lookup
169
- // matches and the bubble flips from pending → delivered in-place
170
- // (instead of rendering two copies, which is what happens when
171
- // ids don't match).
172
- effectiveClient.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
207
+ replaySend(effectiveClient);
208
+ try {
209
+ effectiveClient.ensureStreamAlive?.();
210
+ } catch {}
173
211
  await handleMessageSent({
174
212
  message,
175
213
  roomJID: activeRoomJID,
@@ -309,7 +347,7 @@ export const useSendMessage = _configOverride => {
309
347
  messageType: 'media'
310
348
  });
311
349
  }
312
- }, PENDING_WATCHDOG_MS);
350
+ }, MEDIA_PENDING_WATCHDOG_MS);
313
351
 
314
352
  // Help RN's FormData polyfill build a proper multipart/file part
315
353
  // (instead of serialising the JS object as JSON). On iOS the
@@ -386,11 +424,17 @@ export const useSendMessage = _configOverride => {
386
424
  // Stanza id == placeholder id so the MUC echo's outer
387
425
  // <message id="..."> matches xmppId on the placeholder and
388
426
  // insertMessageWithDelimiter merges in place + flips pending.
389
- const effectiveMediaClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
427
+ // Same online-only guard as the text path: a surviving-but-offline
428
+ // client must NOT be used (the stanza would vanish into a dead
429
+ // socket) — fall through to enqueue so the reconnect flush replays.
430
+ const effectiveMediaClient = [client, getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
390
431
  if (effectiveMediaClient) {
391
432
  effectiveMediaClient.setActiveRoomJid?.(activeRoomJID);
392
433
  await Promise.resolve(effectiveMediaClient.prioritizeRoomPresence?.(activeRoomJID)).catch(() => false);
393
434
  effectiveMediaClient.sendMediaMessageStanza(activeRoomJID, messagePayload, id);
435
+ try {
436
+ effectiveMediaClient.ensureStreamAlive?.();
437
+ } catch {}
394
438
  } else {
395
439
  const anyMediaClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
396
440
  try {
@@ -400,6 +444,9 @@ export const useSendMessage = _configOverride => {
400
444
  optimisticId: id,
401
445
  roomJID: activeRoomJID,
402
446
  enqueuedAt: Date.now(),
447
+ // Match the media watchdog so a reconnect within the (longer)
448
+ // media window still auto-replays the buffered stanza.
449
+ ttlMs: MEDIA_PENDING_WATCHDOG_MS,
403
450
  send: c => c.sendMediaMessageStanza(activeRoomJID, messagePayload, id)
404
451
  });
405
452
  }
@@ -480,7 +527,10 @@ export const useSendMessage = _configOverride => {
480
527
  messageType: payload.kind
481
528
  });
482
529
  if (payload.kind === 'text') {
483
- await sendMessage(payload.body, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage);
530
+ await sendMessage(payload.body, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage,
531
+ // Re-use the failed message's id so the retry resends in place
532
+ // instead of spawning a duplicate bubble.
533
+ failedId);
484
534
  } else {
485
535
  await sendMedia(payload.data, payload.type, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage, failedId);
486
536
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","effectiveClient","c","status","anyClient","forceReconnect","enqueuedAt","send","clearTimeout","sendMedia","data","type","existingId","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","replaySend","c","enqueuedAt","send","effectiveClient","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
@@ -21,15 +21,16 @@
21
21
  * Each queued item carries a `send(client)` closure that captures the
22
22
  * original args (text or media), so flush is type-agnostic.
23
23
  *
24
- * TTL is deliberately aligned with the 30s pending-send watchdog in
24
+ * TTL is deliberately aligned with the pending-send watchdog in
25
25
  * useSendMessage (PENDING_WATCHDOG_MS): a queued item older than that has
26
26
  * already been — or is about to be — flipped to "Failed → tap to retry" by
27
27
  * the watchdog, so replaying it on a late reconnect would duplicate the
28
28
  * bubble. We drop those on flush and let the watchdog own the failure.
29
29
  */
30
30
 
31
- // Kept in lockstep with PENDING_WATCHDOG_MS in useSendMessage.
32
- export const OUTBOUND_QUEUE_TTL_MS = 30_000;
31
+ // Default replay window (text). Mirrors PENDING_WATCHDOG_MS in useSendMessage.
32
+ // Media enqueues a longer per-item ttlMs (see QueuedSend.ttlMs).
33
+ export const OUTBOUND_QUEUE_TTL_MS = 10_000;
33
34
  let queue = [];
34
35
 
35
36
  /**
@@ -59,8 +60,8 @@ export function flushOutboundSends(client, now) {
59
60
  const pending = queue;
60
61
  queue = [];
61
62
  for (const item of pending) {
62
- if (now - item.enqueuedAt > OUTBOUND_QUEUE_TTL_MS) {
63
- // Stale — the 30s watchdog owns the failure; don't duplicate.
63
+ if (now - item.enqueuedAt > (item.ttlMs ?? OUTBOUND_QUEUE_TTL_MS)) {
64
+ // Stale — the send watchdog owns the failure; don't duplicate.
64
65
  continue;
65
66
  }
66
67
  try {
@@ -72,6 +73,22 @@ export function flushOutboundSends(client, now) {
72
73
  }
73
74
  }
74
75
 
76
+ /**
77
+ * Drop a single buffered send by its optimistic/stanza id. Called when a
78
+ * server-confirmed copy of the message arrives (see newMessageMidlleware):
79
+ * the send went through, so the buffered replay is no longer needed and must
80
+ * not fire on a later reconnect. No-op if the id isn't queued.
81
+ */
82
+ export function removeOutboundSend(optimisticId) {
83
+ if (!optimisticId) {
84
+ return;
85
+ }
86
+ const idx = queue.findIndex(q => q.optimisticId === optimisticId);
87
+ if (idx >= 0) {
88
+ queue.splice(idx, 1);
89
+ }
90
+ }
91
+
75
92
  /** Drop everything — called on permanent teardown (logout / close). */
76
93
  export function clearOutboundSends() {
77
94
  queue = [];
@@ -1 +1 @@
1
- {"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","send","err","console","warn","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;AAAA;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;;AAiBA;AACA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAE3C,IAAIC,KAAmB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,IAAgB,EAAQ;EAC1D,MAAMC,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKJ,IAAI,CAACI,YAAY,CAAC;EACxE,IAAIH,GAAG,IAAI,CAAC,EAAE;IACZ;IACA;IACAH,KAAK,CAACG,GAAG,CAAC,GAAGD,IAAI;IACjB;EACF;EACAF,KAAK,CAACO,IAAI,CAACL,IAAI,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,kBAAkBA,CAChCC,MAA2B,EAC3BC,GAAW,EACL;EACN,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;IAAC;EAAO;EAChC,MAAMC,OAAO,GAAGZ,KAAK;EACrBA,KAAK,GAAG,EAAE;EACV,KAAK,MAAME,IAAI,IAAIU,OAAO,EAAE;IAC1B,IAAIF,GAAG,GAAGR,IAAI,CAACW,UAAU,GAAGd,qBAAqB,EAAE;MACjD;MACA;IACF;IACA,IAAI;MACFG,IAAI,CAACY,IAAI,CAACL,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOM,GAAG,EAAE;MACZ;MACAC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEf,IAAI,CAACI,YAAY,EAAES,GAAG,CAAC;IAC3E;EACF;AACF;;AAEA;AACA,OAAO,SAASG,kBAAkBA,CAAA,EAAS;EACzClB,KAAK,GAAG,EAAE;AACZ;;AAEA;AACA,OAAO,SAASmB,mBAAmBA,CAAA,EAAW;EAC5C,OAAOnB,KAAK,CAACW,MAAM;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","ttlMs","send","err","console","warn","removeOutboundSend","splice","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;AAAA;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;;AAyBA;AACA;AACA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAE3C,IAAIC,KAAmB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,IAAgB,EAAQ;EAC1D,MAAMC,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKJ,IAAI,CAACI,YAAY,CAAC;EACxE,IAAIH,GAAG,IAAI,CAAC,EAAE;IACZ;IACA;IACAH,KAAK,CAACG,GAAG,CAAC,GAAGD,IAAI;IACjB;EACF;EACAF,KAAK,CAACO,IAAI,CAACL,IAAI,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,kBAAkBA,CAChCC,MAA2B,EAC3BC,GAAW,EACL;EACN,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;IAAC;EAAO;EAChC,MAAMC,OAAO,GAAGZ,KAAK;EACrBA,KAAK,GAAG,EAAE;EACV,KAAK,MAAME,IAAI,IAAIU,OAAO,EAAE;IAC1B,IAAIF,GAAG,GAAGR,IAAI,CAACW,UAAU,IAAIX,IAAI,CAACY,KAAK,IAAIf,qBAAqB,CAAC,EAAE;MACjE;MACA;IACF;IACA,IAAI;MACFG,IAAI,CAACa,IAAI,CAACN,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOO,GAAG,EAAE;MACZ;MACAC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEhB,IAAI,CAACI,YAAY,EAAEU,GAAG,CAAC;IAC3E;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,kBAAkBA,CAACb,YAAoB,EAAQ;EAC7D,IAAI,CAACA,YAAY,EAAE;IAAC;EAAO;EAC3B,MAAMH,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKA,YAAY,CAAC;EACnE,IAAIH,GAAG,IAAI,CAAC,EAAE;IAACH,KAAK,CAACoB,MAAM,CAACjB,GAAG,EAAE,CAAC,CAAC;EAAC;AACtC;;AAEA;AACA,OAAO,SAASkB,kBAAkBA,CAAA,EAAS;EACzCrB,KAAK,GAAG,EAAE;AACZ;;AAEA;AACA,OAAO,SAASsB,mBAAmBA,CAAA,EAAW;EAC5C,OAAOtB,KAAK,CAACW,MAAM;AACrB","ignoreList":[]}
@@ -7,6 +7,7 @@ import { getChatsPrivateStoreRequest } from './xmpp/getChatsPrivateStoreRequest.
7
7
  import { actionSetTimestampToPrivateStore } from './xmpp/actionSetTimestampToPrivateStore.xmpp';
8
8
  import { flushLastViewedToPrivateStore } from './xmpp/flushLastViewedToPrivateStore';
9
9
  import { sendTypingRequest } from './xmpp/sendTypingRequest.xmpp';
10
+ import { sendPing } from './xmpp/sendPing.xmpp';
10
11
  import { getHistory } from './xmpp/getHistory.xmpp';
11
12
  import { sendTextMessage } from './xmpp/sendTextMessage.xmpp';
12
13
  import { deleteMessage } from './xmpp/deleteMessage.xmpp';
@@ -562,6 +563,55 @@ export class XmppClient {
562
563
  this.reconnectAttempts = 0;
563
564
  this.reconnect();
564
565
  }
566
+ streamAliveProbe = null;
567
+ verifyStreamAlive(timeoutMs = 4000) {
568
+ if (this.status !== 'online' || !this.client) {
569
+ return Promise.resolve(false);
570
+ }
571
+ if (this.streamAliveProbe) {
572
+ return this.streamAliveProbe;
573
+ }
574
+ const underlying = this.client;
575
+ this.streamAliveProbe = new Promise(resolve => {
576
+ let settled = false;
577
+ const done = alive => {
578
+ if (settled) {
579
+ return;
580
+ }
581
+ settled = true;
582
+ clearTimeout(timer);
583
+ try {
584
+ underlying.removeListener?.('stanza', onStanza);
585
+ } catch {}
586
+ resolve(alive);
587
+ };
588
+ const onStanza = () => done(true);
589
+ const timer = setTimeout(() => done(false), timeoutMs);
590
+ try {
591
+ underlying.on('stanza', onStanza);
592
+ sendPing(underlying, this.host, `alive-${Date.now()}`);
593
+ } catch {
594
+ // Couldn't even write the probe — treat as dead.
595
+ done(false);
596
+ }
597
+ }).finally(() => {
598
+ this.streamAliveProbe = null;
599
+ });
600
+ return this.streamAliveProbe;
601
+ }
602
+ async ensureStreamAlive(timeoutMs = 4000) {
603
+ if (this.suppressReconnect || this.status !== 'online') {
604
+ return;
605
+ }
606
+ const alive = await this.verifyStreamAlive(timeoutMs);
607
+ // Re-check state: a reconnect may have started meanwhile.
608
+ if (!alive && this.status === 'online' && !this.suppressReconnect) {
609
+ try {
610
+ devPushLog('xmpp', 'stream is zombie (ping unanswered) → forceReconnect');
611
+ } catch {}
612
+ this.forceReconnect();
613
+ }
614
+ }
565
615
  async reconnect() {
566
616
  if (this.suppressReconnect) {
567
617
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["xmpp","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","getHistory","sendTextMessage","deleteMessage","presenceInRoom","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","pushLog","devPushLog","normalizeRoomJid","store","applyPrivateStoreMarkers","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","suppressReconnect","reconnectTimer","reconnecting","lastAuthError","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","cur","delete","set","startedAt","s","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","undefined","result","catch","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","flushPendingSends","onError","onStanza","from","on","c","removeListener","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","exp","Math","min","delay","pow","forceReconnect","clearTimeout","refreshCredentialsOnce","old","fresh","disconnect","options","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","markers","normalized","jid","keys","n","Number","isFinite","length","dispatch","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","rooms","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAkB,cAAc;AAC3C,SAASC,gBAAgB,QAAQ,2BAA2B;AAG5D,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,2BAA2B,QAAQ,yCAAyC;AACrF,SAASC,gCAAgC,QAAQ,8CAA8C;AAC/F,SAASC,6BAA6B,QAAQ,sCAAsC;AACpF,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,eAAe,QAAQ,6BAA6B;AAC7D,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,OAAO,IAAIC,UAAU,QAAQ,oBAAoB;AAC1D,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,KAAK,QAAQ,cAAc;AACpC,SAASC,wBAAwB,QAAQ,yBAAyB;AAClE,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,kBAAkB,QACb,iBAAiB;;AAExB;AACA,MAAMC,kBAAkB,GAAG,sBAAsB;;AAEjD;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAQ,EAAW;EAC/C,IAAI,CAACA,GAAG,EAAE;IAAC,OAAO,KAAK;EAAC;EACxB,MAAMC,SAAS,GACbD,GAAG,EAAEC,SAAS,IACdD,GAAG,EAAEE,IAAI,IACTF,GAAG,EAAEG,IAAI,IACTH,GAAG,EAAEI,KAAK,EAAEH,SAAS,IACrB,EAAE;EACJ,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAIA,SAAS,CAACI,QAAQ,CAAC,gBAAgB,CAAC,EAAE;IACzE,OAAO,IAAI;EACb;EACA,MAAMC,OAAO,GAAG,CAACN,GAAG,EAAEM,OAAO,IAAIN,GAAG,EAAEO,IAAI,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC;EAC5D,OAAO,2BAA2B,CAACC,IAAI,CAACH,OAAO,CAAC;AAClD;AAqBA,OAAO,MAAMI,UAAU,CAAC;EAItBC,IAAI,GAAW,EAAE;EACjBC,OAAO,GAAW,EAAE;EACpBC,UAAU,GAAW,EAAE;EAEvBC,MAAM,GAAkD,SAAS;EAEjEC,QAAQ,GAAG,EAAE;EACbC,iBAAiB,GAAG,CAAC;EACrBC,oBAAoB,GAAG,CAAC;EACxBC,cAAc,GAAG,IAAI;EACrB;EACA;EACA;EACAC,iBAAiB,GAAG,KAAK;EACzB;EACA;EACA;EACQC,eAAe,GAAG,CAAC;EAC3BC,iBAAiB,GAAG,KAAK;EACzB;EACA;EACA;EACQC,cAAc,GAAyC,IAAI;EACnE;EACA;EACA;EACA;EACA;EACQC,YAAY,GAAG,KAAK;;EAE5B;EACA;EACA;EACAC,aAAa,GAA4B,IAAI;EACrCC,mBAAmB,GAAmC,IAAI;EAC1DC,0BAA0B,GAAyB,IAAI;EAC/D;EACA;EACQC,gBAAgB,GAAwB,IAAI;;EAEpD;EACAC,cAAc,GAAG,KAAK;EACtBC,eAAe,GAAG,KAAK;EACfC,aAAa,GAAkB,IAAI;EACnCC,oBAAoB,GAAG,CAAC;EACxBC,cAAc,GAAG,CAAC;EAClBC,iBAAiB,GAAkC,IAAIC,GAAG,CAAC,CAAC;EAC5DC,kBAAkB,GAAG,CAAC;EACtBC,oBAAoB,GAAG,GAAG;EAC1BC,oBAAoB,GAAG,IAAI;EAC3BC,0BAA0B,GAAG,IAAI;;EAEzC;;EAEAC,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACC,MAAM,IAAI,IAAI,CAACA,MAAM,CAAC1B,MAAM,KAAK,QAAQ;EACvD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE2B,sBAAsBA,CAACC,QAAwC,EAAE;IAC/D,IAAI,CAACjB,mBAAmB,GAAGiB,QAAQ;EACrC;;EAEA;AACF;EACEC,WAAWA,CAACC,EAAuB,EAAE;IACnC,IAAI,CAACjB,gBAAgB,GAAGiB,EAAE;EAC5B;;EAEA;EACAC,iBAAiBA,CAACC,QAAgB,EAAE/B,QAAgB,EAAE;IACpD,IAAI,CAAC+B,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC/B,QAAQ,GAAGA,QAAQ;EAC1B;EAEAgC,WAAWA,CACTD,QAAgB,EAChB/B,QAAgB,EAChBiC,YAA6C,EAC7C;IACA;IACA,IAAI,OAAOA,YAAY,KAAK,QAAQ,EAAE;MACpC,IAAI,CAACA,YAAY,GAAG;QAAEC,SAAS,EAAED;MAAa,CAAC;MAC/C,IAAI,CAACC,SAAS,GAAGD,YAAY;IAC/B,CAAC,MAAM;MACL,IAAI,CAACA,YAAY,GAAGA,YAAY;MAChC,IAAI,CAACC,SAAS,GAAGD,YAAY,EAAEC,SAAS;IAC1C;IACA,IAAI,CAACpB,eAAe,GAAG,IAAI,CAACmB,YAAY,EAAEnB,eAAe,KAAK,IAAI;IAElE,MAAMqB,GAAG,GAAG,IAAI,CAACF,YAAY,EAAEG,UAAU;IACzC,IAAID,GAAG,EAAE;MACP,IAAI,OAAOA,GAAG,CAACf,kBAAkB,KAAK,QAAQ,EAC5C;QAAC,IAAI,CAACA,kBAAkB,GAAGe,GAAG,CAACf,kBAAkB;MAAC;MACpD,IAAI,OAAOe,GAAG,CAACd,oBAAoB,KAAK,QAAQ,EAC9C;QAAC,IAAI,CAACA,oBAAoB,GAAGc,GAAG,CAACd,oBAAoB;MAAC;MACxD,IAAI,OAAOc,GAAG,CAACb,oBAAoB,KAAK,QAAQ,EAC9C;QAAC,IAAI,CAACA,oBAAoB,GAAGa,GAAG,CAACb,oBAAoB;MAAC;MACxD,IAAI,OAAOa,GAAG,CAACZ,0BAA0B,KAAK,SAAS,EACrD;QAAC,IAAI,CAACA,0BAA0B,GAAGY,GAAG,CAACZ,0BAA0B;MAAC;IACtE;IAEA,IAAI,CAACQ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC/B,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACqC,gBAAgB,CAAC,CAAC;EACzB;;EAEA;EACA;EACA;EACAC,gBAAgBA,CAACC,OAAsB,EAAE;IACvC,IAAI,CAACxB,aAAa,GAAGwB,OAAO;IAC5B,IAAIA,OAAO,EAAE;MAAC,IAAI,CAACC,kBAAkB,CAACD,OAAO,CAAC;IAAC;EACjD;EAEAC,kBAAkBA,CAACC,QAAgB,EAAE;IACnC,IAAI,CAACzB,oBAAoB,GAAG0B,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAACrB,oBAAoB;EACpE;;EAEA;AACF;AACA;AACA;EACEsB,oBAAoBA,CAAA,EAAY;IAC9B,IAAI,IAAI,CAAC1B,iBAAiB,CAAC2B,IAAI,IAAI,IAAI,CAACzB,kBAAkB,EAAE;MAAC,OAAO,KAAK;IAAC;IAC1E,IAAIsB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC1B,cAAc,EAAE;MAAC,OAAO,KAAK;IAAC;IACpD,OAAO,IAAI;EACb;;EAEA;EACA6B,cAAcA,CAACP,OAAe,EAAEQ,UAAmB,EAAE;IACnD,IAAI,CAAC9B,cAAc,GAAGyB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAACtB,oBAAoB;IAC5D,IAAIkB,OAAO,EAAE;MAAC,IAAI,CAACC,kBAAkB,CAACD,OAAO,CAAC;IAAC;EACjD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMS,sBAAsBA,CAACT,OAAe,EAAoB;IAC9D,IAAI;MACF,IAAI,CAACU,oBAAoB,CAACV,OAAO,CAAC;MAClC,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMW,kBAAkBA,CAACC,MAMxB,EAAgB;IACf,MAAM;MAAEC,OAAO;MAAEC,GAAG;MAAEC,MAAM;MAAEC,EAAE;MAAEC,MAAM,GAAG;IAAU,CAAC,GAAGL,MAAM;;IAE/D;IACA;IACA,MAAMM,QAAQ,GAAG,IAAI,CAACvC,iBAAiB,CAACwC,GAAG,CAACN,OAAO,CAAC;IACpD,IAAIK,QAAQ,IAAI,IAAI,CAACE,UAAU,CAACF,QAAQ,CAACD,MAAM,CAAC,IAAI,IAAI,CAACG,UAAU,CAACH,MAAM,CAAC,EAAE;MAC3E,OAAOC,QAAQ,CAACG,OAAO;IACzB;;IAEA;IACA;IACA,OACE,IAAI,CAAC1C,iBAAiB,CAAC2B,IAAI,IAAI,IAAI,CAACzB,kBAAkB,IACtD,EAAE,IAAI,CAACG,0BAA0B,IAAI,IAAI,CAACR,aAAa,KAAKqC,OAAO,CAAC,EACpE;MACA,MAAM,IAAIS,OAAO,CAAEC,CAAC,IAAKC,UAAU,CAACD,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C;IACA,IAAIpB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC1B,cAAc,IAAIuC,MAAM,KAAK,YAAY,EAAE;MAC/D,MAAMQ,IAAI,GAAG,IAAI,CAAC/C,cAAc,GAAGyB,IAAI,CAACC,GAAG,CAAC,CAAC;MAC7C,MAAM,IAAIkB,OAAO,CAAEC,CAAC,IAAKC,UAAU,CAACD,CAAC,EAAEE,IAAI,CAAC,CAAC;IAC/C;;IAEA;IACA;IACA;IACA,MAAMC,MAA4B,GAAG,CAAC,CAAC;IACvCA,MAAM,CAACC,CAAC,GAAG,CAAC,YAAY;MACtB,IAAI;QACF,OAAO,MAAMzG,UAAU,CAAC,IAAI,CAACgE,MAAM,EAAE2B,OAAO,EAAEC,GAAG,EAAEC,MAAM,EAAEC,EAAE,CAAC;MAChE,CAAC,SAAS;QACR,MAAMY,GAAG,GAAG,IAAI,CAACjD,iBAAiB,CAACwC,GAAG,CAACN,OAAO,CAAC;QAC/C,IAAIe,GAAG,IAAIA,GAAG,CAACP,OAAO,KAAKK,MAAM,CAACC,CAAC,EAAE;UACnC,IAAI,CAAChD,iBAAiB,CAACkD,MAAM,CAAChB,OAAO,CAAC;QACxC;MACF;IACF,CAAC,EAAE,CAAC;IAEJ,IAAI,CAAClC,iBAAiB,CAACmD,GAAG,CAACjB,OAAO,EAAE;MAClCQ,OAAO,EAAEK,MAAM,CAACC,CAAC;MACjBV,MAAM;MACNc,SAAS,EAAE5B,IAAI,CAACC,GAAG,CAAC;IACtB,CAAC,CAAC;IACF,OAAOsB,MAAM,CAACC,CAAC;EACjB;EAEQP,UAAUA,CAACY,CAAgB,EAAU;IAC3C,QAAQA,CAAC;MACP,KAAK,QAAQ;QACX,OAAO,CAAC;MACV,KAAK,UAAU;QACb,OAAO,CAAC;MACV,KAAK,SAAS;QACZ,OAAO,CAAC;MACV,KAAK,YAAY;QACf,OAAO,CAAC;IACZ;EACF;EAEAlC,gBAAgBA,CAAA,EAAG;IACjB,IAAI;MACF,MAAMH,SAAS,GAAG,IAAI,CAACA,SAAS,IAAInD,kBAAkB;MACtD,MAAMyF,GAAG,GAAG,SAAStC,SAAS,KAAK;MACnC,IAAI,CAACrC,OAAO,GAAG2E,GAAG;MAClB,IAAI,CAAC5E,IAAI,GACP,IAAI,CAACqC,YAAY,EAAErC,IAAI,IAAI4E,GAAG,CAACC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;MACrE,IAAI,CAAC3E,UAAU,GACb,IAAI,CAACmC,YAAY,EAAEnC,UAAU,IAAI,cAAc,IAAI,CAACF,IAAI,EAAE;MAC5D,IAAI,CAACG,MAAM,GAAG,YAAY;;MAE1B;MACA;MACA;MACA;MACA,IAAI;QACF,IAAI,CAAC2E,oBAAoB,CAAC,CAAC;MAC7B,CAAC,CAAC,MAAM,CAAC;MAET,IAAI,CAACjD,MAAM,GAAGvE,IAAI,CAACuE,MAAM,CAAC;QACxB5B,OAAO,EAAE2E,GAAG;QACZzC,QAAQ,EAAE5E,gBAAgB,CAAC,IAAI,CAAC4E,QAAQ,CAAC;QACzC/B,QAAQ,EAAE,IAAI,CAACA;MACjB,CAAC,CAAC;MAEF,IAAI;QACD,IAAI,CAACyB,MAAM,EAAUkD,SAAS,EAAEC,IAAI,GAAG,CAAC;MAC3C,CAAC,CAAC,MAAM,CAAC;;MAET;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAI;QACD,IAAI,CAACnD,MAAM,EAAUoD,eAAe,GAAG,EAAE,CAAC;MAC7C,CAAC,CAAC,MAAM,CAAC;;MAET;MACA;MACA;MACA;MACA;MACA,IAAI;QACF,MAAMC,QAAQ,GAAG,IAAI,CAACrD,MAAM,CAACsD,IAAI,EAAEC,IAAI,CAAC,IAAI,CAACvD,MAAM,CAAC;QACpD,IAAIqD,QAAQ,EAAE;UACZ,MAAMG,OAAO,GAAIC,MAAW,IAAK;YAC/B,IAAI;cACF,MAAMC,GAAG,GAAGD,MAAM,EAAE/F,IAAI,IAAI,QAAQ;cACpC,MAAMoE,EAAE,GAAG2B,MAAM,EAAEE,KAAK,EAAE7B,EAAE,IAAI,EAAE;cAClC,MAAM8B,EAAE,GAAGH,MAAM,EAAEE,KAAK,EAAEC,EAAE,IAAI,EAAE;cAClC7G,UAAU,CACR,MAAM,EACN,KAAK2G,GAAG,GAAG5B,EAAE,GAAG,OAAOA,EAAE,EAAE,GAAG,EAAE,GAAG8B,EAAE,GAAG,OAAOA,EAAE,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EACxEJ,MAAM,EAAEzF,QAAQ,GAAGyF,MAAM,CAACzF,QAAQ,CAAC,CAAC,GAAG8F,SACzC,CAAC;YACH,CAAC,CAAC,MAAM,CAAC;YACT,MAAMC,MAAM,GAAGV,QAAQ,CAACI,MAAM,CAAC;YAC/B;YACA;YACA;YACA;YACA;YACA;YACA;YACA,IAAIM,MAAM,IAAI,OAAQA,MAAM,CAASC,KAAK,KAAK,UAAU,EAAE;cACxDD,MAAM,CAASC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC;YACA,OAAOD,MAAM;UACf,CAAC;UACD;UACA;UACAE,MAAM,CAACC,cAAc,CAAC,IAAI,CAAClE,MAAM,EAAE,MAAM,EAAE;YACzCmE,KAAK,EAAEX,OAAO;YACdY,QAAQ,EAAE,IAAI;YACdC,YAAY,EAAE;UAChB,CAAC,CAAC;QACJ;MACF,CAAC,CAAC,OAAO7G,GAAG,EAAE;QACZ8G,OAAO,CAACC,IAAI,CACV,wDAAwD,EACxD/G,GACF,CAAC;MACH;MAEA,IAAI,CAACgH,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAACxE,MAAM,CAACyE,KAAK,CAAC,CAAC,CAACT,KAAK,CAAEpG,KAAU,IAAK;QACxC0G,OAAO,CAAC1G,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;QACnD,IAAIL,oBAAoB,CAACK,KAAK,CAAC,EAAE;UAC/B,IAAI,CAACoB,aAAa,GAAG,gBAAgB;QACvC;QACA,IAAI,CAACV,MAAM,GAAG,OAAO;QACrB;QACA;QACA;QACA;QACA;QACA;QACA,IAAI,CAAC,IAAI,CAACO,iBAAiB,EAAE;UAC3B,IAAI;YACF,IAAI,CAAC6F,iBAAiB,CAAC,CAAC;UAC1B,CAAC,CAAC,MAAM,CAAC;QACX;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO9G,KAAK,EAAE;MACd0G,OAAO,CAAC1G,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;MAClD,IAAI,CAACU,MAAM,GAAG,OAAO;IACvB;EACF;;EAEA;EACA;EACA;EACA;;EAMAkG,oBAAoBA,CAAA,EAAG;IACrB;IACA;IACA;IACA,IAAI,CAACvB,oBAAoB,CAAC,CAAC;IAE3B,IAAI,CAAC0B,YAAY,GAAG,MAAM;MACxBL,OAAO,CAACM,GAAG,CAAC,oBAAoB,CAAC;MACjC,IAAI,CAACtG,MAAM,GAAG,SAAS;MACvB,IAAI;QACF;QACA;QACAvB,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC;MAClC,CAAC,CAAC,MAAM,CAAC;MACT;MACA;MACA;MACA;MACA;MACA;MACA,IAAI,CAAC,IAAI,CAAC8B,iBAAiB,EAAE;QAC3B,IAAI;UACF,IAAI,CAAC6F,iBAAiB,CAAC,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC;MACX;IACF,CAAC;IAED,IAAI,CAACG,QAAQ,GAAG,MAAM;MACpBP,OAAO,CAACM,GAAG,CAAC,cAAc,EAAE,IAAI3D,IAAI,CAAC,CAAC,CAAC;MACvC,IAAI,CAAC3C,MAAM,GAAG,QAAQ;MACtB,IAAI,CAACc,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACZ,iBAAiB,GAAG,CAAC;MAC1B,IAAI;QACFzB,UAAU,CACR,MAAM,EACN,QAAQ,EACR,IAAI,CAACuD,QACP,CAAC;MACH,CAAC,CAAC,MAAM,CAAC;MACT;MACA;MACA;MACA;MACA;MACA;MACA,IAAI;QACF,IAAI,CAACnB,gBAAgB,GAAG,CAAC;MAC3B,CAAC,CAAC,OAAO3B,GAAG,EAAE;QACZ8G,OAAO,CAACC,IAAI,CAAC,0BAA0B,EAAE/G,GAAG,CAAC;MAC/C;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAI;QACF,IAAI,CAACsH,iBAAiB,CAAC,CAAC;MAC1B,CAAC,CAAC,OAAOtH,GAAG,EAAE;QACZ8G,OAAO,CAACC,IAAI,CAAC,0BAA0B,EAAE/G,GAAG,CAAC;MAC/C;IACF,CAAC;IAED,IAAI,CAACuH,OAAO,GAAInH,KAAU,IAAK;MAC7B0G,OAAO,CAAC1G,KAAK,CAAC,oBAAoB,EAAEA,KAAK,CAAC;MAC1C,IAAIL,oBAAoB,CAACK,KAAK,CAAC,EAAE;QAC/B,IAAI,CAACoB,aAAa,GAAG,gBAAgB;MACvC;MACA,IAAI;QACFjC,UAAU,CACR,MAAM,EACN,OAAO,EACNa,KAAK,IAAIA,KAAK,CAACE,OAAO,IAAKF,KAC9B,CAAC;MACH,CAAC,CAAC,MAAM,CAAC;IACX,CAAC;IAED,IAAI,CAACoH,QAAQ,GAAIvB,MAAW,IAAK;MAC/B,IAAI;QACF,MAAMC,GAAG,GAAGD,MAAM,EAAE/F,IAAI,IAAI,QAAQ;QACpC,MAAMoE,EAAE,GAAG2B,MAAM,EAAEE,KAAK,EAAE7B,EAAE,IAAI,EAAE;QAClC,MAAMmD,IAAI,GAAGxB,MAAM,EAAEE,KAAK,EAAEsB,IAAI,IAAI,EAAE;QACtC,MAAMtH,IAAI,GAAG8F,MAAM,EAAEE,KAAK,EAAEhG,IAAI,IAAI,EAAE;QACtCZ,UAAU,CACR,MAAM,EACN,KAAK2G,GAAG,GAAG5B,EAAE,GAAG,OAAOA,EAAE,EAAE,GAAG,EAAE,GAAGnE,IAAI,GAAG,SAASA,IAAI,EAAE,GAAG,EAAE,GAAGsH,IAAI,GAAG,SAASA,IAAI,CAACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAC5GJ,MAAM,EAAEzF,QAAQ,GAAGyF,MAAM,CAACzF,QAAQ,CAAC,CAAC,GAAG8F,SACzC,CAAC;MACH,CAAC,CAAC,MAAM,CAAC;MACTjH,YAAY,CAAC0G,IAAI,CAAC,IAAI,EAAEE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAACzD,MAAM,CAACkF,EAAE,CAAC,YAAY,EAAE,IAAI,CAACP,YAAY,CAAC;IAC/C,IAAI,CAAC3E,MAAM,CAACkF,EAAE,CAAC,QAAQ,EAAE,IAAI,CAACL,QAAQ,CAAC;IACvC,IAAI,CAAC7E,MAAM,CAACkF,EAAE,CAAC,OAAO,EAAE,IAAI,CAACH,OAAO,CAAC;IACrC,IAAI,CAAC/E,MAAM,CAACkF,EAAE,CAAC,QAAQ,EAAE,IAAI,CAACF,QAAQ,CAAC;EACzC;EAEA/B,oBAAoBA,CAAA,EAAG;IACrB,MAAMkC,CAAC,GAAG,IAAI,CAACnF,MAAa;IAC5B,IAAI,CAACmF,CAAC,EAAEC,cAAc,EAAE;MAAC;IAAO;IAChC,IAAI;MACF,IAAI,IAAI,CAACT,YAAY,EAAE;QAACQ,CAAC,CAACC,cAAc,CAAC,YAAY,EAAE,IAAI,CAACT,YAAY,CAAC;MAAC;MAC1E,IAAI,IAAI,CAACE,QAAQ,EAAE;QAACM,CAAC,CAACC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAACP,QAAQ,CAAC;MAAC;MAC9D,IAAI,IAAI,CAACE,OAAO,EAAE;QAACI,CAAC,CAACC,cAAc,CAAC,OAAO,EAAE,IAAI,CAACL,OAAO,CAAC;MAAC;MAC3D,IAAI,IAAI,CAACC,QAAQ,EAAE;QAACG,CAAC,CAACC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAACJ,QAAQ,CAAC;MAAC;IAChE,CAAC,CAAC,MAAM,CAAC;IACT,IAAI,CAACL,YAAY,GAAGb,SAAS;IAC7B,IAAI,CAACe,QAAQ,GAAGf,SAAS;IACzB,IAAI,CAACiB,OAAO,GAAGjB,SAAS;IACxB,IAAI,CAACkB,QAAQ,GAAGlB,SAAS;EAC3B;;EAEA;AACF;AACA;AACA;EACEuB,aAAaA,CAACC,SAAiB,GAAG,KAAK,EAAiB;IACtD,IAAI,IAAI,CAAChH,MAAM,KAAK,QAAQ,EAAE;MAAC,OAAO8D,OAAO,CAACmD,OAAO,CAAC,CAAC;IAAC;IACxD,OAAO,IAAInD,OAAO,CAAC,CAACmD,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMf,KAAK,GAAGxD,IAAI,CAACC,GAAG,CAAC,CAAC;MACxB,MAAMuE,IAAI,GAAGA,CAAA,KAAM;QACjB,IAAI,IAAI,CAACnH,MAAM,KAAK,QAAQ,EAAE;UAAC,OAAOiH,OAAO,CAAC,CAAC;QAAC;QAChD,IAAI,IAAI,CAACjH,MAAM,KAAK,OAAO,EAAE;UAC3B,OAAOkH,MAAM,CAAC,IAAIE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C;QACA,IAAIzE,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGuD,KAAK,GAAGa,SAAS,EAAE;UAClC,OAAOE,MAAM,CAAC,IAAIE,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClD;QACApD,UAAU,CAACmD,IAAI,EAAE,GAAG,CAAC;MACvB,CAAC;MACDA,IAAI,CAAC,CAAC;IACR,CAAC,CAAC;EACJ;;EAEA;EACAE,eAAeA,CAACC,OAAgB,EAAiB;IAC/C,OAAO,IAAI,CAACP,aAAa,CAACO,OAAO,CAAC;EACpC;EAEAlB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAAC7F,iBAAiB,EAAE;MAAC;IAAO;IACpC,IAAI,IAAI,CAACE,YAAY,IAAI,IAAI,CAACD,cAAc,EAAE;MAAC;IAAO;IACtD,IAAI,CAACN,iBAAiB,EAAE;IACxB,MAAMqH,GAAG,GAAGC,IAAI,CAACC,GAAG,CAClB,IAAI,CAACvH,iBAAiB,GAAG,CAAC,EAC1BsH,IAAI,CAAClE,GAAG,CAAC,CAAC,EAAE,IAAI,CAACnD,oBAAoB,CACvC,CAAC;IACD,MAAMuH,KAAK,GAAGF,IAAI,CAACC,GAAG,CACpB,IAAI,CAACpH,iBAAiB,EACtB,IAAI,CAACD,cAAc,GAAGoH,IAAI,CAACG,GAAG,CAAC,CAAC,EAAEJ,GAAG,CACvC,CAAC;IACDvB,OAAO,CAACM,GAAG,CAAC,wBAAwB,IAAI,CAACpG,iBAAiB,OAAOwH,KAAK,IAAI,CAAC;IAC3E;IACA,IAAI,CAAClH,cAAc,GAAGwD,UAAU,CAAC,MAAM;MACrC,IAAI,CAACxD,cAAc,GAAG,IAAI;MAC1B;MACA;MACA;MACA;MACA,IAAI,IAAI,CAACR,MAAM,KAAK,QAAQ,EAAE;QAC5B,IAAI,CAACE,iBAAiB,GAAG,CAAC;QAC1B;MACF;MACA,IAAI,CAAC0E,SAAS,CAAC,CAAC;IAClB,CAAC,EAAE8C,KAAK,CAAC;EACX;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEE,cAAcA,CAAA,EAAG;IACf,IAAI,IAAI,CAACrH,iBAAiB,EAAE;MAAC;IAAO;IACpC;IACA;IACA;IACA;IACA;IACA,MAAMqC,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtB,IAAIA,GAAG,GAAG,IAAI,CAACtC,eAAe,GAAG,IAAI,EAAE;MAAC;IAAO;IAC/C,IAAI,CAACA,eAAe,GAAGsC,GAAG;IAC1B,IAAI,IAAI,CAACpC,cAAc,EAAE;MACvBqH,YAAY,CAAC,IAAI,CAACrH,cAAc,CAAC;MACjC,IAAI,CAACA,cAAc,GAAG,IAAI;IAC5B;IACA,IAAI,CAACN,iBAAiB,GAAG,CAAC;IAC1B,IAAI,CAAC0E,SAAS,CAAC,CAAC;EAClB;EAEA,MAAMA,SAASA,CAAA,EAAG;IAChB,IAAI,IAAI,CAACrE,iBAAiB,EAAE;MAAC;IAAO;IACpC;IACA;IACA;IACA,IAAI,IAAI,CAACE,YAAY,EAAE;MACrBuF,OAAO,CAACM,GAAG,CAAC,sCAAsC,CAAC;MACnD;IACF;IACA,IAAI,CAAC7F,YAAY,GAAG,IAAI;IACxBuF,OAAO,CAACM,GAAG,CAAC,wCAAwC,CAAC;IAErD,IAAI;MACF;MACA;MACA;MACA;MACA,IAAI,IAAI,CAAC5F,aAAa,KAAK,gBAAgB,IAAI,IAAI,CAACC,mBAAmB,EAAE;QACvE,IAAI;UACF,MAAM,IAAI,CAACmH,sBAAsB,CAAC,CAAC;QACrC,CAAC,CAAC,OAAO5I,GAAG,EAAE;UACZ8G,OAAO,CAACC,IAAI,CACV,gEAAgE,EAChE/G,GACF,CAAC;QACH;MACF;;MAEA;MACA;MACA;MACA;MACA;MACA,MAAM6I,GAAG,GAAG,IAAI,CAACrG,MAAM;MACvB,IAAIqG,GAAG,EAAE;QACP,IAAI,CAACpD,oBAAoB,CAAC,CAAC;QAC3B,IAAI;UACF,MAAMoD,GAAG,CAAClD,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC;MACX;MACA,IAAI,CAACvC,gBAAgB,CAAC,CAAC;IACzB,CAAC,SAAS;MACR,IAAI,CAAC7B,YAAY,GAAG,KAAK;IAC3B;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACUqH,sBAAsBA,CAAA,EAAkB;IAC9C,IAAI,IAAI,CAAClH,0BAA0B,EAAE;MAAC,OAAO,IAAI,CAACA,0BAA0B;IAAC;IAC7E,IAAI,CAAC,IAAI,CAACD,mBAAmB,EAAE;MAAC,OAAOmD,OAAO,CAACmD,OAAO,CAAC,CAAC;IAAC;IACzD,MAAMrF,QAAQ,GAAG,IAAI,CAACjB,mBAAmB;IACzC,IAAI,CAACC,0BAA0B,GAAG,CAAC,YAAY;MAC7C,IAAI;QACF,MAAMoH,KAAK,GAAG,MAAMpG,QAAQ,CAAC,CAAC;QAC9B,IAAIoG,KAAK,EAAEhG,QAAQ,IAAIgG,KAAK,EAAE/H,QAAQ,EAAE;UACtC;UACA;UACA;UACA;UACA;UACA;UACA;UACA,IAAI,CAAC8B,iBAAiB,CAACiG,KAAK,CAAChG,QAAQ,EAAEgG,KAAK,CAAC/H,QAAQ,CAAC;UACtD,IAAI,CAACS,aAAa,GAAG,IAAI;QAC3B;MACF,CAAC,SAAS;QACR,IAAI,CAACE,0BAA0B,GAAG,IAAI;MACxC;IACF,CAAC,EAAE,CAAC;IACJ,OAAO,IAAI,CAACA,0BAA0B;EACxC;EAEA,MAAMqH,UAAUA,CAACC,OAAyC,EAAiB;IACzE,IAAIA,OAAO,EAAE3H,iBAAiB,EAAE;MAAC,IAAI,CAACA,iBAAiB,GAAG,IAAI;IAAC;IAC/D,OAAO,IAAI,CAAC4H,KAAK,CAAC,CAAC;EACrB;EAEA,MAAMA,KAAKA,CAAA,EAAG;IACZ;IACA;IACA,IAAI,IAAI,CAAC3H,cAAc,EAAE;MACvBqH,YAAY,CAAC,IAAI,CAACrH,cAAc,CAAC;MACjC,IAAI,CAACA,cAAc,GAAG,IAAI;IAC5B;IACA,IAAI,IAAI,CAACkB,MAAM,EAAE;MACf;MACA;MACA;MACA,IAAI,CAACiD,oBAAoB,CAAC,CAAC;MAC3B,IAAI;QACF,MAAM,IAAI,CAACjD,MAAM,CAACmD,IAAI,CAAC,CAAC;QACxBmB,OAAO,CAACM,GAAG,CAAC,gCAAgC,CAAC;MAC/C,CAAC,CAAC,OAAOhH,KAAK,EAAE;QACd0G,OAAO,CAAC1G,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;MACxD;IACF;IACA,IAAI,CAACU,MAAM,GAAG,SAAS;IACvB,IAAI,CAACc,cAAc,GAAG,KAAK;IAC3B;IACA;IACA;IACAjC,kBAAkB,CAAC,CAAC;EACtB;EAEAuJ,cAAc,GAAG,MAAAA,CAAA,KAAY;IAC3B,MAAM9J,QAAQ,CAAC,IAAI,CAACoD,MAAM,CAAC;EAC7B,CAAC;;EAED;;EAEA,MAAM2G,gBAAgBA,CAACC,KAAa,EAAEC,WAAmB,EAAEjD,EAAW,EAAE;IACtE,OAAO,MAAMvH,UAAU,CAACuK,KAAK,EAAEC,WAAW,EAAE,IAAI,CAAC7G,MAAM,CAAC;EAC1D;EAEA,MAAM8G,uBAAuBA,CAAClD,EAAU,EAAEmD,OAAe,EAAE;IACzD,MAAMpK,iBAAiB,CAAC,IAAI,CAACqD,MAAM,EAAE4D,EAAE,EAAEmD,OAAO,CAAC;EACnD;EAEAC,kBAAkB,GAAIlG,OAAe,IAAK;IACxCrE,YAAY,CAACO,gBAAgB,CAAC8D,OAAO,EAAE,IAAI,CAACzC,UAAU,CAAC,EAAE,IAAI,CAAC2B,MAAM,CAAC;EACvE,CAAC;EAEDwB,oBAAoB,GAAIV,OAAe,IAAK;IAC1C3E,cAAc,CAAC,IAAI,CAAC6D,MAAM,EAAEhD,gBAAgB,CAAC8D,OAAO,EAAE,IAAI,CAACzC,UAAU,CAAC,CAAC;EACzE,CAAC;EAED4I,gBAAgB,GAAG,MAAAA,CACjBtF,OAAe,EACfC,GAAW,EACXC,MAAe,EACfC,EAAW,EACX0E,OAAwB,KACrB;IACH,IAAIA,OAAO,EAAEU,YAAY,EAAE;MACzB,OAAO,IAAI,CAACzF,kBAAkB,CAAC;QAC7BE,OAAO;QACPC,GAAG;QACHC,MAAM;QACNC,EAAE;QACFC,MAAM,EAAEyE,OAAO,EAAEzE,MAAM,IAAI;MAC7B,CAAC,CAAC;IACJ;IACA,OAAO,MAAM/F,UAAU,CAAC,IAAI,CAACgE,MAAM,EAAE2B,OAAO,EAAEC,GAAG,EAAEC,MAAM,EAAEC,EAAE,CAAC;EAChE,CAAC;EAEDqF,2BAA2BA,CAACrG,OAAe,EAAE;IAC3C1E,cAAc,CAAC,IAAI,CAAC4D,MAAM,EAAEhD,gBAAgB,CAAC8D,OAAO,EAAE,IAAI,CAACzC,UAAU,CAAC,CAAC;EACzE;EAEA+I,kBAAkB,GAAGA,CACnBL,OAAe,EACfM,aAAqB,EACrB1J,IAAY,EACZ2J,cAAuB,KACpB;IACHhL,YAAY,CAACyK,OAAO,EAAEM,aAAa,EAAE1J,IAAI,EAAE,IAAI,CAACqC,MAAM,EAAEsH,cAAc,CAAC;EACzE,CAAC;EAEDC,iBAAiB,GAAIzG,OAAe,IAAK;IACvCtE,WAAW,CAACQ,gBAAgB,CAAC8D,OAAO,EAAE,IAAI,CAACzC,UAAU,CAAC,EAAE,IAAI,CAAC2B,MAAM,CAAC;EACtE,CAAC;EAEDwH,oBAAoB,GAAI1G,OAAe,IAAK;IAC1CvE,cAAc,CAACS,gBAAgB,CAAC8D,OAAO,EAAE,IAAI,CAACzC,UAAU,CAAC,EAAE,IAAI,CAAC2B,MAAM,CAAC;EACzE,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACUyH,aAAaA,CAAA,EAAY;IAC/B,OAAO,CAAC,CAAC,IAAI,CAACzH,MAAM,IAAI,IAAI,CAAC1B,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAACS,YAAY;EACxE;;EAEA;EACA+F,iBAAiBA,CAAA,EAAG;IAClBzH,kBAAkB,CAAC,IAAI,EAAE4D,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;EACtC;;EAEA;EACAwG,WAAW,GAAGA,CACZ5G,OAAe,EACf6G,SAAiB,EACjBC,QAAgB,EAChBC,KAAa,EACbC,aAAqB,EACrBC,WAAmB,EACnBC,iBAA0B,EAC1BC,OAAiB,EACjBC,aAAuB,EACvBC,WAAoB,EACpBC,QAAiB,KACL;IACZ;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACX,aAAa,CAAC,CAAC,EAAE;MACzBrK,mBAAmB,CAAC;QAClBiL,YAAY,EAAED,QAAQ,IAAI,qBAAqBnH,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;QAC3DJ,OAAO;QACPwH,UAAU,EAAErH,IAAI,CAACC,GAAG,CAAC,CAAC;QACtBoC,IAAI,EAAG6B,CAAC,IACNA,CAAC,CAACuC,WAAW,CACX5G,OAAO,EACP6G,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,OAAO,EACPC,aAAa,EACbC,WAAW,EACXC,QACF;MACJ,CAAC,CAAC;MACF,OAAO,KAAK;IACd;IACAnM,eAAe,CACb,IAAI,CAAC+D,MAAM,EACXc,OAAO,EACP6G,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,OAAO,EACPC,aAAa,EACbC,WAAW,EACX,IAAI,CAAC1H,SAAS,IAAInD,kBAAkB,EACpC8K,QACF,CAAC;IACD,OAAO,IAAI;EACb,CAAC;EAEDG,mBAAmBA,CAACC,IAAY,EAAEC,KAAa,EAAE;IAC/CvM,aAAa,CAAC,IAAI,CAAC8D,MAAM,EAAEwI,IAAI,EAAEC,KAAK,CAAC;EACzC;EAEAC,iBAAiBA,CAACF,IAAY,EAAEC,KAAa,EAAE1K,IAAY,EAAE;IAC3DrB,WAAW,CAAC,IAAI,CAACsD,MAAM,EAAEwI,IAAI,EAAEC,KAAK,EAAE1K,IAAI,CAAC;EAC7C;EAEA4K,uBAAuBA,CAACC,MAAc,EAAEC,QAAgB,EAAEpE,KAAc,EAAE;IACxE1I,iBAAiB,CAAC,IAAI,CAACiE,MAAM,EAAE4I,MAAM,EAAEC,QAAQ,EAAEpE,KAAK,CAAC;EACzD;EAEAqE,iCAAiC,GAAG,MAAAA,CAAA,KAAY;IAC9C,IAAI,IAAI,CAACzJ,eAAe,EAAE;MAAC,OAAO,IAAI;IAAC;IACvC,IAAI;MACF,MAAM0J,OAAO,GAAG,MAAMnN,2BAA2B,CAAC,IAAI,CAACoE,MAAM,CAAC;MAC9D;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAI+I,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;QAC1C,MAAMC,UAAkC,GAAG,CAAC,CAAC;QAC7C,KAAK,MAAMC,GAAG,IAAIhF,MAAM,CAACiF,IAAI,CAACH,OAAkC,CAAC,EAAE;UACjE,MAAMI,CAAC,GAAGC,MAAM,CAAEL,OAAO,CAA6BE,GAAG,CAAC,CAAC;UAC3D,IAAIA,GAAG,IAAIG,MAAM,CAACC,QAAQ,CAACF,CAAC,CAAC,IAAIA,CAAC,GAAG,CAAC,EAAE;YAACH,UAAU,CAACC,GAAG,CAAC,GAAGE,CAAC;UAAC;QAC/D;QACA,IAAIlF,MAAM,CAACiF,IAAI,CAACF,UAAU,CAAC,CAACM,MAAM,GAAG,CAAC,EAAE;UACtCrM,KAAK,CAACsM,QAAQ,CAACrM,wBAAwB,CAAC8L,UAAU,CAAC,CAAC;QACtD;MACF;MACA,OAAOD,OAAO;IAChB,CAAC,CAAC,OAAOnL,KAAK,EAAE;MACd0G,OAAO,CAACM,GAAG,CAAChH,KAAK,CAAC;MAClB,OAAO,IAAI;IACb;EACF,CAAC;EAED,MAAM4L,sCAAsCA,CAC1CZ,MAAc,EACda,SAAiB,EACjBC,KAAgB,EAChB;IACA,IAAI,IAAI,CAACrK,eAAe,EAAE;MAAC;IAAO;IAClC,IAAI;MACF,MAAMxD,gCAAgC,CACpC,IAAI,CAACmE,MAAM,EACX4I,MAAM,EACNa,SAAS,EACTC,KACF,CAAC;IACH,CAAC,CAAC,OAAO9L,KAAK,EAAE,CAAC;EACnB;;EAEA;EACA;EACA;EACA,MAAM+L,mCAAmCA,CACvCC,KAA6C,EAC7CC,IAAkE,GAAG,CAAC,CAAC,EACvE;IACA,IAAI,IAAI,CAACxK,eAAe,EAAE;MAAC,OAAO,KAAK;IAAC;IACxC,IAAI;MACF,OAAO,MAAMvD,6BAA6B,CAAC,IAAI,EAAE8N,KAAK,EAAEC,IAAI,CAAC;IAC/D,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;EAEAC,sBAAsBA,CAAChJ,OAAe,EAAEiJ,IAAS,EAAE3B,QAAiB,EAAE;IACpE;IACA;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACX,aAAa,CAAC,CAAC,EAAE;MACzBrK,mBAAmB,CAAC;QAClBiL,YAAY,EAAED,QAAQ,IAAI,sBAAsBnH,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;QAC5DJ,OAAO;QACPwH,UAAU,EAAErH,IAAI,CAACC,GAAG,CAAC,CAAC;QACtBoC,IAAI,EAAG6B,CAAC,IAAKA,CAAC,CAAC2E,sBAAsB,CAAChJ,OAAO,EAAEiJ,IAAI,EAAE3B,QAAQ;MAC/D,CAAC,CAAC;MACF,OAAOtE,SAAS;IAClB;IACA,OAAOnI,gBAAgB,CACrB,IAAI,CAACqE,MAAM,EACXc,OAAO,EACPiJ,IAAI,EACJ3B,QAAQ,EACR,IAAI,CAAC3H,SAAS,IAAInD,kBACpB,CAAC;EACH;;EAEA;EACA;EACA;EACA;EACA;EACA;;EAEA0M,cAAcA,CAACC,aAAqB,EAAE;IACpC3F,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;EACnE;EAEA,MAAM2F,uBAAuBA,CAC3BtD,KAAa,EACbC,WAAmB,EACnBjD,EAAU,EACO;IACjBU,OAAO,CAACC,IAAI,CAAC,sEAAsE,CAAC;IACpF,MAAMR,MAAM,GAAG,MAAM,IAAI,CAAC4C,gBAAgB,CAACC,KAAK,EAAEC,WAAW,EAAEjD,EAAE,CAAC;IAClE,OAAO,OAAOG,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAG,EAAE;EACjD;EAEAoG,yBAAyBA,CACvB7I,UAAkB,EAClB8I,QAAgB,EAChBC,cAAwB,EACxBC,eAAwB,EACxB;IACAhG,OAAO,CAACC,IAAI,CAAC,8DAA8D,CAAC;EAC9E;EAEAgG,qCAAqCA,CACnCzJ,OAAe,EACf6G,SAAiB,EACjBC,QAAgB,EAChBC,KAAa,EACbC,aAAqB,EACrBC,WAAmB,EACnBC,iBAA0B,EAC1BC,OAAiB,EACjBC,aAAuB,EACvBC,WAAoB,EACpBqC,WAAoB,EACpBpC,QAAiB,EACjB;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,CAACV,WAAW,CACd5G,OAAO,EACP6G,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,OAAO,EACPC,aAAa,EACbC,WAAW,EACXC,QACF,CAAC;EACH;AACF;AAEA,eAAelK,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["xmpp","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","sendPing","getHistory","sendTextMessage","deleteMessage","presenceInRoom","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","pushLog","devPushLog","normalizeRoomJid","store","applyPrivateStoreMarkers","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","suppressReconnect","reconnectTimer","reconnecting","lastAuthError","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","cur","delete","set","startedAt","s","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","undefined","result","catch","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","flushPendingSends","onError","onStanza","from","on","c","removeListener","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","exp","Math","min","delay","pow","forceReconnect","clearTimeout","streamAliveProbe","verifyStreamAlive","underlying","settled","done","alive","timer","finally","ensureStreamAlive","refreshCredentialsOnce","old","fresh","disconnect","options","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","markers","normalized","jid","keys","n","Number","isFinite","length","dispatch","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","rooms","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { updateRoom } from '../roomsSlice';
4
+ import { clearMessageFailure } from '../roomHeapSlice';
5
+ import { removeOutboundSend } from '../../networking/outboundQueue';
4
6
  export const newMessageMidlleware = storeAPI => next => action => {
5
7
  if (!action || !action.type) {
6
8
  console.error('Invalid action in newMessageMiddleware:', action);
@@ -20,6 +22,26 @@ export const newMessageMidlleware = storeAPI => next => action => {
20
22
  roomJID,
21
23
  message
22
24
  } = action.payload;
25
+
26
+ // Un-fail on confirmed delivery. A server-confirmed copy (echo or MAM
27
+ // history, never `pending`) arriving for a message we'd flagged failed
28
+ // means the send actually went through — e.g. a slow send that completed
29
+ // just after the 5s watchdog window, or a queued auto-resend landing on
30
+ // reconnect. The failed flag is keyed by our optimistic/stanza id, which
31
+ // the echo carries back as `id`/`xmppId`, so clear it here and let the
32
+ // bubble flip to delivered instead of staying stuck on "Failed".
33
+ if (message && !message.pending) {
34
+ // The confirmed copy carries our optimistic/stanza id back as id/xmppId.
35
+ // Drop any still-buffered replay for it so a later reconnect flush can't
36
+ // re-send an already-delivered message.
37
+ removeOutboundSend(message.id);
38
+ removeOutboundSend(message.xmppId);
39
+ const failedMap = state.roomHeapSlice?.failedMessages || {};
40
+ const failedKey = [message.id, message.xmppId].find(k => k && failedMap[k]);
41
+ if (failedKey) {
42
+ storeAPI.dispatch(clearMessageFailure(failedKey));
43
+ }
44
+ }
23
45
  if ((rooms[roomJID]?.lastMessageTimestamp ?? 0) <= Number(message.id)) {
24
46
  storeAPI.dispatch(updateRoom({
25
47
  jid: roomJID,
@@ -1 +1 @@
1
- {"version":3,"names":["updateRoom","newMessageMidlleware","storeAPI","next","action","type","console","error","payload","result","state","getState","rooms","roomJID","message","lastMessageTimestamp","Number","id","dispatch","jid","updates"],"sourceRoot":"../../../../src","sources":["roomStore/Middleware/newMessageMidlleware.tsx"],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAG1C,OAAO,MAAMC,oBAAgC,GAC1CC,QAAQ,IAAMC,IAAI,IAAMC,MAAW,IAAK;EACvC,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,IAAI,EAAE;IAC3BC,OAAO,CAACC,KAAK,CAAC,yCAAyC,EAAEH,MAAM,CAAC;IAChE,OAAOD,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,IAAIA,MAAM,CAACC,IAAI,KAAK,6BAA6B,EAAE;IACjD,OAAOF,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,IAAI,CAACA,MAAM,CAACI,OAAO,IAAI,OAAOJ,MAAM,CAACI,OAAO,KAAK,QAAQ,EAAE;IACzDF,OAAO,CAACC,KAAK,CAAC,4CAA4C,EAAEH,MAAM,CAAC;IACnE,OAAOD,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,MAAMK,MAAM,GAAGN,IAAI,CAACC,MAAM,CAAC;EAC3B,MAAMM,KAAK,GAAGR,QAAQ,CAACS,QAAQ,CAAC,CAAC;EACjC,MAAMC,KAA+B,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAEzD,MAAM;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGV,MAAM,CAACI,OAAO;EAE3C,IAAI,CAACI,KAAK,CAACC,OAAO,CAAC,EAAEE,oBAAoB,IAAI,CAAC,KAAKC,MAAM,CAACF,OAAO,CAACG,EAAE,CAAC,EAAE;IACrEf,QAAQ,CAACgB,QAAQ,CACflB,UAAU,CAAC;MACTmB,GAAG,EAAEN,OAAO;MACZO,OAAO,EAAE;QAAEL,oBAAoB,EAAEC,MAAM,CAACF,OAAO,CAACG,EAAE,CAAC,IAAI;MAAE;IAC3D,CAAC,CACH,CAAC;EACH;EAEA,OAAOR,MAAM;AACf,CAAC;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["updateRoom","clearMessageFailure","removeOutboundSend","newMessageMidlleware","storeAPI","next","action","type","console","error","payload","result","state","getState","rooms","roomJID","message","pending","id","xmppId","failedMap","roomHeapSlice","failedMessages","failedKey","find","k","dispatch","lastMessageTimestamp","Number","jid","updates"],"sourceRoot":"../../../../src","sources":["roomStore/Middleware/newMessageMidlleware.tsx"],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,kBAAkB,QAAQ,gCAAgC;AAGnE,OAAO,MAAMC,oBAAgC,GAC1CC,QAAQ,IAAMC,IAAI,IAAMC,MAAW,IAAK;EACvC,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,IAAI,EAAE;IAC3BC,OAAO,CAACC,KAAK,CAAC,yCAAyC,EAAEH,MAAM,CAAC;IAChE,OAAOD,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,IAAIA,MAAM,CAACC,IAAI,KAAK,6BAA6B,EAAE;IACjD,OAAOF,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,IAAI,CAACA,MAAM,CAACI,OAAO,IAAI,OAAOJ,MAAM,CAACI,OAAO,KAAK,QAAQ,EAAE;IACzDF,OAAO,CAACC,KAAK,CAAC,4CAA4C,EAAEH,MAAM,CAAC;IACnE,OAAOD,IAAI,CAACC,MAAM,CAAC;EACrB;EAEA,MAAMK,MAAM,GAAGN,IAAI,CAACC,MAAM,CAAC;EAC3B,MAAMM,KAAK,GAAGR,QAAQ,CAACS,QAAQ,CAAC,CAAC;EACjC,MAAMC,KAA+B,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAEzD,MAAM;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGV,MAAM,CAACI,OAAO;;EAE3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIM,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAC/B;IACA;IACA;IACAf,kBAAkB,CAACc,OAAO,CAACE,EAAE,CAAC;IAC9BhB,kBAAkB,CAACc,OAAO,CAACG,MAAM,CAAC;IAElC,MAAMC,SAAS,GAAGR,KAAK,CAACS,aAAa,EAAEC,cAAc,IAAI,CAAC,CAAC;IAC3D,MAAMC,SAAS,GAAG,CAACP,OAAO,CAACE,EAAE,EAAEF,OAAO,CAACG,MAAM,CAAC,CAACK,IAAI,CAChDC,CAAqB,IAAKA,CAAC,IAAIL,SAAS,CAACK,CAAC,CAC7C,CAAC;IACD,IAAIF,SAAS,EAAE;MACbnB,QAAQ,CAACsB,QAAQ,CAACzB,mBAAmB,CAACsB,SAAmB,CAAC,CAAC;IAC7D;EACF;EAEA,IAAI,CAACT,KAAK,CAACC,OAAO,CAAC,EAAEY,oBAAoB,IAAI,CAAC,KAAKC,MAAM,CAACZ,OAAO,CAACE,EAAE,CAAC,EAAE;IACrEd,QAAQ,CAACsB,QAAQ,CACf1B,UAAU,CAAC;MACT6B,GAAG,EAAEd,OAAO;MACZe,OAAO,EAAE;QAAEH,oBAAoB,EAAEC,MAAM,CAACZ,OAAO,CAACE,EAAE,CAAC,IAAI;MAAE;IAC3D,CAAC,CACH,CAAC;EACH;EAEA,OAAOP,MAAM;AACf,CAAC;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA","ignoreList":[]}
@@ -66,7 +66,15 @@ function mergeHistoryIntoCache(existing, fetched) {
66
66
  byId.set(String(m.id), m);
67
67
  }
68
68
  for (const m of realFetched) {
69
- byId.set(String(m.id), m);
69
+ // Fetched wins on body/reactions/etc., but MAM doesn't carry our
70
+ // client-side "edited" flag (the archived stanza just has the corrected
71
+ // body). Preserve `isEdited` from the cached copy so a message edited
72
+ // before reload keeps its marker instead of losing it on history sync.
73
+ const prev = byId.get(String(m.id));
74
+ byId.set(String(m.id), prev?.isEdited && !m.isEdited ? {
75
+ ...m,
76
+ isEdited: true
77
+ } : m);
70
78
  }
71
79
  const merged = Array.from(byId.values()).sort(byMs);
72
80
  return [...capTail(merged), ...pending];
@@ -262,6 +270,10 @@ const reducers = {
262
270
  state.rooms[roomJID].messages.map(message => {
263
271
  if (message.id === messageId) {
264
272
  message.body = text;
273
+ // Flag the correction so the bubble can render an "edited" marker.
274
+ // Covers both the author's own edit and edits from other users —
275
+ // every <replace> echo flows through here.
276
+ message.isEdited = true;
265
277
  }
266
278
  });
267
279
  }