@amityco/ts-sdk 0.0.1-beta.39 → 0.0.1-beta.40

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 (285) hide show
  1. package/.eslintrc.json +2 -0
  2. package/dist/@types/core/events.d.ts +22 -22
  3. package/dist/@types/core/events.d.ts.map +1 -1
  4. package/dist/@types/core/model.d.ts +3 -2
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +87 -34
  7. package/dist/@types/core/payload.d.ts.map +1 -1
  8. package/dist/@types/domains/channel.d.ts +1 -1
  9. package/dist/@types/domains/client.d.ts +1 -1
  10. package/dist/@types/domains/client.d.ts.map +1 -1
  11. package/dist/@types/domains/comment.d.ts +5 -0
  12. package/dist/@types/domains/comment.d.ts.map +1 -1
  13. package/dist/@types/domains/community.d.ts +11 -0
  14. package/dist/@types/domains/community.d.ts.map +1 -1
  15. package/dist/@types/domains/content.d.ts +7 -1
  16. package/dist/@types/domains/content.d.ts.map +1 -1
  17. package/dist/@types/domains/group.d.ts +2 -2
  18. package/dist/@types/global.d.ts +8 -0
  19. package/dist/@types/global.d.ts.map +1 -1
  20. package/dist/cache/api/ingestInCache.d.ts +2 -1
  21. package/dist/cache/api/ingestInCache.d.ts.map +1 -1
  22. package/dist/channel/api/banChannelMembers.d.ts.map +1 -1
  23. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
  24. package/dist/channel/api/unbanChannelMembers.d.ts.map +1 -1
  25. package/dist/channel/events/onChannelJoined.d.ts.map +1 -1
  26. package/dist/channel/events/onChannelLeft.d.ts.map +1 -1
  27. package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -1
  28. package/dist/channel/events/onChannelMemberBanned.d.ts.map +1 -1
  29. package/dist/channel/events/onChannelMemberRemoved.d.ts.map +1 -1
  30. package/dist/channel/events/onChannelMemberUnbanned.d.ts.map +1 -1
  31. package/dist/channel/utils/index.d.ts +2 -2
  32. package/dist/channel/utils/index.d.ts.map +1 -1
  33. package/dist/comment/api/createComment.d.ts +1 -1
  34. package/dist/comment/api/createComment.d.ts.map +1 -1
  35. package/dist/comment/api/deleteComment.d.ts.map +1 -1
  36. package/dist/comment/api/tests/updateComment.test.d.ts +2 -0
  37. package/dist/comment/api/tests/updateComment.test.d.ts.map +1 -0
  38. package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
  39. package/dist/community/api/addCommunityMembersRoles.d.ts +1 -1
  40. package/dist/community/api/addCommunityMembersRoles.d.ts.map +1 -1
  41. package/dist/community/api/deleteCommunity.d.ts.map +1 -1
  42. package/dist/community/api/joinCommunity.d.ts.map +1 -1
  43. package/dist/community/api/leaveCommunity.d.ts.map +1 -1
  44. package/dist/community/api/queryCommunityMembers.d.ts +1 -7
  45. package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
  46. package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
  47. package/dist/community/api/removeCommunityMembersRoles.d.ts +1 -1
  48. package/dist/community/api/removeCommunityMembersRoles.d.ts.map +1 -1
  49. package/dist/community/events/index.d.ts +2 -0
  50. package/dist/community/events/index.d.ts.map +1 -1
  51. package/dist/community/events/onCommunityUserRoleAdded.d.ts +17 -0
  52. package/dist/community/events/onCommunityUserRoleAdded.d.ts.map +1 -0
  53. package/dist/community/events/onCommunityUserRoleRemoved.d.ts +17 -0
  54. package/dist/community/events/onCommunityUserRoleRemoved.d.ts.map +1 -0
  55. package/dist/community/events/test/onCommunityUserRoleAdded.test.d.ts +2 -0
  56. package/dist/community/events/test/onCommunityUserRoleAdded.test.d.ts.map +1 -0
  57. package/dist/community/events/test/onCommunityUserRoleRemoved.test.d.ts +2 -0
  58. package/dist/community/events/test/onCommunityUserRoleRemoved.test.d.ts.map +1 -0
  59. package/dist/community/events/utils.d.ts.map +1 -1
  60. package/dist/community/observers/index.d.ts +2 -0
  61. package/dist/community/observers/index.d.ts.map +1 -1
  62. package/dist/community/observers/liveCommunity.d.ts +21 -0
  63. package/dist/community/observers/liveCommunity.d.ts.map +1 -0
  64. package/dist/community/observers/liveCommunityMembers.d.ts +20 -0
  65. package/dist/community/observers/liveCommunityMembers.d.ts.map +1 -0
  66. package/dist/community/observers/tests/liveCommunity.test.d.ts +2 -0
  67. package/dist/community/observers/tests/liveCommunity.test.d.ts.map +1 -0
  68. package/dist/community/observers/tests/liveCommunityMembers.test.d.ts +2 -0
  69. package/dist/community/observers/tests/liveCommunityMembers.test.d.ts.map +1 -0
  70. package/dist/community/utils/payload.d.ts +3 -5
  71. package/dist/community/utils/payload.d.ts.map +1 -1
  72. package/dist/core/device.d.ts.map +1 -1
  73. package/dist/core/events.d.ts +3 -3
  74. package/dist/core/events.d.ts.map +1 -1
  75. package/dist/core/model/idResolvers.d.ts +2 -4
  76. package/dist/core/model/idResolvers.d.ts.map +1 -1
  77. package/dist/core/model/identifyModel.d.ts +2 -2
  78. package/dist/core/model/identifyModel.d.ts.map +1 -1
  79. package/dist/core/model/index.d.ts.map +1 -1
  80. package/dist/core/query/query.d.ts.map +1 -1
  81. package/dist/external/api/tests/createUserToken.test.d.ts +2 -0
  82. package/dist/external/api/tests/createUserToken.test.d.ts.map +1 -0
  83. package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
  84. package/dist/group/utils/withUser.d.ts.map +1 -1
  85. package/dist/index.cjs.js +481 -200
  86. package/dist/index.esm.js +477 -200
  87. package/dist/index.umd.js +4 -4
  88. package/dist/message/api/createMessage.d.ts.map +1 -1
  89. package/dist/message/utils/index.d.ts +3 -3
  90. package/dist/message/utils/index.d.ts.map +1 -1
  91. package/dist/poll/api/tests/closePoll.test.d.ts +2 -0
  92. package/dist/poll/api/tests/closePoll.test.d.ts.map +1 -0
  93. package/dist/poll/api/tests/createPoll.test.d.ts +2 -0
  94. package/dist/poll/api/tests/createPoll.test.d.ts.map +1 -0
  95. package/dist/poll/api/tests/getPoll.test.d.ts +2 -0
  96. package/dist/poll/api/tests/getPoll.test.d.ts.map +1 -0
  97. package/dist/poll/api/tests/votePoll.test.d.ts +2 -0
  98. package/dist/poll/api/tests/votePoll.test.d.ts.map +1 -0
  99. package/dist/post/api/approvePost.d.ts.map +1 -1
  100. package/dist/post/api/createPost.d.ts.map +1 -1
  101. package/dist/post/api/declinePost.d.ts.map +1 -1
  102. package/dist/post/api/deletePost.d.ts.map +1 -1
  103. package/dist/post/api/getPost.d.ts.map +1 -1
  104. package/dist/post/api/getPosts.d.ts.map +1 -1
  105. package/dist/post/api/queryPosts.d.ts.map +1 -1
  106. package/dist/post/api/updatePost.d.ts.map +1 -1
  107. package/dist/post/events/utils.d.ts.map +1 -1
  108. package/dist/reaction/api/queryReactions.d.ts.map +1 -1
  109. package/dist/reaction/api/removeReaction.d.ts.map +1 -1
  110. package/dist/reaction/events/onReactorAdded.d.ts.map +1 -1
  111. package/dist/reaction/events/onReactorRemoved.d.ts.map +1 -1
  112. package/dist/reaction/utils/dispatchReactable.d.ts +1 -1
  113. package/dist/reaction/utils/dispatchReactable.d.ts.map +1 -1
  114. package/dist/report/api/createReport.d.ts.map +1 -1
  115. package/dist/report/api/deleteReport.d.ts.map +1 -1
  116. package/dist/subChannel/utils/index.d.ts +1 -1
  117. package/dist/subChannel/utils/index.d.ts.map +1 -1
  118. package/dist/utils/index.d.ts +2 -2
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/tests/dummy/channel.d.ts +31 -35
  121. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  122. package/dist/utils/tests/dummy/community.d.ts +35 -84
  123. package/dist/utils/tests/dummy/community.d.ts.map +1 -1
  124. package/dist/utils/tests/dummy/feed.d.ts +2 -18
  125. package/dist/utils/tests/dummy/feed.d.ts.map +1 -1
  126. package/dist/utils/tests/dummy/member.d.ts +1 -1
  127. package/dist/utils/tests/dummy/post.d.ts +30 -29
  128. package/dist/utils/tests/dummy/post.d.ts.map +1 -1
  129. package/dist/version.d.ts.map +1 -1
  130. package/package.json +1 -1
  131. package/src/@types/core/events.ts +22 -20
  132. package/src/@types/core/model.ts +3 -2
  133. package/src/@types/core/payload.ts +102 -38
  134. package/src/@types/domains/channel.ts +1 -1
  135. package/src/@types/domains/client.ts +1 -1
  136. package/src/@types/domains/comment.ts +7 -0
  137. package/src/@types/domains/community.ts +25 -0
  138. package/src/@types/domains/content.ts +9 -1
  139. package/src/@types/domains/group.ts +2 -2
  140. package/src/@types/global.ts +10 -0
  141. package/src/cache/api/ingestInCache.ts +3 -6
  142. package/src/cache/api/tests/ingestInCache.test.ts +12 -9
  143. package/src/channel/api/addChannelMembers.ts +5 -5
  144. package/src/channel/api/banChannelMembers.ts +1 -3
  145. package/src/channel/api/getChannel.ts +1 -1
  146. package/src/channel/api/queryChannelMembers.ts +1 -3
  147. package/src/channel/api/removeChannelMembers.ts +5 -5
  148. package/src/channel/api/tests/addChannelMembers.test.ts +4 -3
  149. package/src/channel/api/tests/createChannel.test.ts +5 -3
  150. package/src/channel/api/tests/getChannel.test.ts +2 -1
  151. package/src/channel/api/tests/joinChannel.test.ts +2 -2
  152. package/src/channel/api/tests/leaveChannel.test.ts +2 -2
  153. package/src/channel/api/tests/queryChannelMembers.test.ts +2 -5
  154. package/src/channel/api/tests/queryChannels.test.ts +4 -3
  155. package/src/channel/api/tests/removeChannelMembers.test.ts +16 -5
  156. package/src/channel/api/unbanChannelMembers.ts +1 -3
  157. package/src/channel/events/onChannelJoined.ts +1 -3
  158. package/src/channel/events/onChannelLeft.ts +1 -3
  159. package/src/channel/events/onChannelMemberAdded.ts +1 -3
  160. package/src/channel/events/onChannelMemberBanned.ts +1 -3
  161. package/src/channel/events/onChannelMemberRemoved.ts +1 -3
  162. package/src/channel/events/onChannelMemberUnbanned.ts +1 -3
  163. package/src/channel/observers/tests/liveChannelMembers.test.ts +5 -12
  164. package/src/channel/observers/tests/liveChannels.test.ts +3 -1
  165. package/src/channel/utils/index.ts +9 -6
  166. package/src/comment/api/createComment.ts +18 -2
  167. package/src/comment/api/deleteComment.ts +19 -2
  168. package/src/comment/api/tests/createComment.test.ts +169 -9
  169. package/src/comment/api/tests/updateComment.test.ts +189 -0
  170. package/src/comment/events/tests/onCommentCreated.test.ts +3 -3
  171. package/src/comment/events/tests/onCommentDeleted.test.ts +3 -3
  172. package/src/comment/observers/tests/liveComment.test.ts +18 -2
  173. package/src/community/api/addCommunityMembers.ts +6 -3
  174. package/src/community/api/addCommunityMembersRoles.ts +5 -2
  175. package/src/community/api/createCommunity.ts +5 -5
  176. package/src/community/api/deleteCommunity.ts +9 -1
  177. package/src/community/api/getCommunities.ts +2 -2
  178. package/src/community/api/getCommunity.ts +2 -2
  179. package/src/community/api/getRecommendedCommunities.ts +2 -2
  180. package/src/community/api/getTopTrendingCommunities.ts +2 -2
  181. package/src/community/api/joinCommunity.ts +6 -3
  182. package/src/community/api/leaveCommunity.ts +6 -3
  183. package/src/community/api/queryCommunities.ts +3 -3
  184. package/src/community/api/queryCommunityMembers.ts +3 -7
  185. package/src/community/api/removeCommunityMembers.ts +7 -3
  186. package/src/community/api/removeCommunityMembersRoles.ts +5 -2
  187. package/src/community/api/test/queryCommunityMembers.test.ts +2 -1
  188. package/src/community/api/test/removeCommunityMemberRole.test.ts +4 -1
  189. package/src/community/api/updateCommunity.ts +5 -5
  190. package/src/community/events/index.ts +2 -0
  191. package/src/community/events/onCommunityUserRoleAdded.ts +20 -0
  192. package/src/community/events/onCommunityUserRoleRemoved.ts +20 -0
  193. package/src/community/events/test/onCommunityDeleted.test.ts +8 -1
  194. package/src/community/events/test/onCommunityUserRoleAdded.test.ts +50 -0
  195. package/src/community/events/test/onCommunityUserRoleRemoved.test.ts +50 -0
  196. package/src/community/events/utils.ts +4 -8
  197. package/src/community/observers/index.ts +4 -0
  198. package/src/community/observers/liveCommunity.ts +45 -0
  199. package/src/community/observers/liveCommunityMembers.ts +187 -0
  200. package/src/community/observers/tests/liveCommunities.test.ts +38 -18
  201. package/src/community/observers/tests/liveCommunity.test.ts +147 -0
  202. package/src/community/observers/tests/liveCommunityMembers.test.ts +195 -0
  203. package/src/community/utils/payload.ts +28 -22
  204. package/src/core/device.ts +2 -4
  205. package/src/core/model/idResolvers.ts +4 -3
  206. package/src/core/model/identifyModel.ts +3 -3
  207. package/src/core/model/index.ts +1 -0
  208. package/src/core/query/query.ts +7 -0
  209. package/src/core/tests/query/query/runQuery.test.ts +8 -3
  210. package/src/core/tests/subscription.test.ts +80 -2
  211. package/src/external/api/tests/createUserToken.test.ts +29 -0
  212. package/src/feed/api/queryGlobalFeed.ts +8 -4
  213. package/src/group/utils/test/withUsers.test.ts +5 -5
  214. package/src/group/utils/withUser.ts +20 -14
  215. package/src/message/api/createMessage.ts +10 -9
  216. package/src/message/api/getMessage.ts +2 -2
  217. package/src/message/api/getMessages.ts +1 -1
  218. package/src/message/api/queryMessages.ts +2 -2
  219. package/src/message/api/tests/createMessage.test.ts +5 -1
  220. package/src/message/api/updateMessage.ts +1 -1
  221. package/src/message/events/onMessageCreated.ts +1 -1
  222. package/src/message/events/onMessageDeleted.ts +1 -1
  223. package/src/message/events/onMessageFetched.ts +1 -1
  224. package/src/message/events/onMessageFlagCleared.ts +1 -1
  225. package/src/message/events/onMessageFlagged.ts +1 -1
  226. package/src/message/events/onMessageReactionAdded.ts +1 -1
  227. package/src/message/events/onMessageReactionRemoved.ts +1 -1
  228. package/src/message/events/onMessageUnflagged.ts +1 -1
  229. package/src/message/events/onMessageUpdated.ts +1 -1
  230. package/src/message/tests/events.test.ts +10 -2
  231. package/src/message/tests/observers/liveMessage.test.ts +6 -1
  232. package/src/message/tests/observers/liveMessages.test.ts +16 -3
  233. package/src/message/utils/index.ts +5 -3
  234. package/src/poll/api/tests/closePoll.test.ts +50 -0
  235. package/src/poll/api/tests/createPoll.test.ts +70 -0
  236. package/src/poll/api/tests/getPoll.test.ts +31 -0
  237. package/src/poll/api/tests/votePoll.test.ts +41 -0
  238. package/src/poll/events/onPollDeleted.ts +1 -1
  239. package/src/poll/events/onPollUpdated.ts +1 -1
  240. package/src/post/api/approvePost.ts +10 -10
  241. package/src/post/api/createPost.ts +6 -3
  242. package/src/post/api/declinePost.ts +11 -11
  243. package/src/post/api/deletePost.ts +19 -2
  244. package/src/post/api/getPost.ts +5 -2
  245. package/src/post/api/getPosts.ts +4 -1
  246. package/src/post/api/queryPosts.ts +3 -1
  247. package/src/post/api/tests/queryPosts.test.ts +5 -4
  248. package/src/post/api/updatePost.ts +4 -1
  249. package/src/post/events/onPostReactionAdded.ts +1 -1
  250. package/src/post/events/onPostReactionRemoved.ts +1 -1
  251. package/src/post/events/utils.ts +12 -2
  252. package/src/post/observers/tests/livePost.test.ts +10 -3
  253. package/src/post/observers/tests/livePosts.test.ts +12 -4
  254. package/src/post/tests/api/getPost.test.ts +13 -3
  255. package/src/post/tests/api/queryPosts.test.ts +5 -4
  256. package/src/reaction/api/addReaction.ts +3 -3
  257. package/src/reaction/api/queryReactions.ts +2 -0
  258. package/src/reaction/api/removeReaction.ts +4 -3
  259. package/src/reaction/events/onReactionAdded.ts +3 -3
  260. package/src/reaction/events/onReactionRemoved.ts +3 -3
  261. package/src/reaction/events/onReactorAdded.ts +8 -2
  262. package/src/reaction/events/onReactorRemoved.ts +8 -2
  263. package/src/reaction/utils/dispatchReactable.ts +1 -1
  264. package/src/reaction/utils/fetchReference.ts +1 -1
  265. package/src/report/api/createReport.ts +14 -8
  266. package/src/report/api/deleteReport.ts +14 -8
  267. package/src/subChannel/api/createSubChannel.ts +1 -1
  268. package/src/subChannel/api/getSubChannel.ts +1 -1
  269. package/src/subChannel/api/getSubChannels.ts +1 -1
  270. package/src/subChannel/api/querySubChannels.ts +2 -2
  271. package/src/subChannel/api/updateSubChannel.ts +1 -1
  272. package/src/subChannel/events/onSubChannelCreated.ts +1 -1
  273. package/src/subChannel/events/onSubChannelDeleted.ts +1 -1
  274. package/src/subChannel/events/onSubChannelUpdated.ts +1 -1
  275. package/src/subChannel/utils/index.ts +2 -2
  276. package/src/user/observers/tests/liveUsers.test.ts +2 -0
  277. package/src/user/tests/api/getUser.test.ts +17 -3
  278. package/src/utils/index.ts +2 -2
  279. package/src/utils/liveObject.ts +1 -1
  280. package/src/utils/tests/dummy/channel.ts +18 -11
  281. package/src/utils/tests/dummy/community.ts +68 -6
  282. package/src/utils/tests/dummy/feed.ts +1 -1
  283. package/src/utils/tests/dummy/member.ts +1 -1
  284. package/src/utils/tests/dummy/post.ts +93 -9
  285. package/src/version.ts +9 -3
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,QAAwC,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,OAAO,QAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "0.0.1-beta.39",
3
+ "version": "0.0.1-beta.40",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -59,20 +59,20 @@ declare global {
59
59
  } & MqttChannelUserEvents;
