@amityco/ts-sdk-react-native 6.13.2 → 6.14.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 (419) hide show
  1. package/dist/@types/core/live.d.ts +22 -0
  2. package/dist/@types/core/live.d.ts.map +1 -1
  3. package/dist/@types/core/paging.d.ts +5 -2
  4. package/dist/@types/core/paging.d.ts.map +1 -1
  5. package/dist/@types/domains/comment.d.ts +1 -1
  6. package/dist/@types/domains/comment.d.ts.map +1 -1
  7. package/dist/@types/domains/message.d.ts +13 -0
  8. package/dist/@types/domains/message.d.ts.map +1 -1
  9. package/dist/categoryRepository/internalApi/getCategory.d.ts +5 -0
  10. package/dist/categoryRepository/internalApi/getCategory.d.ts.map +1 -0
  11. package/dist/categoryRepository/internalApi/index.d.ts +2 -0
  12. package/dist/categoryRepository/internalApi/index.d.ts.map +1 -0
  13. package/dist/categoryRepository/internalApi/queryCategories.d.ts +5 -0
  14. package/dist/categoryRepository/internalApi/queryCategories.d.ts.map +1 -0
  15. package/dist/channelRepository/api/createChannel.d.ts.map +1 -0
  16. package/dist/channelRepository/api/deleteChannel.d.ts.map +1 -0
  17. package/dist/channelRepository/api/getChannel.d.ts.map +1 -0
  18. package/dist/channelRepository/api/getChannelByIds.d.ts.map +1 -0
  19. package/dist/channelRepository/api/index.d.ts.map +1 -0
  20. package/dist/channelRepository/api/joinChannel.d.ts.map +1 -0
  21. package/dist/channelRepository/api/leaveChannel.d.ts.map +1 -0
  22. package/dist/channelRepository/api/markAsRead.d.ts.map +1 -0
  23. package/dist/channelRepository/api/muteChannel.d.ts.map +1 -0
  24. package/dist/channelRepository/api/queryChannels.d.ts.map +1 -0
  25. package/dist/channelRepository/api/tests/createChannel.test.d.ts.map +1 -0
  26. package/dist/channelRepository/api/tests/getChannel.test.d.ts.map +1 -0
  27. package/dist/channelRepository/api/tests/getChannelByIds.test.d.ts.map +1 -0
  28. package/dist/channelRepository/api/tests/joinChannel.test.d.ts.map +1 -0
  29. package/dist/channelRepository/api/tests/leaveChannel.test.d.ts.map +1 -0
  30. package/dist/channelRepository/api/tests/muteChannel.test.d.ts.map +1 -0
  31. package/dist/channelRepository/api/tests/queryChannels.test.d.ts.map +1 -0
  32. package/dist/channelRepository/api/tests/unmuteChannel.test.d.ts.map +1 -0
  33. package/dist/channelRepository/api/unmuteChannel.d.ts.map +1 -0
  34. package/dist/channelRepository/api/updateChannel.d.ts.map +1 -0
  35. package/dist/channelRepository/channelMembership/api/addMembers.d.ts.map +1 -0
  36. package/dist/channelRepository/channelMembership/api/index.d.ts.map +1 -0
  37. package/dist/channelRepository/channelMembership/api/queryChannelMembers.d.ts.map +1 -0
  38. package/dist/channelRepository/channelMembership/api/removeMembers.d.ts.map +1 -0
  39. package/dist/channelRepository/channelMembership/api/tests/addMembers.test.d.ts.map +1 -0
  40. package/dist/channelRepository/channelMembership/api/tests/queryChannelMembers.test.d.ts.map +1 -0
  41. package/dist/channelRepository/channelMembership/api/tests/removeMembers.test.d.ts.map +1 -0
  42. package/dist/channelRepository/channelMembership/index.d.ts.map +1 -0
  43. package/dist/channelRepository/channelMembership/observers/getMembers.d.ts.map +1 -0
  44. package/dist/channelRepository/channelMembership/observers/index.d.ts.map +1 -0
  45. package/dist/channelRepository/channelMembership/observers/searchMembers.d.ts.map +1 -0
  46. package/dist/channelRepository/channelMembership/observers/tests/getMembers.test.d.ts.map +1 -0
  47. package/dist/channelRepository/channelMembership/observers/tests/searchMembers.test.d.ts.map +1 -0
  48. package/dist/channelRepository/channelModeration/api/addRole.d.ts.map +1 -0
  49. package/dist/channelRepository/channelModeration/api/banMembers.d.ts.map +1 -0
  50. package/dist/channelRepository/channelModeration/api/index.d.ts.map +1 -0
  51. package/dist/channelRepository/channelModeration/api/removeRole.d.ts.map +1 -0
  52. package/dist/channelRepository/channelModeration/api/unbanMembers.d.ts.map +1 -0
  53. package/dist/channelRepository/channelModeration/index.d.ts.map +1 -0
  54. package/dist/channelRepository/events/index.d.ts.map +1 -0
  55. package/dist/channelRepository/events/onChannelCreated.d.ts.map +1 -0
  56. package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -0
  57. package/dist/channelRepository/events/onChannelJoined.d.ts.map +1 -0
  58. package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -0
  59. package/dist/channelRepository/events/onChannelMemberAdded.d.ts.map +1 -0
  60. package/dist/channelRepository/events/onChannelMemberBanned.d.ts.map +1 -0
  61. package/dist/channelRepository/events/onChannelMemberRemoved.d.ts.map +1 -0
  62. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts.map +1 -0
  63. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts.map +1 -0
  64. package/dist/channelRepository/events/onChannelMemberUnbanned.d.ts.map +1 -0
  65. package/dist/channelRepository/events/onChannelMuted.d.ts.map +1 -0
  66. package/dist/channelRepository/events/onChannelUpdated.d.ts.map +1 -0
  67. package/dist/channelRepository/events/tests/onChannelCreated.test.d.ts.map +1 -0
  68. package/dist/channelRepository/events/tests/onChannelJoined.test.d.ts.map +1 -0
  69. package/dist/channelRepository/events/tests/onChannelMemberAdded.test.d.ts.map +1 -0
  70. package/dist/channelRepository/events/tests/onChannelMemberBanned.test.d.ts.map +1 -0
  71. package/dist/channelRepository/events/tests/onChannelMemberRemoved.test.d.ts.map +1 -0
  72. package/dist/channelRepository/events/tests/onChannelMemberUnbanned.test.d.ts.map +1 -0
  73. package/dist/channelRepository/events/tests/onChannelUpdated.test.d.ts.map +1 -0
  74. package/dist/channelRepository/index.d.ts.map +1 -0
  75. package/dist/channelRepository/observers/getChannel.d.ts.map +1 -0
  76. package/dist/channelRepository/observers/getChannels.d.ts.map +1 -0
  77. package/dist/channelRepository/observers/index.d.ts.map +1 -0
  78. package/dist/channelRepository/observers/observeChannel.d.ts.map +1 -0
  79. package/dist/channelRepository/observers/observeChannels.d.ts.map +1 -0
  80. package/dist/channelRepository/observers/tests/getChannel.test.d.ts.map +1 -0
  81. package/dist/channelRepository/observers/tests/getChannelWithMessagePreview.test.d.ts.map +1 -0
  82. package/dist/channelRepository/observers/tests/getChannels.test.d.ts.map +1 -0
  83. package/dist/channelRepository/observers/tests/getChannelsWithMessagePreview.test.d.ts.map +1 -0
  84. package/dist/channelRepository/utils/getChannelHasMentioned.d.ts.map +1 -0
  85. package/dist/channelRepository/utils/getChannelUnreadCount.d.ts.map +1 -0
  86. package/dist/channelRepository/utils/index.d.ts.map +1 -0
  87. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -0
  88. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts.map +1 -0
  89. package/dist/channelRepository/utils/updateChannelCache.d.ts.map +1 -0
  90. package/dist/core/liveCollection/LiveCollectionController.d.ts +21 -0
  91. package/dist/core/liveCollection/LiveCollectionController.d.ts.map +1 -0
  92. package/dist/core/liveCollection/PaginationController.d.ts +16 -0
  93. package/dist/core/liveCollection/PaginationController.d.ts.map +1 -0
  94. package/dist/core/liveCollection/QueryStreamController.d.ts +8 -0
  95. package/dist/core/liveCollection/QueryStreamController.d.ts.map +1 -0
  96. package/dist/feedRepository/internalApi/getCustomRankingGlobalFeed.d.ts +8 -0
  97. package/dist/feedRepository/internalApi/getCustomRankingGlobalFeed.d.ts.map +1 -0
  98. package/dist/feedRepository/internalApi/index.d.ts +3 -0
  99. package/dist/feedRepository/internalApi/index.d.ts.map +1 -0
  100. package/dist/feedRepository/internalApi/queryGlobalFeed.d.ts +9 -0
  101. package/dist/feedRepository/internalApi/queryGlobalFeed.d.ts.map +1 -0
  102. package/dist/feedRepository/internalApi/test/getCustomRankingGlobalFeed.test.d.ts +2 -0
  103. package/dist/feedRepository/internalApi/test/getCustomRankingGlobalFeed.test.d.ts.map +1 -0
  104. package/dist/feedRepository/internalApi/test/queryGlobalFeed.test.d.ts +2 -0
  105. package/dist/feedRepository/internalApi/test/queryGlobalFeed.test.d.ts.map +1 -0
  106. package/dist/index.cjs.js +462 -222
  107. package/dist/index.d.ts +1 -1
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.esm.js +461 -222
  110. package/dist/index.umd.js +4 -4
  111. package/dist/messageRepository/observers/getMessages.d.ts.map +1 -1
  112. package/dist/messageRepository/observers/liveCollection/MessageLiveCollectionController.d.ts +14 -0
  113. package/dist/messageRepository/observers/liveCollection/MessageLiveCollectionController.d.ts.map +1 -0
  114. package/dist/messageRepository/observers/liveCollection/MessagePaginationController.d.ts +12 -0
  115. package/dist/messageRepository/observers/liveCollection/MessagePaginationController.d.ts.map +1 -0
  116. package/dist/messageRepository/observers/liveCollection/MessageQueryStreamController.d.ts +16 -0
  117. package/dist/messageRepository/observers/liveCollection/MessageQueryStreamController.d.ts.map +1 -0
  118. package/dist/messageRepository/observers/tests/getAroundMessages.test.d.ts +2 -0
  119. package/dist/messageRepository/observers/tests/getAroundMessages.test.d.ts.map +1 -0
  120. package/dist/messageRepository/utils/prepareMessagePayload.d.ts +8 -4
  121. package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
  122. package/dist/userRepository/api/flagUser.d.ts +1 -1
  123. package/dist/userRepository/api/flagUser.d.ts.map +1 -1
  124. package/dist/userRepository/api/getUserByIds.d.ts +1 -1
  125. package/dist/userRepository/api/getUserByIds.d.ts.map +1 -1
  126. package/dist/userRepository/api/isUserFlaggedByMe.d.ts +1 -1
  127. package/dist/userRepository/api/isUserFlaggedByMe.d.ts.map +1 -1
  128. package/dist/userRepository/api/queryBlockedUsers.d.ts +4 -4
  129. package/dist/userRepository/api/queryUsers.d.ts +6 -6
  130. package/dist/userRepository/api/queryUsers.d.ts.map +1 -1
  131. package/dist/userRepository/api/unflagUser.d.ts +1 -1
  132. package/dist/userRepository/api/unflagUser.d.ts.map +1 -1
  133. package/dist/userRepository/api/updateUser.d.ts +4 -4
  134. package/dist/userRepository/api/updateUser.d.ts.map +1 -1
  135. package/dist/userRepository/internalApi/getUser.d.ts +32 -0
  136. package/dist/userRepository/internalApi/getUser.d.ts.map +1 -0
  137. package/dist/userRepository/internalApi/queryUsers.d.ts +34 -0
  138. package/dist/userRepository/internalApi/queryUsers.d.ts.map +1 -0
  139. package/dist/userRepository/observers/getUser.d.ts +2 -2
  140. package/dist/userRepository/observers/getUser.d.ts.map +1 -1
  141. package/dist/utils/isEqual.d.ts.map +1 -1
  142. package/dist/utils/linkedObject/index.d.ts +2 -2
  143. package/dist/utils/linkedObject/userLinkedObject.d.ts +1 -1
  144. package/dist/utils/linkedObject/userLinkedObject.d.ts.map +1 -1
  145. package/dist/utils/tests/dummy/message.d.ts +7 -0
  146. package/dist/utils/tests/dummy/message.d.ts.map +1 -1
  147. package/jest.config.ts +1 -0
  148. package/package.json +4 -1
  149. package/src/@types/core/live.ts +26 -0
  150. package/src/@types/core/paging.ts +6 -2
  151. package/src/@types/domains/comment.ts +1 -1
  152. package/src/@types/domains/message.ts +13 -0
  153. package/src/categoryRepository/api/getCategory.ts +4 -4
  154. package/src/categoryRepository/api/queryCategories.ts +1 -1
  155. package/src/categoryRepository/internalApi/getCategory.ts +43 -0
  156. package/src/categoryRepository/internalApi/index.ts +1 -0
  157. package/src/categoryRepository/internalApi/queryCategories.ts +88 -0
  158. package/src/categoryRepository/observers/getCategories.ts +1 -1
  159. package/src/{channelRepsitory → channelRepository}/api/queryChannels.ts +1 -3
  160. package/src/{channelRepsitory → channelRepository}/channelMembership/api/queryChannelMembers.ts +1 -1
  161. package/src/{channelRepsitory → channelRepository}/channelMembership/api/tests/addMembers.test.ts +1 -1
  162. package/src/{channelRepsitory → channelRepository}/channelMembership/api/tests/removeMembers.test.ts +1 -1
  163. package/src/{channelRepsitory → channelRepository}/observers/getChannels.ts +4 -2
  164. package/src/client/api/login.ts +2 -2
  165. package/src/client/utils/markerSyncEngine.ts +1 -1
  166. package/src/client/utils/messagePreviewEngine.ts +1 -1
  167. package/src/core/liveCollection/LiveCollectionController.ts +127 -0
  168. package/src/core/liveCollection/PaginationController.ts +71 -0
  169. package/src/core/liveCollection/QueryStreamController.ts +21 -0
  170. package/src/feedRepository/internalApi/getCustomRankingGlobalFeed.ts +87 -0
  171. package/src/feedRepository/internalApi/index.ts +2 -0
  172. package/src/feedRepository/internalApi/queryGlobalFeed.ts +95 -0
  173. package/src/feedRepository/internalApi/test/getCustomRankingGlobalFeed.test.ts +138 -0
  174. package/src/feedRepository/internalApi/test/queryGlobalFeed.test.ts +130 -0
  175. package/src/index.ts +1 -1
  176. package/src/messageRepository/observers/getMessages.ts +7 -107
  177. package/src/messageRepository/observers/liveCollection/MessageLiveCollectionController.ts +160 -0
  178. package/src/messageRepository/observers/liveCollection/MessagePaginationController.ts +33 -0
  179. package/src/messageRepository/observers/liveCollection/MessageQueryStreamController.ts +139 -0
  180. package/src/messageRepository/observers/tests/getAroundMessages.test.ts +466 -0
  181. package/src/messageRepository/observers/tests/getMessages.test.ts +130 -76
  182. package/src/messageRepository/utils/prepareMessagePayload.ts +39 -10
  183. package/src/userRepository/api/flagUser.ts +1 -1
  184. package/src/userRepository/api/getUserByIds.ts +1 -1
  185. package/src/userRepository/api/isUserFlaggedByMe.ts +1 -1
  186. package/src/userRepository/api/queryBlockedUsers.ts +4 -4
  187. package/src/userRepository/api/queryUsers.ts +6 -6
  188. package/src/userRepository/api/unflagUser.ts +1 -1
  189. package/src/userRepository/api/updateUser.ts +6 -6
  190. package/src/userRepository/internalApi/getUser.ts +89 -0
  191. package/src/userRepository/internalApi/queryUsers.ts +131 -0
  192. package/src/userRepository/observers/getUser.ts +15 -5
  193. package/src/userRepository/observers/getUsers.ts +3 -3
  194. package/src/userRepository/observers/tests/getUser.test.ts +1 -1
  195. package/src/utils/isEqual.ts +12 -0
  196. package/src/utils/linkedObject/userLinkedObject.ts +1 -1
  197. package/src/utils/tests/dummy/channel.ts +1 -1
  198. package/src/utils/tests/dummy/message.ts +8 -0
  199. package/tsconfig.test.json +6 -0
  200. package/dist/channelRepsitory/api/createChannel.d.ts.map +0 -1
  201. package/dist/channelRepsitory/api/deleteChannel.d.ts.map +0 -1
  202. package/dist/channelRepsitory/api/getChannel.d.ts.map +0 -1
  203. package/dist/channelRepsitory/api/getChannelByIds.d.ts.map +0 -1
  204. package/dist/channelRepsitory/api/index.d.ts.map +0 -1
  205. package/dist/channelRepsitory/api/joinChannel.d.ts.map +0 -1
  206. package/dist/channelRepsitory/api/leaveChannel.d.ts.map +0 -1
  207. package/dist/channelRepsitory/api/markAsRead.d.ts.map +0 -1
  208. package/dist/channelRepsitory/api/muteChannel.d.ts.map +0 -1
  209. package/dist/channelRepsitory/api/queryChannels.d.ts.map +0 -1
  210. package/dist/channelRepsitory/api/tests/createChannel.test.d.ts.map +0 -1
  211. package/dist/channelRepsitory/api/tests/getChannel.test.d.ts.map +0 -1
  212. package/dist/channelRepsitory/api/tests/getChannelByIds.test.d.ts.map +0 -1
  213. package/dist/channelRepsitory/api/tests/joinChannel.test.d.ts.map +0 -1
  214. package/dist/channelRepsitory/api/tests/leaveChannel.test.d.ts.map +0 -1
  215. package/dist/channelRepsitory/api/tests/muteChannel.test.d.ts.map +0 -1
  216. package/dist/channelRepsitory/api/tests/queryChannels.test.d.ts.map +0 -1
  217. package/dist/channelRepsitory/api/tests/unmuteChannel.test.d.ts.map +0 -1
  218. package/dist/channelRepsitory/api/unmuteChannel.d.ts.map +0 -1
  219. package/dist/channelRepsitory/api/updateChannel.d.ts.map +0 -1
  220. package/dist/channelRepsitory/channelMembership/api/addMembers.d.ts.map +0 -1
  221. package/dist/channelRepsitory/channelMembership/api/index.d.ts.map +0 -1
  222. package/dist/channelRepsitory/channelMembership/api/queryChannelMembers.d.ts.map +0 -1
  223. package/dist/channelRepsitory/channelMembership/api/removeMembers.d.ts.map +0 -1
  224. package/dist/channelRepsitory/channelMembership/api/tests/addMembers.test.d.ts.map +0 -1
  225. package/dist/channelRepsitory/channelMembership/api/tests/queryChannelMembers.test.d.ts.map +0 -1
  226. package/dist/channelRepsitory/channelMembership/api/tests/removeMembers.test.d.ts.map +0 -1
  227. package/dist/channelRepsitory/channelMembership/index.d.ts.map +0 -1
  228. package/dist/channelRepsitory/channelMembership/observers/getMembers.d.ts.map +0 -1
  229. package/dist/channelRepsitory/channelMembership/observers/index.d.ts.map +0 -1
  230. package/dist/channelRepsitory/channelMembership/observers/searchMembers.d.ts.map +0 -1
  231. package/dist/channelRepsitory/channelMembership/observers/tests/getMembers.test.d.ts.map +0 -1
  232. package/dist/channelRepsitory/channelMembership/observers/tests/searchMembers.test.d.ts.map +0 -1
  233. package/dist/channelRepsitory/channelModeration/api/addRole.d.ts.map +0 -1
  234. package/dist/channelRepsitory/channelModeration/api/banMembers.d.ts.map +0 -1
  235. package/dist/channelRepsitory/channelModeration/api/index.d.ts.map +0 -1
  236. package/dist/channelRepsitory/channelModeration/api/removeRole.d.ts.map +0 -1
  237. package/dist/channelRepsitory/channelModeration/api/unbanMembers.d.ts.map +0 -1
  238. package/dist/channelRepsitory/channelModeration/index.d.ts.map +0 -1
  239. package/dist/channelRepsitory/events/index.d.ts.map +0 -1
  240. package/dist/channelRepsitory/events/onChannelCreated.d.ts.map +0 -1
  241. package/dist/channelRepsitory/events/onChannelDeleted.d.ts.map +0 -1
  242. package/dist/channelRepsitory/events/onChannelJoined.d.ts.map +0 -1
  243. package/dist/channelRepsitory/events/onChannelLeft.d.ts.map +0 -1
  244. package/dist/channelRepsitory/events/onChannelMemberAdded.d.ts.map +0 -1
  245. package/dist/channelRepsitory/events/onChannelMemberBanned.d.ts.map +0 -1
  246. package/dist/channelRepsitory/events/onChannelMemberRemoved.d.ts.map +0 -1
  247. package/dist/channelRepsitory/events/onChannelMemberRoleAdded.d.ts.map +0 -1
  248. package/dist/channelRepsitory/events/onChannelMemberRoleRemoved.d.ts.map +0 -1
  249. package/dist/channelRepsitory/events/onChannelMemberUnbanned.d.ts.map +0 -1
  250. package/dist/channelRepsitory/events/onChannelMuted.d.ts.map +0 -1
  251. package/dist/channelRepsitory/events/onChannelUpdated.d.ts.map +0 -1
  252. package/dist/channelRepsitory/events/tests/onChannelCreated.test.d.ts.map +0 -1
  253. package/dist/channelRepsitory/events/tests/onChannelJoined.test.d.ts.map +0 -1
  254. package/dist/channelRepsitory/events/tests/onChannelMemberAdded.test.d.ts.map +0 -1
  255. package/dist/channelRepsitory/events/tests/onChannelMemberBanned.test.d.ts.map +0 -1
  256. package/dist/channelRepsitory/events/tests/onChannelMemberRemoved.test.d.ts.map +0 -1
  257. package/dist/channelRepsitory/events/tests/onChannelMemberUnbanned.test.d.ts.map +0 -1
  258. package/dist/channelRepsitory/events/tests/onChannelUpdated.test.d.ts.map +0 -1
  259. package/dist/channelRepsitory/index.d.ts.map +0 -1
  260. package/dist/channelRepsitory/observers/getChannel.d.ts.map +0 -1
  261. package/dist/channelRepsitory/observers/getChannels.d.ts.map +0 -1
  262. package/dist/channelRepsitory/observers/index.d.ts.map +0 -1
  263. package/dist/channelRepsitory/observers/observeChannel.d.ts.map +0 -1
  264. package/dist/channelRepsitory/observers/observeChannels.d.ts.map +0 -1
  265. package/dist/channelRepsitory/observers/tests/getChannel.test.d.ts.map +0 -1
  266. package/dist/channelRepsitory/observers/tests/getChannelWithMessagePreview.test.d.ts.map +0 -1
  267. package/dist/channelRepsitory/observers/tests/getChannels.test.d.ts.map +0 -1
  268. package/dist/channelRepsitory/observers/tests/getChannelsWithMessagePreview.test.d.ts.map +0 -1
  269. package/dist/channelRepsitory/utils/getChannelHasMentioned.d.ts.map +0 -1
  270. package/dist/channelRepsitory/utils/getChannelUnreadCount.d.ts.map +0 -1
  271. package/dist/channelRepsitory/utils/index.d.ts.map +0 -1
  272. package/dist/channelRepsitory/utils/prepareChannelPayload.d.ts.map +0 -1
  273. package/dist/channelRepsitory/utils/tests/prepareChannelPayload.test.d.ts.map +0 -1
  274. package/dist/channelRepsitory/utils/updateChannelCache.d.ts.map +0 -1
  275. /package/dist/{channelRepsitory → channelRepository}/api/createChannel.d.ts +0 -0
  276. /package/dist/{channelRepsitory → channelRepository}/api/deleteChannel.d.ts +0 -0
  277. /package/dist/{channelRepsitory → channelRepository}/api/getChannel.d.ts +0 -0
  278. /package/dist/{channelRepsitory → channelRepository}/api/getChannelByIds.d.ts +0 -0
  279. /package/dist/{channelRepsitory → channelRepository}/api/index.d.ts +0 -0
  280. /package/dist/{channelRepsitory → channelRepository}/api/joinChannel.d.ts +0 -0
  281. /package/dist/{channelRepsitory → channelRepository}/api/leaveChannel.d.ts +0 -0
  282. /package/dist/{channelRepsitory → channelRepository}/api/markAsRead.d.ts +0 -0
  283. /package/dist/{channelRepsitory → channelRepository}/api/muteChannel.d.ts +0 -0
  284. /package/dist/{channelRepsitory → channelRepository}/api/queryChannels.d.ts +0 -0
  285. /package/dist/{channelRepsitory → channelRepository}/api/tests/createChannel.test.d.ts +0 -0
  286. /package/dist/{channelRepsitory → channelRepository}/api/tests/getChannel.test.d.ts +0 -0
  287. /package/dist/{channelRepsitory → channelRepository}/api/tests/getChannelByIds.test.d.ts +0 -0
  288. /package/dist/{channelRepsitory → channelRepository}/api/tests/joinChannel.test.d.ts +0 -0
  289. /package/dist/{channelRepsitory → channelRepository}/api/tests/leaveChannel.test.d.ts +0 -0
  290. /package/dist/{channelRepsitory → channelRepository}/api/tests/muteChannel.test.d.ts +0 -0
  291. /package/dist/{channelRepsitory → channelRepository}/api/tests/queryChannels.test.d.ts +0 -0
  292. /package/dist/{channelRepsitory → channelRepository}/api/tests/unmuteChannel.test.d.ts +0 -0
  293. /package/dist/{channelRepsitory → channelRepository}/api/unmuteChannel.d.ts +0 -0
  294. /package/dist/{channelRepsitory → channelRepository}/api/updateChannel.d.ts +0 -0
  295. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/addMembers.d.ts +0 -0
  296. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/index.d.ts +0 -0
  297. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/queryChannelMembers.d.ts +0 -0
  298. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/removeMembers.d.ts +0 -0
  299. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/tests/addMembers.test.d.ts +0 -0
  300. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/tests/queryChannelMembers.test.d.ts +0 -0
  301. /package/dist/{channelRepsitory → channelRepository}/channelMembership/api/tests/removeMembers.test.d.ts +0 -0
  302. /package/dist/{channelRepsitory → channelRepository}/channelMembership/index.d.ts +0 -0
  303. /package/dist/{channelRepsitory → channelRepository}/channelMembership/observers/getMembers.d.ts +0 -0
  304. /package/dist/{channelRepsitory → channelRepository}/channelMembership/observers/index.d.ts +0 -0
  305. /package/dist/{channelRepsitory → channelRepository}/channelMembership/observers/searchMembers.d.ts +0 -0
  306. /package/dist/{channelRepsitory → channelRepository}/channelMembership/observers/tests/getMembers.test.d.ts +0 -0
  307. /package/dist/{channelRepsitory → channelRepository}/channelMembership/observers/tests/searchMembers.test.d.ts +0 -0
  308. /package/dist/{channelRepsitory → channelRepository}/channelModeration/api/addRole.d.ts +0 -0
  309. /package/dist/{channelRepsitory → channelRepository}/channelModeration/api/banMembers.d.ts +0 -0
  310. /package/dist/{channelRepsitory → channelRepository}/channelModeration/api/index.d.ts +0 -0
  311. /package/dist/{channelRepsitory → channelRepository}/channelModeration/api/removeRole.d.ts +0 -0
  312. /package/dist/{channelRepsitory → channelRepository}/channelModeration/api/unbanMembers.d.ts +0 -0
  313. /package/dist/{channelRepsitory → channelRepository}/channelModeration/index.d.ts +0 -0
  314. /package/dist/{channelRepsitory → channelRepository}/events/index.d.ts +0 -0
  315. /package/dist/{channelRepsitory → channelRepository}/events/onChannelCreated.d.ts +0 -0
  316. /package/dist/{channelRepsitory → channelRepository}/events/onChannelDeleted.d.ts +0 -0
  317. /package/dist/{channelRepsitory → channelRepository}/events/onChannelJoined.d.ts +0 -0
  318. /package/dist/{channelRepsitory → channelRepository}/events/onChannelLeft.d.ts +0 -0
  319. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMemberAdded.d.ts +0 -0
  320. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMemberBanned.d.ts +0 -0
  321. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMemberRemoved.d.ts +0 -0
  322. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMemberRoleAdded.d.ts +0 -0
  323. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMemberRoleRemoved.d.ts +0 -0
  324. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMemberUnbanned.d.ts +0 -0
  325. /package/dist/{channelRepsitory → channelRepository}/events/onChannelMuted.d.ts +0 -0
  326. /package/dist/{channelRepsitory → channelRepository}/events/onChannelUpdated.d.ts +0 -0
  327. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelCreated.test.d.ts +0 -0
  328. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelJoined.test.d.ts +0 -0
  329. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelMemberAdded.test.d.ts +0 -0
  330. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelMemberBanned.test.d.ts +0 -0
  331. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelMemberRemoved.test.d.ts +0 -0
  332. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelMemberUnbanned.test.d.ts +0 -0
  333. /package/dist/{channelRepsitory → channelRepository}/events/tests/onChannelUpdated.test.d.ts +0 -0
  334. /package/dist/{channelRepsitory → channelRepository}/index.d.ts +0 -0
  335. /package/dist/{channelRepsitory → channelRepository}/observers/getChannel.d.ts +0 -0
  336. /package/dist/{channelRepsitory → channelRepository}/observers/getChannels.d.ts +0 -0
  337. /package/dist/{channelRepsitory → channelRepository}/observers/index.d.ts +0 -0
  338. /package/dist/{channelRepsitory → channelRepository}/observers/observeChannel.d.ts +0 -0
  339. /package/dist/{channelRepsitory → channelRepository}/observers/observeChannels.d.ts +0 -0
  340. /package/dist/{channelRepsitory → channelRepository}/observers/tests/getChannel.test.d.ts +0 -0
  341. /package/dist/{channelRepsitory → channelRepository}/observers/tests/getChannelWithMessagePreview.test.d.ts +0 -0
  342. /package/dist/{channelRepsitory → channelRepository}/observers/tests/getChannels.test.d.ts +0 -0
  343. /package/dist/{channelRepsitory → channelRepository}/observers/tests/getChannelsWithMessagePreview.test.d.ts +0 -0
  344. /package/dist/{channelRepsitory → channelRepository}/utils/getChannelHasMentioned.d.ts +0 -0
  345. /package/dist/{channelRepsitory → channelRepository}/utils/getChannelUnreadCount.d.ts +0 -0
  346. /package/dist/{channelRepsitory → channelRepository}/utils/index.d.ts +0 -0
  347. /package/dist/{channelRepsitory → channelRepository}/utils/prepareChannelPayload.d.ts +0 -0
  348. /package/dist/{channelRepsitory → channelRepository}/utils/tests/prepareChannelPayload.test.d.ts +0 -0
  349. /package/dist/{channelRepsitory → channelRepository}/utils/updateChannelCache.d.ts +0 -0
  350. /package/src/{channelRepsitory → channelRepository}/api/createChannel.ts +0 -0
  351. /package/src/{channelRepsitory → channelRepository}/api/deleteChannel.ts +0 -0
  352. /package/src/{channelRepsitory → channelRepository}/api/getChannel.ts +0 -0
  353. /package/src/{channelRepsitory → channelRepository}/api/getChannelByIds.ts +0 -0
  354. /package/src/{channelRepsitory → channelRepository}/api/index.ts +0 -0
  355. /package/src/{channelRepsitory → channelRepository}/api/joinChannel.ts +0 -0
  356. /package/src/{channelRepsitory → channelRepository}/api/leaveChannel.ts +0 -0
  357. /package/src/{channelRepsitory → channelRepository}/api/markAsRead.ts +0 -0
  358. /package/src/{channelRepsitory → channelRepository}/api/muteChannel.ts +0 -0
  359. /package/src/{channelRepsitory → channelRepository}/api/tests/createChannel.test.ts +0 -0
  360. /package/src/{channelRepsitory → channelRepository}/api/tests/getChannel.test.ts +0 -0
  361. /package/src/{channelRepsitory → channelRepository}/api/tests/getChannelByIds.test.ts +0 -0
  362. /package/src/{channelRepsitory → channelRepository}/api/tests/joinChannel.test.ts +0 -0
  363. /package/src/{channelRepsitory → channelRepository}/api/tests/leaveChannel.test.ts +0 -0
  364. /package/src/{channelRepsitory → channelRepository}/api/tests/muteChannel.test.ts +0 -0
  365. /package/src/{channelRepsitory → channelRepository}/api/tests/queryChannels.test.ts +0 -0
  366. /package/src/{channelRepsitory → channelRepository}/api/tests/unmuteChannel.test.ts +0 -0
  367. /package/src/{channelRepsitory → channelRepository}/api/unmuteChannel.ts +0 -0
  368. /package/src/{channelRepsitory → channelRepository}/api/updateChannel.ts +0 -0
  369. /package/src/{channelRepsitory → channelRepository}/channelMembership/api/addMembers.ts +0 -0
  370. /package/src/{channelRepsitory → channelRepository}/channelMembership/api/index.ts +0 -0
  371. /package/src/{channelRepsitory → channelRepository}/channelMembership/api/removeMembers.ts +0 -0
  372. /package/src/{channelRepsitory → channelRepository}/channelMembership/api/tests/queryChannelMembers.test.ts +0 -0
  373. /package/src/{channelRepsitory → channelRepository}/channelMembership/index.ts +0 -0
  374. /package/src/{channelRepsitory → channelRepository}/channelMembership/observers/getMembers.ts +0 -0
  375. /package/src/{channelRepsitory → channelRepository}/channelMembership/observers/index.ts +0 -0
  376. /package/src/{channelRepsitory → channelRepository}/channelMembership/observers/searchMembers.ts +0 -0
  377. /package/src/{channelRepsitory → channelRepository}/channelMembership/observers/tests/getMembers.test.ts +0 -0
  378. /package/src/{channelRepsitory → channelRepository}/channelMembership/observers/tests/searchMembers.test.ts +0 -0
  379. /package/src/{channelRepsitory → channelRepository}/channelModeration/api/addRole.ts +0 -0
  380. /package/src/{channelRepsitory → channelRepository}/channelModeration/api/banMembers.ts +0 -0
  381. /package/src/{channelRepsitory → channelRepository}/channelModeration/api/index.ts +0 -0
  382. /package/src/{channelRepsitory → channelRepository}/channelModeration/api/removeRole.ts +0 -0
  383. /package/src/{channelRepsitory → channelRepository}/channelModeration/api/unbanMembers.ts +0 -0
  384. /package/src/{channelRepsitory → channelRepository}/channelModeration/index.ts +0 -0
  385. /package/src/{channelRepsitory → channelRepository}/events/index.ts +0 -0
  386. /package/src/{channelRepsitory → channelRepository}/events/onChannelCreated.ts +0 -0
  387. /package/src/{channelRepsitory → channelRepository}/events/onChannelDeleted.ts +0 -0
  388. /package/src/{channelRepsitory → channelRepository}/events/onChannelJoined.ts +0 -0
  389. /package/src/{channelRepsitory → channelRepository}/events/onChannelLeft.ts +0 -0
  390. /package/src/{channelRepsitory → channelRepository}/events/onChannelMemberAdded.ts +0 -0
  391. /package/src/{channelRepsitory → channelRepository}/events/onChannelMemberBanned.ts +0 -0
  392. /package/src/{channelRepsitory → channelRepository}/events/onChannelMemberRemoved.ts +0 -0
  393. /package/src/{channelRepsitory → channelRepository}/events/onChannelMemberRoleAdded.ts +0 -0
  394. /package/src/{channelRepsitory → channelRepository}/events/onChannelMemberRoleRemoved.ts +0 -0
  395. /package/src/{channelRepsitory → channelRepository}/events/onChannelMemberUnbanned.ts +0 -0
  396. /package/src/{channelRepsitory → channelRepository}/events/onChannelMuted.ts +0 -0
  397. /package/src/{channelRepsitory → channelRepository}/events/onChannelUpdated.ts +0 -0
  398. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelCreated.test.ts +0 -0
  399. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelJoined.test.ts +0 -0
  400. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelMemberAdded.test.ts +0 -0
  401. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelMemberBanned.test.ts +0 -0
  402. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelMemberRemoved.test.ts +0 -0
  403. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelMemberUnbanned.test.ts +0 -0
  404. /package/src/{channelRepsitory → channelRepository}/events/tests/onChannelUpdated.test.ts +0 -0
  405. /package/src/{channelRepsitory → channelRepository}/index.ts +0 -0
  406. /package/src/{channelRepsitory → channelRepository}/observers/getChannel.ts +0 -0
  407. /package/src/{channelRepsitory → channelRepository}/observers/index.ts +0 -0
  408. /package/src/{channelRepsitory → channelRepository}/observers/observeChannel.ts +0 -0
  409. /package/src/{channelRepsitory → channelRepository}/observers/observeChannels.ts +0 -0
  410. /package/src/{channelRepsitory → channelRepository}/observers/tests/getChannel.test.ts +0 -0
  411. /package/src/{channelRepsitory → channelRepository}/observers/tests/getChannelWithMessagePreview.test.ts +0 -0
  412. /package/src/{channelRepsitory → channelRepository}/observers/tests/getChannels.test.ts +0 -0
  413. /package/src/{channelRepsitory → channelRepository}/observers/tests/getChannelsWithMessagePreview.test.ts +0 -0
  414. /package/src/{channelRepsitory → channelRepository}/utils/getChannelHasMentioned.ts +0 -0
  415. /package/src/{channelRepsitory → channelRepository}/utils/getChannelUnreadCount.ts +0 -0
  416. /package/src/{channelRepsitory → channelRepository}/utils/index.ts +0 -0
  417. /package/src/{channelRepsitory → channelRepository}/utils/prepareChannelPayload.ts +0 -0
  418. /package/src/{channelRepsitory → channelRepository}/utils/tests/prepareChannelPayload.test.ts +0 -0
  419. /package/src/{channelRepsitory → channelRepository}/utils/updateChannelCache.ts +0 -0
