@amityco/ts-sdk 0.0.1-be4fc2f.0 → 0.0.1-beta.10

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 (527) hide show
  1. package/README.md +2 -2
  2. package/dist/@types/core/cache.d.ts +49 -9
  3. package/dist/@types/core/cache.d.ts.map +1 -1
  4. package/dist/@types/core/events.d.ts +22 -12
  5. package/dist/@types/core/events.d.ts.map +1 -1
  6. package/dist/@types/core/model.d.ts +1 -0
  7. package/dist/@types/core/model.d.ts.map +1 -1
  8. package/dist/@types/core/paging.d.ts +59 -0
  9. package/dist/@types/core/paging.d.ts.map +1 -0
  10. package/dist/@types/core/permissions.d.ts +1 -1
  11. package/dist/@types/core/permissions.d.ts.map +1 -1
  12. package/dist/@types/core/query.d.ts +13 -43
  13. package/dist/@types/core/query.d.ts.map +1 -1
  14. package/dist/@types/core/transport.d.ts +3 -2
  15. package/dist/@types/core/transport.d.ts.map +1 -1
  16. package/dist/@types/domains/category.d.ts +1 -1
  17. package/dist/@types/domains/category.d.ts.map +1 -1
  18. package/dist/@types/domains/channel.d.ts +1 -1
  19. package/dist/@types/domains/channel.d.ts.map +1 -1
  20. package/dist/@types/domains/client.d.ts +2 -0
  21. package/dist/@types/domains/client.d.ts.map +1 -1
  22. package/dist/@types/domains/comment.d.ts +1 -1
  23. package/dist/@types/domains/comment.d.ts.map +1 -1
  24. package/dist/@types/domains/community.d.ts +1 -1
  25. package/dist/@types/domains/community.d.ts.map +1 -1
  26. package/dist/@types/domains/content.d.ts +1 -2
  27. package/dist/@types/domains/content.d.ts.map +1 -1
  28. package/dist/@types/domains/file.d.ts +1 -1
  29. package/dist/@types/domains/file.d.ts.map +1 -1
  30. package/dist/@types/domains/group.d.ts +3 -3
  31. package/dist/@types/domains/group.d.ts.map +1 -1
  32. package/dist/@types/domains/message.d.ts +1 -1
  33. package/dist/@types/domains/message.d.ts.map +1 -1
  34. package/dist/@types/domains/post.d.ts +1 -1
  35. package/dist/@types/domains/post.d.ts.map +1 -1
  36. package/dist/@types/domains/stream.d.ts +1 -1
  37. package/dist/@types/domains/stream.d.ts.map +1 -1
  38. package/dist/@types/domains/user.d.ts +2 -1
  39. package/dist/@types/domains/user.d.ts.map +1 -1
  40. package/dist/@types/index.d.ts +1 -1
  41. package/dist/@types/index.d.ts.map +1 -1
  42. package/dist/cache/api/backupCache.d.ts +24 -0
  43. package/dist/cache/api/backupCache.d.ts.map +1 -0
  44. package/dist/cache/api/disableCache.d.ts +13 -0
  45. package/dist/cache/api/disableCache.d.ts.map +1 -0
  46. package/dist/cache/api/dropFromCache.d.ts +17 -0
  47. package/dist/cache/api/dropFromCache.d.ts.map +1 -0
  48. package/dist/cache/api/enableCache.d.ts +18 -0
  49. package/dist/cache/api/enableCache.d.ts.map +1 -0
  50. package/dist/cache/api/index.d.ts +12 -0
  51. package/dist/cache/api/index.d.ts.map +1 -0
  52. package/dist/cache/api/ingestInCache.d.ts +11 -0
  53. package/dist/cache/api/ingestInCache.d.ts.map +1 -0
  54. package/dist/cache/api/mergeInCache.d.ts +20 -0
  55. package/dist/cache/api/mergeInCache.d.ts.map +1 -0
  56. package/dist/cache/api/pullFromCache.d.ts +17 -0
  57. package/dist/cache/api/pullFromCache.d.ts.map +1 -0
  58. package/dist/cache/api/pushToCache.d.ts +17 -0
  59. package/dist/cache/api/pushToCache.d.ts.map +1 -0
  60. package/dist/cache/api/queryCache.d.ts +17 -0
  61. package/dist/cache/api/queryCache.d.ts.map +1 -0
  62. package/dist/cache/api/restoreCache.d.ts +22 -0
  63. package/dist/cache/api/restoreCache.d.ts.map +1 -0
  64. package/dist/cache/api/snipeIdFromCollection.d.ts +18 -0
  65. package/dist/cache/api/snipeIdFromCollection.d.ts.map +1 -0
  66. package/dist/cache/api/upsertInCache.d.ts +19 -0
  67. package/dist/cache/api/upsertInCache.d.ts.map +1 -0
  68. package/dist/cache/api/wipeCache.d.ts +21 -0
  69. package/dist/cache/api/wipeCache.d.ts.map +1 -0
  70. package/dist/cache/utils/index.d.ts +41 -0
  71. package/dist/cache/utils/index.d.ts.map +1 -0
  72. package/dist/category/api/getCategory.d.ts.map +1 -1
  73. package/dist/category/api/queryCategories.d.ts +5 -4
  74. package/dist/category/api/queryCategories.d.ts.map +1 -1
  75. package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
  76. package/dist/channel/api/addChannelMembersRole.d.ts.map +1 -1
  77. package/dist/channel/api/createChannel.d.ts +1 -1
  78. package/dist/channel/api/createChannel.d.ts.map +1 -1
  79. package/dist/channel/api/deleteChannel.d.ts +1 -1
  80. package/dist/channel/api/deleteChannel.d.ts.map +1 -1
  81. package/dist/channel/api/getChannel.d.ts +2 -2
  82. package/dist/channel/api/getChannel.d.ts.map +1 -1
  83. package/dist/channel/api/getChannels.d.ts +2 -2
  84. package/dist/channel/api/getChannels.d.ts.map +1 -1
  85. package/dist/channel/api/joinChannel.d.ts.map +1 -1
  86. package/dist/channel/api/leaveChannel.d.ts.map +1 -1
  87. package/dist/channel/api/queryChannelMembers.d.ts +1 -5
  88. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
  89. package/dist/channel/api/queryChannels.d.ts +1 -5
  90. package/dist/channel/api/queryChannels.d.ts.map +1 -1
  91. package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
  92. package/dist/channel/api/removeChannelMembersRole.d.ts.map +1 -1
  93. package/dist/channel/api/updateChannel.d.ts +1 -1
  94. package/dist/channel/api/updateChannel.d.ts.map +1 -1
  95. package/dist/channel/events/onChannelDeleted.d.ts.map +1 -1
  96. package/dist/channel/events/onChannelJoined.d.ts.map +1 -1
  97. package/dist/channel/events/onChannelLeft.d.ts.map +1 -1
  98. package/dist/channel/events/onChannelUpdated.d.ts.map +1 -1
  99. package/dist/channel/events/onMemberAdded.d.ts.map +1 -1
  100. package/dist/channel/events/onMemberRemoved.d.ts.map +1 -1
  101. package/dist/channel/observers/observeChannel.d.ts +1 -3
  102. package/dist/channel/observers/observeChannel.d.ts.map +1 -1
  103. package/dist/client/api/connectClient.d.ts.map +1 -1
  104. package/dist/client/api/disconnectClient.d.ts.map +1 -1
  105. package/dist/client/api/getToken.d.ts +3 -1
  106. package/dist/client/api/getToken.d.ts.map +1 -1
  107. package/dist/client/api/index.d.ts +0 -2
  108. package/dist/client/api/index.d.ts.map +1 -1
  109. package/dist/comment/api/createComment.d.ts +1 -1
  110. package/dist/comment/api/createComment.d.ts.map +1 -1
  111. package/dist/comment/api/deleteComment.d.ts +1 -37
  112. package/dist/comment/api/deleteComment.d.ts.map +1 -1
  113. package/dist/comment/api/getComment.d.ts +2 -2
  114. package/dist/comment/api/getComment.d.ts.map +1 -1
  115. package/dist/comment/api/getComments.d.ts +2 -2
  116. package/dist/comment/api/getComments.d.ts.map +1 -1
  117. package/dist/comment/api/queryComments.d.ts +4 -18
  118. package/dist/comment/api/queryComments.d.ts.map +1 -1
  119. package/dist/comment/api/updateComment.d.ts +1 -1
  120. package/dist/comment/api/updateComment.d.ts.map +1 -1
  121. package/dist/comment/events/onCommentCreated.d.ts +2 -2
  122. package/dist/comment/events/onCommentCreated.d.ts.map +1 -1
  123. package/dist/comment/events/onCommentDeleted.d.ts +2 -2
  124. package/dist/comment/events/onCommentDeleted.d.ts.map +1 -1
  125. package/dist/comment/events/onCommentFlagged.d.ts +2 -2
  126. package/dist/comment/events/onCommentFlagged.d.ts.map +1 -1
  127. package/dist/comment/events/onCommentReactionAdded.d.ts +2 -2
  128. package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -1
  129. package/dist/comment/events/onCommentReactionRemoved.d.ts +2 -2
  130. package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -1
  131. package/dist/comment/events/onCommentUnflagged.d.ts +2 -2
  132. package/dist/comment/events/onCommentUnflagged.d.ts.map +1 -1
  133. package/dist/comment/events/onCommentUpdated.d.ts +2 -2
  134. package/dist/comment/events/onCommentUpdated.d.ts.map +1 -1
  135. package/dist/comment/events/utils.d.ts +1 -1
  136. package/dist/comment/events/utils.d.ts.map +1 -1
  137. package/dist/comment/observers/observeComment.d.ts +1 -3
  138. package/dist/comment/observers/observeComment.d.ts.map +1 -1
  139. package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
  140. package/dist/community/api/addCommunityMembersRole.d.ts.map +1 -1
  141. package/dist/community/api/createCommunity.d.ts +1 -1
  142. package/dist/community/api/createCommunity.d.ts.map +1 -1
  143. package/dist/community/api/deleteCommunity.d.ts.map +1 -1
  144. package/dist/community/api/getCommunities.d.ts +2 -2
  145. package/dist/community/api/getCommunities.d.ts.map +1 -1
  146. package/dist/community/api/getCommunity.d.ts +2 -2
  147. package/dist/community/api/getCommunity.d.ts.map +1 -1
  148. package/dist/community/api/joinCommunity.d.ts.map +1 -1
  149. package/dist/community/api/leaveCommunity.d.ts.map +1 -1
  150. package/dist/community/api/queryCommunities.d.ts +1 -5
  151. package/dist/community/api/queryCommunities.d.ts.map +1 -1
  152. package/dist/community/api/queryCommunityMembers.d.ts +1 -5
  153. package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
  154. package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
  155. package/dist/community/api/removeCommunityMembersRole.d.ts.map +1 -1
  156. package/dist/community/api/updateCommunity.d.ts +1 -1
  157. package/dist/community/api/updateCommunity.d.ts.map +1 -1
  158. package/dist/community/events/onCommunityCreated.d.ts +1 -1
  159. package/dist/community/events/onCommunityDeleted.d.ts +1 -1
  160. package/dist/community/events/onCommunityJoined.d.ts +3 -3
  161. package/dist/community/events/onCommunityJoined.d.ts.map +1 -1
  162. package/dist/community/events/onCommunityLeft.d.ts +3 -3
  163. package/dist/community/events/onCommunityLeft.d.ts.map +1 -1
  164. package/dist/community/events/onCommunityUpdated.d.ts +1 -1
  165. package/dist/community/events/onCommunityUserAdded.d.ts +3 -3
  166. package/dist/community/events/onCommunityUserAdded.d.ts.map +1 -1
  167. package/dist/community/events/onCommunityUserBanned.d.ts +3 -3
  168. package/dist/community/events/onCommunityUserBanned.d.ts.map +1 -1
  169. package/dist/community/events/onCommunityUserRemoved.d.ts +3 -3
  170. package/dist/community/events/onCommunityUserRemoved.d.ts.map +1 -1
  171. package/dist/community/events/onCommunityUserUnbanned.d.ts +3 -3
  172. package/dist/community/events/onCommunityUserUnbanned.d.ts.map +1 -1
  173. package/dist/community/events/utils.d.ts +1 -0
  174. package/dist/community/events/utils.d.ts.map +1 -1
  175. package/dist/community/observers/observeCommunity.d.ts +1 -3
  176. package/dist/community/observers/observeCommunity.d.ts.map +1 -1
  177. package/dist/core/events.d.ts +3 -3
  178. package/dist/core/events.d.ts.map +1 -1
  179. package/dist/core/model/idResolvers.d.ts +9 -11
  180. package/dist/core/model/idResolvers.d.ts.map +1 -1
  181. package/dist/core/model/identifyModel.d.ts +1 -1
  182. package/dist/core/model/identifyModel.d.ts.map +1 -1
  183. package/dist/core/model/index.d.ts +6 -2
  184. package/dist/core/model/index.d.ts.map +1 -1
  185. package/dist/core/query/index.d.ts +0 -1
  186. package/dist/core/query/index.d.ts.map +1 -1
  187. package/dist/core/query/paging.d.ts +21 -3
  188. package/dist/core/query/paging.d.ts.map +1 -1
  189. package/dist/core/query/query.d.ts +9 -21
  190. package/dist/core/query/query.d.ts.map +1 -1
  191. package/dist/core/subscription.d.ts +13 -2
  192. package/dist/core/subscription.d.ts.map +1 -1
  193. package/dist/core/transports/mqtt.d.ts +2 -1
  194. package/dist/core/transports/mqtt.d.ts.map +1 -1
  195. package/dist/core/transports/ws.d.ts.map +1 -1
  196. package/dist/feed/api/queryGlobalFeed.d.ts +1 -5
  197. package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
  198. package/dist/file/api/createFile.d.ts +1 -1
  199. package/dist/file/api/createFile.d.ts.map +1 -1
  200. package/dist/file/api/deleteFile.d.ts.map +1 -1
  201. package/dist/file/api/getFile.d.ts +2 -2
  202. package/dist/file/api/getFile.d.ts.map +1 -1
  203. package/dist/file/observers/observeFile.d.ts +1 -3
  204. package/dist/file/observers/observeFile.d.ts.map +1 -1
  205. package/dist/index.cjs.js +17428 -2854
  206. package/dist/index.d.ts +3 -2
  207. package/dist/index.d.ts.map +1 -1
  208. package/dist/index.esm.js +17411 -2840
  209. package/dist/index.umd.js +6 -4
  210. package/dist/message/api/createMessage.d.ts +2 -2
  211. package/dist/message/api/createMessage.d.ts.map +1 -1
  212. package/dist/message/api/deleteMessage.d.ts +2 -2
  213. package/dist/message/api/deleteMessage.d.ts.map +1 -1
  214. package/dist/message/api/getMessage.d.ts +2 -2
  215. package/dist/message/api/getMessage.d.ts.map +1 -1
  216. package/dist/message/api/getMessages.d.ts +2 -2
  217. package/dist/message/api/getMessages.d.ts.map +1 -1
  218. package/dist/message/api/queryMessages.d.ts +2 -16
  219. package/dist/message/api/queryMessages.d.ts.map +1 -1
  220. package/dist/message/api/updateMessage.d.ts +2 -2
  221. package/dist/message/api/updateMessage.d.ts.map +1 -1
  222. package/dist/message/events/onMessageCreated.d.ts.map +1 -1
  223. package/dist/message/events/onMessageDeleted.d.ts.map +1 -1
  224. package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
  225. package/dist/message/observers/observeMessage.d.ts +1 -3
  226. package/dist/message/observers/observeMessage.d.ts.map +1 -1
  227. package/dist/message/observers/observeMessages.d.ts +1 -1
  228. package/dist/message/observers/observeMessages.d.ts.map +1 -1
  229. package/dist/post/api/createPost.d.ts +1 -1
  230. package/dist/post/api/createPost.d.ts.map +1 -1
  231. package/dist/post/api/deletePost.d.ts +1 -40
  232. package/dist/post/api/deletePost.d.ts.map +1 -1
  233. package/dist/post/api/getPost.d.ts +5 -5
  234. package/dist/post/api/getPost.d.ts.map +1 -1
  235. package/dist/post/api/getPosts.d.ts +4 -4
  236. package/dist/post/api/getPosts.d.ts.map +1 -1
  237. package/dist/post/api/queryPosts.d.ts +4 -8
  238. package/dist/post/api/queryPosts.d.ts.map +1 -1
  239. package/dist/post/api/updatePost.d.ts +1 -1
  240. package/dist/post/api/updatePost.d.ts.map +1 -1
  241. package/dist/post/events/onPostApproved.d.ts +1 -1
  242. package/dist/post/events/onPostCreated.d.ts +1 -1
  243. package/dist/post/events/onPostDeclined.d.ts +1 -1
  244. package/dist/post/events/onPostDeleted.d.ts +1 -1
  245. package/dist/post/events/onPostDeleted.d.ts.map +1 -1
  246. package/dist/post/events/onPostFlagged.d.ts +1 -1
  247. package/dist/post/events/onPostReactionAdded.d.ts +1 -1
  248. package/dist/post/events/onPostReactionAdded.d.ts.map +1 -1
  249. package/dist/post/events/onPostReactionRemoved.d.ts +1 -1
  250. package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -1
  251. package/dist/post/events/onPostUnflagged.d.ts +1 -1
  252. package/dist/post/events/onPostUpdated.d.ts +1 -1
  253. package/dist/post/events/utils.d.ts.map +1 -1
  254. package/dist/post/observers/observePost.d.ts +1 -3
  255. package/dist/post/observers/observePost.d.ts.map +1 -1
  256. package/dist/reaction/api/addReaction.d.ts +1 -1
  257. package/dist/reaction/api/addReaction.d.ts.map +1 -1
  258. package/dist/reaction/api/removeReaction.d.ts +1 -1
  259. package/dist/reaction/api/removeReaction.d.ts.map +1 -1
  260. package/dist/reaction/events/onReactionAdded.d.ts +4 -2
  261. package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
  262. package/dist/reaction/events/onReactionRemoved.d.ts +4 -2
  263. package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -1
  264. package/dist/reaction/utils/fetchReference.d.ts +1 -1
  265. package/dist/reaction/utils/fetchReference.d.ts.map +1 -1
  266. package/dist/reaction/utils/index.d.ts +1 -0
  267. package/dist/reaction/utils/index.d.ts.map +1 -1
  268. package/dist/reaction/utils/preparePayloadForCache.d.ts +3 -0
  269. package/dist/reaction/utils/preparePayloadForCache.d.ts.map +1 -0
  270. package/dist/report/api/createReport.d.ts.map +1 -1
  271. package/dist/report/api/deleteReport.d.ts.map +1 -1
  272. package/dist/role/api/getRole.d.ts +2 -2
  273. package/dist/role/api/getRole.d.ts.map +1 -1
  274. package/dist/role/api/queryRoles.d.ts +1 -5
  275. package/dist/role/api/queryRoles.d.ts.map +1 -1
  276. package/dist/stream/api/createStream.d.ts +1 -1
  277. package/dist/stream/api/createStream.d.ts.map +1 -1
  278. package/dist/stream/api/deleteStream.d.ts.map +1 -1
  279. package/dist/stream/api/disposeStream.d.ts +1 -1
  280. package/dist/stream/api/disposeStream.d.ts.map +1 -1
  281. package/dist/stream/api/getStream.d.ts +2 -2
  282. package/dist/stream/api/getStream.d.ts.map +1 -1
  283. package/dist/stream/api/queryStreams.d.ts +1 -5
  284. package/dist/stream/api/queryStreams.d.ts.map +1 -1
  285. package/dist/stream/api/updateStream.d.ts +1 -1
  286. package/dist/stream/api/updateStream.d.ts.map +1 -1
  287. package/dist/stream/events/onStreamRecorded.d.ts.map +1 -1
  288. package/dist/stream/events/onStreamStarted.d.ts.map +1 -1
  289. package/dist/stream/events/onStreamStopped.d.ts.map +1 -1
  290. package/dist/user/api/getUser.d.ts +4 -4
  291. package/dist/user/api/getUser.d.ts.map +1 -1
  292. package/dist/user/api/getUsers.d.ts +4 -4
  293. package/dist/user/api/getUsers.d.ts.map +1 -1
  294. package/dist/user/api/queryUsers.d.ts +7 -11
  295. package/dist/user/api/queryUsers.d.ts.map +1 -1
  296. package/dist/user/api/updateUser.d.ts +1 -1
  297. package/dist/user/api/updateUser.d.ts.map +1 -1
  298. package/dist/user/events/onUserFlagCleared.d.ts +1 -1
  299. package/dist/user/events/onUserFlagged.d.ts +1 -1
  300. package/dist/user/events/onUserUnflagged.d.ts +1 -1
  301. package/dist/user/events/onUserUpdated.d.ts +1 -1
  302. package/dist/user/events/utils.d.ts.map +1 -1
  303. package/dist/user/observers/observeUser.d.ts +1 -3
  304. package/dist/user/observers/observeUser.d.ts.map +1 -1
  305. package/package.json +6 -5
  306. package/src/@types/core/cache.ts +56 -9
  307. package/src/@types/core/events.ts +14 -11
  308. package/src/@types/core/model.ts +2 -0
  309. package/src/@types/core/paging.ts +75 -0
  310. package/src/@types/core/permissions.ts +0 -1
  311. package/src/@types/core/query.ts +14 -55
  312. package/src/@types/core/transport.ts +4 -2
  313. package/src/@types/domains/category.ts +0 -1
  314. package/src/@types/domains/channel.ts +0 -1
  315. package/src/@types/domains/client.ts +2 -0
  316. package/src/@types/domains/comment.ts +0 -1
  317. package/src/@types/domains/community.ts +0 -1
  318. package/src/@types/domains/content.ts +17 -15
  319. package/src/@types/domains/file.ts +0 -1
  320. package/src/@types/domains/group.ts +2 -3
  321. package/src/@types/domains/message.ts +0 -1
  322. package/src/@types/domains/post.ts +8 -8
  323. package/src/@types/domains/stream.ts +0 -1
  324. package/src/@types/domains/user.ts +1 -1
  325. package/src/@types/index.ts +1 -1
  326. package/src/@types/mqtt.d.ts +3 -0
  327. package/src/cache/api/backupCache.ts +53 -0
  328. package/src/cache/api/disableCache.ts +23 -0
  329. package/src/cache/api/dropFromCache.ts +44 -0
  330. package/src/cache/api/enableCache.ts +29 -0
  331. package/src/cache/api/index.ts +23 -0
  332. package/src/cache/api/ingestInCache.ts +33 -0
  333. package/src/cache/api/mergeInCache.ts +45 -0
  334. package/src/cache/api/pullFromCache.ts +33 -0
  335. package/src/cache/api/pushToCache.ts +40 -0
  336. package/src/cache/api/queryCache.ts +35 -0
  337. package/src/cache/api/restoreCache.ts +43 -0
  338. package/src/cache/api/snipeIdFromCollection.ts +53 -0
  339. package/src/cache/api/upsertInCache.ts +39 -0
  340. package/src/cache/api/wipeCache.ts +36 -0
  341. package/src/cache/utils/index.ts +84 -0
  342. package/src/category/api/getCategory.ts +3 -4
  343. package/src/category/api/queryCategories.ts +5 -6
  344. package/src/channel/api/addChannelMembers.ts +4 -5
  345. package/src/channel/api/addChannelMembersRole.ts +3 -5
  346. package/src/channel/api/createChannel.ts +16 -11
  347. package/src/channel/api/deleteChannel.ts +2 -2
  348. package/src/channel/api/getChannel.ts +22 -9
  349. package/src/channel/api/getChannels.ts +25 -12
  350. package/src/channel/api/joinChannel.ts +5 -6
  351. package/src/channel/api/leaveChannel.ts +5 -6
  352. package/src/channel/api/queryChannelMembers.ts +9 -11
  353. package/src/channel/api/queryChannels.ts +19 -12
  354. package/src/channel/api/removeChannelMembers.ts +4 -5
  355. package/src/channel/api/removeChannelMembersRole.ts +3 -5
  356. package/src/channel/api/updateChannel.ts +9 -7
  357. package/src/channel/events/onChannelDeleted.ts +1 -3
  358. package/src/channel/events/onChannelJoined.ts +1 -3
  359. package/src/channel/events/onChannelLeft.ts +1 -3
  360. package/src/channel/events/onChannelUpdated.ts +1 -3
  361. package/src/channel/events/onMemberAdded.ts +1 -3
  362. package/src/channel/events/onMemberRemoved.ts +1 -3
  363. package/src/channel/observers/observeChannel.ts +20 -14
  364. package/src/client/api/connectClient.ts +7 -7
  365. package/src/client/api/disconnectClient.ts +3 -0
  366. package/src/client/api/getToken.ts +3 -2
  367. package/src/client/api/index.ts +3 -2
  368. package/src/comment/api/createComment.ts +10 -7
  369. package/src/comment/api/deleteComment.ts +9 -8
  370. package/src/comment/api/getComment.ts +22 -10
  371. package/src/comment/api/getComments.ts +25 -12
  372. package/src/comment/api/queryComments.ts +35 -89
  373. package/src/comment/api/updateComment.ts +9 -6
  374. package/src/comment/events/onCommentCreated.ts +3 -3
  375. package/src/comment/events/onCommentDeleted.ts +3 -3
  376. package/src/comment/events/onCommentFlagged.ts +3 -3
  377. package/src/comment/events/onCommentReactionAdded.ts +40 -6
  378. package/src/comment/events/onCommentReactionRemoved.ts +40 -6
  379. package/src/comment/events/onCommentUnflagged.ts +3 -3
  380. package/src/comment/events/onCommentUpdated.ts +3 -3
  381. package/src/comment/events/utils.ts +30 -8
  382. package/src/comment/observers/observeComment.ts +20 -25
  383. package/src/community/api/addCommunityMembers.ts +5 -6
  384. package/src/community/api/addCommunityMembersRole.ts +3 -5
  385. package/src/community/api/createCommunity.ts +9 -6
  386. package/src/community/api/deleteCommunity.ts +3 -3
  387. package/src/community/api/getCommunities.ts +25 -12
  388. package/src/community/api/getCommunity.ts +23 -9
  389. package/src/community/api/joinCommunity.ts +7 -5
  390. package/src/community/api/leaveCommunity.ts +7 -5
  391. package/src/community/api/queryCommunities.ts +18 -12
  392. package/src/community/api/queryCommunityMembers.ts +10 -11
  393. package/src/community/api/removeCommunityMembers.ts +4 -5
  394. package/src/community/api/removeCommunityMembersRole.ts +3 -5
  395. package/src/community/api/updateCommunity.ts +10 -7
  396. package/src/community/events/onCommunityCreated.ts +1 -1
  397. package/src/community/events/onCommunityDeleted.ts +1 -1
  398. package/src/community/events/onCommunityJoined.ts +5 -5
  399. package/src/community/events/onCommunityLeft.ts +5 -5
  400. package/src/community/events/onCommunityUpdated.ts +1 -1
  401. package/src/community/events/onCommunityUserAdded.ts +5 -5
  402. package/src/community/events/onCommunityUserBanned.ts +5 -5
  403. package/src/community/events/onCommunityUserRemoved.ts +5 -5
  404. package/src/community/events/onCommunityUserUnbanned.ts +5 -5
  405. package/src/community/events/utils.ts +94 -4
  406. package/src/community/observers/observeCommunity.ts +21 -22
  407. package/src/core/model/idResolvers.ts +10 -40
  408. package/src/core/model/identifyModel.ts +37 -16
  409. package/src/core/model/index.ts +22 -2
  410. package/src/core/query/index.ts +0 -1
  411. package/src/core/query/paging.ts +43 -3
  412. package/src/core/query/query.ts +63 -115
  413. package/src/core/subscription.ts +66 -17
  414. package/src/core/transports/mqtt.ts +86 -20
  415. package/src/core/transports/ws.ts +1 -0
  416. package/src/feed/api/queryGlobalFeed.ts +7 -10
  417. package/src/file/api/createFile.ts +8 -6
  418. package/src/file/api/deleteFile.ts +5 -6
  419. package/src/file/api/getFile.ts +21 -9
  420. package/src/file/observers/observeFile.ts +5 -7
  421. package/src/index.ts +6 -6
  422. package/src/message/api/createMessage.ts +21 -17
  423. package/src/message/api/deleteMessage.ts +12 -11
  424. package/src/message/api/getMessage.ts +22 -10
  425. package/src/message/api/getMessages.ts +25 -12
  426. package/src/message/api/queryMessages.ts +34 -68
  427. package/src/message/api/updateMessage.ts +22 -12
  428. package/src/message/events/onMessageCreated.ts +1 -3
  429. package/src/message/events/onMessageDeleted.ts +1 -3
  430. package/src/message/events/onMessageUpdated.ts +1 -3
  431. package/src/message/observers/observeMessage.ts +8 -10
  432. package/src/message/observers/observeMessages.ts +6 -6
  433. package/src/post/api/createPost.ts +9 -6
  434. package/src/post/api/deletePost.ts +11 -9
  435. package/src/post/api/getPost.ts +26 -14
  436. package/src/post/api/getPosts.ts +27 -14
  437. package/src/post/api/queryPosts.ts +46 -19
  438. package/src/post/api/updatePost.ts +10 -6
  439. package/src/post/events/onPostApproved.ts +1 -1
  440. package/src/post/events/onPostCreated.ts +1 -1
  441. package/src/post/events/onPostDeclined.ts +1 -1
  442. package/src/post/events/onPostDeleted.ts +2 -2
  443. package/src/post/events/onPostFlagged.ts +1 -1
  444. package/src/post/events/onPostReactionAdded.ts +38 -4
  445. package/src/post/events/onPostReactionRemoved.ts +38 -4
  446. package/src/post/events/onPostUnflagged.ts +1 -1
  447. package/src/post/events/onPostUpdated.ts +1 -1
  448. package/src/post/events/utils.ts +39 -6
  449. package/src/post/observers/observePost.ts +22 -27
  450. package/src/reaction/api/addReaction.ts +30 -20
  451. package/src/reaction/api/removeReaction.ts +30 -20
  452. package/src/reaction/events/onReactionAdded.ts +37 -18
  453. package/src/reaction/events/onReactionRemoved.ts +38 -15
  454. package/src/reaction/utils/fetchReference.ts +1 -1
  455. package/src/reaction/utils/index.ts +1 -0
  456. package/src/reaction/utils/preparePayloadForCache.ts +45 -0
  457. package/src/report/api/createReport.ts +4 -5
  458. package/src/report/api/deleteReport.ts +4 -5
  459. package/src/role/api/getRole.ts +25 -9
  460. package/src/role/api/queryRoles.ts +10 -12
  461. package/src/stream/api/createStream.ts +9 -6
  462. package/src/stream/api/deleteStream.ts +10 -1
  463. package/src/stream/api/disposeStream.ts +10 -6
  464. package/src/stream/api/getStream.ts +23 -10
  465. package/src/stream/api/queryStreams.ts +10 -11
  466. package/src/stream/api/updateStream.ts +9 -6
  467. package/src/stream/events/onStreamRecorded.ts +1 -3
  468. package/src/stream/events/onStreamStarted.ts +1 -3
  469. package/src/stream/events/onStreamStopped.ts +1 -3
  470. package/src/user/api/getUser.ts +14 -11
  471. package/src/user/api/getUsers.ts +30 -14
  472. package/src/user/api/queryUsers.ts +40 -17
  473. package/src/user/api/updateUser.ts +10 -7
  474. package/src/user/events/onUserFlagCleared.ts +1 -1
  475. package/src/user/events/onUserFlagged.ts +1 -1
  476. package/src/user/events/onUserUnflagged.ts +1 -1
  477. package/src/user/events/onUserUpdated.ts +1 -1
  478. package/src/user/events/utils.ts +6 -4
  479. package/src/user/observers/observeUser.ts +9 -11
  480. package/dist/@types/core/store.d.ts +0 -46
  481. package/dist/@types/core/store.d.ts.map +0 -1
  482. package/dist/client/api/clearCache.d.ts +0 -15
  483. package/dist/client/api/clearCache.d.ts.map +0 -1
  484. package/dist/client/api/enableCache.d.ts +0 -15
  485. package/dist/client/api/enableCache.d.ts.map +0 -1
  486. package/dist/core/cache/drop.d.ts +0 -11
  487. package/dist/core/cache/drop.d.ts.map +0 -1
  488. package/dist/core/cache/index.d.ts +0 -19
  489. package/dist/core/cache/index.d.ts.map +0 -1
  490. package/dist/core/cache/ingest.d.ts +0 -10
  491. package/dist/core/cache/ingest.d.ts.map +0 -1
  492. package/dist/core/cache/merge.d.ts +0 -10
  493. package/dist/core/cache/merge.d.ts.map +0 -1
  494. package/dist/core/cache/mutate.d.ts +0 -10
  495. package/dist/core/cache/mutate.d.ts.map +0 -1
  496. package/dist/core/cache/pull.d.ts +0 -11
  497. package/dist/core/cache/pull.d.ts.map +0 -1
  498. package/dist/core/cache/push.d.ts +0 -10
  499. package/dist/core/cache/push.d.ts.map +0 -1
  500. package/dist/core/cache/sync.d.ts +0 -10
  501. package/dist/core/cache/sync.d.ts.map +0 -1
  502. package/dist/core/model/toRecord.d.ts +0 -10
  503. package/dist/core/model/toRecord.d.ts.map +0 -1
  504. package/dist/core/query/decorate.d.ts +0 -23
  505. package/dist/core/query/decorate.d.ts.map +0 -1
  506. package/dist/core/stores/index.d.ts +0 -3
  507. package/dist/core/stores/index.d.ts.map +0 -1
  508. package/dist/core/stores/memory.d.ts +0 -30
  509. package/dist/core/stores/memory.d.ts.map +0 -1
  510. package/dist/core/stores/persistent.d.ts +0 -13
  511. package/dist/core/stores/persistent.d.ts.map +0 -1
  512. package/src/@types/core/store.ts +0 -52
  513. package/src/client/api/clearCache.ts +0 -23
  514. package/src/client/api/enableCache.ts +0 -36
  515. package/src/core/cache/drop.ts +0 -24
  516. package/src/core/cache/index.ts +0 -24
  517. package/src/core/cache/ingest.ts +0 -24
  518. package/src/core/cache/merge.ts +0 -19
  519. package/src/core/cache/mutate.ts +0 -25
  520. package/src/core/cache/pull.ts +0 -31
  521. package/src/core/cache/push.ts +0 -41
  522. package/src/core/cache/sync.ts +0 -41
  523. package/src/core/model/toRecord.ts +0 -11
  524. package/src/core/query/decorate.ts +0 -64
  525. package/src/core/stores/index.ts +0 -2
  526. package/src/core/stores/memory.ts +0 -59
  527. package/src/core/stores/persistent.ts +0 -63
