@amityco/ts-sdk-react-native 6.29.3-669217e.0 → 6.30.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 (379) hide show
  1. package/.env +26 -26
  2. package/dist/@types/core/events.d.ts +41 -11
  3. package/dist/@types/core/events.d.ts.map +1 -1
  4. package/dist/@types/core/model.d.ts +4 -0
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +32 -7
  7. package/dist/@types/core/payload.d.ts.map +1 -1
  8. package/dist/@types/core/permissions.d.ts +4 -4
  9. package/dist/@types/core/permissions.d.ts.map +1 -1
  10. package/dist/@types/domains/channel.d.ts +8 -0
  11. package/dist/@types/domains/channel.d.ts.map +1 -1
  12. package/dist/@types/domains/comment.d.ts +5 -4
  13. package/dist/@types/domains/comment.d.ts.map +1 -1
  14. package/dist/@types/domains/community.d.ts +32 -8
  15. package/dist/@types/domains/community.d.ts.map +1 -1
  16. package/dist/@types/domains/follow.d.ts +21 -3
  17. package/dist/@types/domains/follow.d.ts.map +1 -1
  18. package/dist/@types/domains/group.d.ts +13 -7
  19. package/dist/@types/domains/group.d.ts.map +1 -1
  20. package/dist/@types/domains/pin.d.ts +22 -0
  21. package/dist/@types/domains/pin.d.ts.map +1 -0
  22. package/dist/@types/domains/pinnedPost.d.ts +28 -0
  23. package/dist/@types/domains/pinnedPost.d.ts.map +1 -0
  24. package/dist/@types/domains/poll.d.ts +3 -1
  25. package/dist/@types/domains/poll.d.ts.map +1 -1
  26. package/dist/@types/domains/post.d.ts +8 -5
  27. package/dist/@types/domains/post.d.ts.map +1 -1
  28. package/dist/@types/domains/stream.d.ts +2 -1
  29. package/dist/@types/domains/stream.d.ts.map +1 -1
  30. package/dist/@types/domains/user.d.ts +34 -6
  31. package/dist/@types/domains/user.d.ts.map +1 -1
  32. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -1
  33. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts +3 -2
  34. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts.map +1 -1
  35. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts +14 -0
  36. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts.map +1 -0
  37. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts +14 -0
  38. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts.map +1 -0
  39. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts +14 -0
  40. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts.map +1 -0
  41. package/dist/channelRepository/channelMembership/observers/searchMembers/index.d.ts +2 -0
  42. package/dist/channelRepository/channelMembership/observers/searchMembers/index.d.ts.map +1 -0
  43. package/dist/channelRepository/channelMembership/observers/searchMembers/searchMembers.d.ts +21 -0
  44. package/dist/channelRepository/channelMembership/observers/searchMembers/searchMembers.d.ts.map +1 -0
  45. package/dist/channelRepository/events/onUserDeleted.d.ts +2 -0
  46. package/dist/channelRepository/events/onUserDeleted.d.ts.map +1 -0
  47. package/dist/channelRepository/observers/getChannels/ChannelPaginationController.d.ts +3 -3
  48. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
  49. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts +1 -1
  50. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts.map +1 -1
  51. package/dist/client/api/index.d.ts +0 -2
  52. package/dist/client/api/index.d.ts.map +1 -1
  53. package/dist/commentRepository/api/createComment.d.ts.map +1 -1
  54. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  55. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts +17 -0
  56. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts.map +1 -0
  57. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts +17 -0
  58. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts.map +1 -0
  59. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts +17 -0
  60. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts.map +1 -0
  61. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts +17 -0
  62. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts.map +1 -0
  63. package/dist/commentRepository/events/utils.d.ts +1 -0
  64. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  65. package/dist/commentRepository/observers/getComment.d.ts.map +1 -1
  66. package/dist/commentRepository/observers/getComments/CommentLiveCollectionController.d.ts.map +1 -1
  67. package/dist/communityRepository/communityMembership/events/index.d.ts +2 -0
  68. package/dist/communityRepository/communityMembership/events/index.d.ts.map +1 -1
  69. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts +17 -0
  70. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts.map +1 -0
  71. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts +17 -0
  72. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts.map +1 -0
  73. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts +17 -0
  74. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts.map +1 -0
  75. package/dist/communityRepository/communityMembership/events/utils.d.ts +1 -0
  76. package/dist/communityRepository/communityMembership/events/utils.d.ts.map +1 -1
  77. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.d.ts.map +1 -1
  78. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.d.ts.map +1 -1
  79. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts +4 -1
  80. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts.map +1 -1
  81. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.d.ts.map +1 -1
  82. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.d.ts.map +1 -1
  83. package/dist/communityRepository/communityModeration/api/addRoles.d.ts.map +1 -1
  84. package/dist/communityRepository/communityModeration/api/removeRoles.d.ts.map +1 -1
  85. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts +17 -0
  86. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts.map +1 -0
  87. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts +17 -0
  88. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts.map +1 -0
  89. package/dist/communityRepository/utils/payload.d.ts +3 -6
  90. package/dist/communityRepository/utils/payload.d.ts.map +1 -1
  91. package/dist/core/events.d.ts +3 -3
  92. package/dist/core/events.d.ts.map +1 -1
  93. package/dist/core/model/idResolvers.d.ts.map +1 -1
  94. package/dist/core/model/index.d.ts.map +1 -1
  95. package/dist/fileRepository/api/uploadFile.d.ts.map +1 -1
  96. package/dist/fileRepository/api/uploadImage.d.ts.map +1 -1
  97. package/dist/fileRepository/api/uploadVideo.d.ts.map +1 -1
  98. package/dist/group/utils/withUser.d.ts +13 -0
  99. package/dist/group/utils/withUser.d.ts.map +1 -1
  100. package/dist/index.cjs.js +2247 -1250
  101. package/dist/index.esm.js +2435 -1437
  102. package/dist/index.umd.js +3 -3
  103. package/dist/pollRepository/observers/observePoll.d.ts +1 -1
  104. package/dist/pollRepository/observers/observePoll.d.ts.map +1 -1
  105. package/dist/postRepository/events/onLocalPostDeleted.d.ts +17 -0
  106. package/dist/postRepository/events/onLocalPostDeleted.d.ts.map +1 -0
  107. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts +17 -0
  108. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts.map +1 -0
  109. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts +17 -0
  110. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts.map +1 -0
  111. package/dist/postRepository/events/onPostUpdatedLocal.d.ts +17 -0
  112. package/dist/postRepository/events/onPostUpdatedLocal.d.ts.map +1 -0
  113. package/dist/postRepository/events/utils.d.ts +1 -0
  114. package/dist/postRepository/events/utils.d.ts.map +1 -1
  115. package/dist/postRepository/internalApi/index.d.ts +1 -12
  116. package/dist/postRepository/internalApi/index.d.ts.map +1 -1
  117. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts +14 -0
  118. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -0
  119. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts +13 -0
  120. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts.map +1 -0
  121. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +9 -0
  122. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -0
  123. package/dist/postRepository/observers/getPinnedPosts.d.ts +12 -0
  124. package/dist/postRepository/observers/getPinnedPosts.d.ts.map +1 -0
  125. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  126. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  127. package/dist/postRepository/observers/index.d.ts +1 -0
  128. package/dist/postRepository/observers/index.d.ts.map +1 -1
  129. package/dist/postRepository/utils/payload.d.ts.map +1 -1
  130. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  131. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  132. package/dist/report/api/createReport.d.ts +1 -2
  133. package/dist/report/api/createReport.d.ts.map +1 -1
  134. package/dist/report/api/deleteReport.d.ts +1 -2
  135. package/dist/report/api/deleteReport.d.ts.map +1 -1
  136. package/dist/report/api/isReportedByMe.d.ts +1 -2
  137. package/dist/report/api/isReportedByMe.d.ts.map +1 -1
  138. package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts +1 -1
  139. package/dist/userRepository/api/flagUser.d.ts.map +1 -1
  140. package/dist/userRepository/api/getUser.d.ts.map +1 -1
  141. package/dist/userRepository/api/getUserByIds.d.ts.map +1 -1
  142. package/dist/userRepository/api/queryBlockedUsers.d.ts.map +1 -1
  143. package/dist/userRepository/api/queryUsers.d.ts.map +1 -1
  144. package/dist/userRepository/api/unflagUser.d.ts.map +1 -1
  145. package/dist/userRepository/api/updateUser.d.ts.map +1 -1
  146. package/dist/userRepository/events/utils.d.ts.map +1 -1
  147. package/dist/userRepository/internalApi/getUser.d.ts.map +1 -1
  148. package/dist/userRepository/internalApi/queryUsers.d.ts.map +1 -1
  149. package/dist/userRepository/observers/enums.d.ts +8 -0
  150. package/dist/userRepository/observers/enums.d.ts.map +1 -0
  151. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts +14 -0
  152. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts.map +1 -0
  153. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts +5 -0
  154. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts.map +1 -0
  155. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts +15 -0
  156. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts.map +1 -0
  157. package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -1
  158. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts +14 -0
  159. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts.map +1 -0
  160. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts +5 -0
  161. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts.map +1 -0
  162. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts +15 -0
  163. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts.map +1 -0
  164. package/dist/userRepository/observers/getUsers.d.ts +0 -1
  165. package/dist/userRepository/observers/getUsers.d.ts.map +1 -1
  166. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts +14 -0
  167. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts.map +1 -0
  168. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts +5 -0
  169. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts.map +1 -0
  170. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts +15 -0
  171. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts.map +1 -0
  172. package/dist/userRepository/observers/searchUserByDisplayName.d.ts.map +1 -1
  173. package/dist/userRepository/relationship/block/api/blockUser.d.ts.map +1 -1
  174. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts.map +1 -1
  175. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts.map +1 -1
  176. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts.map +1 -1
  177. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts.map +1 -1
  178. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts.map +1 -1
  179. package/dist/userRepository/relationship/follow/api/follow.d.ts.map +1 -1
  180. package/dist/userRepository/relationship/follow/api/unfollow.d.ts.map +1 -1
  181. package/dist/userRepository/relationship/follow/api/utils.d.ts.map +1 -1
  182. package/dist/userRepository/relationship/follow/enums.d.ts +11 -0
  183. package/dist/userRepository/relationship/follow/enums.d.ts.map +1 -0
  184. package/dist/userRepository/relationship/follow/events/index.d.ts +5 -0
  185. package/dist/userRepository/relationship/follow/events/index.d.ts.map +1 -1
  186. package/dist/userRepository/relationship/follow/events/onFollowInfoUpdated.d.ts.map +1 -1
  187. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts +4 -0
  188. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts.map +1 -0
  189. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts +4 -0
  190. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts.map +1 -0
  191. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts +2 -0
  192. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts.map +1 -0
  193. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts +2 -0
  194. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts.map +1 -0
  195. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts +2 -0
  196. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts.map +1 -0
  197. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts +2 -0
  198. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts.map +1 -0
  199. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts +2 -0
  200. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts.map +1 -0
  201. package/dist/userRepository/relationship/follow/events/utils.d.ts +2 -1
  202. package/dist/userRepository/relationship/follow/events/utils.d.ts.map +1 -1
  203. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts +14 -0
  204. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts.map +1 -0
  205. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts +5 -0
  206. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts.map +1 -0
  207. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts +15 -0
  208. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts.map +1 -0
  209. package/dist/userRepository/relationship/follow/observers/getFollowers.d.ts.map +1 -1
  210. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts +14 -0
  211. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts.map +1 -0
  212. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts +5 -0
  213. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts.map +1 -0
  214. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts +15 -0
  215. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts.map +1 -0
  216. package/dist/userRepository/relationship/follow/observers/getFollowings.d.ts.map +1 -1
  217. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts +1 -1
  218. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts.map +1 -1
  219. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts +1 -1
  220. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts.map +1 -1
  221. package/dist/userRepository/relationship/follow/utils.d.ts +4 -0
  222. package/dist/userRepository/relationship/follow/utils.d.ts.map +1 -0
  223. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts +2 -0
  224. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts.map +1 -0
  225. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts +2 -0
  226. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts.map +1 -0
  227. package/dist/userRepository/utils/prepareUserPayload.d.ts +2 -0
  228. package/dist/userRepository/utils/prepareUserPayload.d.ts.map +1 -0
  229. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -1
  230. package/dist/utils/linkedObject/index.d.ts +2 -1
  231. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  232. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts +2 -0
  233. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts.map +1 -0
  234. package/dist/utils/tests/dummy/block.d.ts +2 -2
  235. package/dist/utils/tests/dummy/channel.d.ts +12 -12
  236. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  237. package/dist/utils/tests/dummy/community.d.ts +2 -2
  238. package/dist/utils/tests/dummy/follow.d.ts +2 -2
  239. package/dist/utils/tests/dummy/user.d.ts +10 -2
  240. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  241. package/package.json +1 -1
  242. package/src/@types/core/events.ts +40 -13
  243. package/src/@types/core/model.ts +6 -0
  244. package/src/@types/core/payload.ts +39 -9
  245. package/src/@types/core/permissions.ts +4 -4
  246. package/src/@types/domains/channel.ts +13 -0
  247. package/src/@types/domains/comment.ts +6 -4
  248. package/src/@types/domains/community.ts +40 -12
  249. package/src/@types/domains/follow.ts +26 -12
  250. package/src/@types/domains/group.ts +14 -6
  251. package/src/@types/domains/pin.ts +27 -0
  252. package/src/@types/domains/pinnedPost.ts +35 -0
  253. package/src/@types/domains/poll.ts +5 -1
  254. package/src/@types/domains/post.ts +9 -5
  255. package/src/@types/domains/stream.ts +3 -1
  256. package/src/@types/domains/user.ts +49 -6
  257. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +6 -0
  258. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.ts +4 -1
  259. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.ts +148 -0
  260. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.ts +31 -0
  261. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.ts +112 -0
  262. package/src/channelRepository/channelMembership/observers/searchMembers/index.ts +1 -0
  263. package/src/channelRepository/channelMembership/observers/searchMembers/searchMembers.ts +111 -0
  264. package/src/channelRepository/events/onUserDeleted.ts +46 -0
  265. package/src/channelRepository/utils/prepareChannelPayload.ts +8 -4
  266. package/src/client/api/index.ts +0 -3
  267. package/src/commentRepository/api/createComment.ts +16 -12
  268. package/src/commentRepository/api/deleteComment.ts +23 -13
  269. package/src/commentRepository/events/onCommentCreatedLocal.ts +22 -0
  270. package/src/commentRepository/events/onCommentDeletedLocal.ts +20 -0
  271. package/src/commentRepository/events/onLocalCommentReactionAdded.ts +42 -0
  272. package/src/commentRepository/events/onLocalCommentReactionRemoved.ts +42 -0
  273. package/src/commentRepository/events/utils.ts +77 -0
  274. package/src/commentRepository/observers/getComment.ts +6 -19
  275. package/src/commentRepository/observers/getComments/CommentLiveCollectionController.ts +8 -0
  276. package/src/communityRepository/communityMembership/api/addMembers.ts +1 -1
  277. package/src/communityRepository/communityMembership/api/removeMembers.ts +1 -1
  278. package/src/communityRepository/communityMembership/events/index.ts +2 -0
  279. package/src/communityRepository/communityMembership/events/onLocalCommunityUserAdded.ts +20 -0
  280. package/src/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.ts +20 -0
  281. package/src/communityRepository/communityMembership/events/onUserDeleted.ts +64 -0
  282. package/src/communityRepository/communityMembership/events/utils.ts +50 -2
  283. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.ts +26 -1
  284. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.ts +4 -1
  285. package/src/communityRepository/communityMembership/observers/getMembers/enums.ts +3 -0
  286. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.ts +14 -0
  287. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.ts +4 -1
  288. package/src/communityRepository/communityModeration/api/addRoles.ts +5 -2
  289. package/src/communityRepository/communityModeration/api/removeRoles.ts +5 -2
  290. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.ts +38 -0
  291. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.ts +38 -0
  292. package/src/communityRepository/utils/payload.ts +47 -53
  293. package/src/core/model/idResolvers.ts +3 -0
  294. package/src/core/model/index.ts +3 -0
  295. package/src/fileRepository/api/uploadFile.ts +5 -10
  296. package/src/fileRepository/api/uploadImage.ts +5 -8
  297. package/src/fileRepository/api/uploadVideo.ts +7 -9
  298. package/src/group/utils/withUser.ts +33 -0
  299. package/src/postRepository/api/deletePost.ts +9 -9
  300. package/src/postRepository/api/updatePost.ts +1 -1
  301. package/src/postRepository/events/onLocalPostDeleted.ts +20 -0
  302. package/src/postRepository/events/onLocalPostReactionAdded.ts +38 -0
  303. package/src/postRepository/events/onLocalPostReactionRemoved.ts +41 -0
  304. package/src/postRepository/events/onPostUpdatedLocal.ts +20 -0
  305. package/src/postRepository/events/utils.ts +41 -6
  306. package/src/postRepository/internalApi/index.ts +1 -16
  307. package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +104 -0
  308. package/src/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.ts +23 -0
  309. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +61 -0
  310. package/src/postRepository/observers/getPinnedPosts.ts +41 -0
  311. package/src/postRepository/observers/getPost.ts +8 -0
  312. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +8 -0
  313. package/src/postRepository/observers/index.ts +1 -0
  314. package/src/postRepository/utils/payload.ts +31 -7
  315. package/src/reactionRepository/api/addReaction.ts +27 -2
  316. package/src/reactionRepository/api/removeReaction.ts +27 -2
  317. package/src/report/api/createReport.ts +100 -31
  318. package/src/report/api/deleteReport.ts +100 -31
  319. package/src/report/api/isReportedByMe.ts +72 -11
  320. package/src/userRepository/api/flagUser.ts +5 -2
  321. package/src/userRepository/api/getUser.ts +4 -43
  322. package/src/userRepository/api/getUserByIds.ts +5 -2
  323. package/src/userRepository/api/queryBlockedUsers.ts +6 -6
  324. package/src/userRepository/api/queryUsers.ts +11 -87
  325. package/src/userRepository/api/unflagUser.ts +5 -2
  326. package/src/userRepository/api/updateUser.ts +5 -11
  327. package/src/userRepository/events/utils.ts +4 -1
  328. package/src/userRepository/internalApi/getUser.ts +12 -16
  329. package/src/userRepository/internalApi/queryUsers.ts +7 -4
  330. package/src/userRepository/observers/enums.ts +7 -0
  331. package/src/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.ts +106 -0
  332. package/src/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.ts +24 -0
  333. package/src/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.ts +76 -0
  334. package/src/userRepository/observers/getBlockedUsers.ts +8 -81
  335. package/src/userRepository/observers/getUsers/UserLiveCollectionController.ts +131 -0
  336. package/src/userRepository/observers/getUsers/UserPaginationController.ts +25 -0
  337. package/src/userRepository/observers/getUsers/UserQueryStreamController.ts +82 -0
  338. package/src/userRepository/observers/getUsers.ts +7 -137
  339. package/src/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.ts +116 -0
  340. package/src/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.ts +25 -0
  341. package/src/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.ts +82 -0
  342. package/src/userRepository/observers/searchUserByDisplayName.ts +25 -1
  343. package/src/userRepository/relationship/block/api/blockUser.ts +4 -1
  344. package/src/userRepository/relationship/block/api/unBlockUser.ts +4 -1
  345. package/src/userRepository/relationship/follow/api/acceptFollower.ts +4 -1
  346. package/src/userRepository/relationship/follow/api/acceptMyFollower.ts +4 -1
  347. package/src/userRepository/relationship/follow/api/declineFollower.ts +5 -2
  348. package/src/userRepository/relationship/follow/api/declineMyFollower.ts +5 -2
  349. package/src/userRepository/relationship/follow/api/follow.ts +8 -1
  350. package/src/userRepository/relationship/follow/api/unfollow.ts +4 -1
  351. package/src/userRepository/relationship/follow/api/utils.ts +6 -2
  352. package/src/userRepository/relationship/follow/enums.ts +10 -0
  353. package/src/userRepository/relationship/follow/events/index.ts +6 -0
  354. package/src/userRepository/relationship/follow/events/onFollowInfoUpdated.ts +6 -1
  355. package/src/userRepository/relationship/follow/events/onFollowerUserDeleted.ts +33 -0
  356. package/src/userRepository/relationship/follow/events/onFollowingUserDeleted.ts +33 -0
  357. package/src/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.ts +5 -0
  358. package/src/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.ts +5 -0
  359. package/src/userRepository/relationship/follow/events/onLocalFollowerRequested.ts +5 -0
  360. package/src/userRepository/relationship/follow/events/onLocalUserFollowed.ts +5 -0
  361. package/src/userRepository/relationship/follow/events/onLocalUserUnfollowed.ts +5 -0
  362. package/src/userRepository/relationship/follow/events/utils.ts +25 -14
  363. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.ts +132 -0
  364. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.ts +29 -0
  365. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.ts +95 -0
  366. package/src/userRepository/relationship/follow/observers/getFollowers.ts +8 -106
  367. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.ts +136 -0
  368. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.ts +29 -0
  369. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.ts +95 -0
  370. package/src/userRepository/relationship/follow/observers/getFollowings.ts +6 -106
  371. package/src/userRepository/relationship/follow/observers/observeFollowers.ts +11 -0
  372. package/src/userRepository/relationship/follow/observers/observeFollowings.ts +11 -0
  373. package/src/userRepository/relationship/follow/utils.ts +36 -0
  374. package/src/userRepository/utils/convertRawUserToInternalUser.ts +6 -0
  375. package/src/userRepository/utils/prepareBlockedUserPayload.ts +19 -0
  376. package/src/userRepository/utils/prepareUserPayload.ts +8 -0
  377. package/src/utils/linkedObject/commentLinkedObject.ts +13 -16
  378. package/src/utils/linkedObject/index.ts +2 -0
  379. package/src/utils/linkedObject/pinnedPostLinkedObject.ts +28 -0