@@ -0,0 +1,43 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { pullFromCache } from '~/cache/api';
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
5
+
6
+ export const getCategory = async (
7
+ categoryId: Amity.InternalCategory['categoryId'],
8
+ ): Promise<Amity.Cached<Amity.InternalCategory>> => {
9
+ const client = getActiveClient();
10
+ client.log('category/getCategory', categoryId);
11
+
12
+ const { data } = await client.http.get<Amity.CategoryPayload>(
13
+ `/api/v3/community-categories/${encodeURIComponent(categoryId)}`,
14
+ );
15
+
16
+ const cachedAt = client.cache && Date.now();
17
+ if (client.cache) ingestInCache(data, { cachedAt });
18
+
19
+ const { categories } = data;
20
+
21
+ return {
22
+ data: categories.find(category => category.categoryId === categoryId)!,
23
+ cachedAt,
24
+ };
25
+ };
26
+
27
+ getCategory.locally = (
28
+ categoryId: Amity.InternalCategory['categoryId'],
29
+ ): Amity.Cached<Amity.InternalCategory> | undefined => {
30
+ const client = getActiveClient();
31
+ client.log('category/getCategory.locally', categoryId);
32
+
33
+ if (!client.cache) return;
34
+
35
+ const cached = pullFromCache<Amity.InternalCategory>(['category', 'get', categoryId]);
36
+
37
+ if (!cached) return;
38
+
39
+ return {
40
+ data: cached.data,
41
+ cachedAt: cached.cachedAt,
42
+ };
43
+ };
@@ -0,0 +1 @@
1
+ export * from './getCategory';
@@ -0,0 +1,88 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { toToken, toPage } from '~/core/query';
4
+
5
+ import { pullFromCache, pushToCache } from '~/cache/api';
6
+ import { ingestInCache } from '~/cache/api/ingestInCache';
7
+ import { getResolver } from '~/core/model';
8
+
9
+ import { inferIsDeleted } from '~/utils/inferIsDeleted';
10
+
11
+ export const queryCategories = async (
12
+ query?: Amity.QueryCategories,
13
+ ): Promise<Amity.Cached<Amity.Paged<Amity.InternalCategory, Amity.Page>>> => {
14
+ const client = getActiveClient();
15
+ client.log('category/queryCategories', query);
16
+
17
+ const { page = { limit: 10 }, includeDeleted, ...params } = query ?? {};
18
+
19
+ const { data } = await client.http.get<Amity.CategoryPayload & Amity.Pagination>(
20
+ `/api/v3/community-categories`,
21
+ {
22
+ params: {
23
+ ...params,
24
+ isDeleted: inferIsDeleted(includeDeleted),
25
+ options: {
26
+ token: toToken(page, 'skiplimit'),
27
+ },
28
+ },
29
+ },
30
+ );
31
+
32
+ const { paging, ...payload } = data;
33
+ const { categories } = payload;
34
+
35
+ const cachedAt = client.cache && Date.now();
36
+
37
+ if (client.cache) {
38
+ ingestInCache(payload as Amity.CategoryPayload, { cachedAt });
39
+
40
+ const cacheKey = [
41
+ 'category',
42
+ 'query',
43
+ { ...params, includeDeleted, options: { ...page } } as Amity.Serializable,
44
+ ];
45
+ pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
46
+ }
47
+
48
+ const nextPage = toPage(paging.next);
49
+ const prevPage = toPage(paging.previous);
50
+
51
+ return {
52
+ data: categories,
53
+ cachedAt,
54
+ prevPage,
55
+ nextPage,
56
+ };
57
+ };
58
+
59
+ queryCategories.locally = (
60
+ query: Parameters<typeof queryCategories>[0],
61
+ ): Amity.Cached<Amity.Paged<Amity.InternalCategory, Amity.Page>> | undefined => {
62
+ const client = getActiveClient();
63
+ client.log('category/queryCategories.locally', query);
64
+
65
+ if (!client.cache) return;
66
+
67
+ const { page = { limit: 10 }, ...params } = query ?? {};
68
+
69
+ const queryKey = ['category', 'query', { ...params, options: { ...page } } as Amity.Serializable];
70
+ const { data, cachedAt } =
71
+ pullFromCache<{ categories: Pick<Amity.InternalCategory, 'categoryId'>[] } & Amity.Pagination>(
72
+ queryKey,
73
+ ) ?? {};
74
+
75
+ if (!data?.categories.length) return;
76
+
77
+ const categories: Amity.InternalCategory[] = data.categories
78
+ .map(categoryId => pullFromCache<Amity.InternalCategory>(['category', 'get', categoryId])!)
79
+ .filter(Boolean)
80
+ .map(({ data }) => data);
81
+
82
+ const prevPage = toPage(data?.paging.previous);
83
+ const nextPage = toPage(data?.paging.next);
84
+
85
+ return categories.length === data?.categories?.length
86
+ ? { data: categories, cachedAt, prevPage, nextPage }
87
+ : undefined;
88
+ };
@@ -16,7 +16,7 @@ import {
16
16
  COLLECTION_DEFAULT_PAGINATION_LIMIT,
17
17
  ENABLE_CACHE_MESSAGE,
18
18
  } from '~/utils/constants';