@@ -1,7 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api'
2
2
 
3
- import { ingestInCache, pullFromCache, dropFromCache } from '~/core/cache'
4
- import { decoratePayload } from '~/core/query'
3
+ import { pullFromCache, dropFromCache } from '~/cache/api'
4
+ import { ingestInCache } from '~/cache/api/ingestInCache'
5
5
 
6
6
  /**
7
7
  * ```js
@@ -19,7 +19,7 @@ import { decoratePayload } from '~/core/query'
19
19
  */
20
20
  export const getComment = async (
21
21
  commentId: Amity.Comment['commentId']
22
- ) => {
22
+ ): Promise<Amity.Cached<Amity.Comment>> => {
23
23
  const client = getActiveClient()
24
24
  client.log('comment/getComment', commentId)
25
25
 
@@ -34,17 +34,20 @@ export const getComment = async (
34
34
  data = response.data;
35
35
  } catch (error) {
36
36
  if ((error as Amity.ErrorResponse)?.code === Amity.ServerError.ITEM_NOT_FOUND) {
37
- dropFromCache('comment', {commentId})
37
+ dropFromCache(['comment', 'get', commentId], true)
38
38
  }
39
39
 
40
40
  throw error;
41
41
  }
42
42
 
43
- decoratePayload(data)
44
- ingestInCache(data)
43
+ const cachedAt = client.cache && Date.now()
44
+ if (client.cache) ingestInCache(data, { cachedAt })
45
45
 
46
46
  const { comments } = data
47
- return comments.find(comment => comment.commentId === commentId)!
47
+ return {
48
+ data: comments.find(comment => comment.commentId === commentId)!,
49
+ cachedAt,
50
+ }
48
51
  }
