@amityco/ts-sdk 0.0.1-e26de88.0 → 0.0.1-e556efe.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 (340) hide show
  1. package/.eslintrc.json +13 -10
  2. package/dist/@types/core/events.d.ts +15 -10
  3. package/dist/@types/core/events.d.ts.map +1 -1
  4. package/dist/@types/core/live.d.ts +23 -0
  5. package/dist/@types/core/live.d.ts.map +1 -0
  6. package/dist/@types/core/model.d.ts +6 -0
  7. package/dist/@types/core/model.d.ts.map +1 -1
  8. package/dist/@types/core/paging.d.ts +1 -1
  9. package/dist/@types/core/paging.d.ts.map +1 -1
  10. package/dist/@types/core/payload.d.ts +15 -6
  11. package/dist/@types/core/payload.d.ts.map +1 -1
  12. package/dist/@types/domains/channel.d.ts +1 -2
  13. package/dist/@types/domains/channel.d.ts.map +1 -1
  14. package/dist/@types/domains/comment.d.ts +15 -0
  15. package/dist/@types/domains/comment.d.ts.map +1 -1
  16. package/dist/@types/domains/content.d.ts +5 -2
  17. package/dist/@types/domains/content.d.ts.map +1 -1
  18. package/dist/@types/domains/follow.d.ts +2 -1
  19. package/dist/@types/domains/follow.d.ts.map +1 -1
  20. package/dist/@types/domains/message.d.ts +5 -2
  21. package/dist/@types/domains/message.d.ts.map +1 -1
  22. package/dist/@types/domains/poll.d.ts +27 -0
  23. package/dist/@types/domains/poll.d.ts.map +1 -0
  24. package/dist/@types/domains/post.d.ts +18 -1
  25. package/dist/@types/domains/post.d.ts.map +1 -1
  26. package/dist/@types/domains/reaction.d.ts +18 -8
  27. package/dist/@types/domains/reaction.d.ts.map +1 -1
  28. package/dist/@types/domains/user.d.ts +2 -1
  29. package/dist/@types/domains/user.d.ts.map +1 -1
  30. package/dist/@types/index.d.ts +2 -0
  31. package/dist/@types/index.d.ts.map +1 -1
  32. package/dist/cache/api/ingestInCache.d.ts +1 -1
  33. package/dist/cache/api/ingestInCache.d.ts.map +1 -1
  34. package/dist/cache/api/mergeInCache.d.ts +1 -1
  35. package/dist/cache/api/mergeInCache.d.ts.map +1 -1
  36. package/dist/category/api/getCategory.d.ts +18 -2
  37. package/dist/category/api/getCategory.d.ts.map +1 -1
  38. package/dist/category/api/queryCategories.d.ts +23 -11
  39. package/dist/category/api/queryCategories.d.ts.map +1 -1
  40. package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
  41. package/dist/channel/api/banChannelMembers.d.ts +16 -0
  42. package/dist/channel/api/banChannelMembers.d.ts.map +1 -0
  43. package/dist/channel/api/deleteChannel.d.ts.map +1 -1
  44. package/dist/channel/api/index.d.ts +2 -0
  45. package/dist/channel/api/index.d.ts.map +1 -1
  46. package/dist/channel/api/queryChannelMembers.d.ts +2 -1
  47. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
  48. package/dist/channel/api/queryChannels.d.ts +9 -6
  49. package/dist/channel/api/queryChannels.d.ts.map +1 -1
  50. package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
  51. package/dist/channel/api/unbanChannelMembers.d.ts +16 -0
  52. package/dist/channel/api/unbanChannelMembers.d.ts.map +1 -0
  53. package/dist/channel/api/updateChannel.d.ts +1 -1
  54. package/dist/channel/api/updateChannel.d.ts.map +1 -1
  55. package/dist/channel/events/index.d.ts +2 -2
  56. package/dist/channel/events/index.d.ts.map +1 -1
  57. package/dist/channel/events/onChannelMemberAdded.d.ts +17 -0
  58. package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -0
  59. package/dist/channel/events/onChannelMemberRemoved.d.ts +17 -0
  60. package/dist/channel/events/onChannelMemberRemoved.d.ts.map +1 -0
  61. package/dist/channel/observers/observeChannel.d.ts.map +1 -1
  62. package/dist/client/api/connectClient.d.ts +7 -4
  63. package/dist/client/api/connectClient.d.ts.map +1 -1
  64. package/dist/client/api/createClient.d.ts +1 -1
  65. package/dist/client/api/createClient.d.ts.map +1 -1
  66. package/dist/comment/api/queryComments.d.ts +1 -8
  67. package/dist/comment/api/queryComments.d.ts.map +1 -1
  68. package/dist/comment/observers/index.d.ts +1 -0
  69. package/dist/comment/observers/index.d.ts.map +1 -1
  70. package/dist/comment/observers/liveComments.d.ts +22 -0
  71. package/dist/comment/observers/liveComments.d.ts.map +1 -0
  72. package/dist/comment/observers/observeComments.d.ts.map +1 -1
  73. package/dist/community/api/addCommunityMembersRoles.d.ts +18 -0
  74. package/dist/community/api/addCommunityMembersRoles.d.ts.map +1 -0
  75. package/dist/community/api/getRecommendedCommunities.d.ts +1 -1
  76. package/dist/community/api/getRecommendedCommunities.d.ts.map +1 -1
  77. package/dist/community/api/getTopTrendingCommunities.d.ts +1 -1
  78. package/dist/community/api/getTopTrendingCommunities.d.ts.map +1 -1
  79. package/dist/community/api/index.d.ts +2 -2
  80. package/dist/community/api/index.d.ts.map +1 -1
  81. package/dist/community/api/queryCommunities.d.ts +7 -7
  82. package/dist/community/api/queryCommunities.d.ts.map +1 -1
  83. package/dist/community/api/removeCommunityMembersRoles.d.ts +18 -0
  84. package/dist/community/api/removeCommunityMembersRoles.d.ts.map +1 -0
  85. package/dist/core/debug.d.ts +1 -1
  86. package/dist/core/debug.d.ts.map +1 -1
  87. package/dist/core/events.d.ts +3 -3
  88. package/dist/core/events.d.ts.map +1 -1
  89. package/dist/core/model/idResolvers.d.ts.map +1 -1
  90. package/dist/core/model/identifyModel.d.ts +1 -0
  91. package/dist/core/model/identifyModel.d.ts.map +1 -1
  92. package/dist/core/model/index.d.ts.map +1 -1
  93. package/dist/core/query/paging.d.ts +2 -2
  94. package/dist/core/query/paging.d.ts.map +1 -1
  95. package/dist/core/query/query.d.ts +1 -1
  96. package/dist/core/query/query.d.ts.map +1 -1
  97. package/dist/core/subscription.d.ts +2 -0
  98. package/dist/core/subscription.d.ts.map +1 -1
  99. package/dist/core/tests/query/filtering.test.d.ts +2 -0
  100. package/dist/core/tests/query/filtering.test.d.ts.map +1 -0
  101. package/dist/core/tests/query/query.test.d.ts +2 -0
  102. package/dist/core/tests/query/query.test.d.ts.map +1 -0
  103. package/dist/core/transports/ws.d.ts +1 -1
  104. package/dist/core/transports/ws.d.ts.map +1 -1
  105. package/dist/external/api/createUserToken.d.ts +23 -0
  106. package/dist/external/api/createUserToken.d.ts.map +1 -0
  107. package/dist/external/api/index.d.ts +2 -0
  108. package/dist/external/api/index.d.ts.map +1 -0
  109. package/dist/feed/api/queryGlobalFeed.d.ts +4 -4
  110. package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
  111. package/dist/file/api/createFile.d.ts +2 -1
  112. package/dist/file/api/createFile.d.ts.map +1 -1
  113. package/dist/file/api/createImage.d.ts +17 -0
  114. package/dist/file/api/createImage.d.ts.map +1 -0
  115. package/dist/file/api/createVideo.d.ts +1 -0
  116. package/dist/file/api/createVideo.d.ts.map +1 -1
  117. package/dist/file/api/getFile.d.ts +1 -1
  118. package/dist/file/api/index.d.ts +1 -0
  119. package/dist/file/api/index.d.ts.map +1 -1
  120. package/dist/follow/api/follow.d.ts.map +1 -1
  121. package/dist/follow/api/getFollowInfo.d.ts.map +1 -1
  122. package/dist/follow/api/queryFollowers.d.ts +4 -4
  123. package/dist/follow/api/queryFollowers.d.ts.map +1 -1
  124. package/dist/follow/api/queryFollowings.d.ts +4 -4
  125. package/dist/follow/api/queryFollowings.d.ts.map +1 -1
  126. package/dist/follow/api/utils.d.ts +4 -4
  127. package/dist/follow/api/utils.d.ts.map +1 -1
  128. package/dist/follow/events/utils.d.ts.map +1 -1
  129. package/dist/index.cjs.js +20229 -14222
  130. package/dist/index.d.ts +6 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.esm.js +20194 -14213
  133. package/dist/index.umd.js +4 -19
  134. package/dist/message/api/createMessage.d.ts +2 -2
  135. package/dist/message/api/createMessage.d.ts.map +1 -1
  136. package/dist/message/api/updateMessage.d.ts +2 -2
  137. package/dist/message/api/updateMessage.d.ts.map +1 -1
  138. package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
  139. package/dist/poll/api/closePoll.d.ts +16 -0
  140. package/dist/poll/api/closePoll.d.ts.map +1 -0
  141. package/dist/poll/api/createPoll.d.ts +25 -0
  142. package/dist/poll/api/createPoll.d.ts.map +1 -0
  143. package/dist/poll/api/deletePoll.d.ts +16 -0
  144. package/dist/poll/api/deletePoll.d.ts.map +1 -0
  145. package/dist/poll/api/getPoll.d.ts +32 -0
  146. package/dist/poll/api/getPoll.d.ts.map +1 -0
  147. package/dist/poll/api/index.d.ts +6 -0
  148. package/dist/poll/api/index.d.ts.map +1 -0
  149. package/dist/poll/api/votePoll.d.ts +17 -0
  150. package/dist/poll/api/votePoll.d.ts.map +1 -0
  151. package/dist/poll/events/index.d.ts +3 -0
  152. package/dist/poll/events/index.d.ts.map +1 -0
  153. package/dist/poll/events/onPollDeleted.d.ts +17 -0
  154. package/dist/poll/events/onPollDeleted.d.ts.map +1 -0
  155. package/dist/poll/events/onPollUpdated.d.ts +17 -0
  156. package/dist/poll/events/onPollUpdated.d.ts.map +1 -0
  157. package/dist/poll/observers/index.d.ts +2 -0
  158. package/dist/poll/observers/index.d.ts.map +1 -0
  159. package/dist/poll/observers/observePoll.d.ts +18 -0
  160. package/dist/poll/observers/observePoll.d.ts.map +1 -0
  161. package/dist/post/api/approvePost.d.ts +17 -0
  162. package/dist/post/api/approvePost.d.ts.map +1 -0
  163. package/dist/post/api/declinePost.d.ts +17 -0
  164. package/dist/post/api/declinePost.d.ts.map +1 -0
  165. package/dist/post/api/getPost.d.ts +1 -1
  166. package/dist/post/api/index.d.ts +2 -0
  167. package/dist/post/api/index.d.ts.map +1 -1
  168. package/dist/post/api/queryPosts.d.ts +1 -12
  169. package/dist/post/api/queryPosts.d.ts.map +1 -1
  170. package/dist/post/observers/index.d.ts +1 -0
  171. package/dist/post/observers/index.d.ts.map +1 -1
  172. package/dist/post/observers/livePosts.d.ts +22 -0
  173. package/dist/post/observers/livePosts.d.ts.map +1 -0
  174. package/dist/post/observers/observePosts.d.ts.map +1 -1
  175. package/dist/post/tests/api/getPost.test.d.ts +2 -0
  176. package/dist/post/tests/api/getPost.test.d.ts.map +1 -0
  177. package/dist/post/tests/api/queryPosts.test.d.ts +2 -0
  178. package/dist/post/tests/api/queryPosts.test.d.ts.map +1 -0
  179. package/dist/reaction/api/index.d.ts +1 -0
  180. package/dist/reaction/api/index.d.ts.map +1 -1
  181. package/dist/reaction/api/queryReactions.d.ts +19 -0
  182. package/dist/reaction/api/queryReactions.d.ts.map +1 -0
  183. package/dist/reaction/events/index.d.ts +3 -0
  184. package/dist/reaction/events/index.d.ts.map +1 -1
  185. package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
  186. package/dist/reaction/events/onReactorAdded.d.ts +19 -0
  187. package/dist/reaction/events/onReactorAdded.d.ts.map +1 -0
  188. package/dist/reaction/events/onReactorRemoved.d.ts +19 -0
  189. package/dist/reaction/events/onReactorRemoved.d.ts.map +1 -0
  190. package/dist/reaction/observers/index.d.ts +2 -0
  191. package/dist/reaction/observers/index.d.ts.map +1 -0
  192. package/dist/reaction/observers/liveReactions.d.ts +22 -0
  193. package/dist/reaction/observers/liveReactions.d.ts.map +1 -0
  194. package/dist/reaction/utils/index.d.ts +1 -0
  195. package/dist/reaction/utils/index.d.ts.map +1 -1
  196. package/dist/reaction/utils/prepareMessagePayloadForCache.d.ts +3 -0
  197. package/dist/reaction/utils/prepareMessagePayloadForCache.d.ts.map +1 -0
  198. package/dist/report/api/createReport.d.ts.map +1 -1
  199. package/dist/report/api/deleteReport.d.ts.map +1 -1
  200. package/dist/role/api/queryRoles.d.ts +4 -4
  201. package/dist/role/api/queryRoles.d.ts.map +1 -1
  202. package/dist/stream/api/queryStreams.d.ts +6 -6
  203. package/dist/stream/api/queryStreams.d.ts.map +1 -1
  204. package/dist/user/api/updateUser.d.ts +1 -1
  205. package/dist/user/api/updateUser.d.ts.map +1 -1
  206. package/dist/user/events/index.d.ts +1 -0
  207. package/dist/user/events/index.d.ts.map +1 -1
  208. package/dist/user/events/onUserDeleted.d.ts +17 -0
  209. package/dist/user/events/onUserDeleted.d.ts.map +1 -0
  210. package/dist/user/observers/observeUser.d.ts +1 -1
  211. package/dist/user/observers/observeUser.d.ts.map +1 -1
  212. package/dist/utils/constants.d.ts +3 -0
  213. package/dist/utils/constants.d.ts.map +1 -0
  214. package/dist/utils/env.d.ts.map +1 -1
  215. package/dist/utils/tests/client.d.ts +3 -0
  216. package/dist/utils/tests/client.d.ts.map +1 -0
  217. package/dist/utils/tests/dummy.d.ts +8 -0
  218. package/dist/utils/tests/dummy.d.ts.map +1 -0
  219. package/dist/utils/tests/index.d.ts +3 -0
  220. package/dist/utils/tests/index.d.ts.map +1 -0
  221. package/jest.config.ts +15 -0
  222. package/package.json +22 -17
  223. package/src/@types/core/events.ts +16 -10
  224. package/src/@types/core/live.ts +28 -0
  225. package/src/@types/core/model.ts +6 -0
  226. package/src/@types/core/paging.ts +1 -1
  227. package/src/@types/core/payload.ts +19 -7
  228. package/src/@types/domains/channel.ts +1 -2
  229. package/src/@types/domains/comment.ts +32 -0
  230. package/src/@types/domains/content.ts +7 -1
  231. package/src/@types/domains/follow.ts +3 -1
  232. package/src/@types/domains/message.ts +11 -1
  233. package/src/@types/domains/poll.ts +32 -0
  234. package/src/@types/domains/post.ts +38 -1
  235. package/src/@types/domains/reaction.ts +26 -9
  236. package/src/@types/domains/user.ts +2 -0
  237. package/src/@types/index.ts +3 -0
  238. package/src/category/api/getCategory.ts +45 -7
  239. package/src/category/api/queryCategories.ts +70 -13
  240. package/src/channel/api/addChannelMembers.ts +2 -1
  241. package/src/channel/api/banChannelMembers.ts +41 -0
  242. package/src/channel/api/deleteChannel.ts +0 -1
  243. package/src/channel/api/index.ts +3 -0
  244. package/src/channel/api/queryChannelMembers.ts +4 -4
  245. package/src/channel/api/queryChannels.ts +3 -0
  246. package/src/channel/api/removeChannelMembers.ts +2 -1
  247. package/src/channel/api/unbanChannelMembers.ts +41 -0
  248. package/src/channel/api/updateChannel.ts +1 -1
  249. package/src/channel/events/index.ts +2 -2
  250. package/src/channel/events/{onMemberAdded.ts → onChannelMemberAdded.ts} +8 -6
  251. package/src/channel/events/{onMemberRemoved.ts → onChannelMemberRemoved.ts} +13 -6
  252. package/src/channel/observers/observeChannel.ts +8 -4
  253. package/src/client/api/connectClient.ts +28 -16
  254. package/src/comment/api/queryComments.ts +8 -11
  255. package/src/comment/observers/index.ts +1 -0
  256. package/src/comment/observers/liveComments.ts +172 -0
  257. package/src/comment/observers/observeComments.ts +1 -11
  258. package/src/community/api/{addCommunityMembersRole.ts → addCommunityMembersRoles.ts} +11 -10
  259. package/src/community/api/index.ts +2 -3
  260. package/src/community/api/{removeCommunityMembersRole.ts → removeCommunityMembersRoles.ts} +11 -10
  261. package/src/core/model/idResolvers.ts +3 -0
  262. package/src/core/model/identifyModel.ts +21 -0
  263. package/src/core/model/index.ts +3 -0
  264. package/src/core/query/paging.ts +3 -3
  265. package/src/core/query/query.ts +32 -1
  266. package/src/core/subscription.ts +17 -4
  267. package/src/core/tests/query/filtering.test.ts +11 -0
  268. package/src/core/tests/query/query.test.ts +19 -0
  269. package/src/external/api/createUserToken.ts +43 -0
  270. package/src/external/api/index.ts +1 -0
  271. package/src/file/api/createFile.ts +6 -5
  272. package/src/file/api/createImage.ts +58 -0
  273. package/src/file/api/createVideo.ts +23 -18
  274. package/src/file/api/getFile.ts +1 -1
  275. package/src/file/api/index.ts +1 -0
  276. package/src/follow/api/acceptFollower.ts +1 -1
  277. package/src/follow/api/declineFollower.ts +1 -1
  278. package/src/follow/api/follow.ts +1 -4
  279. package/src/follow/api/getFollowInfo.ts +8 -5
  280. package/src/follow/api/queryFollowers.ts +5 -4
  281. package/src/follow/api/queryFollowings.ts +5 -4
  282. package/src/follow/api/unfollow.ts +1 -1
  283. package/src/follow/api/utils.ts +10 -10
  284. package/src/follow/events/utils.ts +9 -6
  285. package/src/index.ts +10 -0
  286. package/src/message/api/createMessage.ts +30 -8
  287. package/src/message/api/updateMessage.ts +2 -2
  288. package/src/message/events/onMessageUpdated.ts +9 -1
  289. package/src/poll/api/closePoll.ts +42 -0
  290. package/src/poll/api/createPoll.ts +45 -0
  291. package/src/poll/api/deletePoll.ts +39 -0
  292. package/src/poll/api/getPoll.ts +64 -0
  293. package/src/poll/api/index.ts +7 -0
  294. package/src/poll/api/votePoll.ts +44 -0
  295. package/src/poll/events/index.ts +2 -0
  296. package/src/poll/events/onPollDeleted.ts +31 -0
  297. package/src/poll/events/onPollUpdated.ts +31 -0
  298. package/src/poll/observers/index.ts +1 -0
  299. package/src/poll/observers/observePoll.ts +67 -0
  300. package/src/post/api/approvePost.ts +48 -0
  301. package/src/post/api/declinePost.ts +48 -0
  302. package/src/post/api/getPost.ts +1 -1
  303. package/src/post/api/index.ts +3 -0
  304. package/src/post/api/queryPosts.ts +3 -12
  305. package/src/post/observers/index.ts +1 -0
  306. package/src/post/observers/livePosts.ts +170 -0
  307. package/src/post/observers/observePosts.ts +1 -13
  308. package/src/post/tests/api/getPost.test.ts +88 -0
  309. package/src/post/tests/api/queryPosts.test.ts +23 -0
  310. package/src/reaction/api/index.ts +1 -0
  311. package/src/reaction/api/queryReactions.ts +52 -0
  312. package/src/reaction/events/index.ts +4 -0
  313. package/src/reaction/events/onReactionAdded.ts +4 -0
  314. package/src/reaction/events/onReactorAdded.ts +80 -0
  315. package/src/reaction/events/onReactorRemoved.ts +85 -0
  316. package/src/reaction/observers/index.ts +1 -0
  317. package/src/reaction/observers/liveReactions.ts +142 -0
  318. package/src/reaction/utils/index.ts +1 -0
  319. package/src/reaction/utils/prepareMessagePayloadForCache.ts +40 -0
  320. package/src/report/api/createReport.ts +7 -1
  321. package/src/report/api/deleteReport.ts +7 -1
  322. package/src/user/api/updateUser.ts +4 -1
  323. package/src/user/events/index.ts +1 -0
  324. package/src/user/events/onUserDeleted.ts +19 -0
  325. package/src/user/events/utils.ts +1 -1
  326. package/src/user/observers/observeUser.ts +9 -2
  327. package/src/utils/constants.ts +2 -0
  328. package/src/utils/env.ts +3 -1
  329. package/src/utils/tests/client.ts +5 -0
  330. package/src/utils/tests/dummy.ts +7 -0
  331. package/src/utils/tests/index.ts +2 -0
  332. package/tsconfig.json +23 -22
  333. package/dist/channel/events/onMemberAdded.d.ts +0 -17
  334. package/dist/channel/events/onMemberAdded.d.ts.map +0 -1
  335. package/dist/channel/events/onMemberRemoved.d.ts +0 -17
  336. package/dist/channel/events/onMemberRemoved.d.ts.map +0 -1
  337. package/dist/community/api/addCommunityMembersRole.d.ts +0 -18
  338. package/dist/community/api/addCommunityMembersRole.d.ts.map +0 -1
  339. package/dist/community/api/removeCommunityMembersRole.d.ts +0 -18
  340. package/dist/community/api/removeCommunityMembersRole.d.ts.map +0 -1