60
60
 
61
61
  type MqttSubChannelEvents = {
62
- 'message-feed.created': Amity.RawSubChannelPayload;
63
- 'message-feed.updated': Amity.RawSubChannelPayload;
64
- 'message-feed.deleted': Amity.RawSubChannelPayload;
62
+ 'message-feed.created': Amity.SubChannelPayload;
63
+ 'message-feed.updated': Amity.SubChannelPayload;
64
+ 'message-feed.deleted': Amity.SubChannelPayload;
65
65
  };
66
66
 
67
67
  type MqttMessageEvents = {
68
- 'message.created': Amity.RawMessagePayload;
69
- 'message.updated': Amity.RawMessagePayload;
70
- 'message.deleted': Amity.RawMessagePayload;
71
- 'message.flagged': Amity.RawMessagePayload;
72
- 'message.unflagged': Amity.RawMessagePayload;
73
- 'message.flagCleared': Amity.RawMessagePayload;
74
- 'message.reactionAdded': Amity.RawMessagePayload;
75
- 'message.reactionRemoved': Amity.RawMessagePayload;
68
+ 'message.created': Amity.MessagePayload;
69
+ 'message.updated': Amity.MessagePayload;
70
+ 'message.deleted': Amity.MessagePayload;
71
+ 'message.flagged': Amity.MessagePayload;
72
+ 'message.unflagged': Amity.MessagePayload;
73
+ 'message.flagCleared': Amity.MessagePayload;
74
+ 'message.reactionAdded': Amity.MessagePayload;
75
+ 'message.reactionRemoved': Amity.MessagePayload;
76
76
  };