49
52
 
50
53
  /**
@@ -62,10 +65,19 @@ export const getComment = async (
62
65
  */
63
66
  getComment.locally = (
64
67
  commentId: Amity.Comment['commentId']
65
- ) => {
68
+ ): Amity.Cached<Amity.Comment> | undefined => {
66
69
  const client = getActiveClient()
67
70
  client.log('comment/getComment.locally', commentId)
68
71
 
69
- const [comment] = pullFromCache('comment', commentId) ?? []
70
- return comment
72
+ if (!client.cache) return
73
+
74
+ const cached = pullFromCache<Amity.Comment>(['comment', 'get', commentId])
75
+
76
+ if (!cached)
77
+ return
78
+
79
+ return {
80
+ data: cached.data,
81
+ cachedAt: cached.cachedAt,
82
+ }
71
83
  }
@@ -1,8 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api'
2
2
 
3
- import { decoratePayload } from '~/core/query'
4
- import { ingestInCache, pullFromCache } from '~/core/cache'
5
- import { toRecord } from '~/core/model'
3
+ import { pullFromCache } from '~/cache/api'
4
+ import { ingestInCache } from '~/cache/api/ingestInCache'
6
5
 
7
6
  /**
8
7
  * ```js
@@ -20,7 +19,7 @@ import { toRecord } from '~/core/model'
20
19
  */