@@ -1,63 +1,9 @@
1
- /* eslint-disable no-use-before-define */
2
- import { getResolver } from '~/core/model';
3
- import { pullFromCache, pushToCache } from '~/cache/api';
1
+ import { dropFromCache } from '~/cache/api';
4
2
  import { getActiveClient } from '~/client/api';
5
- import { uuid } from '~/core/uuid';
6
3
 
7
- import {
8
- createQuery,
9
- filterByStringComparePartially,
10
- queryOptions,
11
- runQuery,
12
- sortByDisplayName,
13
- sortByFirstCreated,
14
- sortByLastCreated,
15
- } from '~/core/query';
4
+ import { ENABLE_CACHE_MESSAGE } from '~/utils/constants';
16
5
 
17
- import {
18
- COLLECTION_DEFAULT_CACHING_POLICY,
19
- COLLECTION_DEFAULT_PAGINATION_LIMIT,
20
- ENABLE_CACHE_MESSAGE,
21
- } from '~/utils/constants';
22
-
23
- import { LinkedObject } from '~/utils/linkedObject';
24
- import { queryUsers } from '../internalApi/queryUsers';
25
- import {
26
- onUserDeleted,
27
- onUserFlagCleared,
28
- onUserFlagged,
29
- onUserUnflagged,
30
- onUserUpdated,
31
- } from '../events';
32
-
33
- /*
34
- * Exported for testing
35
- * @hidden
36
- */
37
- export const applyFilter = <T extends Amity.User>(
38
- data: T[],
39
- params: Amity.UserLiveCollection,
40
- ): T[] => {
41
- let users = filterByStringComparePartially(data, 'displayName', params.displayName);
42
-
43
- switch (params.sortBy) {
44
- case 'firstCreated':
45
- users = users.sort(sortByFirstCreated);
46
- break;
47
-
48
- case 'lastCreated':
49
- users = users.sort(sortByLastCreated);
50
- break;
51
-
52
- default:
53
- users = users
54
- // this needs to be aligned with the backend data type
55
- .map(u => (u.displayName ? u : { ...u, displayName: '' }))
56
- .sort(sortByDisplayName);
57
- }
58
-
59
- return users;
60
- };
6
+ import { UserLiveCollectionController } from './getUsers/UserLiveCollectionController';
61
7
 
