@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
@@ -8,7 +8,7 @@ import { createCommunityEventSubscriber } from './utils'
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when any {@link Amity.Community} have been updated
11
+ * Fired when a {@link Amity.Community} 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
@@ -1,19 +1,19 @@
1
- import { createCommunityEventSubscriber } from './utils'
1
+ import { createCommunityMemberEventSubscriber } from './utils'
2
2
 
3
3
  /**
4
4
  * ```js
5
5
  * import { onCommunityUserAdded } from '@amityco/ts-sdk'
6
- * const dispose = onCommunityUserAdded(community => {
6
+ * const dispose = onCommunityUserAdded((community, member) => {
7
7
  * // ...
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when any {@link Amity.Community} have been updated
11
+ * Fired when a user has been added to a {@link Amity.Community}
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 Community Events
17
17
  */
18
- export const onCommunityUserAdded = (callback: Amity.Listener<Amity.Community>) =>
19
- createCommunityEventSubscriber('community.userAdded', callback)
18
+ export const onCommunityUserAdded = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
19
+ createCommunityMemberEventSubscriber('community.userAdded', callback)
@@ -1,19 +1,19 @@
1
- import { createCommunityEventSubscriber } from './utils'
1
+ import { createCommunityMemberEventSubscriber } from './utils'
2
2
 
3
3
  /**
4
4
  * ```js
5
5
  * import { onCommunityUserBanned } from '@amityco/ts-sdk'
6
- * const dispose = onCommunityUserBanned(community => {
6
+ * const dispose = onCommunityUserBanned((community, member) => {
7
7
  * // ...
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when any {@link Amity.Community} have been updated
11
+ * Fired when a user has been banned from a {@link Amity.Community}
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 Community Events
17
17
  */
18
- export const onCommunityUserBanned = (callback: Amity.Listener<Amity.Community>) =>
19
- createCommunityEventSubscriber('community.userUnbanned', callback)
18
+ export const onCommunityUserBanned = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
19
+ createCommunityMemberEventSubscriber('community.userBanned', callback)
@@ -1,19 +1,19 @@
1
- import { createCommunityEventSubscriber } from './utils'
1
+ import { createCommunityMemberEventSubscriber } from './utils'
2
2
 
3
3
  /**
4
4
  * ```js
5
5
  * import { onCommunityUserRemoved } from '@amityco/ts-sdk'
6
- * const dispose = onCommunityUserRemoved(community => {
6
+ * const dispose = onCommunityUserRemoved((community, member) => {
7
7
  * // ...
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when any {@link Amity.Community} have been updated
11
+ * Fired when a user has been removed from a {@link Amity.Community}
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 Community Events
17
17
  */
18
- export const onCommunityUserRemoved = (callback: Amity.Listener<Amity.Community>) =>
19
- createCommunityEventSubscriber('community.userRemoved', callback)
18
+ export const onCommunityUserRemoved = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
19
+ createCommunityMemberEventSubscriber('community.userRemoved', callback)
@@ -1,19 +1,19 @@
1
- import { createCommunityEventSubscriber } from './utils'
1
+ import { createCommunityMemberEventSubscriber } from './utils'
2
2
 
3
3
  /**
4
4
  * ```js
5
5
  * import { onCommunityUserUnbanned } from '@amityco/ts-sdk'
6
- * const dispose = onCommunityUserUnbanned(community => {
6
+ * const dispose = onCommunityUserUnbanned((community, member) => {
7
7
  * // ...
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when any {@link Amity.Community} have been updated
11
+ * Fired when a user has been unbanned from a {@link Amity.Community}
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 Community Events
17
17
  */
18
- export const onCommunityUserUnbanned = (callback: Amity.Listener<Amity.Community>) =>
19
- createCommunityEventSubscriber('community.userUnbanned', callback)
18
+ export const onCommunityUserUnbanned = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
19
+ createCommunityMemberEventSubscriber('community.userUnbanned', callback)
@@ -1,7 +1,9 @@
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 { getResolver } from '~/core/model'
5
7
 