21
20
  export const getComments = async (
22
21
  commentIds: Amity.Comment['commentId'][],
23
- ) => {
22
+ ): Promise<Amity.Cached<Amity.Comment[]>> => {
24
23
  const client = getActiveClient()
25
24
  client.log('comment/getComments', commentIds)
26
25
 
@@ -30,11 +29,13 @@ export const getComments = async (
30
29
  { params: { commentIds } },
31
30
  )
32
31
 
33
- decoratePayload(data)
34
- ingestInCache(data)
32
+ const cachedAt = client.cache && Date.now()
33
+ if (client.cache) ingestInCache(data, { cachedAt })
35
34
 
36
- const { comments } = data
37
- return toRecord(comments)
35
+ return {
36
+ data: data.comments,
37
+ cachedAt
38
+ }
38
39
  }
39
40
 
40
41
  /**
@@ -52,12 +53,24 @@ export const getComments = async (
52
53
  */
53
54
  getComments.locally = (
54
55
  commentIds: Amity.Comment['commentId'][]
55
- ) => {
56
+ ): Amity.Cached<Amity.Comment[]> | undefined => {
56
57
  const client = getActiveClient()
57
58
  client.log('comment/getComments.locally', commentIds)
58
59
 
59
- const cached = pullFromCache('comment', ...commentIds) ?? []
60
+ if (!client.cache) return
60
61
 
61
- if (cached?.length === commentIds.length)
62
- return toRecord(cached)
62
+ const cached = commentIds
63
+ .map(commentId => pullFromCache<Amity.Comment>(['comment', 'get', commentId])!)
64
+ .filter(Boolean)
65
+
66
+ const comments = cached.map(({ data }) => data)
67
+ const oldest = cached.sort((a, b) => a.cachedAt! < b.cachedAt! ? -1 : 1)?.[0]
68
+
69
+ if (cached?.length < commentIds.length)
70
+ return
71
+
72
+ return {
73
+ data: comments,
74
+ cachedAt: oldest.cachedAt,
75
+ }
63
76
  }