@@ -4,17 +4,15 @@ declare global {
4
4
  namespace Amity {
5
5
  type ReactableType = 'message' | 'post' | 'comment';
6
6
 
7
- type Reaction = {
7
+ type ReactionActionType = 'onAdded' | 'onRemoved';
8
+
9
+ type Reactor = {
8
10
  reactionId: string;
9
- userId: string;
10
11
  reactionName: string;
11
- } & Amity.CreatedAt &
12
- Amity.Relationship<ReactableType>;
12
+ userId: Amity.User['userId'];
13
+ } & Amity.CreatedAt;
13
14
 
14
- type Reactions = {
15
- reactions: Record<string, number>;
16
- count: number;
17
- };
15
+ type Reaction = Amity.Reactor & Amity.Relationship<ReactableType>;
18
16
 
19
17
  type Reactable = {
20
18
  reactionsCount: number;
@@ -22,8 +20,27 @@ declare global {
22
20
  myReactions?: string[];
23
21
 
24
22
  latestReaction?: Amity.Reaction & {
25
- eventName: 'added' | 'removed';
23
+ eventName: 'add' | 'remove';
24
+ userDisplayName: string;
26
25
  };
27
26
  };
27
+
28
+ type ReactionQuery = {
29
+ reactors: Reactor[];
30
+ } & Amity.Relationship<ReactableType>;
31
+
32
+ type QueryReactions = {
33
+ referenceId: Amity.Reaction['referenceId'];
34
+ referenceType: Amity.Reaction['referenceType'];
35
+ reactionName?: Amity.Reaction['reactionName'];
36
+ page?: Amity.Page<string>;
37
+ };
38
+
39
+ type ReactionLiveCollection = Amity.LiveCollectionParams<Omit<QueryReactions, 'page'>>;
40
+
41
+ type ReactionLiveCollectionCache = Amity.LiveCollectionCache<
42
+ Amity.Reactor['reactionId'],
43
+ Pick<QueryReactions, 'page'>
44
+ >;
28
45
  }
29
46
  }
@@ -7,12 +7,14 @@ declare global {
7
7
  userId: string;
8
8
  displayName?: string;
9
9
  avatarFileId?: Amity.File<'image'>['fileId'];
10
+ avatarCustomUrl?: string;
10
11
  description?: string;
11
12
  } & Amity.Metadata &
12
13
  Amity.Taggable &
13
14
  Amity.Flaggable &
14
15
  Amity.Accredited &
15
16
  Amity.Timestamps &
17
+ Amity.SoftDelete &
16
18
  Amity.Subscribable;
17
19
  }
