@amityco/ts-sdk 6.17.3 → 6.18.0

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 (401) hide show
  1. package/dist/@types/core/events.d.ts +4 -2
  2. package/dist/@types/core/events.d.ts.map +1 -1
  3. package/dist/@types/core/marker.d.ts +12 -1
  4. package/dist/@types/core/marker.d.ts.map +1 -1
  5. package/dist/@types/core/model.d.ts +6 -2
  6. package/dist/@types/core/model.d.ts.map +1 -1
  7. package/dist/@types/core/payload.d.ts +20 -3
  8. package/dist/@types/core/payload.d.ts.map +1 -1
  9. package/dist/@types/core/readReceipt.d.ts +21 -0
  10. package/dist/@types/core/readReceipt.d.ts.map +1 -0
  11. package/dist/@types/domains/channel.d.ts +11 -1
  12. package/dist/@types/domains/channel.d.ts.map +1 -1
  13. package/dist/@types/domains/client.d.ts +12 -2
  14. package/dist/@types/domains/client.d.ts.map +1 -1
  15. package/dist/@types/domains/community.d.ts +1 -3
  16. package/dist/@types/domains/community.d.ts.map +1 -1
  17. package/dist/@types/domains/group.d.ts +2 -2
  18. package/dist/@types/domains/group.d.ts.map +1 -1
  19. package/dist/@types/domains/marker.d.ts +15 -0
  20. package/dist/@types/domains/marker.d.ts.map +1 -1
  21. package/dist/@types/domains/message.d.ts +4 -0
  22. package/dist/@types/domains/message.d.ts.map +1 -1
  23. package/dist/@types/domains/story.d.ts +20 -3
  24. package/dist/@types/domains/story.d.ts.map +1 -1
  25. package/dist/@types/domains/subChannel.d.ts +4 -0
  26. package/dist/@types/domains/subChannel.d.ts.map +1 -1
  27. package/dist/channelRepository/api/markAsRead.d.ts.map +1 -1
  28. package/dist/channelRepository/channelModeration/api/index.d.ts +2 -0
  29. package/dist/channelRepository/channelModeration/api/index.d.ts.map +1 -1
  30. package/dist/channelRepository/channelModeration/api/muteMembers.d.ts +17 -0
  31. package/dist/channelRepository/channelModeration/api/muteMembers.d.ts.map +1 -0
  32. package/dist/channelRepository/channelModeration/api/unmuteMembers.d.ts +16 -0
  33. package/dist/channelRepository/channelModeration/api/unmuteMembers.d.ts.map +1 -0
  34. package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -1
  35. package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -1
  36. package/dist/channelRepository/events/onChannelMemberBanned.d.ts.map +1 -1
  37. package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
  38. package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
  39. package/dist/channelRepository/observers/getChannels/ChannelQueryStreamController.d.ts.map +1 -1
  40. package/dist/channelRepository/utils/getChannelIsMentioned.d.ts +10 -0
  41. package/dist/channelRepository/utils/getChannelIsMentioned.d.ts.map +1 -0
  42. package/dist/channelRepository/utils/getSubChannelsUnreadCount.d.ts +10 -0
  43. package/dist/channelRepository/utils/getSubChannelsUnreadCount.d.ts.map +1 -0
  44. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
  45. package/dist/client/api/accessTokenExpiryWatcher.d.ts +1 -1
  46. package/dist/client/api/accessTokenExpiryWatcher.d.ts.map +1 -1
  47. package/dist/client/api/createClient.d.ts.map +1 -1
  48. package/dist/client/api/enableUnreadCount.d.ts +2 -0
  49. package/dist/client/api/enableUnreadCount.d.ts.map +1 -0
  50. package/dist/client/api/index.d.ts +1 -0
  51. package/dist/client/api/index.d.ts.map +1 -1
  52. package/dist/client/api/login.d.ts.map +1 -1
  53. package/dist/client/api/markerSync.d.ts.map +1 -1
  54. package/dist/client/api/renewal.d.ts.map +1 -1
  55. package/dist/client/api/validateTexts.d.ts +8 -0
  56. package/dist/client/api/validateTexts.d.ts.map +1 -0
  57. package/dist/client/api/validateUrls.d.ts +8 -0
  58. package/dist/client/api/validateUrls.d.ts.map +1 -0
  59. package/dist/client/observers/getUserUnread.d.ts +1 -1
  60. package/dist/client/observers/getUserUnread.d.ts.map +1 -1
  61. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts +33 -0
  62. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -0
  63. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler.d.ts +3 -0
  64. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler.d.ts.map +1 -0
  65. package/dist/client/utils/markerSyncEngine.d.ts +2 -0
  66. package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
  67. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  68. package/dist/client/utils/subscribeGlobalTopic.d.ts.map +1 -1
  69. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  70. package/dist/commentRepository/api/queryComments.d.ts.map +1 -1
  71. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  72. package/dist/commentRepository/internalApi/queryComments.d.ts.map +1 -1
  73. package/dist/commentRepository/utils/convertToInternalComment.d.ts +8 -0
  74. package/dist/commentRepository/utils/convertToInternalComment.d.ts.map +1 -0
  75. package/dist/core/events.d.ts +3 -3
  76. package/dist/core/events.d.ts.map +1 -1
  77. package/dist/core/model/idResolvers.d.ts.map +1 -1
  78. package/dist/core/model/index.d.ts.map +1 -1
  79. package/dist/core/query/sorting.d.ts +6 -0
  80. package/dist/core/query/sorting.d.ts.map +1 -1
  81. package/dist/core/subscription.d.ts +1 -0
  82. package/dist/core/subscription.d.ts.map +1 -1
  83. package/dist/index.cjs.js +5745 -4474
  84. package/dist/index.esm.js +5183 -3914
  85. package/dist/index.umd.js +4 -4
  86. package/dist/marker/api/getChannelMarkers.d.ts.map +1 -1
  87. package/dist/marker/api/getMessageMarkers.d.ts.map +1 -1
  88. package/dist/marker/api/getSubChannelMarkers.d.ts.map +1 -1
  89. package/dist/marker/api/getUserMarker.d.ts +1 -1
  90. package/dist/marker/api/getUserMarker.d.ts.map +1 -1
  91. package/dist/marker/api/getUserMessageFeedMarkers.d.ts +18 -0
  92. package/dist/marker/api/getUserMessageFeedMarkers.d.ts.map +1 -0
  93. package/dist/marker/events/onMessageMarked.d.ts.map +1 -1
  94. package/dist/marker/events/onUserFeedMarkerUpdated.d.ts +17 -0
  95. package/dist/marker/events/onUserFeedMarkerUpdated.d.ts.map +1 -0
  96. package/dist/marker/events/onUserMarkerSync.d.ts.map +1 -1
  97. package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId.d.ts +2 -0
  98. package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId.d.ts.map +1 -0
  99. package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadBySubChannelId.d.ts +2 -0
  100. package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadBySubChannelId.d.ts.map +1 -0
  101. package/dist/marker/utils/deleteChannelUnreadByChannelId.d.ts +2 -0
  102. package/dist/marker/utils/deleteChannelUnreadByChannelId.d.ts.map +1 -0
  103. package/dist/marker/utils/persistUnreadCountInfo.d.ts +2 -0
  104. package/dist/marker/utils/persistUnreadCountInfo.d.ts.map +1 -0
  105. package/dist/marker/utils/reCalculateChannelUnreadInfo.d.ts +2 -0
  106. package/dist/marker/utils/reCalculateChannelUnreadInfo.d.ts.map +1 -0
  107. package/dist/marker/utils/updateSubChannelUnreadFromMessage.d.ts +2 -0
  108. package/dist/marker/utils/updateSubChannelUnreadFromMessage.d.ts.map +1 -0
  109. package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -0
  110. package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts.map +1 -1
  111. package/dist/messagePreview/utils/updateMessagePreviewFromMessage.d.ts +2 -2
  112. package/dist/messagePreview/utils/updateMessagePreviewFromMessage.d.ts.map +1 -1
  113. package/dist/messageRepository/api/createMessage.d.ts.map +1 -1
  114. package/dist/messageRepository/api/deleteMessage.d.ts.map +1 -1
  115. package/dist/messageRepository/api/editMessage.d.ts.map +1 -1
  116. package/dist/messageRepository/api/getMessage.d.ts.map +1 -1
  117. package/dist/messageRepository/api/getMessages.d.ts.map +1 -1
  118. package/dist/messageRepository/api/markAsDelivered.d.ts.map +1 -1
  119. package/dist/messageRepository/api/queryMessages.d.ts.map +1 -1
  120. package/dist/messageRepository/api/softDeleteMessage.d.ts.map +1 -1
  121. package/dist/messageRepository/api/updateMessage.d.ts.map +1 -1
  122. package/dist/messageRepository/events/onMessageCreated.d.ts +2 -2
  123. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  124. package/dist/messageRepository/events/onMessageDeleted.d.ts +1 -1
  125. package/dist/messageRepository/events/onMessageDeleted.d.ts.map +1 -1
  126. package/dist/messageRepository/events/onMessageFetched.d.ts +1 -1
  127. package/dist/messageRepository/events/onMessageFetched.d.ts.map +1 -1
  128. package/dist/messageRepository/events/onMessageFlagCleared.d.ts +1 -1
  129. package/dist/messageRepository/events/onMessageFlagCleared.d.ts.map +1 -1
  130. package/dist/messageRepository/events/onMessageFlagged.d.ts +1 -1
  131. package/dist/messageRepository/events/onMessageFlagged.d.ts.map +1 -1
  132. package/dist/messageRepository/events/onMessageReactionAdded.d.ts +1 -1
  133. package/dist/messageRepository/events/onMessageReactionAdded.d.ts.map +1 -1
  134. package/dist/messageRepository/events/onMessageReactionRemoved.d.ts +1 -1
  135. package/dist/messageRepository/events/onMessageReactionRemoved.d.ts.map +1 -1
  136. package/dist/messageRepository/events/onMessageUnflagged.d.ts +1 -1
  137. package/dist/messageRepository/events/onMessageUnflagged.d.ts.map +1 -1
  138. package/dist/messageRepository/events/onMessageUpdated.d.ts +1 -1
  139. package/dist/messageRepository/events/onMessageUpdated.d.ts.map +1 -1
  140. package/dist/messageRepository/internalApi/getMessage.d.ts +32 -0
  141. package/dist/messageRepository/internalApi/getMessage.d.ts.map +1 -0
  142. package/dist/messageRepository/internalApi/getMessages.d.ts +32 -0
  143. package/dist/messageRepository/internalApi/getMessages.d.ts.map +1 -0
  144. package/dist/messageRepository/observers/getMessage.d.ts.map +1 -1
  145. package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -1
  146. package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts +2 -2
  147. package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
  148. package/dist/messageRepository/observers/observeMessage.d.ts.map +1 -1
  149. package/dist/messageRepository/observers/observeMessages.d.ts.map +1 -1
  150. package/dist/messageRepository/utils/getMessageReadCount.d.ts +1 -1
  151. package/dist/messageRepository/utils/getMessageReadCount.d.ts.map +1 -1
  152. package/dist/messageRepository/utils/prepareMessagePayload.d.ts +1 -1
  153. package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
  154. package/dist/reactionRepository/events/onReactionAdded.d.ts +1 -1
  155. package/dist/reactionRepository/events/onReactionAdded.d.ts.map +1 -1
  156. package/dist/reactionRepository/events/onReactionRemoved.d.ts +1 -1
  157. package/dist/reactionRepository/events/onReactionRemoved.d.ts.map +1 -1
  158. package/dist/reactionRepository/events/onReactorAdded.d.ts.map +1 -1
  159. package/dist/reactionRepository/events/onReactorRemoved.d.ts.map +1 -1
  160. package/dist/reactionRepository/utils/fetchReference.d.ts +1 -1
  161. package/dist/reactionRepository/utils/fetchReference.d.ts.map +1 -1
  162. package/dist/reactionRepository/utils/prepareMessagePayloadForCache.d.ts +1 -1
  163. package/dist/reactionRepository/utils/prepareMessagePayloadForCache.d.ts.map +1 -1
  164. package/dist/reactionRepository/utils/prepareReactionPayloadFormEvent.d.ts +1 -0
  165. package/dist/reactionRepository/utils/prepareReactionPayloadFormEvent.d.ts.map +1 -1
  166. package/dist/storyRepository/api/createImageStory.d.ts.map +1 -1
  167. package/dist/storyRepository/api/createVideoStory.d.ts.map +1 -1
  168. package/dist/storyRepository/constants.d.ts +2 -0
  169. package/dist/storyRepository/constants.d.ts.map +1 -1
  170. package/dist/storyRepository/events/onStoryReactionAdded.d.ts.map +1 -1
  171. package/dist/storyRepository/events/onStoryReactionRemoved.d.ts.map +1 -1
  172. package/dist/storyRepository/internalApi/getStoryByStoryId.d.ts.map +1 -1
  173. package/dist/storyRepository/observers/getActiveStoriesByTarget.d.ts.map +1 -1
  174. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.d.ts +14 -0
  175. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.d.ts.map +1 -0
  176. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryPageController.d.ts +13 -0
  177. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryPageController.d.ts.map +1 -0
  178. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryQueryStreamController.d.ts +16 -0
  179. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryQueryStreamController.d.ts.map +1 -0
  180. package/dist/storyRepository/observers/getGlobalStoryTargets/getGlobalStoryTargets.d.ts +2 -0
  181. package/dist/storyRepository/observers/getGlobalStoryTargets/getGlobalStoryTargets.d.ts.map +1 -0
  182. package/dist/storyRepository/observers/getGlobalStoryTargets/index.d.ts +2 -0
  183. package/dist/storyRepository/observers/getGlobalStoryTargets/index.d.ts.map +1 -0
  184. package/dist/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.d.ts.map +1 -1
  185. package/dist/storyRepository/observers/index.d.ts +1 -0
  186. package/dist/storyRepository/observers/index.d.ts.map +1 -1
  187. package/dist/storyRepository/utils/StoryComputedValue.d.ts +21 -0
  188. package/dist/storyRepository/utils/StoryComputedValue.d.ts.map +1 -0
  189. package/dist/storyRepository/utils/convertRawToStory.d.ts +2 -2
  190. package/dist/storyRepository/utils/convertRawToStory.d.ts.map +1 -1
  191. package/dist/storyRepository/utils/convertStoryPayloadToRaw.d.ts.map +1 -1
  192. package/dist/subChannelRepository/api/markAsReadBySegment.d.ts +16 -0
  193. package/dist/subChannelRepository/api/markAsReadBySegment.d.ts.map +1 -0
  194. package/dist/subChannelRepository/api/readingAPI.d.ts.map +1 -1
  195. package/dist/subChannelRepository/api/startReadingAPI.d.ts.map +1 -1
  196. package/dist/subChannelRepository/api/stopReadingAPI.d.ts.map +1 -1
  197. package/dist/subChannelRepository/events/onSubChannelCreated.d.ts.map +1 -1
  198. package/dist/subChannelRepository/events/onSubChannelDeleted.d.ts.map +1 -1
  199. package/dist/subChannelRepository/index.d.ts +1 -0
  200. package/dist/subChannelRepository/index.d.ts.map +1 -1
  201. package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
  202. package/dist/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.d.ts.map +1 -1
  203. package/dist/subChannelRepository/utils/convertSubChannelFromRaw.d.ts.map +1 -1
  204. package/dist/subChannelRepository/utils/getSubChannelIsMentioned.d.ts +2 -0
  205. package/dist/subChannelRepository/utils/getSubChannelIsMentioned.d.ts.map +1 -0
  206. package/dist/subChannelRepository/utils/getSubChannelUnreadCount.d.ts.map +1 -1
  207. package/dist/subChannelRepository/utils/markReadEngine.d.ts +2 -0
  208. package/dist/subChannelRepository/utils/markReadEngine.d.ts.map +1 -1
  209. package/dist/subChannelRepository/utils/messageReceiptSync.d.ts +31 -0
  210. package/dist/subChannelRepository/utils/messageReceiptSync.d.ts.map +1 -0
  211. package/dist/subChannelRepository/utils/persistOptimisticUnreadInfo.d.ts +2 -0
  212. package/dist/subChannelRepository/utils/persistOptimisticUnreadInfo.d.ts.map +1 -0
  213. package/dist/utils/linkedObject/index.d.ts +1 -0
  214. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  215. package/dist/utils/linkedObject/messageLinkedObject.d.ts +2 -0
  216. package/dist/utils/linkedObject/messageLinkedObject.d.ts.map +1 -0
  217. package/dist/utils/linkedObject/storyLinkedObject.d.ts.map +1 -1
  218. package/dist/utils/linkedObject/storyTargetLinkedObject.d.ts.map +1 -1
  219. package/dist/utils/marker.d.ts +0 -1
  220. package/dist/utils/marker.d.ts.map +1 -1
  221. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  222. package/dist/utils/tests/dummy/community.d.ts +1 -1
  223. package/dist/utils/tests/dummy/marker.d.ts +1 -0
  224. package/dist/utils/tests/dummy/marker.d.ts.map +1 -1
  225. package/package.json +1 -1
  226. package/src/@types/core/events.ts +4 -2
  227. package/src/@types/core/marker.ts +13 -1
  228. package/src/@types/core/model.ts +8 -2
  229. package/src/@types/core/payload.ts +26 -3
  230. package/src/@types/core/readReceipt.ts +23 -0
  231. package/src/@types/domains/channel.ts +11 -1
  232. package/src/@types/domains/client.ts +14 -6
  233. package/src/@types/domains/community.ts +2 -3
  234. package/src/@types/domains/group.ts +2 -2
  235. package/src/@types/domains/marker.ts +17 -0
  236. package/src/@types/domains/message.ts +6 -0
  237. package/src/@types/domains/story.ts +26 -4
  238. package/src/@types/domains/subChannel.ts +4 -0
  239. package/src/channelRepository/api/markAsRead.ts +3 -7
  240. package/src/channelRepository/channelModeration/api/index.ts +3 -0
  241. package/src/channelRepository/channelModeration/api/muteMembers.ts +47 -0
  242. package/src/channelRepository/channelModeration/api/unmuteMembers.ts +43 -0
  243. package/src/channelRepository/events/onChannelCreated.ts +1 -1
  244. package/src/channelRepository/events/onChannelDeleted.ts +9 -0
  245. package/src/channelRepository/events/onChannelJoined.ts +1 -1
  246. package/src/channelRepository/events/onChannelLeft.ts +10 -1
  247. package/src/channelRepository/events/onChannelMemberAdded.ts +1 -1
  248. package/src/channelRepository/events/onChannelMemberBanned.ts +17 -0
  249. package/src/channelRepository/events/onChannelMemberRemoved.ts +1 -1
  250. package/src/channelRepository/events/onChannelMemberRoleAdded.ts +1 -1
  251. package/src/channelRepository/events/onChannelMemberRoleRemoved.ts +1 -1
  252. package/src/channelRepository/events/onChannelMemberUnbanned.ts +1 -1
  253. package/src/channelRepository/events/onChannelMuted.ts +1 -1
  254. package/src/channelRepository/events/onChannelUpdated.ts +1 -1
  255. package/src/channelRepository/observers/getChannel.ts +12 -8
  256. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +44 -11
  257. package/src/channelRepository/observers/getChannels/ChannelQueryStreamController.ts +4 -1
  258. package/src/channelRepository/utils/getChannelIsMentioned.ts +42 -0
  259. package/src/channelRepository/utils/getSubChannelsUnreadCount.ts +50 -0
  260. package/src/channelRepository/utils/prepareChannelPayload.ts +25 -4
  261. package/src/channelRepository/utils/tests/prepareChannelPayload.test.ts +6 -0
  262. package/src/client/api/accessTokenExpiryWatcher.ts +7 -2
  263. package/src/client/api/createClient.ts +11 -0
  264. package/src/client/api/enableUnreadCount.ts +24 -0
  265. package/src/client/api/index.ts +2 -0
  266. package/src/client/api/login.ts +7 -5
  267. package/src/client/api/markerSync.ts +2 -7
  268. package/src/client/api/renewal.ts +2 -5
  269. package/src/client/api/validateTexts.ts +23 -0
  270. package/src/client/api/validateUrls.ts +23 -0
  271. package/src/client/observers/getUserUnread.ts +38 -13
  272. package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +259 -0
  273. package/src/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler.ts +21 -0
  274. package/src/client/utils/markerSyncEngine.ts +30 -5
  275. package/src/client/utils/setClientToken.ts +0 -2
  276. package/src/client/utils/subscribeGlobalTopic.ts +2 -0
  277. package/src/commentRepository/api/deleteComment.ts +29 -12
  278. package/src/commentRepository/api/queryComments.ts +4 -2
  279. package/src/commentRepository/events/utils.ts +1 -2
  280. package/src/commentRepository/internalApi/queryComments.ts +4 -3
  281. package/src/commentRepository/utils/convertToInternalComment.ts +17 -0
  282. package/src/core/model/idResolvers.ts +3 -0
  283. package/src/core/model/index.ts +3 -0
  284. package/src/core/query/sorting.ts +8 -0
  285. package/src/core/subscription.ts +6 -0
  286. package/src/marker/api/getChannelMarkers.ts +2 -4
  287. package/src/marker/api/getMessageMarkers.ts +1 -5
  288. package/src/marker/api/getSubChannelMarkers.ts +12 -7
  289. package/src/marker/api/getUserMarker.ts +3 -10
  290. package/src/marker/api/getUserMessageFeedMarkers.ts +35 -0
  291. package/src/marker/api/tests/getSubChannelMarkers.test.ts +7 -0
  292. package/src/marker/events/onChannelMarkerFetched.ts +1 -1
  293. package/src/marker/events/onChannelMarkerUpdated.ts +1 -1
  294. package/src/marker/events/onFeedlMarkerFetched.ts +1 -1
  295. package/src/marker/events/onFeedlMarkerUpdated.ts +1 -1
  296. package/src/marker/events/onMessageMarked.ts +28 -12
  297. package/src/marker/events/onMessageMarkerFetched.ts +1 -1
  298. package/src/marker/events/onSubChannelMarkerFetched.ts +1 -1
  299. package/src/marker/events/onSubChannelMarkerUpdated.ts +1 -1
  300. package/src/marker/events/onUserFeedMarkerUpdated.ts +38 -0
  301. package/src/marker/events/onUserMarkerFetched.ts +1 -1
  302. package/src/marker/events/onUserMarkerSync.ts +3 -8
  303. package/src/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId.ts +19 -0
  304. package/src/marker/utils/addFlagIsDeletedSubChannelUnreadBySubChannelId.ts +13 -0
  305. package/src/marker/utils/deleteChannelUnreadByChannelId.ts +11 -0
  306. package/src/marker/utils/persistUnreadCountInfo.ts +47 -0
  307. package/src/marker/utils/reCalculateChannelUnreadInfo.ts +37 -0
  308. package/src/marker/utils/updateSubChannelUnreadFromMessage.ts +40 -0
  309. package/src/messagePreview/utils/updateMessagePreviewFromMessage.ts +2 -2
  310. package/src/messageRepository/api/createMessage.ts +6 -4
  311. package/src/messageRepository/api/deleteMessage.ts +6 -5
  312. package/src/messageRepository/api/editMessage.ts +5 -4
  313. package/src/messageRepository/api/getMessage.ts +2 -1
  314. package/src/messageRepository/api/getMessages.ts +2 -1
  315. package/src/messageRepository/api/markAsDelivered.ts +2 -6
  316. package/src/messageRepository/api/queryMessages.ts +8 -1
  317. package/src/messageRepository/api/softDeleteMessage.ts +6 -5
  318. package/src/messageRepository/api/updateMessage.ts +5 -4
  319. package/src/messageRepository/events/onMessageCreated.ts +12 -2
  320. package/src/messageRepository/events/onMessageDeleted.ts +4 -2
  321. package/src/messageRepository/events/onMessageFetched.ts +3 -1
  322. package/src/messageRepository/events/onMessageFlagCleared.ts +1 -1
  323. package/src/messageRepository/events/onMessageFlagged.ts +4 -2
  324. package/src/messageRepository/events/onMessageReactionAdded.ts +1 -1
  325. package/src/messageRepository/events/onMessageReactionRemoved.ts +1 -1
  326. package/src/messageRepository/events/onMessageUnflagged.ts +3 -1
  327. package/src/messageRepository/events/onMessageUpdated.ts +4 -2
  328. package/src/messageRepository/events/tests/events.test.ts +4 -1
  329. package/src/messageRepository/internalApi/getMessage.ts +101 -0
  330. package/src/messageRepository/internalApi/getMessages.ts +82 -0
  331. package/src/messageRepository/observers/getMessage.ts +10 -2
  332. package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +4 -2
  333. package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +2 -2
  334. package/src/messageRepository/observers/observeMessage.ts +13 -4
  335. package/src/messageRepository/observers/observeMessages.ts +19 -6
  336. package/src/messageRepository/utils/getMessageReadCount.ts +5 -4
  337. package/src/messageRepository/utils/prepareMessagePayload.ts +6 -10
  338. package/src/reactionRepository/events/onReactionAdded.ts +1 -0
  339. package/src/reactionRepository/events/onReactorAdded.ts +13 -0
  340. package/src/reactionRepository/events/onReactorRemoved.ts +13 -0
  341. package/src/reactionRepository/utils/fetchReference.ts +1 -1
  342. package/src/reactionRepository/utils/prepareMessagePayloadForCache.ts +1 -1
  343. package/src/reactionRepository/utils/prepareReactionPayloadFormEvent.ts +68 -15
  344. package/src/storyRepository/api/createImageStory.ts +7 -0
  345. package/src/storyRepository/api/createVideoStory.ts +7 -0
  346. package/src/storyRepository/constants.ts +2 -0
  347. package/src/storyRepository/events/onStoryCreated.ts +2 -2
  348. package/src/storyRepository/events/onStoryDeleted.ts +2 -2
  349. package/src/storyRepository/events/onStoryReactionAdded.ts +11 -5
  350. package/src/storyRepository/events/onStoryReactionRemoved.ts +11 -5
  351. package/src/storyRepository/events/onStoryUpdated.ts +2 -2
  352. package/src/storyRepository/internalApi/createStory.ts +2 -2
  353. package/src/storyRepository/internalApi/deleteStory.ts +1 -1
  354. package/src/storyRepository/internalApi/getActiveStoriesByTarget.ts +2 -2
  355. package/src/storyRepository/internalApi/getStoryByStoryId.ts +2 -1
  356. package/src/storyRepository/observers/getActiveStoriesByTarget.ts +11 -5
  357. package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts +152 -0
  358. package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryPageController.ts +73 -0
  359. package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryQueryStreamController.ts +94 -0
  360. package/src/storyRepository/observers/getGlobalStoryTargets/getGlobalStoryTargets.ts +32 -0
  361. package/src/storyRepository/observers/getGlobalStoryTargets/index.ts +1 -0
  362. package/src/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.ts +0 -2
  363. package/src/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.ts +2 -2
  364. package/src/storyRepository/observers/index.ts +1 -0
  365. package/src/storyRepository/utils/StoryComputedValue.ts +136 -0
  366. package/src/storyRepository/utils/convertRawToStory.ts +11 -4
  367. package/src/storyRepository/utils/convertStoryPayloadToRaw.ts +23 -0
  368. package/src/subChannelRepository/api/markAsReadBySegment.ts +35 -0
  369. package/src/subChannelRepository/api/readingAPI.ts +2 -7
  370. package/src/subChannelRepository/api/startReadingAPI.ts +2 -7
  371. package/src/subChannelRepository/api/stopReadingAPI.ts +2 -7
  372. package/src/subChannelRepository/events/onSubChannelCreated.ts +7 -1
  373. package/src/subChannelRepository/events/onSubChannelDeleted.ts +10 -1
  374. package/src/subChannelRepository/events/onSubChannelFetched.ts +1 -1
  375. package/src/subChannelRepository/index.ts +1 -0
  376. package/src/subChannelRepository/observers/getSubChannel.ts +10 -8
  377. package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +9 -4
  378. package/src/subChannelRepository/utils/convertSubChannelFromRaw.ts +5 -2
  379. package/src/subChannelRepository/utils/{getSubChannelHasMentioned.ts → getSubChannelIsMentioned.ts} +19 -1
  380. package/src/subChannelRepository/utils/getSubChannelUnreadCount.ts +18 -0
  381. package/src/subChannelRepository/utils/markReadEngine.ts +2 -0
  382. package/src/subChannelRepository/utils/messageReceiptSync.ts +73 -0
  383. package/src/subChannelRepository/utils/persistOptimisticUnreadInfo.ts +23 -0
  384. package/src/utils/linkedObject/index.ts +2 -0
  385. package/src/utils/linkedObject/messageLinkedObject.ts +21 -0
  386. package/src/utils/linkedObject/storyLinkedObject.ts +2 -1
  387. package/src/utils/linkedObject/storyTargetLinkedObject.ts +26 -4
  388. package/src/utils/marker.ts +0 -6
  389. package/src/utils/tests/dummy/channel.ts +8 -0
  390. package/src/utils/tests/dummy/marker.ts +15 -1
  391. package/dist/channelRepository/utils/getChannelHasMentioned.d.ts +0 -7
  392. package/dist/channelRepository/utils/getChannelHasMentioned.d.ts.map +0 -1
  393. package/dist/channelRepository/utils/getChannelUnreadCount.d.ts +0 -2
  394. package/dist/channelRepository/utils/getChannelUnreadCount.d.ts.map +0 -1
  395. package/dist/storyRepository/utils/calculateHasUnseenFlag.d.ts +0 -6
  396. package/dist/storyRepository/utils/calculateHasUnseenFlag.d.ts.map +0 -1
  397. package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts +0 -2
  398. package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts.map +0 -1
  399. package/src/channelRepository/utils/getChannelHasMentioned.ts +0 -28
  400. package/src/channelRepository/utils/getChannelUnreadCount.ts +0 -27
  401. package/src/storyRepository/utils/calculateHasUnseenFlag.ts +0 -47