19
- import { queryCategories } from '../api/queryCategories';
19
+ import { queryCategories } from '../internalApi/queryCategories';
20
20
  import { LinkedObject } from '~/utils/linkedObject';
21
21
 
22
22
  /* begin_public_function
@@ -40,9 +40,7 @@ export const queryChannels = async (
40
40
  ...params,
41
41
  keyword: displayName,
42
42
  filter: membership,
43
- options: {
44
- token: page,
45
- },
43
+ options: page ? { token: page } : { limit },
46
44
  },
47
45
  },
48
46
  );
@@ -1,4 +1,4 @@
1
- import { prepareChannelPayload } from '~/channelRepsitory/utils';
1
+ import { prepareChannelPayload } from '~/channelRepository/utils';
2
2
  import { getActiveClient } from '~/client/api';
3
3
 
4
4
  import { toPage, toToken } from '~/core/query';
@@ -16,7 +16,7 @@ import {
16
16
  disconnectClient,
17
17
  } from '~/utils/tests';
18
18
 
19
- import { onChannelMemberAdded } from '~/channelRepsitory/events';
19
+ import { onChannelMemberAdded } from '~/channelRepository/events';
20
20
  import { addMembers } from '../addMembers';
21
21
  import * as getChannelMarkers from '~/marker/api/getChannelMarkers';
22
22
 
@@ -15,7 +15,7 @@ import {
15
15
  disconnectClient,
16
16
  } from '~/utils/tests';
17
17
 
18
- import { onChannelMemberRemoved } from '~/channelRepsitory/events';
18
+ import { onChannelMemberRemoved } from '~/channelRepository/events';
19
19
 
20
20
  import { removeMembers } from '../removeMembers';
21
21
 
@@ -174,10 +174,10 @@ export const getChannels = (
174
174
 
175
175
  if (!initial && channels.length > 0 && !collection?.params.page) return;
176
176
 
177
+ const pagingCondition = initial ? { limit } : { page: collection?.params.page };
177
178
  const query = createQuery(queryChannels, {
178
179
  ...queryParams,
179
- page: !initial ? collection?.params.page : undefined,
180
- limit,
180
+ ...pagingCondition,
181
181
  });
182
182
 
183
183
  runQuery(
@@ -285,6 +285,8 @@ export const getChannels = (
285
285
  (callback: Amity.Listener<Amity.Message>) => {
286
286
  const updateMessagePreview = async (message: Amity.Message) => {
287
287
  const messagePreviewSetting = await getMessagePreviewSetting();
288
+ if (messagePreviewSetting === Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW) return;
289
+
288
290
  if (messagePreviewSetting === Amity.MessagePreviewSetting.MESSAGE_PREVIEW_INCLUDE_DELETED)
289
291
  await handleMessageUpdated(message);
290
292
 
@@ -3,8 +3,8 @@ import { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';
3
3
  /* eslint-disable require-atomic-updates */