18
20
  }
@@ -8,6 +8,7 @@ import './core/events'; // sdk events definitions
8
8
  import './core/paging'; // createQuery, runQuery
9
9
  import './core/query'; // createQuery, runQuery
10
10
  import './core/cache'; // cache.pull('user', ...)
11
+ import './core/live';
11
12
 
12
13
  // domains
13
14
  import './domains/client'; // client definition
@@ -32,3 +33,5 @@ import './domains/comment';
32
33
  import './domains/stream';
33
34
 
34
35
  import './domains/mention';
36
+
37
+ import './domains/poll';
@@ -1,11 +1,12 @@
1
1
  import { getActiveClient } from '~/client/api/activeClient';
2
2
 
3
- // import { ingestInCache } from '~/cache/api/ingestInCache'
3
+ import { pullFromCache, dropFromCache } from '~/cache/api';
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
5
 
5
6
  /**
6
7
  * ```js
7
8
  * import { getCategory } from '@amityco/ts-sdk'
8
- * const category = await getCategory('foo')
9
+ * const { data: category } = await getCategory('foo')
9
10
  * ```
10
11
  *
11
12
  * Fetches a {@link Amity.Category} object
@@ -16,17 +17,54 @@ import { getActiveClient } from '~/client/api/activeClient';
16
17
  * @category Category API
17
18
  * @async
18
19
  */