62
8
  /* begin_public_function
63
9
  id: user.query
@@ -93,88 +39,12 @@ export const getUsers = (
93
39
  const timestamp = Date.now();
94
40
  log(`liveUsers(tmpid: ${timestamp}) > listen`);
95
41
 
96
- const { limit: queryLimit, ...queryParams } = params;
97
-
98
- const limit = queryLimit ?? COLLECTION_DEFAULT_PAGINATION_LIMIT;
99
- const { policy = COLLECTION_DEFAULT_CACHING_POLICY } = config ?? {};
100
-
101
- const disposers: Amity.Unsubscriber[] = [];
102
- const cacheKey = ['user', 'collection', uuid()];
103
-
104
- const responder = (data: Amity.UserLiveCollectionCache, isEventModel = false) => {
105
- const users: Amity.User[] =
106
- data.data
107
- .map(userId => pullFromCache<Amity.User>(['user', 'get', userId])!)
108
- .filter(Boolean)
109
- .map(({ data }) => LinkedObject.user(data)) ?? [];
110
-
111
- callback({
112
- onNextPage: onFetch,
113
- /*
114
- * Only apply filter to RTE Model
115
- */
116
- data: isEventModel ? applyFilter(users, params) : users,
117
- hasNextPage: !!data.params?.page,
118
- loading: data.loading,
119
- error: data.error,
120
- });
121
- };
122
-
123
- const realtimeRouter = (_: Amity.UserActionType) => (user: Amity.User) => {
124
- const collection = pullFromCache<Amity.UserLiveCollectionCache>(cacheKey)?.data;
125
- if (!collection) return;
126
-
127
- collection.data = [...new Set([user.userId, ...collection.data])];
128
- pushToCache(cacheKey, collection);
129
- responder(collection, true);
130
- };
131
-
132
- const onFetch = (initial = false) => {
133
- const collection = pullFromCache<Amity.UserLiveCollectionCache>(cacheKey)?.data;
134
-
135
- const users = collection?.data ?? [];
136
-
137
- if (!initial && users.length > 0 && !collection?.params.page) return;
138
-
139
- const pagingCondition = initial ? { limit } : { page: collection?.params.page };
140
- const query = createQuery(queryUsers, {
141
- ...queryParams,
142
- ...pagingCondition,
143
- });
144
-
145
- runQuery(
146
- query,
147
- ({ data: result, error, loading, paging }) => {
148
- const data = {
149
- loading,
150
- error,
151
- params: { page: paging?.next },
152
- data: users,
153
- };
154
-
155
- if (result) {
156
- data.data = initial
157
- ? result.map(getResolver('user'))
158
- : [...new Set([...users, ...result.map(getResolver('user'))])];
159
- }
160
-
161
- pushToCache(cacheKey, data);
162
-
163
- responder(data);
164
- },
165
- queryOptions(policy),
166
- );
167
- };
42
+ const usersLiveCollection = new UserLiveCollectionController(params, callback);
43
+ const disposers = usersLiveCollection.startSubscription();
168
44
 