77
77
 
78
78
  type MqttCommunityUserEvents = {
@@ -83,6 +83,8 @@ declare global {
83
83
  'community.userChanged': Amity.CommunityMembershipPayload;
84
84
  'community.userBanned': Amity.CommunityMembershipPayload;
85
85
  'community.userUnbanned': Amity.CommunityMembershipPayload;
86
+ 'community.roleAdded': Amity.CommunityMembershipPayload;
87
+ 'community.roleRemoved': Amity.CommunityMembershipPayload;
86
88
  };
87
89
 
88
90
  type MqttCommunityEvents = {
@@ -142,15 +144,15 @@ declare global {
142
144
  MqttFollowEvents;
143
145
 
144
146
  type LocalEvents = {
145
- 'local.channel.updated': { channels: Amity.Channel[] };
146
- 'local.message.created': Amity.MessagePayload;
147
- 'local.message.updated': Amity.MessagePayload;
148
- 'local.message.deleted': Amity.MessagePayload;
149
- 'local.message.fetched': Amity.MessagePayload;
150
- 'local.message-feed.fetched': Amity.SubChannelPayload;
151
- 'local.message-feed.deleted': Amity.SubChannelPayload;
152
- 'poll.updated': Amity.PollPayload;
153
- 'poll.deleted': Amity.PollPayload;
147
+ 'local.channel.updated': MakeRequired<Amity.ProcessedChannelPayload, 'channels'>;
148
+ 'local.message.created': MakeRequired<Amity.ProcessedMessagePayload, 'messages'>;
149
+ 'local.message.updated': MakeRequired<Amity.ProcessedMessagePayload, 'messages'>;
150
+ 'local.message.deleted': MakeRequired<Amity.ProcessedMessagePayload, 'messages'>;
151
+ 'local.message.fetched': MakeRequired<Amity.ProcessedMessagePayload, 'messages'>;
152
+ 'local.message-feed.fetched': MakeRequired<Amity.ProcessedSubChannelPayload, 'messageFeeds'>;
153
+ 'local.message-feed.deleted': MakeRequired<Amity.ProcessedSubChannelPayload, 'messageFeeds'>;
154
+ 'poll.updated': MakeRequired<Amity.PollPayload, 'polls'>;
155
+ 'poll.deleted': MakeRequired<Amity.PollPayload, 'polls'>;
154
156
 
155
157
  sessionStateChange: Amity.SessionStates;
156
158
  // used by accessTokenExpiryWatcher
@@ -6,7 +6,7 @@ declare global {
6
6
  * type map of "domain name -> ASC model"
7
7
  * @hidden
8
8
  */
9
- type Model = {
9
+ type Models = {
10
10
  user: Amity.User;
11
11
  file: Amity.File;
12
12
  role: Amity.Role;
@@ -32,7 +32,8 @@ declare global {
32
32
  feed: Amity.Feed;
33
33
  };
34
34
 
35
- type Domain = keyof Model;
35
+ type Model = ValueOf<Models>;
36
+ type Domain = keyof Models;
36
37
 
37
38
  /**
38
39
  * Definition of the minimal set of properties necessary to identify
@@ -40,35 +40,66 @@ declare global {
40
40
  roles: Amity.Role[];
41
41
  };
42
42
 
43
- type ChannelPayload<
44
- T extends Amity.ChannelType = any,
45
- U extends Amity.Channel<T> | Amity.ChannelRaw<T> = Amity.ChannelRaw<T>,
46
- > = {
47
- channels: U[];
48
- channelUsers: Amity.MembershipRaw<'channel'>[];
43
+ type ChannelPayload<T extends Amity.ChannelType = any> = {
44
+ channels: Amity.RawChannel<T>[];
45
+ channelUsers: Amity.RawMembership<'channel'>[];
49
46
  } & Amity.UserPayload;
50
47
 
51
- type RawSubChannelPayload = {
52
- messageFeeds: Amity.RawSubChannel[];
48
+ /**
49
+ * Items that extend from `Amity.Channel`
50
+ * - channels: `Amity.RawChannel` -> `Amity.Channel` (Added Marker Service related props)
51
+ * - channelUsers: `Amity.RawMembership` -> `Amity.Membership` (Add user getter prop)
52
+ */
53
+ type ProcessedChannelPayload<T extends Amity.ChannelType = any> = Omit<
54
+ ChannelPayload,
55
+ 'channels' | 'channelUsers'
56
+ > & {
57
+ channels: Amity.Channel<T>[];
58
+ channelUsers: Amity.Membership<'channel'>[];
53
59
  };
54
60
 
55
61
  type SubChannelPayload = {
62
+ messageFeeds: Amity.RawSubChannel[];
63
+ };
64
+
65
+ /**
66
+ * Items that extend from `Amity.SubChannelPayload`
67
+ * - messageFeeds: `Amity.RawSubChannel` -> `Amity.SubChannel` (Model Restructuring)
68
+ */
69
+ type ProcessedSubChannelPayload = {
56
70
  messageFeeds: Amity.SubChannel[];
57
71
  };
58
72
 
59
73
  type ChannelMembershipPayload = {
60
- channels: Amity.ChannelRaw[];
61
- channelUsers: Amity.MembershipRaw<'channel'>[];
74
+ channels: Amity.RawChannel[];
75
+ channelUsers: Amity.RawMembership<'channel'>[];
62
76
  } & Amity.UserPayload;
63
77
 
64
- type MessagePayload<T extends Amity.MessageContentType = any> = {
78
+ /**
79
+ * Items that extend from `Amity.ChannelMembershipPayload`
80
+ * - channels: `Amity.RawChannel` -> `Amity.Channel` (Added Marker Service related props)
81
+ * - channelUsers: `Amity.RawMembership` -> `Amity.Membership` (Add user getter prop)
82
+ */
83
+ type ProcessedChannelMembershipPayload = Omit<
84
+ ChannelMembershipPayload,
85
+ 'channels' | 'channelUsers'
86
+ > & {
87
+ channels: Amity.Channel[];
88
+ channelUsers: Amity.Membership<'channel'>[];
89
+ };
90
+
91
+ /**
92
+ * Items that extend from `Amity.MessagePayload`
93
+ * - messages: `Amity.RawMessage` -> `Amity.Message` (Model Restructuring)
94
+ */
95
+ type ProcessedMessagePayload<T extends Amity.MessageContentType = any> = {
65
96
  messages: Amity.Message<T>[];
66
- users?: Amity.User[];
67
- files?: Amity.File[];
97
+ users: Amity.User[];
98
+ files: Amity.File[];
68
99
  };
69
100
 
70
- type RawMessagePayload<T extends Amity.MessageContentType = any> = Omit<
71
- MessagePayload<T>,
101
+ type MessagePayload<T extends Amity.MessageContentType = any> = Omit<
102
+ ProcessedMessagePayload<T>,
72
103
  'messages'
73
104
  > & {
74
105
  messages: Amity.RawMessage<T>[];
@@ -76,17 +107,27 @@ declare global {
76
107
 
77
108
  type StreamPayload = {
78
109
  videoStreamings: Amity.Stream[];
79
- users?: Amity.User[];
80
- files?: Amity.File<'image'>[];
110
+ users: Amity.User[];
111
+ files: Amity.File<'image'>[];
81
112
  };
82
113
 
83
114
  type CommunityPayload = {
84
115
  communities: Amity.RawCommunity[];
85
- communityUsers?: Amity.MembershipRaw<'community'>[];
86
- categories?: Amity.Category[];
87
- feeds?: Amity.Feed[];
88
- users?: Amity.User[];
89
- files?: Amity.File[];
116
+ communityUsers: Amity.RawMembership<'community'>[];
117
+ categories: Amity.Category[];
118
+ feeds: Amity.Feed[];
119
+ users: Amity.User[];
120
+ files: Amity.File[];
121
+ };
122
+
123
+ /**
124
+ * Items that extend from `Amity.CommunityPayload`
125
+ * - communities: `Amity.RawCommunity` -> `Amity.Community` (Added Marker Service related props)
126
+ * - communityUsers: `Amity.RawMembership` -> `Amity.Membership` (Add user getter prop)
127
+ */
128
+ type ProcessedCommunityPayload = Omit<CommunityPayload, 'communities' | 'communityUsers'> & {
129
+ communities: Amity.Community[];
130
+ communityUsers: Amity.Membership<'community'>[];
90
131
  };
91
132
 
92
133
  type CategoryPayload = {
@@ -96,30 +137,53 @@ declare global {
96
137
 
97
138
  type CommunityMembershipPayload = {
98
139
  communities: Amity.RawCommunity[];
99
- communityUsers: Amity.MembershipRaw<'community'>[];
100
- categories?: Amity.Category[];
101
- feeds?: Amity.Feed[];
140
+ communityUsers: Amity.RawMembership<'community'>[];
141
+ categories: Amity.Category[];
142
+ feeds: Amity.Feed[];
102
143
  users: Amity.User[];
103
- files?: Amity.File[];
144
+ files: Amity.File[];
145
+ };
146
+
147
+ /**
148
+ * Items that extend from `Amity.CommunityMembershipPayload`
149
+ * - communities: `Amity.RawCommunity` -> `Amity.Community` (Added Marker Service related props)
150
+ * - communityUsers: `Amity.RawMembership` -> `Amity.Membership` (Add user getter prop)
151
+ */
152
+ type ProcessedCommunityMembershipPayload = Omit<
153
+ CommunityMembershipPayload,
154
+ 'communities' | 'communityUsers'
155
+ > & {
156
+ communities: Amity.Community[];
157
+ communityUsers: Amity.Membership<'community'>[];
104
158
  };
105
159
 
106
160
  type PostPayload<T extends Amity.PostContentType = any> = {
107
161
  posts: Amity.Post<T>[];
108
- postChildren?: Amity.Post[];
109
- communities?: Amity.RawCommunity[];
110
- communityUsers?: Amity.MembershipRaw<'community'>[];
111
- categories?: Amity.Category[];
112
- comments?: Amity.Comment[];
113
- feeds?: Amity.Feed[];
114
- users?: Amity.User[];
115
- files?: Amity.File[];
162
+ postChildren: Amity.Post[];
163
+ communities: Amity.RawCommunity[];
164
+ communityUsers: Amity.RawMembership<'community'>[];
165
+ categories: Amity.Category[];
166
+ comments: Amity.Comment[];
167
+ feeds: Amity.Feed[];
168
+ users: Amity.User[];
169
+ files: Amity.File[];
170
+ };
171
+
172
+ /**
173
+ * Items that extend from `Amity.PostPayload`
174
+ * - communities: `Amity.RawCommunity` -> `Amity.Community` (Added Marker Service related props)
175
+ * - communityUsers: `Amity.RawMembership` -> `Amity.Membership` (Add user getter prop)
176
+ */
177
+ type ProcessedPostPayload = Omit<PostPayload, 'communities' | 'communityUsers'> & {
178
+ communities: Amity.Community[];
179
+ communityUsers: Amity.Membership<'community'>[];
116
180
  };
117
181
 
118
182
  type CommentPayload<T extends Amity.CommentContentType = any> = {
119
183
  comments: Amity.Comment<T>[];
120
- commentChildren?: Amity.Comment[];
121
- users?: Amity.User[];
122
- files?: Amity.File[];
184
+ commentChildren: Amity.Comment[];
185
+ users: Amity.User[];
186
+ files: Amity.File[];
123
187
  };
124
188
 
125
189
  type PollPayload = {
@@ -129,7 +193,7 @@ declare global {
129
193
 
130
194
  type ReactionPayload = {
131
195
  reactions: Amity.ReactionQuery[];
132
- users: Pick<Amity.User, 'userId' | 'displayName' | 'metadata'>[];
196
+ users: Amity.User[];
133
197
  };
134
198
 
135
199
  type GlobalFeedPayload = Amity.PostPayload;
@@ -60,7 +60,7 @@ declare global {
60
60
  Amity.SoftDelete &
61
61
  Amity.Subscribable;
62
62
 
63
- type ChannelRaw<T extends ChannelType = any> = Omit<
63
+ type RawChannel<T extends ChannelType = any> = Omit<
64
64
  Channel<T>,
65
65
  | 'defaultSubChannelId'
66
66
  | 'defaultSubChannelUnreadCount'
@@ -59,9 +59,9 @@ declare global {
59
59
  type Device = {
60
60
  deviceId: string;
61
61
  deviceInfo: {
62
- version: string;
63
62
  kind: 'node' | 'web';
64
63
  model?: string;
64
+ sdkVersion: string;
65
65
  };
66
66
  };
67
67
 
@@ -24,6 +24,7 @@ declare global {
24
24
  children: Comment['commentId'][];
25
25
  segmentNumber: number;
26
26
  editedAt: Amity.timestamp;
27
+ attachments?: Amity.Attachment[];
27
28
  } & Amity.Relationship<CommentReferenceType> &
28
29
  Amity.Content<T> &
29
30
  Amity.Metadata &
@@ -42,6 +43,12 @@ declare global {
42
43
  hasFlag?: boolean;
43
44
  isDeleted?: Amity.Comment['isDeleted'];
44
45
  page?: Amity.Page;
46
+ dataTypes?: {
47
+ values: ('image' | 'text')[];
48
+ // matchType is a query format that you can set to any to query any type of comment
49
+ // or exact to get a comment with exactly type that defined in dataTypes
50
+ matchType: 'any' | 'exact';
51
+ };
45
52
  };
46
53
 
47
54
  type CommentLiveCollection = Amity.LiveCollectionParams<
@@ -31,6 +31,13 @@ declare global {
31
31
  | 'onLeft'
32
32
  | 'onMemberCountChanged';
33
33
 
34
+ type CommunityMemberActionType =
35
+ | 'onJoin'
36
+ | 'onLeft'
37
+ | 'onBan'
38
+ | 'onUnban'
39
+ | 'onMemberCountChanged';
40
+
34
41
  type RawCommunity = {
35
42
  communityId: string;
36
43
 
@@ -80,5 +87,23 @@ declare global {
80
87
  Amity.Community['communityId'],
81
88
  Pick<QueryCommunities, 'page'>
82
89
  >;
90
+
91
+ type QueryCommunityMembers = {
92
+ communityId: string;
93
+ membership?: ('banned' | 'member')[];
94
+ roles?: string[];
95
+ sortBy?: 'firstCreated' | 'lastCreated';
96
+ search?: Amity.User['displayName'] | Amity.User['userId'];
97
+ page?: Amity.Page;
98
+ };
99
+
100
+ type CommunityMemberLiveCollection = Amity.LiveCollectionParams<
101
+ Omit<QueryCommunityMembers, 'page'>
102
+ >;
103
+
104
+ type CommunityMemberLiveCollectionCache = Amity.LiveCollectionCache<
105
+ Amity.Membership<'community'>['userId'],
106
+ Pick<QueryCommunityMembers, 'page'>
107
+ >;
83
108
  }
84
109
  }
@@ -24,6 +24,12 @@ declare global {
24
24
  fileId: Amity.File<'image'>['fileId'];
25
25
  };
26
26
 
27
+ type Attachment = {
28
+ type: 'image' | 'link';
29
+ url?: string;
30
+ fileId?: Amity.File<'image'>['fileId'];
31
+ };
32
+
27
33
  type ContentDataVideo = {
28
34
  thumbnailFileId: Amity.File<'image'>['fileId'];
29
35
  videoFileId: {
@@ -52,8 +58,10 @@ declare global {
52
58
  : never;
53
59
 
54
60
  type Content<T extends ContentType> = {
61
+ // dataType still retained to maintain backward compatibility
55
62
  dataType?: T;
56
- data: ContentData<T>;
63
+ dataTypes?: T[];
64
+ data?: ContentData<T>;
57
65
  };
58
66
 
59
67
  type ContentSettingText = {
@@ -27,7 +27,7 @@ declare global {
27
27
 
28
28
  type MemberWithUser<T extends GroupType> = Member<T> & { user: Amity.User | undefined };
29
29
 
30
- type MembershipRaw<T extends GroupType, WithUser = false> = {
30
+ type RawMembership<T extends GroupType, WithUser = false> = {
31
31
  isBanned: boolean;
32
32
  isMuted: boolean;
33
33
  muteTimeout: string;
@@ -35,6 +35,6 @@ declare global {
35
35
  } & (WithUser extends true ? MemberWithUser<T> : Member<T>) &
36
36
  Amity.Accredited;
37
37
 
38
- type Membership<T extends Amity.GroupType> = Amity.MembershipRaw<T, true>;
38
+ type Membership<T extends Amity.GroupType> = Amity.RawMembership<T, true>;
39
39
  }
40
40
  }
@@ -27,6 +27,16 @@ declare global {
27
27
  }
28
28
 
29
29
  type ValueOf<T extends Record<any, any>> = T[keyof T];
30
+
31
+ /**
32
+ * Make properties required otherwise optional
33
+ */
34
+ type MakeRequired<T, K extends keyof T> = Required<Pick<T, K>> & Partial<T>;
35
+
36
+ /**
37
+ * Make properties optional otherwise required
38
+ */
39
+ type MakeOptional<T, K extends keyof T> = Partial<Pick<T, K>> & Required<T>;
30
40
  }
31
41
 
32
42
  /*
@@ -12,7 +12,7 @@ import { upsertInCache } from './upsertInCache';
12
12
  * @hidden
13
13
  */
14
14
  export const ingestInCache = (
15
- payload: Record<string, Record<string, unknown>[]> = {},
15
+ payload: Record<keyof typeof PAYLOAD2MODEL, Amity.Model[]> = {},
16
16
  options?: Amity.CacheOptions,
17
17
  ) => {
18
18
  Object.entries(payload).forEach(([key, models]) => {
@@ -20,13 +20,10 @@ export const ingestInCache = (
20
20
  if (!type) return;
21
21
 
22
22
  const resolver = getResolver(type);
23
+ if (!resolver) return;
23
24
 
24
25
  models.forEach(model => {
25
- upsertInCache(
26
- [type, 'get', resolver(model as any)], // this 'any' cannot be avoided, sorry.
27
- model,
28
- options,
29
- );
26
+ upsertInCache([type, 'get', resolver(model)], model, options);
30
27
  });
31
28
  });
32
29
  };
@@ -1,3 +1,4 @@
1
+ import { prepareCommunityPayload } from '~/community/utils';
1
2
  import { PAYLOAD2MODEL, getResolver } from '~/core/model';
2
3
 
3
4
  import {
@@ -7,9 +8,7 @@ import {
7
8
  messagePayload,
8
9
  communityPayload,
9
10
  postPayload,
10
- commentPayload,
11
11
  pollPayload,
12
- reactionPayload,
13
12
  followPayload,
14
13
  feedPayload,
15
14
  user11,
@@ -22,16 +21,18 @@ describe('ingestInCache', () => {
22
21
  beforeAll(enableCache);
23
22
  afterAll(disableCache);
24
23
 
25
- const payloads: [keyof Amity.Model, Record<string, Record<string, unknown>[]>][] = [
24
+ const payloads: [keyof Amity.Models, Record<string, Amity.Model[]>][] = [
26
25
  ['user', userPayload],
27
26
  ['role', rolePayload],
28
27
  ['channel', channelPayload],
29
28
  ['message', messagePayload],
30
- ['community', communityPayload],
29
+ ['community', prepareCommunityPayload(communityPayload)],
31
30
  ['post', postPayload],
32
- ['comment', commentPayload],
31
+ // FIXME: add support for commentChildren in model
32
+ // ['comment', textCommentPayload],
33
33
  ['poll', pollPayload],
34
- ['reaction', reactionPayload],
34
+ // FIXME: correct reactions type in model
35
+ // ['reaction', reactionPayload],
35
36
  ['follow', followPayload],
36
37
  ['feed', feedPayload],
37
38
  ];
@@ -45,9 +46,10 @@ describe('ingestInCache', () => {
45
46
 
46
47
  expect(type).toBeDefined();
47
48
 
48
- v.forEach(entity =>
49
- expect(pullFromCache([type, 'get', resolver(entity as any)])).toBeDefined(),
50
- );
49
+ v.forEach(entity => {
50
+ const received = pullFromCache([type, 'get', resolver(entity)]);
51
+ return expect(received).toBeDefined();
52
+ });
51
53
  });
52
54
  });
53
55
 
@@ -57,6 +59,7 @@ describe('ingestInCache', () => {
57
59
  users: [user11],
58
60
  };
59
61
 
62
+ // @ts-ignore
60
63
  ingestInCache(invalidPayload);
61
64
 
62
65
  expect(pullFromCache(['invalid', 'get', 'invalidId'])).toBeUndefined();
@@ -32,20 +32,20 @@ export const addChannelMembers = async (
32
32
  { channelId, userIds },
33
33
  );
34
34
 
35
- const data = prepareChannelPayload(payload);
36
-
37
- if (client.cache) ingestInCache(data);
38
-
39
35
  /*
40
36
  * should fire event for each user that was added
41
37
  */
42
38
  userIds.forEach(id =>
43
39
  fireEvent('channel.membersAdded', {
44
40
  ...payload,
45
- channelUsers: data.channelUsers.filter(u => u.userId === id),
41
+ channelUsers: payload.channelUsers.filter(u => u.userId === id),
46
42
  }),
47
43
  );
48
44
 
45
+ const data = prepareChannelPayload(payload);
46
+
47
+ if (client.cache) ingestInCache(data);
48
+
49
49
  const { channelUsers } = data;
50
50
  return !!channelUsers.find(
51
51
  channelUser => channelUser.channelId === channelId && channelUser.membership === 'member',
@@ -1,7 +1,6 @@
1
1
  import { getActiveClient } from '~/client/api/activeClient';
2
2
 
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
- import { prepareMembershipPayload } from '~/group/utils';
5
4
 
6
5
  import { prepareChannelPayload } from '../utils';
7
6
 
@@ -33,8 +32,7 @@ export const banChannelMembers = async (
33
32
  },
34
33
  );
35
34
 
36
- const channelPayload = prepareChannelPayload(payload);
37
- const preparedPayload = prepareMembershipPayload(channelPayload, 'channelUsers');
35
+ const preparedPayload = prepareChannelPayload(payload);
38
36
  const { channelUsers } = preparedPayload;
39
37
 
40
38
  const cachedAt = client.cache && Date.now();
@@ -31,7 +31,7 @@ export const getChannel = async (
31
31
 
32
32
  isInTombstone('channel', channelId);
33
33
 
34
- let data: Amity.ChannelPayload<any, Amity.Channel>;
34
+ let data: Amity.ProcessedChannelPayload;
35
35
 
36
36
  try {
37
37
  const { data: payload } = await client.http.get<Amity.ChannelPayload>(
@@ -6,7 +6,6 @@ import { getResolver } from '~/core/model';
6
6
 
7
7
  import { pullFromCache, pushToCache } from '~/cache/api';
8
8
  import { ingestInCache } from '~/cache/api/ingestInCache';
9
- import { prepareMembershipPayload } from '~/group/utils';
10
9
 
11
10
  /**
12
11
  * ```js
@@ -42,8 +41,7 @@ export const queryChannelMembers = async (
42
41
  });
43
42
 
44
43
  const { paging, ...payload } = queryPayload;
45
- const channelPayload = prepareChannelPayload(payload);
46
- const preparedPayload = prepareMembershipPayload(channelPayload, 'channelUsers');
44
+ const preparedPayload = prepareChannelPayload(payload);
47
45
  const { channelUsers } = preparedPayload;
48
46
 
49
47
  const cachedAt = client.cache && Date.now();
@@ -32,20 +32,20 @@ export const removeChannelMembers = async (
32
32
  { data: { channelId, userIds } },
33
33
  );
34
34
 
35
- const data = prepareChannelPayload(payload);
36
-
37
- if (client.cache) ingestInCache(data);
38
-
39
35
  /*
40
36
  * should fire event for each user that was removed
41
37
  */
42
38
  userIds.forEach(id =>
43
39
  fireEvent('channel.membersRemoved', {
44
40
  ...payload,
45
- channelUsers: data.channelUsers.filter(u => u.userId === id),
41
+ channelUsers: payload.channelUsers.filter(u => u.userId === id),
46
42
  }),
47
43
  );
48
44
 
45
+ const data = prepareChannelPayload(payload);
46
+
47
+ if (client.cache) ingestInCache(data);
48
+
49
49
  const { channelUsers } = data;
50
50
  return !!channelUsers.find(
51
51
  channelUser => channelUser.channelId === channelId && channelUser.membership !== 'member',
@@ -9,6 +9,7 @@ import {
9
9
  rawChannelUser3,
10
10
  channel1,
11
11
  user11,
12
+ channelUser,
12
13
  } from '~/utils/tests';
13
14
 
14
15
  import { onChannelMemberAdded } from '~/channel/events';
@@ -37,15 +38,15 @@ describe('addChannelMembers', () => {
37
38
  });
38
39
 
39
40
  const recieved = await addChannelMembers(channelId, [userId]);
40
- const channelUser = pullFromCache<Amity.Membership<'channel'>>([
41
+ const recievedCache = pullFromCache<Amity.Membership<'channel'>>([
41
42
  'channelUsers',
42
43
  'get',
43
44
  channelUserCacheKey,
44
45
  ])?.data;
45
46
 
46
47
  expect(recieved).toBe(true);
47
- expect(channelUser).toBeDefined();
48
- expect(channelUser).toBe(rawChannelUser);
48
+ expect(recievedCache).toBeDefined();
49
+ expect(recievedCache).toEqual(channelUser);
49
50
 
50
51
  disableCache();
51
52
  });