@@ -1,20 +1,19 @@
1
1
  import { getActiveClient } from '~/client/api'
2
2
 
3
3
  import {
4
- decoratePayload,
5
- filterByPropEquality,
6
4
  sortBySegmentNumber,
7
5
  toPage,
8
6
  toToken,
9
7
  } from '~/core/query'
8
+ import { pullFromCache, pushToCache } from '~/cache/api'
9
+ import { ingestInCache } from '~/cache/api/ingestInCache'
10
+ import { getResolver } from '~/core/model'
10
11
 
11
- import { ingestInCache, pullFromCache } from '~/core/cache'
12
- import { toRecord } from '~/core/model'
13
12
 
14
13
  /**
15
14
  * ```js
16
15
  * import { queryComments } from '@amityco/ts-sdk'
17
- * const comments = await queryComments({ postId })
16
+ * const comments = await queryComments({ referenceType: 'post', referenceId: 'foo' })
18
17
  * ```
19
18
  *
20
19
  * Queries a paginable list of {@link Amity.Comment} objects
@@ -32,13 +31,13 @@ export const queryComments = async (query: {
32
31
  hasFlag?: boolean
33
32
  isDeleted?: Amity.Comment['isDeleted']
34
33
  page?: Amity.Page
35
- }) => {
34
+ }): Promise<Amity.Cached<Amity.Paged<Amity.Comment>>> => {
36
35
  const client = getActiveClient()
37
36
  client.log('comment/queryComments', query)
38
37
 
39
- const { page, ...params } = query
38
+ const { page = { limit: 10 }, ...params } = query
40
39
 
41
- const filterByParentId = query.parentId !== undefined
40
+ // const filterByParentId = query.parentId !== undefined
42
41
 
43
42
  // API-FIX: parameters should be querystring. (1)
44
43
  // API-FIX: backend should answer Amity.Response (2)
@@ -55,22 +54,28 @@ export const queryComments = async (query: {
55
54
 
56
55
  // API-FIX: backend should answer Amity.Response (2)
57
56
  // const { paging, comments } = unwrapPayload(data)
58
- const { paging, ...response } = data
57
+ const { paging, ...payload } = data
58
+ const { comments } = payload
59
59
 
60
- decoratePayload(response as unknown as Record<string, Object[]>)
61
- ingestInCache(response as unknown as Record<string, Object[]>)
60
+ const cachedAt = client.cache && Date.now()
61
+
62
+ if (client.cache) {
63
+ ingestInCache(payload as Amity.CommentPayload, { cachedAt })
64
+
65
+ const cacheKey = ['comment', 'query', { ...params, options: { ...page } } as Amity.Serializable]
66
+ pushToCache(cacheKey, { comments: comments.map(getResolver('comment')), paging })
67
+ }
62
68
 
63
- const prevPage = toPage(paging.previous)
64
69
  const nextPage = toPage(paging.next)
70
+ const prevPage = toPage(paging.previous)
65
71
 
66
- const { comments } = response
67
- return { data: toRecord(comments), prevPage, nextPage }
72
+ return { data: comments, cachedAt, prevPage, nextPage }
68
73
  }
69
74
 
70
75
  /**
71
76
  * ```js
72
77
  * import { queryComments } from '@amityco/ts-sdk'
73
- * const comments = queryComments.locally({ postId })
78
+ * const comments = queryComments.locally({ referenceType: 'post', referenceId: 'foo' })
74
79
  * ```
75
80
  *
76
81
  * Queries a paginable list of {@link Amity.Comment} objects from cache
@@ -82,88 +87,29 @@ export const queryComments = async (query: {
82
87
  */