169
- disposers.push(
170
- onUserUpdated(realtimeRouter('onUpdate')),
171
- onUserDeleted(realtimeRouter('onDelete')),
172
- onUserFlagged(realtimeRouter('onFlagged')),
173
- onUserUnflagged(realtimeRouter('onUnflagged')),
174
- onUserFlagCleared(realtimeRouter('onFlagCleared')),
175
- );
45
+ const cacheKey = usersLiveCollection.getCacheKey();
176
46
 
177
- onFetch(true);
47
+ disposers.push(() => dropFromCache(cacheKey));
178
48
 
179
49
  return () => {
180
50
  log(`liveUsers(tmpid: ${timestamp}) > dispose`);
@@ -0,0 +1,116 @@
1
+ import hash from 'object-hash';
2
+ import { pullFromCache, pushToCache } from '~/cache/api';
3
+ import { SearchUserPaginationController } from './SearchUserPaginationController';
4
+ import { SearchUserQueryStreamController } from './SearchUserQueryStreamController';
5
+ import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
+ import {
7
+ onUserDeleted,
8
+ onUserFlagCleared,
9
+ onUserFlagged,
10
+ onUserUnflagged,
11
+ onUserUpdated,
12
+ } from '~/userRepository/events';
13
+ import { prepareUserPayload } from '~/userRepository/utils/prepareUserPayload';
14
+ import { EnumUserActions } from '~/userRepository/observers/enums';
15
+ import { isNonNullable } from '~/utils';
16
+ import { LinkedObject } from '~/utils/linkedObject';
17
+
18
+ export class SearchUserLiveCollectionController extends LiveCollectionController<
19
+ 'user',
20
+ Amity.SearchUserLiveCollection,
21
+ Amity.User,
22
+ SearchUserPaginationController
23
+ > {
24
+ private queryStreamController: SearchUserQueryStreamController;
25
+
26
+ private query: Amity.SearchUserLiveCollection;
27
+
28
+ constructor(
29
+ query: Amity.SearchUserLiveCollection,
30
+ callback: Amity.LiveCollectionCallback<Amity.User>,
31
+ ) {
32
+ const queryStreamId = hash(query);
33
+ const cacheKey = ['user', 'collection', queryStreamId];
34
+ const paginationController = new SearchUserPaginationController(query);
35
+
36
+ super(paginationController, queryStreamId, cacheKey, callback);
37
+
38
+ this.query = { ...query, filter: query.filter ?? 'all' };
39
+ this.queryStreamController = new SearchUserQueryStreamController(
40
+ this.query,
41
+ this.cacheKey,
42
+ this.notifyChange.bind(this),
43
+ prepareUserPayload,
44
+ );
45
+
46
+ this.callback = callback.bind(this);
47
+ this.loadPage({ initial: true });
48
+ }
49
+
50
+ protected setup() {
51
+ const collection = pullFromCache<Amity.UserLiveCollectionCache>(this.cacheKey)?.data;
52
+ if (!collection) {
53
+ pushToCache(this.cacheKey, {
54
+ data: [],
55
+ params: {},
56
+ });
57
+ }
58
+ }
59
+
60
+ protected async persistModel(queryPayload: Amity.UserPayload & Amity.Pagination) {
61
+ await this.queryStreamController.saveToMainDB(queryPayload);
62
+ }
63
+
64
+ protected persistQueryStream({
65
+ response,
66
+ direction,
67
+ refresh,
68
+ }: Amity.LiveCollectionPersistQueryStreamParams<'user'>) {
69
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
70
+ }
71
+
72
+ startSubscription() {
73
+ return this.queryStreamController.subscribeRTE([
74
+ { fn: onUserDeleted, action: EnumUserActions.OnUserDeleted },
75
+ { fn: onUserUpdated, action: EnumUserActions.OnUserUpdated },
76
+ { fn: onUserFlagged, action: EnumUserActions.OnUserFlagged },
77
+ { fn: onUserUnflagged, action: EnumUserActions.OnUserUnflagged },
78
+ { fn: onUserFlagCleared, action: EnumUserActions.OnUserFlagCleared },
79
+ ]);
80
+ }
81
+
82
+ notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
83
+ const collection = pullFromCache<Amity.UserLiveCollectionCache>(this.cacheKey)?.data;
84
+ if (!collection) return;
85
+
86
+ const data = this.applyFilter(
87
+ collection.data
88
+ .map(id => pullFromCache<Amity.InternalUser>(['user', 'get', id])!)
89
+ .filter(isNonNullable)
90
+ .map(({ data }) => data)
91
+ .map(LinkedObject.user) ?? [],
92
+ );
93
+
94
+ if (!this.shouldNotify(data) && origin === 'event') return;
95
+
96
+ this.callback({
97
+ onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
98
+ data,
99
+ hasNextPage: !!this.paginationController.getNextToken(),
100
+ loading,
101
+ error,
102
+ });
103
+ }
104
+
105
+ applyFilter(data: Amity.InternalUser[]) {
106
+ let users = data;
107
+
108
+ if (this.query.filter === 'flagged') {
109
+ users = users.filter(user => !!user.hashFlag);
110
+ }
111
+
112
+ users = users.filter(user => user.isDeleted == null || user.isDeleted === false);
113
+
114
+ return users;
115
+ }
116
+ }
@@ -0,0 +1,25 @@
1
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
2
+ import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
+
4
+ export class SearchUserPaginationController extends PaginationController<
5
+ 'user',
6
+ Amity.SearchUserLiveCollection
7
+ > {
8
+ async getRequest(queryParams: Amity.SearchUserLiveCollection, token: string | undefined) {
9
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, displayName, ...params } = queryParams;
10
+ const options = token ? { token } : { limit };
11
+
12
+ const { data: queryResponse } = await this.http.get<Amity.UserPayload & Amity.Pagination>(
13
+ `/api/v3/users`,
14
+ {
15
+ params: {
16
+ ...params,
17
+ keyword: displayName,
18
+ options,
19
+ isDeleted: false,
20
+ },
21
+ },
22
+ );
23
+ return queryResponse;
24
+ }
25
+ }
@@ -0,0 +1,82 @@
1
+ import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
2
+ import { pullFromCache, pushToCache } from '~/cache/api';
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ import { getResolver } from '~/core/model';
5
+ import { getActiveClient } from '~/client';
6
+ import { EnumUserActions } from '~/userRepository/observers/enums';
7
+
8
+ export class SearchUserQueryStreamController extends QueryStreamController<
9
+ Amity.UserPayload,
10
+ Amity.SearchUserLiveCollection
11
+ > {
12
+ private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;
13
+
14
+ private preparePayload: (response: Amity.UserPayload) => Amity.ProcessedUserPayload;
15
+
16
+ constructor(
17
+ query: Amity.SearchUserLiveCollection,
18
+ cacheKey: string[],
19
+ notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,
20
+ preparePayload: (response: Amity.UserPayload) => Amity.ProcessedUserPayload,
21
+ ) {
22
+ super(query, cacheKey);
23
+ this.notifyChange = notifyChange;
24
+ this.preparePayload = preparePayload;
25
+ }
26
+
27
+ async saveToMainDB(response: Amity.UserPayload) {
28
+ const processedPayload = await this.preparePayload(response);
29
+
30
+ const client = getActiveClient();
31
+ const cachedAt = client.cache && Date.now();
32
+
33
+ if (client.cache) {
34
+ ingestInCache(processedPayload, { cachedAt });
35
+ }
36
+ }
37
+
38
+ appendToQueryStream(
39
+ response: Amity.UserPayload & Partial<Amity.Pagination>,
40
+ direction: Amity.LiveCollectionPageDirection,
41
+ refresh = false,
42
+ ) {
43
+ if (refresh) {
44
+ pushToCache(this.cacheKey, {
45
+ data: response.users.map(getResolver('user')),
46
+ });
47
+ } else {
48
+ const collection = pullFromCache<Amity.UserLiveCollectionCache>(this.cacheKey)?.data;
49
+
50
+ const users = collection?.data ?? [];
51
+
52
+ pushToCache(this.cacheKey, {
53
+ ...collection,
54
+ data: [...new Set([...users, ...response.users.map(getResolver('user'))])],
55
+ });
56
+ }
57
+ }
58
+
59
+ reactor(action: EnumUserActions) {
60
+ return (user: Amity.InternalUser) => {
61
+ const collection = pullFromCache<Amity.UserLiveCollectionCache>(this.cacheKey)?.data;
62
+ if (!collection) return;
63
+
64
+ /*
65
+ * Simply update a collection and let responder decide what to do with data
66
+ */
67
+ collection.data = [...new Set([user.userId, ...collection.data])];
68
+
69
+ pushToCache(this.cacheKey, collection);
70
+ this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });
71
+ };
72
+ }
73
+
74
+ subscribeRTE(
75
+ createSubscriber: {
76
+ fn: (reactor: (user: Amity.InternalUser) => void) => Amity.Unsubscriber;
77
+ action: EnumUserActions;
78
+ }[],
79
+ ) {
80
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
81
+ }
82
+ }
@@ -1,4 +1,8 @@
1
+ import { getActiveClient } from '~/client';
1
2
  import { getUsers } from './getUsers';
