@amityco/ts-sdk-react-native 6.12.1 → 6.13.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 (487) hide show
  1. package/README.md +8 -9
  2. package/dist/@types/core/marker.d.ts +4 -4
  3. package/dist/@types/core/marker.d.ts.map +1 -1
  4. package/dist/@types/core/model.d.ts +6 -6
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +21 -21
  7. package/dist/@types/core/payload.d.ts.map +1 -1
  8. package/dist/@types/domains/analytics.d.ts +31 -0
  9. package/dist/@types/domains/analytics.d.ts.map +1 -0
  10. package/dist/@types/domains/block.d.ts +1 -1
  11. package/dist/@types/domains/block.d.ts.map +1 -1
  12. package/dist/@types/domains/category.d.ts +5 -2
  13. package/dist/@types/domains/category.d.ts.map +1 -1
  14. package/dist/@types/domains/client.d.ts +3 -3
  15. package/dist/@types/domains/client.d.ts.map +1 -1
  16. package/dist/@types/domains/comment.d.ts +2 -1
  17. package/dist/@types/domains/comment.d.ts.map +1 -1
  18. package/dist/@types/domains/community.d.ts +5 -5
  19. package/dist/@types/domains/community.d.ts.map +1 -1
  20. package/dist/@types/domains/follow.d.ts +4 -4
  21. package/dist/@types/domains/follow.d.ts.map +1 -1
  22. package/dist/@types/domains/group.d.ts +2 -2
  23. package/dist/@types/domains/group.d.ts.map +1 -1
  24. package/dist/@types/domains/messagePreview.d.ts +2 -2
  25. package/dist/@types/domains/messagePreview.d.ts.map +1 -1
  26. package/dist/@types/domains/poll.d.ts +1 -1
  27. package/dist/@types/domains/poll.d.ts.map +1 -1
  28. package/dist/@types/domains/post.d.ts +15 -7
  29. package/dist/@types/domains/post.d.ts.map +1 -1
  30. package/dist/@types/domains/reaction.d.ts +1 -1
  31. package/dist/@types/domains/reaction.d.ts.map +1 -1
  32. package/dist/@types/domains/stream.d.ts +2 -2
  33. package/dist/@types/domains/stream.d.ts.map +1 -1
  34. package/dist/@types/domains/user.d.ts +7 -3
  35. package/dist/@types/domains/user.d.ts.map +1 -1
  36. package/dist/analytic/api/queryReachUser.d.ts +6 -0
  37. package/dist/analytic/api/queryReachUser.d.ts.map +1 -0
  38. package/dist/analytic/api/syncEvent.d.ts +2 -0
  39. package/dist/analytic/api/syncEvent.d.ts.map +1 -0
  40. package/dist/analytic/constant.d.ts +2 -0
  41. package/dist/analytic/constant.d.ts.map +1 -0
  42. package/dist/analytic/service/analytic/AnalyticsEngine.d.ts +15 -0
  43. package/dist/analytic/service/analytic/AnalyticsEngine.d.ts.map +1 -0
  44. package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts +9 -0
  45. package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts.map +1 -0
  46. package/dist/analytic/service/analytic/AnalyticsEventSyncer.d.ts +8 -0
  47. package/dist/analytic/service/analytic/AnalyticsEventSyncer.d.ts.map +1 -0
  48. package/dist/analytic/service/analytic/AnalyticsService.d.ts +10 -0
  49. package/dist/analytic/service/analytic/AnalyticsService.d.ts.map +1 -0
  50. package/dist/analytic/utils/analyticsEngineOnLoginHandler.d.ts +3 -0
  51. package/dist/analytic/utils/analyticsEngineOnLoginHandler.d.ts.map +1 -0
  52. package/dist/cache/api/pushToCache.d.ts +1 -1
  53. package/dist/cache/api/upsertInCache.d.ts +1 -1
  54. package/dist/categoryRepository/api/getCategory.d.ts.map +1 -1
  55. package/dist/categoryRepository/api/queryCategories.d.ts.map +1 -1
  56. package/dist/categoryRepository/observers/getCategories.d.ts.map +1 -1
  57. package/dist/channelRepsitory/channelMembership/api/addMembers.d.ts +4 -4
  58. package/dist/channelRepsitory/channelMembership/api/addMembers.d.ts.map +1 -1
  59. package/dist/channelRepsitory/channelMembership/api/queryChannelMembers.d.ts +1 -1
  60. package/dist/channelRepsitory/channelMembership/api/removeMembers.d.ts +4 -4
  61. package/dist/channelRepsitory/channelMembership/api/removeMembers.d.ts.map +1 -1
  62. package/dist/channelRepsitory/channelModeration/api/addRole.d.ts +4 -4
  63. package/dist/channelRepsitory/channelModeration/api/addRole.d.ts.map +1 -1
  64. package/dist/channelRepsitory/channelModeration/api/banMembers.d.ts +2 -2
  65. package/dist/channelRepsitory/channelModeration/api/banMembers.d.ts.map +1 -1
  66. package/dist/channelRepsitory/channelModeration/api/removeRole.d.ts +4 -4
  67. package/dist/channelRepsitory/channelModeration/api/removeRole.d.ts.map +1 -1
  68. package/dist/channelRepsitory/channelModeration/api/unbanMembers.d.ts +2 -2
  69. package/dist/channelRepsitory/channelModeration/api/unbanMembers.d.ts.map +1 -1
  70. package/dist/channelRepsitory/events/onChannelMemberAdded.d.ts +1 -1
  71. package/dist/channelRepsitory/events/onChannelMemberBanned.d.ts +1 -1
  72. package/dist/channelRepsitory/events/onChannelMemberRemoved.d.ts +1 -1
  73. package/dist/channelRepsitory/events/onChannelMemberUnbanned.d.ts +1 -1
  74. package/dist/channelRepsitory/observers/tests/getChannel.test.d.ts +2 -0
  75. package/dist/channelRepsitory/observers/tests/getChannel.test.d.ts.map +1 -0
  76. package/dist/channelRepsitory/observers/tests/getChannelWithMessagePreview.test.d.ts +2 -0
  77. package/dist/channelRepsitory/observers/tests/getChannelWithMessagePreview.test.d.ts.map +1 -0
  78. package/dist/channelRepsitory/observers/tests/getChannelsWithMessagePreview.test.d.ts +2 -0
  79. package/dist/channelRepsitory/observers/tests/getChannelsWithMessagePreview.test.d.ts.map +1 -0
  80. package/dist/client/api/getToken.d.ts +3 -3
  81. package/dist/client/api/getToken.d.ts.map +1 -1
  82. package/dist/client/api/login.d.ts.map +1 -1
  83. package/dist/client/utils/setClientToken.d.ts +1 -1
  84. package/dist/commentRepository/api/getComment.d.ts +8 -8
  85. package/dist/commentRepository/api/getComment.d.ts.map +1 -1
  86. package/dist/commentRepository/api/getCommentByIds.d.ts +8 -8
  87. package/dist/commentRepository/api/getCommentByIds.d.ts.map +1 -1
  88. package/dist/commentRepository/events/onCommentCreated.d.ts +2 -2
  89. package/dist/commentRepository/events/onCommentCreated.d.ts.map +1 -1
  90. package/dist/commentRepository/events/onCommentDeleted.d.ts +2 -2
  91. package/dist/commentRepository/events/onCommentDeleted.d.ts.map +1 -1
  92. package/dist/commentRepository/events/onCommentFlagged.d.ts +2 -2
  93. package/dist/commentRepository/events/onCommentFlagged.d.ts.map +1 -1
  94. package/dist/commentRepository/events/onCommentReactionAdded.d.ts +2 -2
  95. package/dist/commentRepository/events/onCommentReactionAdded.d.ts.map +1 -1
  96. package/dist/commentRepository/events/onCommentReactionRemoved.d.ts +2 -2
  97. package/dist/commentRepository/events/onCommentReactionRemoved.d.ts.map +1 -1
  98. package/dist/commentRepository/events/onCommentUnflagged.d.ts +2 -2
  99. package/dist/commentRepository/events/onCommentUnflagged.d.ts.map +1 -1
  100. package/dist/commentRepository/events/onCommentUpdated.d.ts +2 -2
  101. package/dist/commentRepository/events/onCommentUpdated.d.ts.map +1 -1
  102. package/dist/commentRepository/events/utils.d.ts +1 -1
  103. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  104. package/dist/commentRepository/observers/getComment.d.ts +2 -2
  105. package/dist/commentRepository/observers/getComment.d.ts.map +1 -1
  106. package/dist/communityRepository/communityMembership/api/addMembers.d.ts +4 -4
  107. package/dist/communityRepository/communityMembership/api/addMembers.d.ts.map +1 -1
  108. package/dist/communityRepository/communityMembership/api/queryCommunityMembers.d.ts +1 -1
  109. package/dist/communityRepository/communityMembership/api/removeMembers.d.ts +4 -4
  110. package/dist/communityRepository/communityMembership/api/removeMembers.d.ts.map +1 -1
  111. package/dist/communityRepository/communityModeration/api/addRoles.d.ts +4 -4
  112. package/dist/communityRepository/communityModeration/api/addRoles.d.ts.map +1 -1
  113. package/dist/communityRepository/communityModeration/api/banMembers.d.ts +2 -2
  114. package/dist/communityRepository/communityModeration/api/banMembers.d.ts.map +1 -1
  115. package/dist/communityRepository/communityModeration/api/removeRoles.d.ts +4 -4
  116. package/dist/communityRepository/communityModeration/api/removeRoles.d.ts.map +1 -1
  117. package/dist/communityRepository/communityModeration/api/unbanMembers.d.ts +2 -2
  118. package/dist/communityRepository/communityModeration/api/unbanMembers.d.ts.map +1 -1
  119. package/dist/core/device.d.ts +1 -1
  120. package/dist/core/device.d.ts.map +1 -1
  121. package/dist/core/query/filtering.d.ts +4 -4
  122. package/dist/core/query/filtering.d.ts.map +1 -1
  123. package/dist/external/api/createUserToken.d.ts +2 -2
  124. package/dist/external/api/createUserToken.d.ts.map +1 -1
  125. package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts.map +1 -1
  126. package/dist/feedRepository/api/queryGlobalFeed.d.ts.map +1 -1
  127. package/dist/group/utils/withUser.d.ts +3 -3
  128. package/dist/group/utils/withUser.d.ts.map +1 -1
  129. package/dist/index.cjs.js +567 -217
  130. package/dist/index.esm.js +567 -217
  131. package/dist/index.umd.js +2 -2
  132. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts +1 -1
  133. package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -1
  134. package/dist/messagePreview/utils/updateMessagePreviewFromMessage.d.ts.map +1 -1
  135. package/dist/messageRepository/api/getDeliveredUsers.d.ts +6 -6
  136. package/dist/messageRepository/api/getDeliveredUsers.d.ts.map +1 -1
  137. package/dist/messageRepository/api/getReadUsers.d.ts +6 -6
  138. package/dist/messageRepository/api/getReadUsers.d.ts.map +1 -1
  139. package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
  140. package/dist/postRepository/api/approvePost.d.ts.map +1 -1
  141. package/dist/postRepository/api/createPost.d.ts +1 -1
  142. package/dist/postRepository/api/createPost.d.ts.map +1 -1
  143. package/dist/postRepository/api/declinePost.d.ts.map +1 -1
  144. package/dist/postRepository/api/deletePost.d.ts.map +1 -1
  145. package/dist/postRepository/api/editPost.d.ts.map +1 -1
  146. package/dist/postRepository/api/getPost.d.ts.map +1 -1
  147. package/dist/postRepository/api/getPostByIds.d.ts.map +1 -1
  148. package/dist/postRepository/api/hardDeletePost.d.ts.map +1 -1
  149. package/dist/postRepository/api/queryPosts.d.ts.map +1 -1
  150. package/dist/postRepository/api/softDeletePost.d.ts.map +1 -1
  151. package/dist/postRepository/api/tests/getPost.test.d.ts.map +1 -0
  152. package/dist/postRepository/api/updatePost.d.ts.map +1 -1
  153. package/dist/postRepository/events/onPostApproved.d.ts +2 -2
  154. package/dist/postRepository/events/onPostApproved.d.ts.map +1 -1
  155. package/dist/postRepository/events/onPostCreated.d.ts +2 -2
  156. package/dist/postRepository/events/onPostCreated.d.ts.map +1 -1
  157. package/dist/postRepository/events/onPostDeclined.d.ts +2 -2
  158. package/dist/postRepository/events/onPostDeclined.d.ts.map +1 -1
  159. package/dist/postRepository/events/onPostDeleted.d.ts +2 -2
  160. package/dist/postRepository/events/onPostDeleted.d.ts.map +1 -1
  161. package/dist/postRepository/events/onPostFlagged.d.ts +2 -2
  162. package/dist/postRepository/events/onPostFlagged.d.ts.map +1 -1
  163. package/dist/postRepository/events/onPostReactionAdded.d.ts +2 -2
  164. package/dist/postRepository/events/onPostReactionAdded.d.ts.map +1 -1
  165. package/dist/postRepository/events/onPostReactionRemoved.d.ts +2 -2
  166. package/dist/postRepository/events/onPostReactionRemoved.d.ts.map +1 -1
  167. package/dist/postRepository/events/onPostUnflagged.d.ts +2 -2
  168. package/dist/postRepository/events/onPostUnflagged.d.ts.map +1 -1
  169. package/dist/postRepository/events/onPostUpdated.d.ts +2 -2
  170. package/dist/postRepository/events/onPostUpdated.d.ts.map +1 -1
  171. package/dist/postRepository/events/utils.d.ts +1 -1
  172. package/dist/postRepository/events/utils.d.ts.map +1 -1
  173. package/dist/postRepository/observers/getPosts.d.ts +3 -2
  174. package/dist/postRepository/observers/getPosts.d.ts.map +1 -1
  175. package/dist/postRepository/observers/observePost.d.ts +2 -2
  176. package/dist/postRepository/observers/observePost.d.ts.map +1 -1
  177. package/dist/postRepository/observers/observePosts.d.ts +2 -3
  178. package/dist/postRepository/observers/observePosts.d.ts.map +1 -1
  179. package/dist/reactionRepository/events/onReactionAdded.d.ts +1 -1
  180. package/dist/reactionRepository/events/onReactionAdded.d.ts.map +1 -1
  181. package/dist/reactionRepository/events/onReactionRemoved.d.ts +1 -1
  182. package/dist/reactionRepository/events/onReactionRemoved.d.ts.map +1 -1
  183. package/dist/reactionRepository/utils/fetchReference.d.ts +1 -1
  184. package/dist/reactionRepository/utils/fetchReference.d.ts.map +1 -1
  185. package/dist/streamRepository/api/getStreams.d.ts +1 -1
  186. package/dist/streamRepository/api/getStreams.d.ts.map +1 -1
  187. package/dist/streamRepository/api/queryStreams.d.ts +1 -1
  188. package/dist/streamRepository/api/queryStreams.d.ts.map +1 -1
  189. package/dist/subChannelRepository/observers/tests/getSubChannelWithMessagePreview.test.d.ts +2 -0
  190. package/dist/subChannelRepository/observers/tests/getSubChannelWithMessagePreview.test.d.ts.map +1 -0
  191. package/dist/subChannelRepository/observers/tests/getSubChannelsWithMessagePreview.test.d.ts +2 -0
  192. package/dist/subChannelRepository/observers/tests/getSubChannelsWithMessagePreview.test.d.ts.map +1 -0
  193. package/dist/subChannelRepository/utils/updateSubChannelCache.d.ts +1 -1
  194. package/dist/subChannelRepository/utils/updateSubChannelCache.d.ts.map +1 -1
  195. package/dist/userRepository/api/flagUser.d.ts +1 -1
  196. package/dist/userRepository/api/flagUser.d.ts.map +1 -1
  197. package/dist/userRepository/api/getUser.d.ts.map +1 -1
  198. package/dist/userRepository/api/getUserByIds.d.ts +1 -1
  199. package/dist/userRepository/api/getUserByIds.d.ts.map +1 -1
  200. package/dist/userRepository/api/isUserFlaggedByMe.d.ts +1 -1
  201. package/dist/userRepository/api/isUserFlaggedByMe.d.ts.map +1 -1
  202. package/dist/userRepository/api/queryBlockedUsers.d.ts +5 -5
  203. package/dist/userRepository/api/queryBlockedUsers.d.ts.map +1 -1
  204. package/dist/userRepository/api/queryUsers.d.ts +6 -6
  205. package/dist/userRepository/api/queryUsers.d.ts.map +1 -1
  206. package/dist/userRepository/api/unflagUser.d.ts +1 -1
  207. package/dist/userRepository/api/unflagUser.d.ts.map +1 -1
  208. package/dist/userRepository/api/updateUser.d.ts +4 -4
  209. package/dist/userRepository/api/updateUser.d.ts.map +1 -1
  210. package/dist/userRepository/events/onUserDeleted.d.ts +2 -2
  211. package/dist/userRepository/events/onUserDeleted.d.ts.map +1 -1
  212. package/dist/userRepository/events/onUserFetched.d.ts +2 -2
  213. package/dist/userRepository/events/onUserFetched.d.ts.map +1 -1
  214. package/dist/userRepository/events/onUserFlagCleared.d.ts +2 -2
  215. package/dist/userRepository/events/onUserFlagCleared.d.ts.map +1 -1
  216. package/dist/userRepository/events/onUserFlagged.d.ts +2 -2
  217. package/dist/userRepository/events/onUserFlagged.d.ts.map +1 -1
  218. package/dist/userRepository/events/onUserUnflagged.d.ts +2 -2
  219. package/dist/userRepository/events/onUserUnflagged.d.ts.map +1 -1
  220. package/dist/userRepository/events/onUserUpdated.d.ts +2 -2
  221. package/dist/userRepository/events/onUserUpdated.d.ts.map +1 -1
  222. package/dist/userRepository/events/utils.d.ts +1 -1
  223. package/dist/userRepository/events/utils.d.ts.map +1 -1
  224. package/dist/userRepository/observers/getBlockedUsers.d.ts +4 -4
  225. package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -1
  226. package/dist/userRepository/observers/getUser.d.ts +2 -2
  227. package/dist/userRepository/observers/getUser.d.ts.map +1 -1
  228. package/dist/userRepository/observers/getUsers.d.ts.map +1 -1
  229. package/dist/userRepository/observers/getViewedUsers.d.ts +2 -0
  230. package/dist/userRepository/observers/getViewedUsers.d.ts.map +1 -0
  231. package/dist/userRepository/observers/index.d.ts +1 -0
  232. package/dist/userRepository/observers/index.d.ts.map +1 -1
  233. package/dist/userRepository/observers/observeUser.d.ts +2 -2
  234. package/dist/userRepository/observers/observeUser.d.ts.map +1 -1
  235. package/dist/userRepository/observers/searchUserByDisplayName.d.ts +2 -2
  236. package/dist/userRepository/observers/searchUserByDisplayName.d.ts.map +1 -1
  237. package/dist/userRepository/observers/tests/getViewedUsers.test.d.ts +2 -0
  238. package/dist/userRepository/observers/tests/getViewedUsers.test.d.ts.map +1 -0
  239. package/dist/userRepository/relationship/block/api/blockUser.d.ts +4 -4
  240. package/dist/userRepository/relationship/block/api/blockUser.d.ts.map +1 -1
  241. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts +4 -4
  242. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts.map +1 -1
  243. package/dist/userRepository/relationship/block/observers/getBlockedUsers.d.ts +1 -1
  244. package/dist/userRepository/relationship/block/observers/getBlockedUsers.d.ts.map +1 -1
  245. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts +2 -2
  246. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts.map +1 -1
  247. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts +2 -2
  248. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts.map +1 -1
  249. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts +2 -2
  250. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts.map +1 -1
  251. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts +2 -2
  252. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts.map +1 -1
  253. package/dist/userRepository/relationship/follow/api/follow.d.ts +2 -2
  254. package/dist/userRepository/relationship/follow/api/follow.d.ts.map +1 -1
  255. package/dist/userRepository/relationship/follow/api/getFollowInfo.d.ts +4 -4
  256. package/dist/userRepository/relationship/follow/api/getFollowInfo.d.ts.map +1 -1
  257. package/dist/userRepository/relationship/follow/api/unfollow.d.ts +3 -3
  258. package/dist/userRepository/relationship/follow/api/unfollow.d.ts.map +1 -1
  259. package/dist/userRepository/relationship/follow/api/utils.d.ts +1 -1
  260. package/dist/userRepository/relationship/follow/api/utils.d.ts.map +1 -1
  261. package/dist/userRepository/relationship/follow/observers/getFollowers.d.ts +1 -1
  262. package/dist/userRepository/relationship/follow/observers/getFollowings.d.ts +1 -1
  263. package/dist/userRepository/relationship/follow/observers/observeFollowInfo.d.ts +1 -1
  264. package/dist/userRepository/relationship/follow/observers/observeFollowInfo.d.ts.map +1 -1
  265. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts +2 -2
  266. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts.map +1 -1
  267. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts +2 -2
  268. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts.map +1 -1
  269. package/dist/utils/linkedObject/categoryLinkedObject.d.ts +2 -0
  270. package/dist/utils/linkedObject/categoryLinkedObject.d.ts.map +1 -0
  271. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -1
  272. package/dist/utils/linkedObject/index.d.ts +3 -0
  273. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  274. package/dist/utils/linkedObject/postLinkedObject.d.ts +2 -0
  275. package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -0
  276. package/dist/utils/linkedObject/userLinkedObject.d.ts +2 -0
  277. package/dist/utils/linkedObject/userLinkedObject.d.ts.map +1 -0
  278. package/dist/utils/tests/client.d.ts.map +1 -1
  279. package/dist/utils/tests/dummy/block.d.ts +4 -4
  280. package/dist/utils/tests/dummy/block.d.ts.map +1 -1
  281. package/dist/utils/tests/dummy/category.d.ts +7 -0
  282. package/dist/utils/tests/dummy/category.d.ts.map +1 -1
  283. package/dist/utils/tests/dummy/channel.d.ts +61 -1
  284. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  285. package/dist/utils/tests/dummy/comment.d.ts +7 -7
  286. package/dist/utils/tests/dummy/comment.d.ts.map +1 -1
  287. package/dist/utils/tests/dummy/follow.d.ts +1 -1
  288. package/dist/utils/tests/dummy/follow.d.ts.map +1 -1
  289. package/dist/utils/tests/dummy/message.d.ts.map +1 -1
  290. package/dist/utils/tests/dummy/messagePreviewChannel.d.ts +3 -0
  291. package/dist/utils/tests/dummy/messagePreviewChannel.d.ts.map +1 -0
  292. package/dist/utils/tests/dummy/post.d.ts +15 -2
  293. package/dist/utils/tests/dummy/post.d.ts.map +1 -1
  294. package/dist/utils/tests/dummy/subChannel.d.ts +29 -0
  295. package/dist/utils/tests/dummy/subChannel.d.ts.map +1 -1
  296. package/dist/utils/tests/dummy/user.d.ts +12 -1
  297. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  298. package/package.json +2 -2
  299. package/src/@types/core/marker.ts +4 -4
  300. package/src/@types/core/model.ts +6 -6
  301. package/src/@types/core/payload.ts +22 -21
  302. package/src/@types/domains/analytics.ts +39 -0
  303. package/src/@types/domains/block.ts +1 -1
  304. package/src/@types/domains/category.ts +6 -2
  305. package/src/@types/domains/client.ts +3 -3
  306. package/src/@types/domains/comment.ts +5 -2
  307. package/src/@types/domains/community.ts +5 -5
  308. package/src/@types/domains/follow.ts +4 -4
  309. package/src/@types/domains/group.ts +2 -2
  310. package/src/@types/domains/messagePreview.ts +2 -2
  311. package/src/@types/domains/poll.ts +1 -1
  312. package/src/@types/domains/post.ts +18 -7
  313. package/src/@types/domains/reaction.ts +1 -1
  314. package/src/@types/domains/stream.ts +2 -2
  315. package/src/@types/domains/user.ts +8 -3
  316. package/src/analytic/api/queryReachUser.ts +31 -0
  317. package/src/analytic/api/syncEvent.ts +12 -0
  318. package/src/analytic/constant.ts +1 -0
  319. package/src/analytic/service/analytic/AnalyticsEngine.ts +54 -0
  320. package/src/analytic/service/analytic/AnalyticsEventCapturer.ts +48 -0
  321. package/src/analytic/service/analytic/AnalyticsEventSyncer.ts +45 -0
  322. package/src/analytic/service/analytic/AnalyticsService.ts +23 -0
  323. package/src/analytic/utils/analyticsEngineOnLoginHandler.ts +19 -0
  324. package/src/cache/api/pushToCache.ts +1 -1
  325. package/src/cache/api/upsertInCache.ts +1 -1
  326. package/src/categoryRepository/api/getCategory.ts +3 -2
  327. package/src/categoryRepository/api/queryCategories.ts +7 -1
  328. package/src/categoryRepository/observers/getCategories.ts +3 -2
  329. package/src/categoryRepository/observers/tests/getCategories.test.ts +2 -1
  330. package/src/channelRepsitory/api/createChannel.ts +1 -1
  331. package/src/channelRepsitory/channelMembership/api/addMembers.ts +4 -4
  332. package/src/channelRepsitory/channelMembership/api/queryChannelMembers.ts +1 -1
  333. package/src/channelRepsitory/channelMembership/api/removeMembers.ts +4 -4
  334. package/src/channelRepsitory/channelMembership/observers/tests/getMembers.test.ts +1 -1
  335. package/src/channelRepsitory/channelMembership/observers/tests/searchMembers.test.ts +1 -3
  336. package/src/channelRepsitory/channelModeration/api/addRole.ts +4 -4
  337. package/src/channelRepsitory/channelModeration/api/banMembers.ts +2 -2
  338. package/src/channelRepsitory/channelModeration/api/removeRole.ts +4 -4
  339. package/src/channelRepsitory/channelModeration/api/unbanMembers.ts +2 -2
  340. package/src/channelRepsitory/events/onChannelMemberAdded.ts +1 -1
  341. package/src/channelRepsitory/events/onChannelMemberBanned.ts +1 -1
  342. package/src/channelRepsitory/events/onChannelMemberRemoved.ts +1 -1
  343. package/src/channelRepsitory/events/onChannelMemberUnbanned.ts +1 -1
  344. package/src/channelRepsitory/observers/tests/getChannel.test.ts +73 -0
  345. package/src/channelRepsitory/observers/tests/getChannelWithMessagePreview.test.ts +575 -0
  346. package/src/channelRepsitory/observers/tests/getChannels.test.ts +505 -68
  347. package/src/channelRepsitory/observers/tests/getChannelsWithMessagePreview.test.ts +592 -0
  348. package/src/client/api/getToken.ts +3 -3
  349. package/src/client/api/login.ts +3 -1
  350. package/src/commentRepository/api/getComment.ts +11 -11
  351. package/src/commentRepository/api/getCommentByIds.ts +13 -12
  352. package/src/commentRepository/events/onCommentCreated.ts +4 -3
  353. package/src/commentRepository/events/onCommentDeleted.ts +4 -3
  354. package/src/commentRepository/events/onCommentFlagged.ts +4 -3
  355. package/src/commentRepository/events/onCommentReactionAdded.ts +2 -2
  356. package/src/commentRepository/events/onCommentReactionRemoved.ts +2 -2
  357. package/src/commentRepository/events/onCommentUnflagged.ts +4 -3
  358. package/src/commentRepository/events/onCommentUpdated.ts +4 -3
  359. package/src/commentRepository/events/utils.ts +1 -1
  360. package/src/commentRepository/observers/getComment.ts +2 -2
  361. package/src/communityRepository/communityMembership/api/addMembers.ts +4 -4
  362. package/src/communityRepository/communityMembership/api/queryCommunityMembers.ts +1 -1
  363. package/src/communityRepository/communityMembership/api/removeMembers.ts +4 -4
  364. package/src/communityRepository/communityMembership/events/utils.ts +2 -2
  365. package/src/communityRepository/communityMembership/observers/getMembers.ts +2 -2
  366. package/src/communityRepository/communityMembership/observers/tests/getMembers.test.ts +1 -1
  367. package/src/communityRepository/communityModeration/api/addRoles.ts +4 -4
  368. package/src/communityRepository/communityModeration/api/banMembers.ts +2 -2
  369. package/src/communityRepository/communityModeration/api/removeRoles.ts +4 -4
  370. package/src/communityRepository/communityModeration/api/unbanMembers.ts +2 -2
  371. package/src/core/device.ts +1 -1
  372. package/src/core/query/filtering.ts +6 -4
  373. package/src/core/query/tests/filtering.test.ts +2 -2
  374. package/src/core/query/tests/runQuery.test.ts +35 -22
  375. package/src/external/api/createUserToken.ts +2 -2
  376. package/src/feedRepository/api/getCustomRankingGlobalFeed.ts +8 -5
  377. package/src/feedRepository/api/queryGlobalFeed.ts +7 -4
  378. package/src/feedRepository/api/test/getCustomRankingGlobalFeed.test.ts +22 -14
  379. package/src/feedRepository/api/test/queryGlobalFeed.test.ts +21 -15
  380. package/src/group/utils/withUser.ts +8 -4
  381. package/src/liveStreamPlayer/api/getPlayer.ts +1 -1
  382. package/src/messagePreview/utils/getChannelMessagePreviewWithUser.ts +1 -1
  383. package/src/messagePreview/utils/getSubChannelMessagePreviewWithUser.ts +1 -1
  384. package/src/messagePreview/utils/updateMessagePreviewFromMessage.ts +8 -4
  385. package/src/messageRepository/api/getDeliveredUsers.ts +11 -9
  386. package/src/messageRepository/api/getReadUsers.ts +11 -9
  387. package/src/messageRepository/observers/tests/getMessages.test.ts +766 -0
  388. package/src/messageRepository/utils/prepareMessagePayload.ts +19 -2
  389. package/src/postRepository/api/approvePost.ts +2 -1
  390. package/src/postRepository/api/createPost.ts +8 -6
  391. package/src/postRepository/api/declinePost.ts +2 -1
  392. package/src/postRepository/api/deletePost.ts +2 -1
  393. package/src/postRepository/api/editPost.ts +2 -1
  394. package/src/postRepository/api/getPost.ts +6 -3
  395. package/src/postRepository/api/getPostByIds.ts +4 -3
  396. package/src/postRepository/api/hardDeletePost.ts +2 -1
  397. package/src/postRepository/api/queryPosts.ts +5 -4
  398. package/src/postRepository/api/softDeletePost.ts +2 -1
  399. package/src/postRepository/api/tests/getPost.test.ts +114 -0
  400. package/src/postRepository/api/tests/queryPosts.test.ts +2 -2
  401. package/src/postRepository/api/updatePost.ts +2 -1
  402. package/src/postRepository/events/onPostApproved.ts +2 -2
  403. package/src/postRepository/events/onPostCreated.ts +2 -2
  404. package/src/postRepository/events/onPostDeclined.ts +2 -2
  405. package/src/postRepository/events/onPostDeleted.ts +2 -2
  406. package/src/postRepository/events/onPostFlagged.ts +2 -2
  407. package/src/postRepository/events/onPostReactionAdded.ts +5 -3
  408. package/src/postRepository/events/onPostReactionRemoved.ts +5 -3
  409. package/src/postRepository/events/onPostUnflagged.ts +2 -2
  410. package/src/postRepository/events/onPostUpdated.ts +2 -2
  411. package/src/postRepository/events/utils.ts +2 -2
  412. package/src/postRepository/observers/getPosts.ts +7 -5
  413. package/src/postRepository/observers/observePost.ts +24 -9
  414. package/src/postRepository/observers/observePosts.ts +11 -12
  415. package/src/postRepository/observers/tests/getPost.test.ts +2 -2
  416. package/src/postRepository/observers/tests/getPosts.test.ts +36 -11
  417. package/src/streamRepository/api/getStreams.ts +1 -1
  418. package/src/streamRepository/api/queryStreams.ts +1 -1
  419. package/src/subChannelRepository/observers/getSubChannel.ts +1 -1
  420. package/src/subChannelRepository/observers/getSubChannels.ts +6 -6
  421. package/src/subChannelRepository/observers/tests/getSubChannelWithMessagePreview.test.ts +591 -0
  422. package/src/subChannelRepository/observers/tests/getSubChannels.test.ts +322 -14
  423. package/src/subChannelRepository/observers/tests/getSubChannelsWithMessagePreview.test.ts +643 -0
  424. package/src/subChannelRepository/utils/updateSubChannelCache.ts +3 -2
  425. package/src/userRepository/api/flagUser.ts +1 -1
  426. package/src/userRepository/api/getUser.ts +12 -2
  427. package/src/userRepository/api/getUserByIds.ts +5 -4
  428. package/src/userRepository/api/isUserFlaggedByMe.ts +1 -1
  429. package/src/userRepository/api/queryBlockedUsers.ts +10 -8
  430. package/src/userRepository/api/queryUsers.ts +12 -10
  431. package/src/userRepository/api/unflagUser.ts +1 -1
  432. package/src/userRepository/api/updateUser.ts +6 -6
  433. package/src/userRepository/events/onUserDeleted.ts +2 -2
  434. package/src/userRepository/events/onUserFetched.ts +2 -2
  435. package/src/userRepository/events/onUserFlagCleared.ts +2 -2
  436. package/src/userRepository/events/onUserFlagged.ts +2 -2
  437. package/src/userRepository/events/onUserUnflagged.ts +2 -2
  438. package/src/userRepository/events/onUserUpdated.ts +2 -2
  439. package/src/userRepository/events/utils.ts +1 -1
  440. package/src/userRepository/observers/getBlockedUsers.ts +8 -7
  441. package/src/userRepository/observers/getUser.ts +3 -3
  442. package/src/userRepository/observers/getUsers.ts +2 -2
  443. package/src/userRepository/observers/getViewedUsers.ts +93 -0
  444. package/src/userRepository/observers/index.ts +1 -0
  445. package/src/userRepository/observers/observeUser.ts +9 -6
  446. package/src/userRepository/observers/searchUserByDisplayName.ts +2 -2
  447. package/src/userRepository/observers/tests/getUser.test.ts +1 -1
  448. package/src/userRepository/observers/tests/getUsers.test.ts +12 -11
  449. package/src/userRepository/observers/tests/getViewedUsers.test.ts +39 -0
  450. package/src/userRepository/observers/tests/searchUserByDisplayName.test.ts +1 -1
  451. package/src/userRepository/relationship/block/api/blockUser.ts +6 -4
  452. package/src/userRepository/relationship/block/api/unBlockUser.ts +6 -4
  453. package/src/userRepository/relationship/block/observers/getBlockedUsers.ts +1 -1
  454. package/src/userRepository/relationship/follow/api/acceptFollower.ts +2 -2
  455. package/src/userRepository/relationship/follow/api/acceptMyFollower.ts +2 -2
  456. package/src/userRepository/relationship/follow/api/declineFollower.ts +2 -2
  457. package/src/userRepository/relationship/follow/api/declineMyFollower.ts +2 -2
  458. package/src/userRepository/relationship/follow/api/follow.ts +2 -2
  459. package/src/userRepository/relationship/follow/api/getFollowInfo.ts +4 -4
  460. package/src/userRepository/relationship/follow/api/unfollow.ts +3 -3
  461. package/src/userRepository/relationship/follow/api/utils.ts +1 -1
  462. package/src/userRepository/relationship/follow/observers/getFollowers.ts +1 -1
  463. package/src/userRepository/relationship/follow/observers/getFollowings.ts +1 -1
  464. package/src/userRepository/relationship/follow/observers/observeFollowInfo.ts +1 -1
  465. package/src/userRepository/relationship/follow/observers/observeFollowers.ts +2 -16
  466. package/src/userRepository/relationship/follow/observers/observeFollowings.ts +2 -16
  467. package/src/utils/linkedObject/categoryLinkedObject.ts +40 -0
  468. package/src/utils/linkedObject/commentLinkedObject.ts +4 -0
  469. package/src/utils/linkedObject/index.ts +6 -0
  470. package/src/utils/linkedObject/postLinkedObject.ts +37 -0
  471. package/src/utils/linkedObject/userLinkedObject.ts +36 -0
  472. package/src/utils/tests/client.ts +2 -1
  473. package/src/utils/tests/dummy/block.ts +3 -3
  474. package/src/utils/tests/dummy/category.ts +5 -0
  475. package/src/utils/tests/dummy/channel.ts +150 -1
  476. package/src/utils/tests/dummy/comment.ts +1 -1
  477. package/src/utils/tests/dummy/community.ts +1 -1
  478. package/src/utils/tests/dummy/follow.ts +1 -1
  479. package/src/utils/tests/dummy/message.ts +0 -1
  480. package/src/utils/tests/dummy/messagePreviewChannel.ts +37 -0
  481. package/src/utils/tests/dummy/post.ts +45 -3
  482. package/src/utils/tests/dummy/subChannel.ts +29 -0
  483. package/src/utils/tests/dummy/user.ts +11 -1
  484. package/tsconfig.json +18 -23
  485. package/dist/postRepository/tests/api/getPost.test.d.ts.map +0 -1
  486. package/src/postRepository/tests/api/getPost.test.ts +0 -98
  487. /package/dist/postRepository/{tests/api → api/tests}/getPost.test.d.ts +0 -0