@@ -18,6 +18,7 @@ declare global {
18
18
  poll: Amity.PollPayload;
19
19
  stream: Amity.StreamPayload;
20
20
  story: Amity.StoryPayload;
21
+ globalStoryFeed: Amity.GlobalStoryFeedPayload;
21
22
  reaction: Amity.ReactionPayload;
22
23
  };
23
24
 
@@ -63,7 +64,10 @@ declare global {
63
64
 
64
65
  type UserMarkerResponse = Omit<Amity.UserMarker, 'hasMentioned'> & Amity.IsMentioned;
65
66
  type UserEntityMarkerResponse = Omit<Amity.ChannelMarker, 'hasMentioned'> & Amity.IsMentioned;
66
- type UserFeedMarkerResponse = Omit<Amity.SubChannelMarker, 'hasMentioned'> & Amity.IsMentioned;
67
+ type UserFeedMarkerResponse = Omit<Amity.SubChannelMarker, 'hasMentioned'> & {
68
+ oldUnreadCount: number;
69
+ lastMentionSegment: number;
70
+ } & Amity.IsMentioned;
67
71
 
68
72
  type UserMarkerPayload = {
69
73
  userMarkers: UserMarkerResponse[];
@@ -75,11 +79,17 @@ declare global {
75
79
  };
76
80
 
77
81
  type SubChannelMarkerPayload = {
82
+ feedMarkers: Amity.FeedMarker[];
78
83
  userFeedMarkers: UserFeedMarkerResponse[];
79
84
  userEntityMarkers: UserEntityMarkerResponse[];
80
85
  userMarkers: UserMarkerResponse[];
81
86
  };
82
87
 
88
+ type UserMessageFeedMarkerPayload = {
89
+ feedMarkers: Amity.FeedMarker[];
90
+ userFeedMarkers: UserFeedMarkerResponse[];
91
+ };
92
+
83
93
  type MessageMarkerPayload = {
84
94
  contentMarkers: Amity.MessageMarker[];
85
95
  feedMarkers: Amity.FeedMarker[];
@@ -165,6 +175,11 @@ declare global {
165
175
  userFeedMarkers: UserFeedMarkerResponse[];
166
176
  };
167
177
 
178
+ type UserFeedUpdatedPayload = {
179
+ feedMarkers: Amity.FeedMarker[];
180
+ userFeedMarkers: Amity.UserFeedMarkerResponse[];
181
+ };
182
+
168
183
  type SubChannelPayload<T extends Amity.MessageContentType = any> = {
169
184
  messageFeeds: Amity.RawSubChannel[];
170
185
  messages: Amity.RawMessage<T>[];
@@ -179,7 +194,7 @@ declare global {
179
194
  */
180
195
  type ProcessedSubChannelPayload<T extends Amity.MessageContentType = any> = {
181
196
  messageFeeds: Amity.SubChannel[];
182
- messages: Amity.Message<T>[];
197
+ messages: Amity.InternalMessage<T>[];
183
198
  users: Amity.InternalUser[];
184
199
  files: Amity.File[];
185
200
  };
@@ -209,7 +224,7 @@ declare global {
209
224
  * - messages: `Amity.RawMessage` -> `Amity.Message` (Model Restructuring)
210
225
  */
211
226
  type ProcessedMessagePayload<T extends Amity.MessageContentType = any> = {
212
- messages: Amity.Message<T>[];
227
+ messages: Amity.InternalMessage<T>[];
213
228
  users: Amity.InternalUser[];
214
229
  files: Amity.File[];
215
230
  reactions: Amity.Reactor[];
@@ -301,6 +316,9 @@ declare global {
301
316
  storyTargets: Amity.RawStoryTarget[];
302
317
  };
303
318
 
319
+ type GlobalStoryFeedPayload = Omit<Amity.StoryBasePayload, 'comments'> &
320
+ Amity.StoryTargetPayload;
321
+
304
322
  // Original Payload form BE
305
323
  type StoryPayload = {
306
324
  stories: Amity.RawStory[];
@@ -311,6 +329,11 @@ declare global {
311
329
  stories: Amity.InternalStory[];
312
330
  } & Amity.StoryBasePayload;
313
331
 
332
+ // Payload with Reaction
333
+ type StoryReactionPayload = {
334
+ reactions: Amity.Reactor[];
335
+ } & Amity.StoryPayload;
336
+
314
337
  /**
315
338
  * Items that extend from `Amity.PostPayload`
316
339
  * - communities: `Amity.RawCommunity` -> `Amity.Community` (Added Marker Service related props)
@@ -0,0 +1,23 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace Amity {
5
+ const enum ReadReceiptSyncState {
6
+ CREATED = 'create',
7
+ SYNCING = 'syncing',
8
+ }
9
+
10
+ type ReadReceipt = {
11
+ subChannelId: Amity.SubChannel['subChannelId'];
12
+ latestSegment: number;
13
+ latestSyncSegment: number;
14
+ };
15
+
16
+ type ReadReceiptSyncJob = {
17
+ subChannelId: Amity.SubChannel['subChannelId'];
18
+ segment: number;
19
+ syncState: ReadReceiptSyncState;
20
+ retryCount: number;
21
+ };
22
+ }
23
+ }
@@ -71,12 +71,14 @@ declare global {
71
71
  isUnreadCountSupport: boolean;
72
72
  unreadCount: number;
73
73
  hasMentioned: boolean;
74
+ isMentioned: boolean;
75
+ subChannelsUnreadCount: number;
74
76
  };
75
77
 
76
78
  /* public type */
77
79
  type Channel<T extends ChannelType = any> = Omit<
78
80
  InternalChannel<T>,
79
- 'messagePreview' | 'messageCount'
81
+ 'messagePreview' | 'messageCount' | 'unreadCount' | 'hasMentioned'
80
82
  > & {
81
83
  messagePreview?: Amity.MessagePreview | null;
82
84
 
@@ -84,6 +86,14 @@ declare global {
84
86
  * @deprecated Please use the default sub channel `messageCount` instead.
85
87
  */
86
88
  messageCount: RawChannel['messageCount'];
89
+ /**
90
+ * @deprecated Please use `subChannelsUnreadCount` instead.
91
+ */
92
+ unreadCount: number;
93
+ /**
94
+ * @deprecated Please use `isMentioned` instead.
95
+ */
96
+ hasMentioned: boolean;
87
97
  };
88
98
 
89
99
  type QueryChannels = {
@@ -41,6 +41,8 @@ declare global {
41
41
  emitter: Emitter<Amity.Events>;
42
42
 
43
43
  hasPermission: (permission: string) => Amity.PermissionChecker;
44
+ validateUrls: (urls: string[]) => Promise<boolean>;
45
+ validateTexts: (texts: string[]) => Promise<boolean>;
44
46
 
45
47
  sessionState: Amity.SessionStates;
46
48
  sessionHandler?: Amity.SessionHandler;
@@ -52,17 +54,17 @@ declare global {
52
54
 
53
55
  token?: Omit<Amity.Tokens, 'refreshToken'>;
54
56
 
57
+ isUnreadCountEnabled: boolean;
58
+
55
59
  use: () => void;
56
60
 
57
- accessTokenExpiryWatcher: (
58
- expiresAt: Amity.Tokens['expiresAt'],
59
- issuedAt: Amity.Tokens['issuedAt'],
60
- sessionHandler: Amity.SessionHandler,
61
- ) => Amity.Unsubscriber;
61
+ accessTokenExpiryWatcher: (sessionHandler: Amity.SessionHandler) => Amity.Unsubscriber;
62
62
 
63
63
  getFeedSettings: () => Promise<Amity.FeedSettings>;
64
64
  getSocialSettings: () => Promise<Amity.SocialSettings>;
65
65
  getMessagePreviewSetting: (refresh?: boolean) => Promise<Amity.MessagePreviewSetting>;
66
+
67
+ getMarkerSyncConsistentMode: () => boolean;
66
68
  };
67
69
 
68
70
  type Device = {
@@ -134,6 +136,12 @@ declare global {
134
136
 
135
137
  type ActiveUser = Pick<Amity.InternalUser, '_id' | 'userId' | 'path' | 'displayName'>;
136
138
 
137
- type UserUnread = Pick<Amity.UserMarker, 'unreadCount' | 'hasMentioned'>;
139
+ type UserUnread = Pick<Amity.UserMarker, 'unreadCount'> & {
140
+ /**
141
+ * @deprecated use `isMentioned` instead
142
+ */
143
+ hasMentioned: boolean;
144
+ isMentioned: boolean;
145
+ };
138
146
  }
139
147
  }
@@ -61,6 +61,8 @@ declare global {
61
61
 
62
62
  hasFlaggedComment: boolean;
63
63
  hasFlaggedPost: boolean;
64
+
65
+ allowCommentInStory?: boolean;
64
66
  } & Amity.Taggable &
65
67
  Amity.Metadata &
66
68
  Amity.Timestamps &
@@ -70,9 +72,6 @@ declare global {
70
72
  type Community = Omit<Amity.RawCommunity, 'onlyAdminCanPost' | 'needApprovalOnPostCreation'> &
71
73
  Amity.CommunityStorySettings & {
72
74
  postSetting?: ValueOf<typeof CommunityPostSettings>;
73
- storySetting?: {
74
- enableComment: boolean;
75
- };
76
75
  };
77
76
 
78
77
  type QueryCommunities = {
@@ -13,14 +13,14 @@ declare global {
13
13
  } & (T extends 'channel'
14
14
  ? {
15
15
  channelId: Amity.Channel['channelId'];
16
- membership: 'member' | 'none' | 'banned';
16
+ membership: 'member' | 'none' | 'banned' | 'muted';
17
17
  readToSegment: number;
18
18
  lastMentionedSegment: number;
19
19
  }
20
20
  : T extends 'community'
21
21
  ? {
22
22
  communityId: Amity.Community['communityId'];
23
- communityMembership: 'member' | 'none' | 'banned';
23
+ communityMembership: 'member' | 'none' | 'banned' | 'muted';
24
24
  }
25
25
  : never) &
26
26
  Amity.Timestamps;
@@ -16,5 +16,22 @@ declare global {
16
16
  FORCE_SYNC = 'force sync',
17
17
  MARKER_UPDATED = 'feed marker updated',
18
18
  }
19
+
20
+ type ChannelUnreadInfo = {
21
+ channelId: Amity.RawChannel['channelId'];
22
+ unreadCount: number;
23
+ isMentioned: boolean;
24
+ } & Amity.Timestamps;
25
+
26
+ type SubChannelUnreadInfo = {
27
+ subChannelId: Amity.RawSubChannel['messageFeedId'];
28
+ channelId: Amity.RawChannel['channelId'];
29
+ readToSegment: number;
30
+ lastSegment: number;
31
+ lastMentionSegment: number;
32
+ unreadCount: number;
33
+ isMentioned: boolean;
34
+ isDeleted: boolean;
35
+ } & Amity.Timestamps;
19
36
  }
20
37
  }
@@ -65,6 +65,7 @@ declare global {
65
65
  readCount: number;
66
66
  deliveredCount: number;
67
67
  referenceId?: string;
68
+ markRead: () => void;
68
69
  } & Amity.Content<T> &
69
70
  Amity.Flaggable &
70
71
  Amity.Mentionable<'user' | 'channel'> &
@@ -75,6 +76,11 @@ declare global {
75
76
  Amity.Timestamps &
76
77
  Amity.Taggable;
77
78
 
79
+ type InternalMessage<T extends Amity.MessageContentType = any> = Omit<
80
+ Amity.Message<T>,
81
+ 'readCount' | 'deliveredCount' | 'markRead'
82
+ > & { creatorPrivateId: string };
83
+
78
84
  type QueryMessages = {
79
85
  subChannelId: Amity.SubChannel['subChannelId'];
80
86
  /**
@@ -1,7 +1,5 @@
1
1
  import { VideoResolution } from './file';
2
2
 
3
- export {};
4
-
5
3
  declare global {
6
4
  namespace Amity {
7
5
  type CommunityStorySettings = {
@@ -33,18 +31,32 @@ declare global {
33
31
  Video = 'video',
34
32
  }
35
33
 
34
+ const enum StorySeenQuery {
35
+ SEEN = 'seen',
36
+ UNSEEN = 'unseen',
37
+ ALL = 'all',
38
+ SMART = 'smart',
39
+ }
40
+
36
41
  type StorySortOption = {
37
42
  sortBy?: StorySortBy;
38
43
  orderBy?: 'asc' | 'desc';
39
44
  };
40
45
 
46
+ type StoryGlobalQuery = {
47
+ seenState: Amity.StorySeenQuery;
48
+ };
49
+
41
50
  type RawStoryTarget = {
42
- lastStoryExpiresAt?: Amity.timestamp;
43
- lastStorySeenExpiresAt?: Amity.timestamp;
44
51
  targetId: string;
45
52
  targetType: string;
46
53
  targetPublicId: string;
47
54
  targetUpdatedAt: Amity.timestamp;
55
+
56
+ lastStoryExpiresAt?: Amity.timestamp;
57
+ lastStorySeenExpiresAt?: Amity.timestamp;
58
+
59
+ localFilter?: Amity.StorySeenQuery;
48
60
  };
49
61
 
50
62
  type StoryTargetQueryParam = Pick<Amity.RawStoryTarget, 'targetId' | 'targetType'>;
@@ -65,6 +77,15 @@ declare global {
65
77
  type StoryTarget = Pick<Amity.RawStoryTarget, 'targetId' | 'targetType'> & {
66
78
  updatedAt: Amity.timestamp;
67
79
  hasUnseen: boolean;
80
+ lastStoryExpiresAt?: Amity.timestamp;
81
+
82
+ localLastExpires: number;
83
+ localLastSeen: number;
84
+ localSortingDate: number;
85
+ localFilter?: Amity.StorySeenQuery;
86
+
87
+ syncingStoriesCount: number;
88
+ failedStoriesCount: number;
68
89
  };
69
90
 
70
91
  type StoryItemData<T extends StoryItemType> = T extends 'hyperlink'
@@ -99,6 +120,7 @@ declare global {
99
120
  markAsSeen: () => void;
100
121
  markLinkAsClicked: () => void;
101
122
  };
123
+ creator?: Amity.User;
102
124
  storyTarget?: Amity.StoryTarget;
103
125
  community?: Amity.Community;
104
126
  communityCategories?: Amity.Category[];
@@ -35,7 +35,11 @@ declare global {
35
35
  subChannelId: string;
36
36
  isUnreadCountSupport: boolean;
37
37
  unreadCount: number;
38
+ /**
39
+ * @deprecated use `isMentioned` instead
40
+ */
38
41
  hasMentioned: boolean;
42
+ isMentioned: boolean;
39
43
  messagePreviewId?: string | null;
40
44
  messagePreview?: Amity.MessagePreview | null;
41
45
  } & Amity.Timestamps &
@@ -1,10 +1,6 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
- import {
4
- convertChannelMarkerResponse,
5
- convertSubChannelMarkerResponse,
6
- convertUserMarkerResponse,
7
- } from '~/utils/marker';
3
+ import { convertChannelMarkerResponse, convertSubChannelMarkerResponse } from '~/utils/marker';
8
4
  import { fireEvent } from '~/core/events';
9
5
 
10
6
  /**
@@ -30,7 +26,7 @@ export const markAsRead = async (channelId: Amity.Channel['channelId']): Promise
30
26
  );
31
27
 
32
28
  const {
33
- userMarkers: userMarkersPayload,
29
+ userMarkers,
34
30
  userEntityMarkers: userEntityMarkersPayload,
35
31
  userFeedMarkers: userFeedMarkersPayload,
36
32
  ...rest
@@ -43,7 +39,7 @@ export const markAsRead = async (channelId: Amity.Channel['channelId']): Promise
43
39
  if (client.cache)
44
40
  ingestInCache(
45
41
  {
46
- userMarkers: convertUserMarkerResponse(userMarkersPayload),
42
+ userMarkers,
47
43
  userEntityMarkers: channelMarkers,
48
44
  userFeedMarkers: subChannelMarkers,
49
45
  ...rest,
@@ -3,3 +3,6 @@ export * from './removeRole';
3
3
 
4
4
  export * from './banMembers';
5
5
  export * from './unbanMembers';
6
+
7
+ export * from './muteMembers';
8
+ export * from './unmuteMembers';
@@ -0,0 +1,47 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+
5
+ import { prepareChannelPayload } from '../../utils';
6
+
7
+ const MUTE_FOREVER = -1;
8
+
9
+ /* begin_public_function
10
+ id: channel.moderation.mute_members
11
+ */
12
+ /**
13
+ * ```js
14
+ * import { muteMembers } from '@amityco/ts-sdk'
15
+ *
16
+ * await muteMembers('channel-id-1', ['userId1', 'userId2'], 10)
17
+ * ```
18
+ *
19
+ * @param channelId of {@link Amity.Channel} from which the users should be muted
20
+ * @param userIds of the {@link Amity.InternalUser}'s to be muted
21
+ * @param period to be muted in seconds
22
+ * @returns the updated {@link Amity.Membership}'s object
23
+ *
24
+ * @category Channel API
25
+ * @async
26
+ * */
27
+ export const muteMembers = async (
28
+ channelId: Amity.Channel['channelId'],
29
+ userIds: Amity.InternalUser['userId'][],
30
+ mutePeriod = MUTE_FOREVER,
31
+ ): Promise<boolean> => {
32
+ const client = getActiveClient();
33
+ client.log('channel/muteMembers', { userIds, channelId, mutePeriod });
34
+
35
+ const { data } = await client.http.put<{ success: boolean }>(
36
+ `/api/v2/channel/${channelId}/users/mute`,
37
+ {
38
+ userIds,
39
+ mutePeriod: mutePeriod === MUTE_FOREVER ? mutePeriod : mutePeriod * 1000,
40
+ },
41
+ );
42
+
43
+ const { success } = data;
44
+
45
+ return success;
46
+ };
47
+ /* end_public_function */
@@ -0,0 +1,43 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+
5
+ import { prepareChannelPayload } from '../../utils';
6
+
7
+ /* begin_public_function
8
+ id: channel.moderation.unban_members
9
+ */
10
+ /**
11
+ * ```js
12
+ * import { unbanMembers } from '@amityco/ts-sdk'
13
+ *
14
+ * await unbanMembers('channel-id-1', ['userId1', 'userId2'])
15
+ * ```
16
+ *
17
+ * @param channelId of {@link Amity.Channel} where the users should be unbanned
18
+ * @param userIds of the {@link Amity.InternalUser}'s to be unbanned
19
+ * @returns the updated {@link Amity.Membership}'s object
20
+ *
21
+ * @category Channel API
22
+ * @async
23
+ * */
24
+ export const unmuteMembers = async (
25
+ channelId: Amity.Channel['channelId'],
26
+ userIds: Amity.InternalUser['userId'][],
27
+ ): Promise<boolean> => {
28
+ const client = getActiveClient();
29
+ client.log('channel/unmuteMembers', { userIds, channelId });
30
+
31
+ const { data } = await client.http.put<{ success: boolean }>(
32
+ `/api/v2/channel/${encodeURIComponent(channelId)}/users/mute`,
33
+ {
34
+ userIds,
35
+ mutePeriod: 0,
36
+ },
37
+ );
38
+
39
+ const { success } = data;
40
+
41
+ return success;
42
+ };
43
+ /* end_public_function */
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
@@ -4,6 +4,8 @@ import { getActiveClient } from '~/client/api/activeClient';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  import { prepareChannelPayload } from '../utils/prepareChannelPayload';
7
+ import { addFlagIsDeletedSubChannelUnreadByChannelId } from '~/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId';
8
+ import { deleteChannelUnreadByChannelId } from '../../marker/utils/deleteChannelUnreadByChannelId';
7
9
 
8
10
  /**
9
11
  * ```js
@@ -26,6 +28,13 @@ export const onChannelDeleted = (callback: Amity.Listener<Amity.InternalChannel>
26
28
  const filter = async (payload: Amity.ChannelPayload) => {
27
29
  const data = await prepareChannelPayload(payload);
28
30
 
31
+ if (client.isUnreadCountEnabled && client.getMarkerSyncConsistentMode()) {
32
+ data.channels.forEach(channel => {
33
+ addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
34
+ deleteChannelUnreadByChannelId(channel.channelId);
35
+ });
36
+ }
37
+
29
38
  ingestInCache(data);
30
39
  callback(data.channels[0]);
31
40
  };
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
@@ -1,9 +1,11 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  import { prepareChannelPayload } from '../utils';
7
+ import { deleteChannelUnreadByChannelId } from '../../marker/utils/deleteChannelUnreadByChannelId';
8
+ import { addFlagIsDeletedSubChannelUnreadByChannelId } from '~/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId';
7
9
 
8
10
  /**
9
11
  * ```js
@@ -35,6 +37,13 @@ export const onChannelLeft = (
35
37
  isMessagePreviewUpdated: isLeftByMe,
36
38
  });
37
39
 
40
+ if (client.isUnreadCountEnabled && client.getMarkerSyncConsistentMode() && isLeftByMe) {
41
+ preparedPayload.channels.forEach(channel => {
42
+ addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
43
+ deleteChannelUnreadByChannelId(channel.channelId);
44
+ });
45
+ }
46
+
38
47
  const { channels, channelUsers } = preparedPayload;
39
48
 
40
49
  ingestInCache(preparedPayload);
@@ -1,5 +1,5 @@
1
1
  import { ingestInCache } from '~/cache/api/ingestInCache';
2
- import { getActiveClient } from '~/client/api';
2
+ import { getActiveClient } from '~/client/api/activeClient';
3
3
  import { createEventSubscriber } from '~/core/events';
4
4
 
5
5
  import { prepareChannelPayload } from '../utils';
@@ -4,6 +4,8 @@ import { getActiveClient } from '~/client/api/activeClient';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  import { prepareChannelPayload } from '../utils';
7
+ import { addFlagIsDeletedSubChannelUnreadByChannelId } from '~/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId';
8
+ import { deleteChannelUnreadByChannelId } from '../../marker/utils/deleteChannelUnreadByChannelId';
7
9
 
8
10
  /**
9
11
  * ```js
@@ -29,6 +31,21 @@ export const onChannelMemberBanned = (
29
31
  const preparedPayload = await prepareChannelPayload(payload);
30
32
  const { channels, channelUsers } = preparedPayload;
31
33
 
34
+ const isCurrentUserBanned = channelUsers.some(
35
+ cu => cu.membership === 'banned' && cu.userId === client.userId,
36
+ );
37
+
38
+ if (
39
+ client.isUnreadCountEnabled &&
40
+ client.getMarkerSyncConsistentMode() &&
41
+ isCurrentUserBanned
42
+ ) {
43
+ preparedPayload.channels.forEach(channel => {
44
+ addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
45
+ deleteChannelUnreadByChannelId(channel.channelId);
46
+ });
47
+ }
48
+
32
49
  ingestInCache(preparedPayload);
33
50
  callback(channels[0], channelUsers.find(cu => cu.membership === 'banned')!);
34
51
  };
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { ingestInCache } from '~/cache/api/ingestInCache';
2
- import { getActiveClient } from '~/client/api';
2
+ import { getActiveClient } from '~/client/api/activeClient';
3
3
  import { createEventSubscriber } from '~/core/events';
4
4
 
5
5
  import { prepareChannelPayload } from '../utils';
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
 
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
@@ -1,4 +1,4 @@
1
- import { getActiveClient } from '~/client/api';
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { createEventSubscriber } from '~/core/events';
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
4