83
88
  queryComments.locally = (
84
89
  query: Parameters<typeof queryComments>[0],
85
- ) => {
90
+ ): Amity.Cached<Amity.Paged<Amity.Comment>> | undefined => {
86
91
  const client = getActiveClient()
87
- client.log('post/queryComments.locally', query)
88
-
89
- const {
90
- referenceId,
91
- referenceType,
92
- parentId,
93
- isDeleted,
94
- page = { before: 0, limit: 5 },
95
- } = query
96
-
97
- if (isNaN(page.after!) && isNaN(page.before!))
98
- page.before = 0;
99
-
100
- if (isNaN(page.limit))
101
- page.limit = 5
102
-
103
- let comments: Amity.Comment[] = pullFromCache('comment') ?? []
104
-
105
- // no cache
106
- if (!comments.length)
107
- return
92
+ client.log('comment/queryComments.locally', query)
108
93
 
109
- // filter
110
- comments = filterByPropEquality(comments, 'referenceId', referenceId)
111
- comments = filterByPropEquality(comments, 'referenceType', referenceType)
112
- comments = filterByPropEquality(comments, 'parentId', parentId)
113
- comments = filterByPropEquality(comments, 'isDeleted', isDeleted)
94
+ if (!client.cache) return
114
95
 
115
- // no interesting cache
116
- if (!comments.length)
117
- return
118
-
119
- // sort
120
- comments = comments.sort(sortBySegmentNumber)
121
-
122
- // paging
123
- // API-FIX we can't reuse proper page because the message page is done
124
- // by segmentNumber which is sadly unique to the entire platform.
125
- // this part is copied and adapted from sliceByPaging function
96
+ const { page = { limit: 10 }, ...params } = query
126
97
 
127
- const afterIndex = !isNaN(page.after!)
128
- ? comments.findIndex(({ segmentNumber }) => segmentNumber === page.after! + 1)
129
- : 0
98
+ const queryKey = ['comment', 'query', { ...params, options: { ...page }} as Amity.Serializable];
99
+ const { data, cachedAt } = pullFromCache<{comments: Pick<Amity.Comment, 'commentId'>[]} & Amity.Pagination>(queryKey) ?? {}
130
100
 
131
- const beforeIndex = !isNaN(page.before!) && page.before !== 0
132
- ? comments.findIndex(({ segmentNumber }) => segmentNumber === page.before! - 1) + 1
133
- : comments.length
134
-
135
- if (afterIndex < 0 || beforeIndex < 0)
101
+ if (!data?.comments.length)
136
102
  return
137
103
 
138
- let slice = comments.slice(
139
- afterIndex !== -1 ? afterIndex : 0,
140
- beforeIndex !== -1 ? beforeIndex : undefined,
141
- )
104
+ const comments: Amity.Comment[] = data.comments
105
+ .map(commentId => pullFromCache<Amity.Comment>(['comment', 'get', commentId])!)
106
+ .filter(Boolean)
107
+ .map(({ data }) => data)
142
108
 
143
- // nothing left after slicing
144
- if (!slice.length)
145
- return
109
+ const prevPage = toPage(data?.paging.previous)
110
+ const nextPage = toPage(data?.paging.next)
146
111
 
147
- if (!isNaN(page.after!) && !isNaN(page.before!)) {
148
- // do nothing
149
- } else if (!isNaN(page.after!)) {
150
- slice = slice.slice(0, page.limit)
151
- } else if (!isNaN(page.before!)) {
152
- slice = slice.slice(-page.limit)
153
- }
154
-
155
- for (let i = 0; i < slice.length - 1; i++)
156
- if (slice[i].segmentNumber !== slice[i + 1].segmentNumber - 1)
157
- return
158
-
159
- const prevPage = slice[0].segmentNumber > 1
160
- ? { before: slice[0].segmentNumber, limit: page.limit }
112
+ return comments.length === data?.comments?.length
113
+ ? { data: comments, cachedAt, prevPage, nextPage }
161
114
  : undefined
162
-
163
- const nextPage = {
164
- after: slice[slice.length - 1].segmentNumber,
165
- limit: page.limit,
166
- }
167
-
168
- return { data: toRecord(slice), nextPage, prevPage }
169
115
  }