4
4
  import { getDeviceId } from '~/core/device';
5
5
  import { proxyWebsocketEvents } from '~/core/events';
6
- import { onChannelDeleted } from '~/channelRepsitory/events/onChannelDeleted';
7
- import { onChannelMemberBanned } from '~/channelRepsitory/events/onChannelMemberBanned';
6
+ import { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';
7
+ import { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';
8
8
 
9
9
  import { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';
10
10
  import { onUserDeleted } from '~/userRepository/events/onUserDeleted';
@@ -3,7 +3,7 @@ import {
3
3
  onChannelDeleted,
4
4
  onChannelJoined,
5
5
  onChannelLeft,
6
- } from '~/channelRepsitory';
6
+ } from '~/channelRepository';
7
7
  import { onUserMarkerSync } from '~/marker/events/onUserMarkerSync';
8
8
  import { setIntervalTask } from '~/utils/timer';
9
9
  import { getUserMarker } from '~/marker/api';
@@ -1,7 +1,7 @@
1
1
  import { dropFromCache, pullFromCache, pushToCache, queryCache } from '~/cache/api';
2
2
  import { getChatSettings } from '../api/getChatSettings';
3
3
 
4
- import { getChannelByIds } from '~/channelRepsitory/api/getChannelByIds';
4
+ import { getChannelByIds } from '~/channelRepository/api/getChannelByIds';
5
5
  import { getSubChannels as getSubChannelByIds } from '~/subChannelRepository/api/getSubChannels';
6
6
 
7
7
  const convertMessagePreviewSetting = (
@@ -0,0 +1,127 @@
1
+ import { PaginationController } from './PaginationController';
2
+ import { isEqual } from '~/utils/isEqual';
3
+
4
+ export abstract class LiveCollectionController<
5
+ TPayloadDomain extends keyof Amity.Payloads,
6
+ TQueryParams,
7
+ TPublicPayload,
8
+ TPaginationController extends PaginationController<TPayloadDomain, TQueryParams>,
9
+ > {
10
+ protected paginationController: TPaginationController;
11
+
12
+ protected queryStreamId: string;
13
+
14
+ protected cacheKey: string[];
15
+
16
+ protected callback: Amity.LiveCollectionCallback<TPublicPayload>;
17
+
18
+ protected snapshot: TPublicPayload[] | undefined;
19
+
20
+ constructor(
21
+ paginationController: TPaginationController,
22
+ queryStreamId: string,
23
+ cacheKey: string[],
24
+ callback: Amity.LiveCollectionCallback<TPublicPayload>,
25
+ ) {
26
+ this.paginationController = paginationController;
27
+ this.queryStreamId = queryStreamId;
28
+ this.cacheKey = cacheKey;
29
+ this.callback = callback;
30
+ }
31
+
32
+ private async refresh() {
33
+ try {
34
+ const result = await this.paginationController.loadFirstPage();
35
+ if (!result) return;
36
+
37
+ await this.persistModel(result);
38
+
39
+ this.persistQueryStream({
40
+ response: result,
41
+ direction: Amity.LiveCollectionPageDirection.NEXT,
42
+ refresh: true,
43
+ });
44
+ this.notifyChange({ origin: Amity.LiveDataOrigin.SERVER, loading: false });
45
+ } catch (e) {
46
+ this.notifyChange({ origin: Amity.LiveDataOrigin.SERVER, loading: false, error: e });
47
+ }
48
+ }
49
+
50
+ protected loadPage(
51
+ initial = false,
52
+ direction: Amity.LiveCollectionPageDirection = Amity.LiveCollectionPageDirection.NEXT,
53
+ ) {
54
+ this.setup();
55
+
56
+ this.notifyChange({ origin: Amity.LiveDataOrigin.LOCAL, loading: true });
57
+
58
+ if (initial) {
59
+ this.refresh();
60
+ } else if (direction === Amity.LiveCollectionPageDirection.PREV) {
61
+ this.loadPrevPage();
62
+ } else if (direction === Amity.LiveCollectionPageDirection.NEXT) {
63
+ this.loadNextPage();
64
+ }
65
+ }
66
+
67
+ protected abstract setup(): void;
68
+
69
+ async loadNextPage() {
70
+ try {
71
+ const result = await this.paginationController.loadNextPage();
72
+ if (!result) return;
73
+
74
+ await this.persistModel(result);
75
+
76
+ this.persistQueryStream({
77
+ response: result,
78
+ direction: Amity.LiveCollectionPageDirection.NEXT,
79
+ });
80
+ this.notifyChange({ origin: Amity.LiveDataOrigin.SERVER, loading: false });
81
+ } catch (e) {
82
+ this.notifyChange({ origin: Amity.LiveDataOrigin.SERVER, loading: false, error: e });
83
+ }
84
+ }
85
+
86
+ async loadPrevPage() {
87
+ try {
88
+ const result = await this.paginationController.loadPreviousPage();
89
+ if (!result) return;
90
+
91
+ await this.persistModel(result);
92
+
93
+ this.persistQueryStream({
94
+ response: result,
95
+ direction: Amity.LiveCollectionPageDirection.PREV,
96
+ });
97
+ this.notifyChange({ origin: Amity.LiveDataOrigin.SERVER, loading: false });
98
+ } catch (e) {
99
+ this.notifyChange({ origin: Amity.LiveDataOrigin.SERVER, loading: false, error: e });
100
+ }
101
+ }
102
+
103
+ protected abstract persistModel(
104
+ response: Amity.Payloads[TPayloadDomain] & Amity.Pagination,
105
+ ): Promise<void>;
106
+
107
+ protected abstract persistQueryStream({
108
+ response,
109
+ direction,
110
+ refresh,
111
+ }: Amity.LiveCollectionPersistQueryStreamParams<TPayloadDomain>): void;
112
+
113
+ abstract startSubscription(): Amity.Unsubscriber[];
114
+
115
+ abstract notifyChange(params: Amity.LiveCollectionNotifyParams): void;
116
+
117
+ protected shouldNotify(data: TPublicPayload[]) {
118
+ if (isEqual(this.snapshot, data)) return false;
119
+
120
+ this.snapshot = data;
121
+ return true;
122
+ }
123
+
124
+ public getCacheKey() {
125
+ return this.cacheKey;
126
+ }
127
+ }
@@ -0,0 +1,71 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { getActiveClient } from '~/client/api';
3
+
4
+ export abstract class PaginationController<
5
+ TPayloadDomain extends keyof Amity.Payloads,
6
+ TQueryParams,
7
+ > {
8
+ private queryParams: Amity.LiveCollectionParams<TQueryParams>;
9
+
10
+ protected http: AxiosInstance;
11
+
12
+ private previousToken: string | undefined;
13
+
14
+ private nextToken: string | undefined;
15
+
16
+ constructor(queryParams: Amity.LiveCollectionParams<TQueryParams>) {
17
+ const { http } = getActiveClient();
18
+
19
+ this.queryParams = queryParams;
20
+ this.http = http;
21
+ }
22
+
23
+ loadFirstPage(): Promise<(Amity.Payloads[TPayloadDomain] & Amity.Pagination) | undefined> {
24
+ return this.onFetch(Amity.LiveCollectionPageDirection.FIRST);
25
+ }
26
+
27
+ loadNextPage(): Promise<(Amity.Payloads[TPayloadDomain] & Amity.Pagination) | undefined> {
28
+ return this.onFetch(Amity.LiveCollectionPageDirection.NEXT);
29
+ }
30
+
31
+ loadPreviousPage(): Promise<(Amity.Payloads[TPayloadDomain] & Amity.Pagination) | undefined> {
32
+ return this.onFetch(Amity.LiveCollectionPageDirection.PREV);
33
+ }
34
+
35
+ async onFetch(
36
+ direction: Amity.LiveCollectionPageDirection = Amity.LiveCollectionPageDirection.FIRST,
37
+ ) {
38
+ if (direction === 'prev' && !this.previousToken) return;
39
+ if (direction === 'next' && !this.nextToken) return;
40
+
41
+ let token: string | undefined;
42
+
43
+ if (direction === 'prev') token = this.previousToken;
44
+ if (direction === 'next') token = this.nextToken;
45
+
46
+ const queryResponse = await this.getRequest(this.queryParams, token);
47
+
48
+ if (direction === 'first') {
49
+ this.nextToken = queryResponse.paging?.next;
50
+ this.previousToken = queryResponse.paging?.previous;
51
+ }
52
+
53
+ if (direction === 'prev') this.previousToken = queryResponse.paging?.previous;
54
+ if (direction === 'next') this.nextToken = queryResponse.paging?.next;
55
+
56
+ return queryResponse;
57
+ }
58
+
59
+ abstract getRequest(
60
+ queryParams: TQueryParams,
61
+ token: string | undefined,
62
+ ): Promise<Amity.Payloads[TPayloadDomain] & Amity.Pagination>;
63
+
64
+ getNextToken(): string | undefined {
65
+ return this.nextToken;
66
+ }
67
+
68
+ getPrevToken(): string | undefined {
69
+ return this.previousToken;
70
+ }
71
+ }
@@ -0,0 +1,21 @@
1
+ export abstract class QueryStreamController<
2
+ TQueryResponse extends ValueOf<Amity.Payloads>,
3
+ TQueryParams,
4
+ > {
5
+ protected query: Amity.LiveCollectionParams<TQueryParams>;
6
+
7
+ protected cacheKey: string[];
8
+
9
+ constructor(query: Amity.LiveCollectionParams<TQueryParams>, cacheKey: string[]) {
10
+ this.query = query;
11
+ this.cacheKey = cacheKey;
12
+ }
13
+
14
+ abstract saveToMainDB(response: TQueryResponse): Promise<void>;
15
+
16
+ abstract appendToQueryStream(
17
+ response: TQueryResponse & Amity.Pagination,
18
+ direction: Amity.LiveCollectionPageDirection,
19
+ refresh: boolean | undefined,
20
+ ): void;
21
+ }
@@ -0,0 +1,87 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { toPage, toToken } from '~/core/query';
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
5
+ import { pullFromCache, pushToCache } from '~/cache/api';
6
+ import { getResolver } from '~/core/model';
7
+ import { prepareMembershipPayload } from '~/group/utils';
8
+
9
+ export const getCustomRankingGlobalFeed = async (query?: {
10
+ dataTypes?: ('video' | 'image' | 'file' | 'liveStream')[];
11
+ page?: Amity.Page;
12
+ }): Promise<Amity.Cached<Amity.Paged<Amity.InternalPost>>> => {
13
+ const client = getActiveClient();
14
+ client.log('feed/getCustomRankingGlobalFeed', query);
15
+
16
+ const { page, ...params } = query ?? {};
17
+
18
+ const { data: queryPayload } = await client.http.get<Amity.PostPayload & Amity.Pagination>(
19
+ `/api/v5/me/global-feeds`,
20
+ {
21
+ params: {
22
+ ...params,
23
+ options: {
24
+ token: toToken(page, 'skiplimit'),
25
+ },
26
+ },
27
+ },
28
+ );
29
+
30
+ const { paging, ...payload } = queryPayload;
31
+
32
+ const data = prepareMembershipPayload(payload, 'communityUsers');
33
+
34
+ const { posts } = data;
35
+
36
+ const cachedAt = client.cache && Date.now();
37
+
38
+ if (client.cache) {
39
+ ingestInCache(data);
40
+
41
+ const cacheKey = [
42
+ 'customGlobalFeed',
43
+ 'query',
44
+ { ...params, options: { ...page } } as Amity.Serializable,
45
+ ];
46
+ pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
47
+ }
48
+
49
+ const nextPage = toPage(paging.next);
50
+ const prevPage = toPage(paging.previous);
51
+
52
+ return { data: posts, cachedAt, prevPage, nextPage };
53
+ };
54
+
55
+ getCustomRankingGlobalFeed.locally = (
56
+ query?: Parameters<typeof getCustomRankingGlobalFeed>[0],
57
+ ): Amity.Cached<Amity.Paged<Amity.InternalPost>> | undefined => {
58
+ const client = getActiveClient();
59
+ client.log('post/getCustomRankingGlobalFeed.locally', query);
60
+
61
+ if (!client.cache) return;
62
+
63
+ const { page, ...params } = query ?? {};
64
+
65
+ const queryKey = [
66
+ 'customGlobalFeed',
67
+ 'query',
68
+ { ...params, options: { ...page } } as Amity.Serializable,
69
+ ];
70
+
71
+ const { data, cachedAt } =
72
+ pullFromCache<{ posts: Amity.InternalPost['postId'][] } & Amity.Pagination>(queryKey) ?? {};
73
+
74
+ if (!data?.posts.length) return;
75
+
76
+ const posts: Amity.InternalPost[] = data.posts
77
+ .map(postId => pullFromCache<Amity.InternalPost>(['post', 'get', postId])!)
78
+ .filter(Boolean)
79
+ .map(({ data }) => data);
80
+
81
+ const prevPage = toPage(data?.paging.previous);
82
+ const nextPage = toPage(data?.paging.next);
83
+
84
+ return posts.length === data?.posts?.length
85
+ ? { data: posts, cachedAt, prevPage, nextPage }
86
+ : undefined;
87
+ };
@@ -0,0 +1,2 @@
1
+ export * from './queryGlobalFeed';
2
+ export * from './getCustomRankingGlobalFeed';
@@ -0,0 +1,95 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { toPage, toToken } from '~/core/query';
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
5
+ import { pullFromCache, pushToCache } from '~/cache/api';
6
+ import { getResolver } from '~/core/model';
7
+ import { prepareMembershipPayload } from '~/group/utils';
8
+
9
+ export const queryGlobalFeed = async (query?: {
10
+ dataTypes?: ('video' | 'image' | 'file' | 'liveStream')[];
11
+ useCustomRanking?: boolean;
12
+ page?: Amity.Page;
13
+ }): Promise<Amity.Cached<Amity.Paged<Amity.InternalPost>>> => {
14
+ const client = getActiveClient();
15
+ client.log('feed/queryGlobalFeed', query);
16
+
17
+ const { useCustomRanking, page, ...params } = query ?? {};
18
+
19
+ /*
20
+ * TODO: Remove useCustomRanking key from query
21
+ */
22
+ if (useCustomRanking)
23
+ console.warn(
24
+ 'The param "useCustomRanking" has been deprecated. To get custom ranking feed use FeedRepository.getCustomRankingGlobalFeed instead',
25
+ );
26
+
27
+ const { data: queryPayload } = await client.http.get<Amity.PostPayload & Amity.Pagination>(
28
+ `/api/v4/me/global-feeds`,
29
+ {
30
+ params: {
31
+ ...params,
32
+ options: {
33
+ token: toToken(page, 'skiplimit'),
34
+ },
35
+ },
36
+ },
37
+ );
38
+
39
+ const { paging, ...payload } = queryPayload;
40
+
41
+ const data = prepareMembershipPayload(payload, 'communityUsers');
42
+
43
+ const { posts } = data;
44
+
45
+ const cachedAt = client.cache && Date.now();
46
+
47
+ if (client.cache) {
48
+ ingestInCache(data);
49
+
50
+ const cacheKey = [
51
+ 'globalFeed',
52
+ 'query',
53
+ { ...params, options: { ...page } } as Amity.Serializable,
54
+ ];
55
+ pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
56
+ }
57
+
58
+ const nextPage = toPage(paging.next);
59
+ const prevPage = toPage(paging.previous);
60
+
61
+ return { data: posts, cachedAt, prevPage, nextPage };
62
+ };
63
+
64
+ queryGlobalFeed.locally = (
65
+ query?: Parameters<typeof queryGlobalFeed>[0],
66
+ ): Amity.Cached<Amity.Paged<Amity.InternalPost>> | undefined => {
67
+ const client = getActiveClient();
68
+ client.log('post/queryGlobalFeed.locally', query);
69
+
70
+ if (!client.cache) return;
71
+
72
+ const { page, ...params } = query ?? {};
73
+
74
+ const queryKey = [
75
+ 'globalFeed',
76
+ 'query',
77
+ { ...params, options: { ...page } } as Amity.Serializable,
78
+ ];
79
+ const { data, cachedAt } =
80
+ pullFromCache<{ posts: Amity.InternalPost['postId'][] } & Amity.Pagination>(queryKey) ?? {};
81
+
82
+ if (!data?.posts.length) return;
83
+
84
+ const posts: Amity.InternalPost[] = data.posts
85
+ .map(postId => pullFromCache<Amity.InternalPost>(['post', 'get', postId])!)
86
+ .filter(Boolean)
87
+ .map(({ data }) => data);
88
+
89
+ const prevPage = toPage(data?.paging.previous);
90
+ const nextPage = toPage(data?.paging.next);
91
+
92
+ return posts.length === data?.posts?.length
93
+ ? { data: posts, cachedAt, prevPage, nextPage }
94
+ : undefined;
95
+ };