3
+ import { ENABLE_CACHE_MESSAGE } from '~/utils/constants';
4
+ import { SearchUserLiveCollectionController } from './searchUserByDisplayName/SearchUserLiveCollectionController';
5
+ import { dropFromCache } from '~/cache/api';
2
6
 
3
7
  /* begin_public_function
4
8
  id: user.search
@@ -25,6 +29,26 @@ export const searchUserByDisplayName = (
25
29
  callback: Amity.LiveCollectionCallback<Amity.InternalUser>,
26
30
  config?: Amity.LiveCollectionConfig,
27
31
  ) => {
28
- return getUsers({ ...params, filter: 'all' }, callback, config);
32
+ const { log, cache } = getActiveClient();
33
+
34
+ if (!cache) {
35
+ // eslint-disable-next-line no-console
36
+ console.log(ENABLE_CACHE_MESSAGE);
37
+ }
38
+
39
+ const timestamp = Date.now();
40
+ log(`liveSearchUsers(tmpid: ${timestamp}) > listen`);
41
+
42
+ const searchUsersLiveCollection = new SearchUserLiveCollectionController(params, callback);
43
+ const disposers = searchUsersLiveCollection.startSubscription();
44
+
45
+ const cacheKey = searchUsersLiveCollection.getCacheKey();
46
+
47
+ disposers.push(() => dropFromCache(cacheKey));
48
+
49
+ return () => {
50
+ log(`liveSearchUsers(tmpid: ${timestamp}) > dispose`);
51
+ disposers.forEach(fn => fn());
52
+ };
29
53
  };
30
54
  /* end_public_function */