@@ -1,7 +1,6 @@
1
1
  import { getActiveClient } from '~/client/api'
2
2
 
3
- import { decoratePayload } from '~/core/query'
4
- import { ingestInCache } from '~/core/cache'
3
+ import { ingestInCache } from '~/cache/api/ingestInCache'
5
4
  import { fireEvent } from '~/core/events'
6
5
 
7
6
  /**
@@ -24,7 +23,7 @@ import { fireEvent } from '~/core/events'
24
23
  export const updateComment = async (
25
24
  commentId: Amity.Comment['commentId'],
26
25
  patch: Patch<Amity.Comment, 'data' | 'metadata'>,
27
- ) => {
26
+ ): Promise<Amity.Cached<Amity.Comment>> => {
28
27
  const client = getActiveClient()
29
28
  client.log('user/updateComment', patch)
30
29
 
@@ -32,10 +31,14 @@ export const updateComment = async (
32
31
  `/api/v3/comments/${commentId}`, patch,
33
32
  )
34
33
 
35
- decoratePayload(data)
36
- ingestInCache(data)
34
+ const cachedAt = client.cache && Date.now()
35
+ if (client.cache) ingestInCache(data, { cachedAt })
36
+
37
37
  fireEvent('comment.updated', data)
38
38
 
39
39
  const { comments } = data
40
- return comments.find(comment => comment.commentId === commentId)!
40
+ return {
41
+ data: comments.find(comment => comment.commentId === commentId)!,
42
+ cachedAt,
43
+ }
41
44
  }
@@ -8,14 +8,14 @@ import { createCommentEventSubscriber } from './utils'
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when an {@link Amity.Comment} has been created
11
+ * Fired when a {@link Amity.Comment} has been created
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
16
  * @category Comment Events
17
17
  */
18
- export const onCommentCreated = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
18
+ export const onCommentCreated = (
19
+ callback: Amity.Listener<Amity.Comment>
20
20
  ): Amity.Unsubscriber =>
21
21
  createCommentEventSubscriber('comment.created', callback)
@@ -8,14 +8,14 @@ import { createCommentEventSubscriber } from './utils'
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when an {@link Amity.Comment} has been deleted
11
+ * Fired when a {@link Amity.Comment} has been deleted
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
16
  * @category Comment Events
17
17
  */
18
- export const onCommentDeleted = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
18
+ export const onCommentDeleted = (
19
+ callback: Amity.Listener<Amity.Comment>
20
20
  ): Amity.Unsubscriber =>
21
21
  createCommentEventSubscriber('comment.deleted', callback)
@@ -8,14 +8,14 @@ import { createCommentEventSubscriber } from './utils'
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when an {@link Amity.Comment} has been updated
11
+ * Fired when a {@link Amity.Comment} has been flagged
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
16
  * @category Comment Events
17
17
  */
18
- export const onCommentFlagged = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
18
+ export const onCommentFlagged = (
19
+ callback: Amity.Listener<Amity.Comment>
20
20
  ): Amity.Unsubscriber =>
21
21
  createCommentEventSubscriber('comment.flagged', callback)
@@ -1,4 +1,9 @@
1
- import { createCommentEventSubscriber } from './utils'
1
+ import isMatch from 'lodash.ismatch'
2
+ import { getActiveClient } from '~/client/api'
3
+ import { pullFromCache } from '~/cache/api'
4
+ import { ingestInCache } from '~/cache/api/ingestInCache'
5
+ import { createEventSubscriber } from '~/core/events'
6
+ import { preparePayloadForCache } from '~/reaction/utils'
2
7
 