6
8
  export const createCommunityEventSubscriber = (
7
9
  event: keyof Amity.MqttCommunityMessageEvents,
@@ -10,9 +12,97 @@ export const createCommunityEventSubscriber = (
10
12
  const client = getActiveClient()
11
13
 
12
14
  const filter = (payload: Amity.CommunityPayload) => {
13
- decoratePayload(payload)
15
+ if (!client.cache) {
16
+ callback(payload.communities[0])
17
+ } else {
18
+ const cached = pullFromCache<Amity.Community>(['community', 'get', payload.communities[0].communityId])
19
+
20
+ ingestInCache(payload)
21
+
22
+ const community = pullFromCache<Amity.Community>(['community', 'get', payload.communities[0].communityId])!
23
+
24
+ if (cached && isMatch(cached.data, community?.data)) {
25
+ return
26
+ }
27
+
28
+ callback(community.data)
29
+ }
30
+ }
31
+
32
+ return createEventSubscriber(
33
+ client,
34
+ event,
35
+ event,
36
+ filter
37
+ )
38
+ }
39
+
40
+ function hasPermission(member: Amity.Membership<'community'>, payload: Amity.CommunityPayload, permission: string) {
41
+ if (member.permissions.some(x => x === permission)) {
42
+ return true;
43
+ }
44
+
45
+ return payload.users!
46
+ .find(user => user.userId === member.userId)!
47
+ .permissions.some(x => x === permission)
48
+ }
49
+
50
+
51
+ function getEventRelatedMember(
52
+ event: keyof Amity.MqttCommunityUserMessageEvents,
53
+ payload: Amity.CommunityPayload
54
+ ) {
55
+ if (event === 'community.joined' || event === 'community.left') {
56
+ return payload.communityUsers![0];
57
+ }
58
+
59
+ // NOTE: backend returns the one who took the action and the one on whom
60
+ // the action was taken. We need the 2nd one
61
+ if (event === 'community.userRemoved') {
62
+ return payload.communityUsers!.filter(x => x.communityMembership === 'none')[0]
63
+ }
64
+
65
+ if (event === 'community.userBanned') {
66
+ return payload.communityUsers!.filter(x => x.communityMembership === 'banned')[0]
67
+ }
68
+
69
+ // NOTE: it might be that in certain edge cases permission check won't be enough
70
+ if (event === 'community.userUnbanned') {
71
+ return payload.communityUsers!.filter(x => !hasPermission(x, payload, 'BAN_COMMUNITY_USER'))[0]
72
+ }
73
+
74
+ return payload.communityUsers!.filter(x => !hasPermission(x, payload, 'ADD_COMMUNITY_USER'))[0]
75
+ }
76
+
77
+ export const createCommunityMemberEventSubscriber = (
78
+ event: keyof Amity.MqttCommunityUserMessageEvents,
79
+ callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void,
80
+ ) => {
81
+ const client = getActiveClient()
82
+
83
+ const filter = (payload: Amity.CommunityPayload) => {
84
+ const cachedCommunity = pullFromCache<Amity.Community>(['community', 'get', payload.communities[0].communityId])
85
+ const cachedMember = pullFromCache<Amity.Membership<'community'>>([
86
+ 'communityUsers',
87
+ 'get',
88
+ getResolver('communityUsers')(getEventRelatedMember(event, payload))
89
+ ])
90
+
14
91
  ingestInCache(payload)
15
- callback(payload.communities[0])
92
+
93
+ const community = pullFromCache<Amity.Community>(['community', 'get', payload.communities[0].communityId])!
94
+ const member = pullFromCache<Amity.Membership<'community'>>([
95
+ 'communityUsers',
96
+ 'get',
97
+ getResolver('communityUsers')(getEventRelatedMember(event, payload))
98
+ ])!
99
+
100
+ if (cachedCommunity && isMatch(cachedCommunity.data, community.data)
101
+ && cachedMember && isMatch(cachedMember.data, member.data)) {
102
+ return
103
+ }
104
+
105
+ callback(community.data, member.data)
16
106
  }
17
107
 
18
108
  return createEventSubscriber(
@@ -1,5 +1,4 @@
1
1
  import { createQuery, runQuery } from '~/core/query/query'
2
- import { getTopic, subscribe } from '~/core/subscription'
3
2
 
4
3
  import { getActiveClient } from '~/client/api'
5
4
 
@@ -34,7 +33,7 @@ import {
34
33
  */
35
34
  export const observeCommunity = <Events extends ['onFetch', 'onUpdate', 'onDelete', 'onJoin', 'onLeft', 'onUserAdded', 'onUserRemoved', 'onUserBanned', 'onUserUnbanned']>(
36
35
  communityId: string,
37
- callback: Amity.ObjectListener<Amity.QueryResult<Amity.Community>, Events>
36
+ callback: Amity.ObjectListener<Amity.Snapshot<Amity.Community | undefined>, Events>
38
37
  ): Amity.Unsubscriber => {
39
38
  const { log } = getActiveClient()
40
39
 
@@ -43,41 +42,41 @@ export const observeCommunity = <Events extends ['onFetch', 'onUpdate', 'onDelet
43
42
 
44
43
  // wrapper function to make sure
45
44
  const router = (
46
- result: Amity.QueryResult<Amity.Community>,
45
+ result: Amity.Snapshot<Amity.Community | undefined>,
47
46
  action: Events[number]
48
47
  ) => {
49
- // filter function
50
- if (result.data?.communityId !== communityId) return
48
+ if (callback instanceof Function) return callback(result)
51
49
 
52
- if (action === 'onFetch') {
53
- disposers.push(subscribe(getTopic(result.data)))
54
- }
50
+ if (action !== 'onFetch') callback.onEvent?.(action, result)
55
51
 
56
- if (callback instanceof Function)
57
- return callback(result)
52
+ callback[action]?.(result)
53
+ }
58
54
 
59
- if (action !== 'onFetch')
60
- callback.onEvent?.(action, result)
55
+ const realtimeRouter = (
56
+ result: Amity.Snapshot<Amity.Community>,
57
+ action: Events[number]
58
+ ) => {
59
+ if (result.data?.communityId !== communityId) return
61
60
 
62
- callback[action]?.(result)
61
+ router(result, action)
63
62
  }
64
63
 
65
64
  const disposers: Amity.Unsubscriber[] = []
66
65
 
67
66
  disposers.push(
68
- onCommunityUpdated(data => router({ data }, 'onUpdate')),
69
- onCommunityDeleted(data => router({ data }, 'onDelete')),
70
- onCommunityJoined(data => router({ data }, 'onJoin')),
71
- onCommunityLeft(data => router({ data }, 'onLeft')),
72
- onCommunityUserAdded(data => router({ data }, 'onUserAdded')),
73
- onCommunityUserRemoved(data => router({ data }, 'onUserRemoved')),
74
- onCommunityUserBanned(data => router({ data }, 'onUserBanned')),
75
- onCommunityUserUnbanned(data => router({ data }, 'onUserUnbanned')),
67
+ onCommunityUpdated(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onUpdate')),
68
+ onCommunityDeleted(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onDelete')),
69
+ onCommunityJoined(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onJoin')),
70
+ onCommunityLeft(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onLeft')),
71
+ onCommunityUserAdded(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onUserAdded')),
72
+ onCommunityUserRemoved(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onUserRemoved')),
73
+ onCommunityUserBanned(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onUserBanned')),
74
+ onCommunityUserUnbanned(data => realtimeRouter({ data, loading: false, origin: 'event' }, 'onUserUnbanned')),
76
75
  )
77
76
 
78
77
  runQuery(
79
78
  createQuery(getCommunity, communityId),
80
- result => result.data && router(result, 'onFetch')
79
+ result => (result.data || result.error) && router(result, 'onFetch')
81
80
  )
82
81
 
83
82
  return () => {
@@ -1,23 +1,14 @@
1
1
  /**
2
- * A resolver function is a function which, given a minimal version of a model T
3
- * can compute a string which is capable of identifying the given model uniquely
4
- * @hidden
2
+ * Manually computed type which links each key with a function
3
+ * used to return the object's unique id. The type is computed
4
+ * to avoid using any and give some typing security at the
5
+ * resolver's level.
5
6
  */
6
- type Resolver<T extends Amity.Domain> = (model: Amity.Minimal[T]) => string
7
-
8
- /**
9
- * Manually computed type to output a dictionary of { Domain: Amity.Resolver<Model> }
10
- * with proper typing based on T
11
- * @hidden
12
- */
13
- type Resolvers<T extends Amity.Domain[] = Amity.Domain[]> = {
14
- [K in T[number]]: Resolver<K>
7
+ type Resolvers<T extends Amity.Domain[] = Amity.Domain[]> = {
8
+ [K in T[number]]: (model: Amity.Minimal[K]) => string
15
9
  }
16
10
 
17
- /**
18
- * Dictionary of resolver functions for each model
19
- * @hidden
20
- */
11
+ /** @hidden */
21
12
  const idResolvers: Resolvers = {
22
13
  user: ({ userId }) => userId,
23
14
  file: ({ fileId }) => fileId,
@@ -39,29 +30,8 @@ const idResolvers: Resolvers = {
39
30
  * Retrieve the id resolver matching a domain name
40
31
  *
41
32
  * @param name the domain name for the resolve
42
- * @returns an idResolver for the given domain name
33
+ * @returns an idResolver function for the given domain name
43
34
  */
44
- export const getResolver = <T extends Amity.Domain>(name: T) => (
45
- idResolvers[name] as Resolver<T>
35
+ export const getResolver = <T extends Amity.Domain>(name: T) => (
36
+ idResolvers[name]
46
37
  )
47
-
48
- /**
49
- * A map of v3 response keys to a store name.
50
- * @hidden
51
- */
52
- export const storeInterests: Record<string, Amity.Domain> = {
53
- users: 'user',
54
- files: 'file',
55
- roles: 'role',
56
-
57
- channels: 'channel',
58
- channelUsers: 'channelUsers',
59
- messages: 'message',
60
-
61
- communities: 'community',
62
- communityUsers: 'communityUsers',
63
- posts: 'post',
64
- postChildren: 'post',
65
- comments: 'comment',
66
- videoStreamings: 'stream',
67
- }
@@ -1,21 +1,40 @@
1
- /** hidden */
2
- /** @hidden */
3
- const CRITERIAS: Record<Amity.Domain, string[]> = {
4
- 'file': ['fileId', 'attributes'],
5
- 'user': ['userId', 'avatarFileId'],
6
- 'role': ['roleId'],
7
- 'channel': ['channelId', 'rateLimit'],
8
- 'channelUsers': ['channelId', 'userId', 'membership'],
9
- 'message': ['messageId'],
10
- 'community': ['communityId', 'onlyAdminCanPost'],
11
- 'communityUsers': ['userId', 'communityId', 'communityMembership'],
12
- 'post': ['postId', 'feedId'],
13
- 'comment': ['commentId', 'referenceId'],
14
- 'stream': ['streamId'],
1
+ /**
2
+ * Manually computed type which links each key with array
3
+ * of matching keys as values. The type is computed rather
4
+ * than letting string[] to help identifying mistakes while
5
+ * adding new models.
6
+ * @hidden
7
+ */
8
+ type Criterias<T extends Amity.Domain[] = Amity.Domain[]> = {
9
+ [K in T[number]]: (keyof Amity.Model[K])[]
10
+ }
11
+
12
+ /**
13
+ * Identification criterias
14
+ *
15
+ * As key, the name of the identified model ;
16
+ * As value, the list of properties to consider a given model as of type
17
+ *
18
+ * Used as source of truth for {@link identifyModel}
19
+ *
20
+ * @hidden
21
+ */
22
+ const CRITERIAS: Criterias = {
23
+ file: ['fileId', 'attributes'],
24
+ user: ['userId', 'avatarFileId'],
25
+ role: ['roleId'],
26
+ channel: ['channelId', 'rateLimit'],
27
+ channelUsers: ['channelId', 'userId', 'membership'],
28
+ message: ['messageId'],
29
+ community: ['communityId', 'onlyAdminCanPost'],
30
+ communityUsers: ['userId', 'communityId', 'communityMembership'],
31
+ post: ['postId', 'feedId'],
32
+ comment: ['commentId', 'referenceId'],
33
+ stream: ['streamId'],
15
34
  }
16
35
 
17
36
  /** @hidden */
18
- const hasKeys = (object: { [k: string]: any }, needles: string[]) => {
37
+ const hasKeys = (object: Record<string, unknown>, needles: string[]) => {
19
38
  const haystack = Object.keys(object)
20
39
  return needles.every(needle => haystack.includes(needle))
21
40
  }
@@ -26,7 +45,9 @@ const hasKeys = (object: { [k: string]: any }, needles: string[]) => {
26
45
  * @param model one of the {@link Amity.Model} to identify
27
46
  * @returns the name of the corresponding store
28
47
  */
29
- export const identifyModel = (model: Amity.Model[Amity.Domain]) => {
48
+ export const identifyModel = (model: Record<string, unknown>) => {
49
+ // we cannot avoid "as" in here because Object.entries does not
50
+ // allow anything else than "string" as key in the iterator type
30
51
  const criterias = Object.entries(CRITERIAS) as [Amity.Domain, string[]][]
31
52
  return criterias.find(([_, keys]) => hasKeys(model, keys))?.[0]
32
53
  }
@@ -1,3 +1,23 @@
1
- export * from './identifyModel'
2
1
  export * from './idResolvers'
3
- export * from './toRecord'
2
+ export * from './identifyModel'
3
+
4
+ /**
5
+ * A map of v3 response keys to a store name.
6
+ * @hidden
7
+ */
8
+ export const PAYLOAD2MODEL: Record<string, Amity.Domain> = {
9
+ users: 'user',
10
+ files: 'file',
11
+ roles: 'role',
12
+
13
+ channels: 'channel',
14
+ channelUsers: 'channelUsers',
15
+ messages: 'message',
16
+
17
+ communities: 'community',
18
+ communityUsers: 'communityUsers',
19
+ posts: 'post',
20
+ postChildren: 'post',
21
+ comments: 'comment',
22
+ videoStreamings: 'stream',
23
+ }
@@ -1,5 +1,4 @@
1
1
  export * from './query'
2
- export * from './decorate'
3
2
  export * from './filtering'
4
3
  export * from './sorting'
5
4
  export * from './paging'
@@ -25,15 +25,27 @@ export const isAfterBefore = (json: Object): json is Amity.AfterBeforePagination
25
25
  ['after', 'before', 'first', 'last'].some(prop => prop in json)
26
26
  )
27
27
 
28
+ /**
29
+ * Type guard to find if the a given decoded backend token uses v4 or newer "after/before" pagination style
30
+ *
31
+ * @param json any json object as extracted from the backend
32
+ * @returns success boolean if the token has either "after" or "before" props
33
+ *
34
+ * @hidden
35
+ */
36
+ export const isAfterBeforeRaw = (json: Object): json is Amity.AfterBeforeRawPagination => (
37
+ ['after', 'before'].some(prop => prop in json)
38
+ )
39
+
28
40
  /**
29
41
  * Type guard to find if the a given object is wrapped around Amity.Paged<>
30
42
  *
31
43
  * @param payload any object as passed from query functions
32
- * @returns success boolean if the object is an array shaped as [Record<string, Amity.Syncable>, Amity.Pages]
44
+ * @returns success boolean if the object is an object shaped as { data: T[] } & Amity.Pages
33
45
  *
34
46
  * @hidden
35
47
  */
36
- export const isPaged = (payload: any): payload is Amity.Paged<any> => {
48
+ export const isPaged = <T extends unknown>(payload: any): payload is Amity.Paged<T> => {
37
49
  return (
38
50
  payload?.hasOwnProperty('data')
39
51
  && payload?.hasOwnProperty('nextPage')
@@ -52,7 +64,7 @@ export const isPaged = (payload: any): payload is Amity.Paged<any> => {
52
64
  */
53
65
  export const toToken = (
54
66
  paging: Amity.Page | undefined,
55
- style: 'skiplimit' | 'afterbefore',
67
+ style: 'skiplimit' | 'afterbefore' | 'afterbeforeraw',
56
68
 
57
69
  ): Amity.Token | undefined => {
58
70
  if (!paging || !Object.keys(paging).length)
@@ -84,8 +96,15 @@ export const toToken = (
84
96
  after: paging.after,
85
97
  first: paging.limit,
86
98
  }
99
+ } else if (!isNaN(paging?.limit!)) {
100
+ payload = {
101
+ last: paging.limit,
102
+ }
87
103
  }
88
104
  }
105
+ else if (style === 'afterbeforeraw') {
106
+ payload = paging
107
+ }
89
108
 
90
109
  // avoid sending {} as it seems backend flips when we do
91
110
  if (!Object.keys(payload).length)
@@ -131,6 +150,27 @@ export const toPage = (token?: Amity.Token): Amity.Page | null => {
131
150
  return null
132
151
  }
133
152
 
153
+ /**
154
+ * Converts a b64 string token into a paging object
155
+ *
156
+ * @param token the backend's b64 encoded token
157
+ * @returns a sdk-friendly paging object
158
+ *
159
+ * @hidden
160
+ */
161
+ export const toPageRaw = (token?: Amity.Token): Amity.PageRaw | null => {
162
+ if (!token) return null
163
+
164
+ // don't try catch, let it throw
165
+ const json = JSON.parse(decode(token))
166
+
167
+ if (isAfterBeforeRaw(json)) {
168
+ return json as Amity.PageRaw
169
+ }
170
+
171
+ return null
172
+ }
173
+
134
174
  /**
135
175
  * Slices a collection according to its paging
136
176
  *