@@ -0,0 +1,591 @@
1
+ import { disableCache, enableCache } from '~/cache/api';
2
+ import { getSubChannel } from '../getSubChannel';
3
+
4
+ import * as getSubChannelMarkers from '../../../marker/api/getSubChannelMarkers';
5
+
6
+ import {
7
+ client,
8
+ connectClient,
9
+ disconnectClient,
10
+ pause,
11
+ generateRawMessage,
12
+ generateRawSubChannel,
13
+ user11,
14
+ date,
15
+ convertSubChannelFromRaw,
16
+ } from '~/utils/tests';
17
+ import { getSubChannelMessagePreviewWithUser } from '~/messagePreview/utils';
18
+ import * as getMessagePreviewSetting from '~/client/utils/messagePreviewEngine';
19
+
20
+ const getSnapshot = (params?: Record<string, any>) => {
21
+ return {
22
+ data: [] as Amity.Channel[],
23
+ loading: true,
24
+ ...params,
25
+ };
26
+ };
27
+
28
+ describe('getChannels with MessagePreview', () => {
29
+ jest.spyOn(getSubChannelMarkers, 'getSubChannelMarkers').mockResolvedValue({
30
+ data: [],
31
+ cachedAt: undefined,
32
+ });
33
+
34
+ const rawSubChannel = generateRawSubChannel({
35
+ channelId: 'channelId1',
36
+ messagePreviewId: 'messageId1',
37
+ messageFeedId: 'messageFeedId1',
38
+ });
39
+
40
+ const rawMessage = generateRawMessage({
41
+ messageId: 'messageId1',
42
+ channelId: 'channelId1',
43
+ messageFeedId: 'messageFeedId1',
44
+ creatorId: 'test',
45
+ creatorPublicId: 'test',
46
+ });
47
+
48
+ const subChannelWithMessagePreviewGetResponse = {
49
+ data: {
50
+ messageFeeds: [rawSubChannel],
51
+ messages: [rawMessage],
52
+ users: [user11],
53
+ files: [],
54
+ },
55
+ };
56
+
57
+ const subChannelWithNoMessagePreviewGetResponse = {
58
+ data: {
59
+ messageFeeds: [{ ...rawSubChannel, messagePreviewId: undefined }],
60
+ messages: [],
61
+ users: [user11],
62
+ files: [],
63
+ },
64
+ };
65
+
66
+ const rawNewCreatedMessage = generateRawMessage({
67
+ channelId: 'channelId11',
68
+ channelPublicId: 'channelId11',
69
+ messageFeedId: 'messageFeedId1',
70
+ messageId: 'messageId2',
71
+ creatorId: 'test',
72
+ creatorPublicId: 'test',
73
+ });
74
+
75
+ const rawNewSubChannelWithMessagePreview = generateRawSubChannel({
76
+ channelId: 'channelId11',
77
+ channelPublicId: 'channelId11',
78
+ messageFeedId: 'messageFeedId1',
79
+ creatorId: 'test',
80
+ creatorPublicId: 'test',
81
+ channelType: 'conversation',
82
+ messagePreviewId: 'messageId2',
83
+ });
84
+
85
+ const rawUpdatedSubChannelWithMessagePreview = {
86
+ ...rawNewSubChannelWithMessagePreview,
87
+ name: 'messageFeed1-edit',
88
+ };
89
+
90
+ const messagesFromResponse = subChannelWithMessagePreviewGetResponse.data.messages[0];
91
+ const messageFeedsFromResponse = subChannelWithMessagePreviewGetResponse.data.messageFeeds[0];
92
+
93
+ const messagePreview = {
94
+ channelId: messagesFromResponse.channelPublicId,
95
+ subChannelId: messagesFromResponse.messageFeedId,
96
+ dataType: messagesFromResponse.dataType,
97
+ isDeleted: messagesFromResponse.isDeleted,
98
+ segment: messagesFromResponse.segment,
99
+ creatorId: messagesFromResponse.creatorPublicId,
100
+ createdAt: messagesFromResponse.createdAt,
101
+ data: messagesFromResponse.data,
102
+ updatedAt: messagesFromResponse.updatedAt!,
103
+ subChannelName: messageFeedsFromResponse.name!,
104
+ subChannelUpdatedAt: messageFeedsFromResponse.updatedAt!,
105
+ messagePreviewId: messageFeedsFromResponse.messagePreviewId!,
106
+ user: user11,
107
+ };
108
+
109
+ const newMessagePreview = {
110
+ channelId: rawNewCreatedMessage.channelId,
111
+ creatorId: rawNewCreatedMessage.creatorPublicId,
112
+ messagePreviewId: rawNewCreatedMessage.messageId,
113
+ createdAt: rawNewCreatedMessage.createdAt,
114
+ updatedAt: rawNewCreatedMessage.updatedAt,
115
+ data: rawNewCreatedMessage.data,
116
+ dataType: rawNewCreatedMessage.dataType,
117
+ isDeleted: rawNewCreatedMessage.isDeleted,
118
+ segment: rawNewCreatedMessage.segment,
119
+ subChannelId: rawSubChannel.messageFeedId,
120
+ subChannelName: rawSubChannel.name,
121
+ subChannelUpdatedAt: rawSubChannel.updatedAt!,
122
+ user: user11,
123
+ };
124
+
125
+ const rawUpdatedMessage: Amity.RawMessage = {
126
+ ...rawMessage,
127
+ createdAt: messagesFromResponse.createdAt,
128
+ data: {
129
+ text: 'updated',
130
+ },
131
+ updatedAt: date,
132
+ };
133
+
134
+ const rawDeletedMessage: Amity.RawMessage = {
135
+ ...rawMessage,
136
+ createdAt: messagesFromResponse.createdAt,
137
+ isDeleted: true,
138
+ updatedAt: date,
139
+ };
140
+
141
+ const updatedMessagePreview = {
142
+ ...messagePreview,
143
+ data: rawUpdatedMessage.data,
144
+ updatedAt: rawUpdatedMessage.updatedAt,
145
+ };
146
+
147
+ const deletedMessagePreview = {
148
+ ...messagePreview,
149
+ isDeleted: true,
150
+ updatedAt: rawDeletedMessage.updatedAt,
151
+ };
152
+
153
+ const rawUpdatedSubChannel = {
154
+ ...rawSubChannel,
155
+ name: 'messageFeed1-edit',
156
+ updatedAt: date,
157
+ };
158
+
159
+ const rawDeletedSubChannel = {
160
+ ...rawSubChannel,
161
+ isDeleted: true,
162
+ updatedAt: date,
163
+ };
164
+
165
+ const updatedSubChannelMessagePreview = {
166
+ ...messagePreview,
167
+ subChannelName: rawUpdatedSubChannel.name,
168
+ subChannelUpdatedAt: rawUpdatedSubChannel.updatedAt,
169
+ };
170
+
171
+ describe('Message Preview include delete', () => {
172
+ beforeAll(() => {
173
+ jest
174
+ .spyOn(getMessagePreviewSetting, 'getMessagePreviewSetting')
175
+ .mockResolvedValue(Amity.MessagePreviewSetting.MESSAGE_PREVIEW_INCLUDE_DELETED);
176
+
177
+ connectClient();
178
+ });
179
+
180
+ afterAll(() => {
181
+ disconnectClient();
182
+ jest.clearAllMocks();
183
+ });
184
+
185
+ beforeEach(enableCache);
186
+ afterEach(disableCache);
187
+
188
+ describe('getChannel', () => {
189
+ test('it should return subChannel live object with message preview', async () => {
190
+ const callback = jest.fn();
191
+ client.http.get = jest.fn().mockResolvedValue(subChannelWithMessagePreviewGetResponse);
192
+
193
+ getSubChannel(
194
+ subChannelWithMessagePreviewGetResponse.data.messageFeeds[0].messageFeedId,
195
+ callback,
196
+ );
197
+ await pause();
198
+
199
+ expect(callback).toHaveBeenCalledTimes(2);
200
+ expect(callback).toHaveBeenNthCalledWith(
201
+ 1,
202
+ expect.objectContaining(
203
+ getSnapshot({
204
+ data: undefined,
205
+ }),
206
+ ),
207
+ );
208
+ expect(callback).toHaveBeenNthCalledWith(
209
+ 2,
210
+ expect.objectContaining(
211
+ getSnapshot({
212
+ data: getSubChannelMessagePreviewWithUser(
213
+ convertSubChannelFromRaw(
214
+ subChannelWithMessagePreviewGetResponse.data.messageFeeds[0],
215
+ ),
216
+ ),
217
+ loading: false,
218
+ }),
219
+ ),
220
+ );
221
+ });
222
+ });
223
+
224
+ describe('events', () => {
225
+ beforeAll(() => {
226
+ client.getMessagePreviewSetting = jest
227
+ .fn()
228
+ .mockResolvedValue(Amity.MessagePreviewSetting.MESSAGE_PREVIEW_INCLUDE_DELETED);
229
+ });
230
+
231
+ const cases: [string, keyof Amity.Events, ValueOf<Amity.Events>, Amity.SubChannel][] = [
232
+ [
233
+ 'it should update message preview to live object onMessageCreated',
234
+ 'message.created',
235
+ {
236
+ messages: [rawNewCreatedMessage],
237
+ messageFeeds: [rawSubChannel],
238
+ users: [],
239
+ files: [],
240
+ reactions: [],
241
+ },
242
+ {
243
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
244
+ // TODO: fix lastActivity to be rawNewCreatedMessage.createdAt
245
+ // lastActivity: rawNewCreatedMessage.createdAt,
246
+ messagePreview: newMessagePreview,
247
+ },
248
+ ],
249
+ [
250
+ 'it should update message preview to live object onMessageUpdated',
251
+ 'message.updated',
252
+ {
253
+ messages: [rawUpdatedMessage],
254
+ messageFeeds: [rawSubChannel],
255
+ users: [],
256
+ files: [],
257
+ reactions: [],
258
+ },
259
+ {
260
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
261
+ messagePreviewId: updatedMessagePreview.messagePreviewId,
262
+ messagePreview: updatedMessagePreview,
263
+ },
264
+ ],
265
+ [
266
+ 'it should update message preview to live object onMessageDeleted',
267
+ 'message.deleted',
268
+ {
269
+ messages: [rawDeletedMessage],
270
+ messageFeeds: [rawSubChannel],
271
+ users: [],
272
+ files: [],
273
+ reactions: [],
274
+ },
275
+ {
276
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
277
+ messagePreviewId: deletedMessagePreview.messagePreviewId,
278
+ messagePreview: deletedMessagePreview,
279
+ },
280
+ ],
281
+ [
282
+ 'it should update message preview to live object onSubChannelUpdated',
283
+ 'message-feed.updated',
284
+ {
285
+ messageFeeds: [rawUpdatedSubChannel],
286
+ messages: [],
287
+ users: [],
288
+ files: [],
289
+ },
290
+ {
291
+ ...convertSubChannelFromRaw({
292
+ ...rawUpdatedSubChannelWithMessagePreview,
293
+ updatedAt: rawUpdatedSubChannel.updatedAt,
294
+ }),
295
+ messagePreviewId: updatedSubChannelMessagePreview.messagePreviewId,
296
+ messagePreview: updatedSubChannelMessagePreview,
297
+ },
298
+ ],
299
+ ];
300
+
301
+ test.each(cases)('%s', async (test, event, eventPayload, expected) => {
302
+ const callback = jest.fn();
303
+ client.http.get = jest.fn().mockResolvedValue(subChannelWithMessagePreviewGetResponse);
304
+
305
+ getSubChannel(
306
+ subChannelWithMessagePreviewGetResponse.data.messageFeeds[0].messageFeedId,
307
+ callback,
308
+ );
309
+ await pause();
310
+
311
+ client.emitter.emit(event, eventPayload);
312
+ await pause();
313
+
314
+ expect(callback).toHaveBeenCalledTimes(3);
315
+
316
+ expect(callback).toHaveBeenNthCalledWith(
317
+ 3,
318
+ expect.objectContaining(
319
+ getSnapshot({
320
+ data: expected,
321
+ loading: false,
322
+ origin: 'event',
323
+ }),
324
+ ),
325
+ );
326
+ });
327
+ });
328
+ });
329
+
330
+ describe('Message Preview not include delete', () => {
331
+ beforeAll(() => {
332
+ jest
333
+ .spyOn(getMessagePreviewSetting, 'getMessagePreviewSetting')
334
+ .mockResolvedValue(Amity.MessagePreviewSetting.MESSAGE_PREVIEW_NOT_INCLUDE_DELETED);
335
+
336
+ connectClient();
337
+ });
338
+
339
+ afterAll(() => {
340
+ disconnectClient();
341
+ jest.clearAllMocks();
342
+ });
343
+
344
+ beforeEach(enableCache);
345
+ afterEach(disableCache);
346
+
347
+ describe('events', () => {
348
+ beforeAll(() => {
349
+ client.getMessagePreviewSetting = jest
350
+ .fn()
351
+ .mockResolvedValue(Amity.MessagePreviewSetting.MESSAGE_PREVIEW_NOT_INCLUDE_DELETED);
352
+ });
353
+
354
+ const cases: [string, keyof Amity.Events, ValueOf<Amity.Events>, Amity.SubChannel][] = [
355
+ [
356
+ 'it should update message preview to live object onMessageCreated',
357
+ 'message.created',
358
+ {
359
+ messages: [rawNewCreatedMessage],
360
+ messageFeeds: [rawSubChannel],
361
+ users: [],
362
+ files: [],
363
+ reactions: [],
364
+ },
365
+ {
366
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
367
+ // TODO: fix lastActivity to be rawNewCreatedMessage.createdAt
368
+ // lastActivity: rawNewCreatedMessage.createdAt,
369
+ messagePreview: newMessagePreview,
370
+ },
371
+ ],
372
+ [
373
+ 'it should update message preview to live object onMessageUpdated',
374
+ 'message.updated',
375
+ {
376
+ messages: [rawUpdatedMessage],
377
+ messageFeeds: [rawSubChannel],
378
+ users: [],
379
+ files: [],
380
+ reactions: [],
381
+ },
382
+ {
383
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
384
+ messagePreviewId: updatedMessagePreview.messagePreviewId,
385
+ messagePreview: updatedMessagePreview,
386
+ },
387
+ ],
388
+ [
389
+ 'it should update message preview to live object onMessageDeleted',
390
+ 'message.deleted',
391
+ {
392
+ messages: [rawDeletedMessage],
393
+ messageFeeds: [rawSubChannel],
394
+ users: [],
395
+ files: [],
396
+ reactions: [],
397
+ },
398
+ {
399
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
400
+ messagePreviewId: undefined,
401
+ messagePreview: null,
402
+ },
403
+ ],
404
+ [
405
+ 'it should update message preview to live object onSubChannelUpdated',
406
+ 'message-feed.updated',
407
+ {
408
+ messageFeeds: [rawUpdatedSubChannel],
409
+ messages: [],
410
+ users: [],
411
+ files: [],
412
+ },
413
+ {
414
+ ...convertSubChannelFromRaw({
415
+ ...rawUpdatedSubChannelWithMessagePreview,
416
+ updatedAt: rawUpdatedSubChannel.updatedAt,
417
+ }),
418
+ messagePreviewId: updatedSubChannelMessagePreview.messagePreviewId,
419
+ messagePreview: updatedSubChannelMessagePreview,
420
+ },
421
+ ],
422
+ ];
423
+
424
+ test.each(cases)('%s', async (test, event, eventPayload, expected) => {
425
+ const callback = jest.fn();
426
+ client.http.get = jest.fn().mockResolvedValue(subChannelWithMessagePreviewGetResponse);
427
+
428
+ getSubChannel(
429
+ subChannelWithMessagePreviewGetResponse.data.messageFeeds[0].messageFeedId,
430
+ callback,
431
+ );
432
+ await pause();
433
+
434
+ if (event === 'message.deleted') {
435
+ client.http.get = jest.fn().mockResolvedValue(subChannelWithNoMessagePreviewGetResponse);
436
+
437
+ await pause();
438
+ }
439
+
440
+ client.emitter.emit(event, eventPayload);
441
+ await pause();
442
+
443
+ expect(callback).toHaveBeenCalledTimes(3);
444
+
445
+ expect(callback).toHaveBeenNthCalledWith(
446
+ 3,
447
+ expect.objectContaining(
448
+ getSnapshot({
449
+ data: expected,
450
+ loading: false,
451
+ origin: 'event',
452
+ }),
453
+ ),
454
+ );
455
+ });
456
+ });
457
+ });
458
+
459
+ describe('No Message Preview', () => {
460
+ beforeAll(() => {
461
+ jest
462
+ .spyOn(getMessagePreviewSetting, 'getMessagePreviewSetting')
463
+ .mockResolvedValue(Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW);
464
+
465
+ connectClient();
466
+ });
467
+
468
+ afterAll(() => {
469
+ disconnectClient();
470
+ jest.clearAllMocks();
471
+ });
472
+
473
+ beforeEach(enableCache);
474
+ afterEach(disableCache);
475
+
476
+ describe('events', () => {
477
+ beforeAll(() => {
478
+ client.getMessagePreviewSetting = jest
479
+ .fn()
480
+ .mockResolvedValue(Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW);
481
+ });
482
+
483
+ const cases: [string, keyof Amity.Events, ValueOf<Amity.Events>, Amity.SubChannel][] = [
484
+ [
485
+ 'it should update message preview to live object onMessageCreated',
486
+ 'message.created',
487
+ {
488
+ messages: [rawNewCreatedMessage],
489
+ messageFeeds: [rawSubChannel],
490
+ users: [],
491
+ files: [],
492
+ reactions: [],
493
+ },
494
+ {
495
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
496
+ // TODO: fix lastActivity to be rawNewCreatedMessage.createdAt
497
+ // lastActivity: rawNewCreatedMessage.createdAt,
498
+ messagePreview: newMessagePreview,
499
+ },
500
+ ],
501
+ [
502
+ 'it should update message preview to live object onMessageUpdated',
503
+ 'message.updated',
504
+ {
505
+ messages: [rawUpdatedMessage],
506
+ messageFeeds: [rawSubChannel],
507
+ users: [],
508
+ files: [],
509
+ reactions: [],
510
+ },
511
+ {
512
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
513
+ messagePreviewId: updatedMessagePreview.messagePreviewId,
514
+ messagePreview: updatedMessagePreview,
515
+ },
516
+ ],
517
+ [
518
+ 'it should update message preview to live object onMessageDeleted',
519
+ 'message.deleted',
520
+ {
521
+ messages: [rawDeletedMessage],
522
+ messageFeeds: [rawSubChannel],
523
+ users: [],
524
+ files: [],
525
+ reactions: [],
526
+ },
527
+ {
528
+ ...convertSubChannelFromRaw(rawNewSubChannelWithMessagePreview),
529
+ messagePreviewId: deletedMessagePreview.messagePreviewId,
530
+ messagePreview: deletedMessagePreview,
531
+ },
532
+ ],
533
+ [
534
+ 'it should update message preview to live object onSubChannelUpdated',
535
+ 'message-feed.updated',
536
+ {
537
+ messageFeeds: [rawUpdatedSubChannel],
538
+ messages: [],
539
+ users: [],
540
+ files: [],
541
+ },
542
+ {
543
+ ...convertSubChannelFromRaw({
544
+ ...rawUpdatedSubChannelWithMessagePreview,
545
+ updatedAt: rawUpdatedSubChannel.updatedAt,
546
+ }),
547
+ messagePreviewId: updatedSubChannelMessagePreview.messagePreviewId,
548
+ messagePreview: updatedSubChannelMessagePreview,
549
+ },
550
+ ],
551
+ ];
552
+
553
+ test.each(cases)('%s', async (test, event, eventPayload, expected) => {
554
+ const callback = jest.fn();
555
+ client.http.get = jest.fn().mockResolvedValue(subChannelWithNoMessagePreviewGetResponse);
556
+
557
+ getSubChannel(
558
+ subChannelWithNoMessagePreviewGetResponse.data.messageFeeds[0].messageFeedId,
559
+ callback,
560
+ );
561
+ await pause();
562
+
563
+ client.emitter.emit(event, eventPayload);
564
+ await pause();
565
+
566
+ expect(callback).toHaveBeenCalledTimes(2);
567
+ expect(callback).toHaveBeenNthCalledWith(
568
+ 1,
569
+ expect.objectContaining(
570
+ getSnapshot({
571
+ data: undefined,
572
+ }),
573
+ ),
574
+ );
575
+ expect(callback).toHaveBeenNthCalledWith(
576
+ 2,
577
+ expect.objectContaining(
578
+ getSnapshot({
579
+ data: getSubChannelMessagePreviewWithUser(
580
+ convertSubChannelFromRaw(
581
+ subChannelWithNoMessagePreviewGetResponse.data.messageFeeds[0],
582
+ ),
583
+ ),
584
+ loading: false,
585
+ }),
586
+ ),
587
+ );
588
+ });
589
+ });
590
+ });
591
+ });