3
8
  /**
4
9
  * ```js
@@ -8,14 +13,43 @@ import { createCommentEventSubscriber } from './utils'
8
13
  * })
9
14
  * ```
10
15
  *
11
- * Fired when an {@link Amity.Comment} has been updated
16
+ * Fired when a {@link Amity.Comment} has been reacted
12
17
  *
13
18
  * @param callback The function to call when the event was fired
14
19
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
20
  *
16
21
  * @category Comment Events
17
22
  */
18
- export const onCommentReactionAdded = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
20
- ): Amity.Unsubscriber =>
21
- createCommentEventSubscriber('comment.addReaction', callback)
23
+ export const onCommentReactionAdded = (
24
+ callback: Amity.Listener<Amity.Comment>
25
+ ): Amity.Unsubscriber => {
26
+ const client = getActiveClient()
27
+
28
+ const filter = (payload: Amity.CommentPayload & { reactor: Amity.Reaction }) => {
29
+ if (!client.cache) {
30
+ callback(payload.comments[0])
31
+ } else {
32
+ const cached = pullFromCache<Amity.Comment>(['comment', 'get', payload.comments[0].commentId])
33
+
34
+ preparePayloadForCache('comment.addReaction', payload)
35
+ const { reactor, ...commentPayload } = payload;
36
+
37
+ ingestInCache(commentPayload as Amity.CommentPayload)
38
+
39
+ const comment = pullFromCache<Amity.Comment>(['comment', 'get', payload.comments[0].commentId])!
40
+
41
+ if (cached && isMatch(cached.data, comment.data)) {
42
+ return
43
+ }
44
+
45
+ callback(comment.data)
46
+ }
47
+ }
48
+
49
+ return createEventSubscriber(
50
+ client,
51
+ 'comment.addReaction',
52
+ 'comment.addReaction',
53
+ filter
54
+ )
55
+ }
@@ -1,4 +1,9 @@
1
- import { createCommentEventSubscriber } from './utils'
1
+ import isMatch from 'lodash.ismatch'
2
+ import { getActiveClient } from '~/client/api'
3
+ import { pullFromCache } from '~/cache/api'
4
+ import { ingestInCache } from '~/cache/api/ingestInCache'
5
+ import { createEventSubscriber } from '~/core/events'
6
+ import { preparePayloadForCache } from '~/reaction/utils'
2
7
 
3
8
  /**
4
9
  * ```js
@@ -8,14 +13,43 @@ import { createCommentEventSubscriber } from './utils'
8
13
  * })
9
14
  * ```
10
15
  *
11
- * Fired when an {@link Amity.Comment} has been updated
16
+ * Fired when a reaction has been removed from a {@link Amity.Comment}
12
17
  *
13
18
  * @param callback The function to call when the event was fired
14
19
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
20
  *
16
21
  * @category Comment Events
17
22
  */
18
- export const onCommentReactionRemoved = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
20
- ): Amity.Unsubscriber =>
21
- createCommentEventSubscriber('comment.removeReaction', callback)
23
+ export const onCommentReactionRemoved = (
24
+ callback: Amity.Listener<Amity.Comment>
25
+ ): Amity.Unsubscriber => {
26
+ const client = getActiveClient()
27
+
28
+ const filter = (payload: Amity.CommentPayload & { reactor: Amity.Reaction }) => {
29
+ if (!client.cache) {
30
+ callback(payload.comments[0])
31
+ } else {
32
+ const cached = pullFromCache<Amity.Comment>(['comment', 'get', payload.comments[0].commentId])
33
+
34
+ preparePayloadForCache('comment.removeReaction', payload)
35
+ const { reactor, ...commentPayload } = payload;
36
+
37
+ ingestInCache(commentPayload as Amity.CommentPayload)
38
+
39
+ const comment = pullFromCache<Amity.Comment>(['comment', 'get', payload.comments[0].commentId])!
40
+
41
+ if (cached && isMatch(cached.data, comment.data)) {
42
+ return
43
+ }
44
+
45
+ callback(comment.data)
46
+ }
47
+ }
48
+
49
+ return createEventSubscriber(
50
+ client,
51
+ 'comment.removeReaction',
52
+ 'comment.removeReaction',
53
+ filter
54
+ )
55
+ }
@@ -8,14 +8,14 @@ import { createCommentEventSubscriber } from './utils'
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when an {@link Amity.Comment} has been updated
11
+ * Fired when a flag has been removed from a {@link Amity.Comment}
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
16
  * @category Comment Events
17
17
  */
18
- export const onCommentUnflagged = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
18
+ export const onCommentUnflagged = (
19
+ callback: Amity.Listener<Amity.Comment>
20
20
  ): Amity.Unsubscriber =>
21
21
  createCommentEventSubscriber('comment.unflagged', callback)
@@ -8,14 +8,14 @@ import { createCommentEventSubscriber } from './utils'
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when an {@link Amity.Comment} has been updated
11
+ * Fired when a {@link Amity.Comment} has been updated
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
16
  * @category Comment Events
17
17
  */
18
- export const onCommentUpdated = <T extends Amity.CommentContentType>(
19
- callback: Amity.Listener<Amity.Comment<T>>
18
+ export const onCommentUpdated = (
19
+ callback: Amity.Listener<Amity.Comment>
20
20
  ): Amity.Unsubscriber =>
21
21
  createCommentEventSubscriber('comment.updated', callback)
@@ -1,18 +1,40 @@
1
+ import isMatch from 'lodash.ismatch'
1
2
  import { getActiveClient } from '~/client/api'
2
- import { decoratePayload } from '~/core/query'
3
- import { ingestInCache } from '~/core/cache'
3
+ import { pullFromCache } from '~/cache/api'
4
+ import { ingestInCache } from '~/cache/api/ingestInCache'
4
5
  import { createEventSubscriber } from '~/core/events'
6
+ import { queryCache, upsertInCache } from '~/cache/api'
5
7
 
6
- export const createCommentEventSubscriber = <T extends Amity.CommentContentType>(
8
+ export const createCommentEventSubscriber = (
7
9
  event: keyof Amity.MqttCommentMessageEvents,
8
- callback: Amity.Listener<Amity.Comment<T>>
10
+ callback: Amity.Listener<Amity.Comment>
9
11
  ) => {
10
12
  const client = getActiveClient()
11
13
 
12
- const filter = (payload: Amity.CommentPayload<T>) => {
13
- decoratePayload(payload)
14
- ingestInCache(payload)
15
- callback(payload.comments[0])
14
+ const filter = (payload: Amity.CommentPayload) => {
15
+ if (!client.cache) {
16
+ callback(payload.comments[0])
17
+ } else {
18
+ const cached = pullFromCache<Amity.Comment>(['comment', 'get', payload.comments[0].commentId])
19
+
20
+ ingestInCache(payload)
21
+
22
+ const comment = pullFromCache<Amity.Comment>(['comment', 'get', payload.comments[0].commentId])!
23
+
24
+ if (cached && isMatch(cached.data, comment.data)) {
25
+ return
26
+ }
27
+
28
+ if (['comment.created'].includes(event)) {
29
+ const queries = queryCache(['comment', 'query'])
30
+ // @ts-ignore
31
+ ?.filter(({key}) => key[2]?.referenceId === comment.data.referenceId);
32
+
33
+ queries?.map(({key, data}) => upsertInCache(key, data as any, { cachedAt: -1 }));
34
+ }
35
+
36
+ callback(comment.data)
37
+ }
16
38
  }
17
39
 
18
40
  return createEventSubscriber(