19
- export const getCategory = async (categoryId: Amity.Category['categoryId']) => {
20
+ export const getCategory = async (
21
+ categoryId: Amity.Category['categoryId'],
22
+ ): Promise<Amity.Cached<Amity.Category>> => {
20
23
  const client = getActiveClient();
21
24
  client.log('category/getCategory', categoryId);
22
25
 
23
26
  const { data } = await client.http.get<Amity.CategoryPayload>(
24
- `/api/v3/community-categories/${categoryId}`,
27
+ `/api/v3/community-categories/${encodeURIComponent(categoryId)}`,
25
28
  );
26
29
 
27
- // decoratePayload(data)
28
- // ingestInCache(data)
30
+ const cachedAt = client.cache && Date.now();
31
+ if (client.cache) ingestInCache(data, { cachedAt });
29
32
 
30
33
  const { categories } = data;
31
- return categories[0];
34
+
35
+ return {
36
+ data: categories.find(category => category.categoryId === categoryId)!,
37
+ cachedAt,
38
+ };
39
+ };
40
+
41
+ /**
42
+ * ```js
43
+ * import { getCategory } from '@amityco/ts-sdk'
44
+ * const { data: category } = getCategory.locally('foobar')
45
+ * ```
46
+ *
47
+ * Fetches a {@link Amity.Category} object from cache
48
+ *
49
+ * @param categoryId the ID of the {@link Amity.Category} to fetch
50
+ * @returns the associated {@link Amity.Category} object
51
+ *
52
+ * @category Category API
53
+ */
54
+ getCategory.locally = (
55
+ categoryId: Amity.Category['categoryId'],
56
+ ): Amity.Cached<Amity.Category> | undefined => {
57
+ const client = getActiveClient();
58
+ client.log('category/getCategory.locally', categoryId);
59
+
60
+ if (!client.cache) return;
61
+
62
+ const cached = pullFromCache<Amity.Category>(['category', 'get', categoryId]);
63
+
64
+ if (!cached) return;
65
+
66
+ return {
67
+ data: cached.data,
68
+ cachedAt: cached.cachedAt,
69
+ };
32
70
  };
@@ -1,12 +1,15 @@
1
1
  import { getActiveClient } from '~/client/api/activeClient';
2
2
 
3
- import { toPage, toToken } from '~/core/query';
4
- // import { ingestInCache } from '~/cache/api/ingestInCache'
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';
5
8
 
6
9
  /**
7
10
  * ```js
8
11
  * import { queryCategories } from '@amityco/ts-sdk'
9
- * const categories = await queryCategories()
12
+ * const { data: categories, prevPage, nextPage } = await queryCategories()
10
13
  * ```
11
14
  *
12
15
  * Queries a paginable list of {@link Amity.Category} objects
@@ -14,18 +17,18 @@ import { toPage, toToken } from '~/core/query';
14
17
  * @param query The query parameters
15
18
  * @returns A page of {@link Amity.Category} objects
16
19
  *
17
- * @category Community API
20
+ * @category Category API
18
21
  * @async
19
22
  * */
20
23
  export const queryCategories = async (query?: {
21
24
  sortBy?: 'lastCreated' | 'firstCreated' | 'name';
22
25
  isDeleted?: Amity.Category['isDeleted'];
23
26
  page?: Amity.Page;
24
- }) => {
27
+ }): Promise<Amity.Cached<Amity.Paged<Amity.Category, Amity.Page>>> => {
25
28
  const client = getActiveClient();
26
29
  client.log('category/queryCategories', query);
27
30
 
28
- const { page, ...params } = query ?? {};
31
+ const { page = { limit: 10 }, ...params } = query ?? {};
29
32
 
30
33
  const { data } = await client.http.get<Amity.CategoryPayload & Amity.Pagination>(
31
34
  `/api/v3/community-categories`,
@@ -39,14 +42,68 @@ export const queryCategories = async (query?: {
39
42
  },
40
43
  );
41
44
 
42
- const { paging, ...response } = data;
45
+ const { paging, ...payload } = data;
46
+ const { categories } = payload;
47
+
48
+ const cachedAt = client.cache && Date.now();
49
+
50
+ if (client.cache) {
51
+ ingestInCache(payload as Amity.CategoryPayload, { cachedAt });
52
+
53
+ const cacheKey = [
54
+ 'category',
55
+ 'query',
56
+ { ...params, options: { ...page } } as Amity.Serializable,
57
+ ];
58
+ pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
59
+ }
60
+
61
+ const nextPage = toPage(paging.next);
62
+ const prevPage = toPage(paging.previous);
63
+
64
+ return { data: categories, cachedAt, prevPage, nextPage };
65
+ };
66
+
67
+ /**
68
+ * ```js
69
+ * import { queryCategories } from '@amityco/ts-sdk'
70
+ * const { data: categories, prevPage, nextPage } = queryCategories.locally()
71
+ * ```
72
+ *
73
+ * Queries a paginable list of {@link Amity.Category} objects from cache
74
+ *
75
+ * @param query The query parameters
76
+ * @returns categories
77
+ *
78
+ * @category category API
79
+ */
80
+ queryCategories.locally = (
81
+ query: Parameters<typeof queryCategories>[0],
82
+ ): Amity.Cached<Amity.Paged<Amity.Category, Amity.Page>> | undefined => {
83
+ const client = getActiveClient();
84
+ client.log('category/queryCategories.locally', query);
85
+
86
+ if (!client.cache) return;
87
+
88
+ const { page = { limit: 10 }, ...params } = query ?? {};
89
+
90
+ const queryKey = ['category', 'query', { ...params, options: { ...page } } as Amity.Serializable];
91
+ const { data, cachedAt } =
92
+ pullFromCache<{ categories: Pick<Amity.Category, 'categoryId'>[] } & Amity.Pagination>(
93
+ queryKey,
94
+ ) ?? {};
95
+
96
+ if (!data?.categories.length) return;
43
97
 
44
- // decoratePayload(response as unknown as Record<string, any[]>)
45
- // ingestInCache(response as unknown as Record<string, any[]>)
98
+ const categories: Amity.Category[] = data.categories
99
+ .map(categoryId => pullFromCache<Amity.Category>(['category', 'get', categoryId])!)
100
+ .filter(Boolean)
101
+ .map(({ data }) => data);
46
102
 
47
- const prevPage = toPage(paging?.previous);
48
- const nextPage = toPage(paging?.next);
103
+ const prevPage = toPage(data?.paging.previous);
104
+ const nextPage = toPage(data?.paging.next);
49
105
 
50
- const { categories } = response;
51
- return { data: categories, prevPage, nextPage };
106
+ return categories.length === data?.categories?.length
107
+ ? { data: categories, cachedAt, prevPage, nextPage }
108
+ : undefined;
52
109
  };
@@ -33,7 +33,8 @@ export const addChannelMembers = async (
33
33
  if (client.cache) ingestInCache(data);
34
34
 
35
35
  fireEvent('v3.channel.didAddUsers', {
36
- channels: data.channels!,
36
+ channels: data.channels,
37
+ channelUsers: data.channelUsers,
37
38
  });
38
39
 
39
40
  const { channelUsers } = data;
@@ -0,0 +1,41 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+
5
+ /**
6
+ * ```js
7
+ * import { banChannelMembers } from '@amityco/ts-sdk'
8
+ *
9
+ * await banChannelMembers('channel-id-1', ['userId1', 'userId2'])
10
+ * ```
11
+ *
12
+ * @param channelId of {@link Amity.Channel} from which the users should be banned
13
+ * @param userIds of the {@link Amity.User}'s to be banned
14
+ * @returns the updated {@link Amity.Membership}'s object
15
+ *
16
+ * @category Channel API
17
+ * @async
18
+ * */
19
+ export const banChannelMembers = async (
20
+ channelId: Amity.Channel['channelId'],
21
+ userIds: Amity.User['userId'][],
22
+ ): Promise<Amity.Cached<Amity.Membership<'channel'>[]>> => {
23
+ const client = getActiveClient();
24
+ client.log('channel/banChannelMembers', { userIds, channelId });
25
+
26
+ const payload = await client.http.put<Amity.ChannelPayload>(
27
+ `/api/v3/channels/${channelId}/users/ban`,
28
+ {
29
+ userIds,
30
+ },
31
+ );
32
+
33
+ const cachedAt = client.cache && Date.now();
34
+ if (client.cache) ingestInCache(payload.data, { cachedAt });
35
+
36
+ const { channelUsers } = payload.data;
37
+ return {
38
+ data: channelUsers?.filter(user => user.membership === 'banned')!,
39
+ cachedAt,
40
+ };
41
+ };
@@ -22,7 +22,6 @@ export const deleteChannel = async (
22
22
  const client = getActiveClient();
23
23
  client.log('channel/deleteChannel', channelId);
24
24
 
25
- // API-FIX: This endpoint has not been implemented yet.
26
25
  await client.http.delete<{ success: boolean }>(
27
26
  `/api/v3/channels/${encodeURIComponent(channelId)}`,
28
27
  );
@@ -16,3 +16,6 @@ export * from './removeChannelMembers';
16
16
 
17
17
  export * from './addChannelMembersRole';
18
18
  export * from './removeChannelMembersRole';
19
+
20
+ export * from './banChannelMembers';
21
+ export * from './unbanChannelMembers';
@@ -19,22 +19,22 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
19
19
  * */
20
20
  export const queryChannelMembers = async (query: {
21
21
  channelId: string;
22
- membership?: 'all' | 'muted' | 'banned' | 'member&banned';
22
+ memberships?: ('muted' | 'banned' | 'member')[];
23
23
  roles?: string[];
24
24
  sortBy?: 'firstCreated' | 'lastCreated';
25
+ search?: string;
25
26
  page?: Amity.Page;
26
27
  }): Promise<Amity.Cached<Amity.Paged<Amity.Membership<'channel'>>>> => {
27
28
  const client = getActiveClient();
28
29
  client.log('channel/queryChannelMembers', query);
29
30
 
30
- const { page, channelId, membership, ...params } = query ?? {};
31
+ const { page, channelId, ...params } = query ?? {};
31
32
 
32
33
  const { data } = await client.http.get<Amity.ChannelMembershipPayload & Amity.Pagination>(
33
- `/api/v3/channels/${encodeURIComponent(channelId)}/users`,
34
+ `/api/v4/channels/${encodeURIComponent(channelId)}/users`,
34
35
  {
35
36
  params: {
36
37
  ...params,
37
- filter: membership,
38
38
  options: {
39
39
  token: toToken(page, 'skiplimit'),
40
40
  },
@@ -25,6 +25,9 @@ export const queryChannels = async (query?: {
25
25
  membership?: 'all' | 'member' | 'notMember';
26
26
  sortBy?: 'displayName' | 'firstCreated' | 'lastCreated';
27
27
  types?: Amity.ChannelType;
28
+ isDeleted?: Amity.Channel['isDeleted'];
29
+ tags?: Amity.Taggable['tags'];
30
+ excludeTags?: Amity.Taggable['tags'];
28
31
  page?: Amity.Page;
29
32
  }): Promise<Amity.Cached<Amity.Paged<Amity.Channel>>> => {
30
33
  const client = getActiveClient();
@@ -33,7 +33,8 @@ export const removeChannelMembers = async (
33
33
  if (client.cache) ingestInCache(data);
34
34
 
35
35
  fireEvent('v3.channel.didRemoveUsers', {
36
- channels: data.channels!,
36
+ channels: data.channels,
37
+ channelUsers: data.channelUsers,
37
38
  });
38
39
 
39
40
  const { channelUsers } = data;
@@ -0,0 +1,41 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+
5
+ /**
6
+ * ```js
7
+ * import { unbanChannelMembers } from '@amityco/ts-sdk'
8
+ *
9
+ * await unbanChannelMembers('channel-id-1', ['userId1', 'userId2'])
10
+ * ```
11
+ *
12
+ * @param channelId of {@link Amity.Channel} where the users should be unbanned
13
+ * @param userIds of the {@link Amity.User}'s to be unbanned
14
+ * @returns the updated {@link Amity.Membership}'s object
15
+ *
16
+ * @category Channel API
17
+ * @async
18
+ * */
19
+ export const unbanChannelMembers = async (
20
+ channelId: Amity.Channel['channelId'],
21
+ userIds: Amity.User['userId'][],
22
+ ): Promise<Amity.Cached<Amity.Membership<'channel'>[]>> => {
23
+ const client = getActiveClient();
24
+ client.log('channel/unbanChannelMembers', { userIds, channelId });
25
+
26
+ const payload = await client.http.put<Amity.ChannelPayload>(
27
+ `/api/v3/channels/${encodeURIComponent(channelId)}/users/unban`,
28
+ {
29
+ userIds,
30
+ },
31
+ );
32
+
33
+ const cachedAt = client.cache && Date.now();
34
+ if (client.cache) ingestInCache(payload.data, { cachedAt });
35
+
36
+ const { channelUsers } = payload.data;
37
+ return {
38
+ data: channelUsers?.filter(user => user.membership === 'member')!,
39
+ cachedAt,
40
+ };
41
+ };
@@ -19,7 +19,7 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
19
19
  */
20
20
  export const updateChannel = async (
21
21
  channelId: Amity.Channel['channelId'],
22
- patch: Patch<Amity.Channel, 'displayName' | 'description' | 'avatarFileId' | 'metadata'>,
22
+ patch: Patch<Amity.Channel, 'displayName' | 'avatarFileId' | 'tags' | 'metadata'>,
23
23
  ): Promise<Amity.Cached<Amity.Channel>> => {
24
24
  const client = getActiveClient();
25
25
  client.log('channel/updateChannel', channelId, patch);
@@ -2,5 +2,5 @@ export * from './onChannelUpdated';
2
2
  export * from './onChannelDeleted';
3
3
  export * from './onChannelJoined';
4
4
  export * from './onChannelLeft';
5
- export * from './onMemberAdded';
6
- export * from './onMemberRemoved';
5
+ export * from './onChannelMemberAdded';
6
+ export * from './onChannelMemberRemoved';
@@ -5,8 +5,8 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  /**
7
7
  * ```js
8
- * import { onMemberAdded } from '@amityco/ts-sdk'
9
- * const dispose = onMemberAdded(channel => {
8
+ * import { onChannelMemberAdded } from '@amityco/ts-sdk'
9
+ * const dispose = onChannelMemberAdded((channel, member) => {
10
10
  * // ...
11
11
  * })
12
12
  * ```
@@ -18,13 +18,15 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
18
18
  *
19
19
  * @category Channel Events
20
20
  */
21
- export const onMemberAdded = (callback: Amity.Listener<Amity.Channel>) => {
21
+ export const onChannelMemberAdded = (
22
+ callback: (channel: Amity.Channel, member: Amity.Membership<'channel'>) => void,
23
+ ) => {
22
24
  const client = getActiveClient();
23
25
 
24
- const filter = (payload: Amity.ChannelPayload) => {
26
+ const filter = (payload: Amity.ChannelMembershipPayload) => {
25
27
  ingestInCache(payload);
26
- callback(payload.channels[0]);
28
+ callback(payload.channels[0], payload.channelUsers[0]);
27
29
  };
28
30
 
29
- return createEventSubscriber(client, 'onMemberAdded', 'v3.channel.didAddUsers', filter);
31
+ return createEventSubscriber(client, 'onChannelMemberAdded', 'v3.channel.didAddUsers', filter);
30
32
  };
@@ -5,8 +5,8 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  /**
7
7
  * ```js
8
- * import { onMemberRemoved } from '@amityco/ts-sdk'
9
- * const dispose = onMemberRemoved(channel => {
8
+ * import { onChannelMemberRemoved } from '@amityco/ts-sdk'
9
+ * const dispose = onChannelMemberRemoved((channel, member) => {
10
10
  * // ...
11
11
  * })
12
12
  * ```
@@ -18,13 +18,20 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
18
18
  *
19
19
  * @category Channel Events
20
20
  */
21
- export const onMemberRemoved = (callback: Amity.Listener<Amity.Channel>) => {
21
+ export const onChannelMemberRemoved = (
22
+ callback: (channel: Amity.Channel, member: Amity.Membership<'channel'>) => void,
23
+ ) => {
22
24
  const client = getActiveClient();
23
25
 
24
- const filter = (payload: Amity.ChannelPayload) => {
26
+ const filter = (payload: Amity.ChannelMembershipPayload) => {
25
27
  ingestInCache(payload);
26
- callback(payload.channels[0]);
28
+ callback(payload.channels[0], payload.channelUsers[0]);
27
29
  };
28
30
 
29
- return createEventSubscriber(client, 'onMemberRemoved', 'v3.channel.didRemoveUsers', filter);
31
+ return createEventSubscriber(
32
+ client,
33
+ 'onChannelMemberRemoved',
34
+ 'v3.channel.didRemoveUsers',
35
+ filter,
36
+ );
30
37
  };
@@ -9,8 +9,8 @@ import {
9
9
  onChannelDeleted,
10
10
  onChannelJoined,
11
11
  onChannelLeft,
12
- onMemberAdded,
13
- onMemberRemoved,
12
+ onChannelMemberAdded,
13
+ onChannelMemberRemoved,
14
14
  } from '../events';
15
15
 
16
16
  /**
@@ -67,8 +67,12 @@ export const observeChannel = <
67
67
  onChannelDeleted(data => router({ data, loading: false, origin: 'event' }, 'onDelete')),
68
68
  onChannelJoined(data => router({ data, loading: false, origin: 'event' }, 'onJoin')),
69
69
  onChannelLeft(data => router({ data, loading: false, origin: 'event' }, 'onLeft')),
70
- onMemberAdded(data => router({ data, loading: false, origin: 'event' }, 'onMemberAdded')),
71
- onMemberRemoved(data => router({ data, loading: false, origin: 'event' }, 'onMemberRemoved')),
70
+ onChannelMemberAdded(data =>
71
+ router({ data, loading: false, origin: 'event' }, 'onMemberAdded'),
72
+ ),
73
+ onChannelMemberRemoved(data =>
74
+ router({ data, loading: false, origin: 'event' }, 'onMemberRemoved'),
75
+ ),
72
76
  );
73
77
 
74
78
  runQuery(createQuery(getChannel, channelId), result => result.data && router(result, 'onFetch'));
@@ -9,6 +9,8 @@ import { setActiveUser } from './activeUser';
9
9
 
10
10
  import { getToken } from './getToken';
11
11
  import { onClientBanned } from '../events';
12
+ import { getNetworkTopic, subscribeTopic } from '~/core/subscription';
13
+ import { onUserDeleted } from '~/user/events/onUserDeleted';
12
14
 
13
15
  /**
14
16
  * ```js
@@ -20,26 +22,29 @@ import { onClientBanned } from '../events';
20
22
  *
21
23
  * Connects an {@link Amity.Client} instance to ASC servers
22
24
  *
23
- * @param userId the user ID for the current session
24
- * @param displayName the user's displayName for the current session
25
- * @param deviceId Manual override of the user's device id (for device management)
26
- * @param authToken The authentication token - necessary when network option is set to secure
25
+ * @param params the connect parameters
26
+ * @param params.userId the user ID for the current session
27
+ * @param params.displayName the user's displayName for the current session
28
+ * @param params.deviceId Manual override of the user's device id (for device management)
29
+ * @param params.authToken The authentication token - necessary when network option is set to secure
27
30
  * @returns a success boolean if connected
28
31
  *
29
32
  * @category Client API
30
33
  * @async
31
34
  */
32
- export const connectClient = async (params: {
33
- userId: Amity.User['userId'];
34
- displayName?: Amity.User['displayName'];
35
- authToken?: string;
36
- deviceId?: Amity.Device['deviceId'];
37
- }): Promise<boolean> => {
35
+ export const connectClient = async (
36
+ params: {
37
+ userId: Amity.User['userId'];
38
+ displayName?: Amity.User['displayName'];
39
+ authToken?: string;
40
+ deviceId?: Amity.Device['deviceId'];
41
+ },
42
+ config?: { disableRTE: boolean },
43
+ ): Promise<boolean> => {
38
44
  const client = getActiveClient();
39
45
  client.log('client/api/connectClient', { apiKey: client.apiKey, ...params });
40
46
 
41
47
  // default values
42
- params.displayName ??= params.userId;
43
48
  params.deviceId ??= getDeviceId();
44
49
 
45
50
  // @ts-ignore: in that particular case, typing can be
@@ -63,15 +68,22 @@ export const connectClient = async (params: {
63
68
  client.ws.open();
64
69
  });
65
70
 
66
- const unsubscribe = onClientBanned(() => {
67
- disconnectClient();
68
- unsubscribe();
69
- });
70
-
71
71
  client.userId = params.userId;
72
72
  client.accessToken = accessToken;
73
73
 
74
74
  setActiveUser(users[0]);
75
75
 
76
+ if (config?.disableRTE !== true) {
77
+ subscribeTopic(getNetworkTopic());
78
+ }
79
+
80
+ const subscriptions = [
81
+ onClientBanned(() => {
82
+ disconnectClient();
83
+ subscriptions.forEach(fn => fn());
84
+ }),
85
+ onUserDeleted(() => null),
86
+ ];
87
+
76
88
  return client.ws.connected;
77
89
  };
@@ -19,19 +19,18 @@ import { getResolver } from '~/core/model';
19
19
  * @category Comment API
20
20
  * @async
21
21
  */
22
- export const queryComments = async (query: {
23
- referenceType: Amity.Comment['referenceType'];
24
- referenceId: Amity.Comment['referenceId'];
25
- parentId?: Amity.Comment['commentId'] | null;
26
- hasFlag?: boolean;
27
- isDeleted?: Amity.Comment['isDeleted'];
28
- page?: Amity.Page;
29
- }): Promise<Amity.Cached<Amity.Paged<Amity.Comment>>> => {
22
+ export const queryComments = async (
23
+ query: Amity.QueryComments,
24
+ ): Promise<Amity.Cached<Amity.Paged<Amity.Comment>>> => {
30
25
  const client = getActiveClient();
31
26
  client.log('comment/queryComments', query);
32
27
 
33
28
  const { page = { limit: 10 }, ...params } = query;
34
29
 
30
+ const options = {
31
+ type: params.sortBy ? 'pagination' : undefined,
32
+ token: toToken(page, params.sortBy ? 'skiplimit' : 'afterbefore'),
33
+ };
35
34
  // const filterByParentId = query.parentId !== undefined
36
35
 
37
36
  // API-FIX: parameters should be querystring. (1)
@@ -43,9 +42,7 @@ export const queryComments = async (query: {
43
42
  params: {
44
43
  ...params,
45
44
  // filterByParentId, API-FIX: backend does not support this boolean LOL. what the hell seriously.
46
- options: {
47
- token: toToken(page, 'afterbefore'),
48
- },
45
+ options,
49
46
  },
50
47
  },
51
48
  );