@@ -2,6 +2,7 @@ import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
4
  import { upsertInCache } from '~/cache/api';
5
+ import { prepareFollowStatusPayload } from '../../follow/utils';
5
6
 
6
7
  /* begin_public_function
7
8
  id: user.relationship.block
@@ -39,7 +40,9 @@ export const blockUser = async (
39
40
  upsertInCache(['followInfo', 'get', userId], followCounts[0], { cachedAt });
40
41
  }
41
42
 
42
- fireEvent('follow.unfollowed', followStatus);
43
+ const payload = prepareFollowStatusPayload(followStatus);
44
+
45
+ fireEvent('local.follow.unfollowed', payload);
43
46
 
44
47
  return data;
45
48
  };
@@ -2,6 +2,7 @@ import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
4
  import { upsertInCache } from '~/cache/api';
5
+ import { prepareFollowStatusPayload } from '../../follow/utils';
5
6
 
6
7
  /* begin_public_function
7
8
  id: user.relationship.unblock
@@ -41,7 +42,9 @@ export const unBlockUser = async (
41
42
  upsertInCache(['followInfo', 'get', userId], followCounts[0], { cachedAt });
42
43
  }
43
44
 
44
- fireEvent('follow.created', followStatus);
45
+ const payload = prepareFollowStatusPayload(followStatus);
46
+
47
+ fireEvent('local.follow.created', payload);
45
48
 
46
49
  return data;
47
50
  };
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
+ import { prepareFollowStatusPayload } from '../utils';
4
5
 
5
6
  /**
6
7
  * @deprecated This API renamed to `acceptMyFollower`.
@@ -31,7 +32,9 @@ export const acceptFollower = async (userId: Amity.InternalUser['userId']): Prom
31
32
  ingestInCache(data);
32
33
  }
33
34
 
34
- fireEvent('follow.accepted', data);
35
+ const payload = prepareFollowStatusPayload(data);
36
+
37
+ fireEvent('local.follow.accepted', payload);
35
38
 
36
39
  return true;
37
40
  };
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
+ import { prepareFollowStatusPayload } from '../utils';
4
5
 
5
6
  /* begin_public_function
6
7
  id: user.relationship.accept_follow
@@ -31,7 +32,9 @@ export const acceptMyFollower = async (userId: Amity.InternalUser['userId']): Pr
31
32
  ingestInCache(data);
32
33
  }
33
34
 
34
- fireEvent('follow.accepted', data);
35
+ const payload = prepareFollowStatusPayload(data);
36
+
37
+ fireEvent('local.follow.accepted', payload);
35
38
 
36
39
  return true;
37
40
  };
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
+ import { prepareFollowStatusPayload } from '../utils';
4
5
 
5
6
  /**
6
7
  * @deprecated This API renamed to `declineMyFollower`.
@@ -23,7 +24,7 @@ export const declineFollower = async (userId: Amity.InternalUser['userId']): Pro
23
24
  const client = getActiveClient();
24
25
  client.log('follow/declineFollower', userId);
25
26
 
26
- const { data } = await client.http.delete<{ follows: Amity.FollowStatus[] }>(
27
+ const { data } = await client.http.delete<Amity.FollowStatusPayload>(
27
28
  `/api/v4/me/followers/${userId}`,
28
29
  );
29
30
 
@@ -31,7 +32,9 @@ export const declineFollower = async (userId: Amity.InternalUser['userId']): Pro
31
32
  ingestInCache(data);
32
33
  }
33
34
 
34
- fireEvent('follow.requestDeclined', data);
35
+ const payload = prepareFollowStatusPayload(data);
36
+
37
+ fireEvent('local.follow.requestDeclined', payload);
35
38
 
36
39
  return true;
37
40
  };
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
+ import { prepareFollowStatusPayload } from '../utils';
4
5
 
5
6
  /* begin_public_function
6
7
  id: user.relationship.decline_follow
@@ -23,7 +24,7 @@ export const declineMyFollower = async (userId: Amity.InternalUser['userId']): P
23
24
  const client = getActiveClient();
24
25
  client.log('follow/declineMyFollower', userId);
25
26
 
26
- const { data } = await client.http.delete<{ follows: Amity.FollowStatus[] }>(
27
+ const { data } = await client.http.delete<Amity.FollowStatusPayload>(
27
28
  `/api/v4/me/followers/${userId}`,
28
29
  );
29
30
 
@@ -31,7 +32,9 @@ export const declineMyFollower = async (userId: Amity.InternalUser['userId']): P
31
32
  ingestInCache(data);
32
33
  }
33
34
 
34
- fireEvent('follow.requestDeclined', data);
35
+ const payload = prepareFollowStatusPayload(data);
36
+
37
+ fireEvent('local.follow.requestDeclined', payload);
35
38
 
36
39
  return true;
37
40
  };
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
+ import { prepareFollowStatusPayload } from '../utils';
4
5
 
5
6
  /* begin_public_function
6
7
  id: user.relationship.follow
@@ -35,7 +36,13 @@ export const follow = async (
35
36
  ingestInCache(data, { cachedAt });
36
37
  }
37
38
 
38
- fireEvent(data.follows[0].status === 'accepted' ? 'follow.created' : 'follow.requested', data);
39
+ const payload = prepareFollowStatusPayload(data);
40
+
41
+ if (data.follows[0].status === 'accepted') {
42
+ fireEvent('local.follow.created', payload);
43
+ } else {
44
+ fireEvent('local.follow.requested', payload);
45
+ }
39
46
 
40
47
  return {
41
48
  data: data.follows[0],
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { fireEvent } from '~/core/events';
4
+ import { prepareFollowStatusPayload } from '../utils';
4
5
 
5
6
  /* begin_public_function
6
7
  id: user.relationship.unfollow
@@ -31,7 +32,9 @@ export const unfollow = async (userId: Amity.InternalUser['userId']): Promise<bo
31
32
  ingestInCache(data);
32
33
  }
33
34
 
34
- fireEvent('follow.unfollowed', data);
35
+ const payload = prepareFollowStatusPayload(data);
36
+
37
+ fireEvent('local.follow.unfollowed', payload);
35
38
 
36
39
  return true;
37
40
  };
@@ -3,6 +3,7 @@ import { toPageRaw, toToken } from '~/core/query';
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
4
  import { pullFromCache, pushToCache } from '~/cache/api';
5
5
  import { getResolver } from '~/core/model';
6
+ import { prepareFollowersPayload } from '../utils';
6
7
 
7
8
  export const queryFollows = async (
8
9
  key: 'followers' | 'following',
@@ -28,12 +29,15 @@ export const queryFollows = async (
28
29
  );
29
30
 
30
31
  const { paging, ...payload } = data;
31
- const { follows } = payload;
32
32
 
33
33
  const cachedAt = client.cache && Date.now();
34
34
 
35
+ const preparedPayload = prepareFollowersPayload(payload);
36
+
37
+ const { follows } = preparedPayload;
38
+
35
39
  if (client.cache) {
36
- ingestInCache(payload as Amity.FollowersPayload, { cachedAt });
40
+ ingestInCache(preparedPayload, { cachedAt });
37
41
 
38
42
  const cacheKey = [
39
43
  'follow',
@@ -0,0 +1,10 @@
1
+ export enum EnumFollowActions {
2
+ OnRequested = 'onRequested',
3
+ OnAccepted = 'onAccepted',
4
+ OnDeclined = 'onDeclined',
5
+ OnCanceled = 'onCanceled',
6
+ OnFollowed = 'onFollowed',
7
+ OnUnfollowed = 'onUnfollowed',
8
+ OnDeleted = 'onDeleted',
9
+ OnUserDeleted = 'onUserDeleted',
10
+ }
@@ -8,3 +8,9 @@ export * from './onFollowRequestAccepted';
8
8
  export * from './onFollowRequestDeclined';
9
9
 
10
10
  export * from './onFollowInfoUpdated';
11
+
12
+ export * from './onLocalUserFollowed';
13
+ export * from './onLocalUserUnfollowed';
14
+ export * from './onLocalFollowerRequested';
15
+ export * from './onLocalFollowRequestAccepted';
16
+ export * from './onLocalFollowRequestDeclined';
@@ -1,4 +1,4 @@
1
- import { createFollowEventSubscriber } from './utils';
1
+ import { createFollowEventSubscriber, createLocalFollowEventSubscriber } from './utils';
2
2
  import { getFollowInfo } from '../api/getFollowInfo';
3
3
 
4
4
  /**
@@ -37,6 +37,11 @@ export const onFollowInfoUpdated = (
37
37
  createFollowEventSubscriber('follow.requestCanceled', handler),
38
38
  createFollowEventSubscriber('follow.requestDeclined', handler),
39
39
  createFollowEventSubscriber('follow.followerDeleted', handler),
40
+ createLocalFollowEventSubscriber('local.follow.created', handler),
41
+ createLocalFollowEventSubscriber('local.follow.requested', handler),
42
+ createLocalFollowEventSubscriber('local.follow.accepted', handler),
43
+ createLocalFollowEventSubscriber('local.follow.unfollowed', handler),
44
+ createLocalFollowEventSubscriber('local.follow.requestDeclined', handler),
40
45
  ];
41
46
 
42
47
  return () => {