@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.
- package/README.md +2 -2
- package/dist/@types/core/cache.d.ts +49 -9
- package/dist/@types/core/cache.d.ts.map +1 -1
- package/dist/@types/core/events.d.ts +22 -12
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/model.d.ts +1 -0
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/paging.d.ts +59 -0
- package/dist/@types/core/paging.d.ts.map +1 -0
- package/dist/@types/core/permissions.d.ts +1 -1
- package/dist/@types/core/permissions.d.ts.map +1 -1
- package/dist/@types/core/query.d.ts +13 -43
- package/dist/@types/core/query.d.ts.map +1 -1
- package/dist/@types/core/transport.d.ts +3 -2
- package/dist/@types/core/transport.d.ts.map +1 -1
- package/dist/@types/domains/category.d.ts +1 -1
- package/dist/@types/domains/category.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +1 -1
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +2 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/comment.d.ts +1 -1
- package/dist/@types/domains/comment.d.ts.map +1 -1
- package/dist/@types/domains/community.d.ts +1 -1
- package/dist/@types/domains/community.d.ts.map +1 -1
- package/dist/@types/domains/content.d.ts +1 -2
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/file.d.ts +1 -1
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/@types/domains/group.d.ts +3 -3
- package/dist/@types/domains/group.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +1 -1
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +1 -1
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/stream.d.ts +1 -1
- package/dist/@types/domains/stream.d.ts.map +1 -1
- package/dist/@types/domains/user.d.ts +2 -1
- package/dist/@types/domains/user.d.ts.map +1 -1
- package/dist/@types/index.d.ts +1 -1
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/cache/api/backupCache.d.ts +24 -0
- package/dist/cache/api/backupCache.d.ts.map +1 -0
- package/dist/cache/api/disableCache.d.ts +13 -0
- package/dist/cache/api/disableCache.d.ts.map +1 -0
- package/dist/cache/api/dropFromCache.d.ts +17 -0
- package/dist/cache/api/dropFromCache.d.ts.map +1 -0
- package/dist/cache/api/enableCache.d.ts +18 -0
- package/dist/cache/api/enableCache.d.ts.map +1 -0
- package/dist/cache/api/index.d.ts +12 -0
- package/dist/cache/api/index.d.ts.map +1 -0
- package/dist/cache/api/ingestInCache.d.ts +11 -0
- package/dist/cache/api/ingestInCache.d.ts.map +1 -0
- package/dist/cache/api/mergeInCache.d.ts +20 -0
- package/dist/cache/api/mergeInCache.d.ts.map +1 -0
- package/dist/cache/api/pullFromCache.d.ts +17 -0
- package/dist/cache/api/pullFromCache.d.ts.map +1 -0
- package/dist/cache/api/pushToCache.d.ts +17 -0
- package/dist/cache/api/pushToCache.d.ts.map +1 -0
- package/dist/cache/api/queryCache.d.ts +17 -0
- package/dist/cache/api/queryCache.d.ts.map +1 -0
- package/dist/cache/api/restoreCache.d.ts +22 -0
- package/dist/cache/api/restoreCache.d.ts.map +1 -0
- package/dist/cache/api/snipeIdFromCollection.d.ts +18 -0
- package/dist/cache/api/snipeIdFromCollection.d.ts.map +1 -0
- package/dist/cache/api/upsertInCache.d.ts +19 -0
- package/dist/cache/api/upsertInCache.d.ts.map +1 -0
- package/dist/cache/api/wipeCache.d.ts +21 -0
- package/dist/cache/api/wipeCache.d.ts.map +1 -0
- package/dist/cache/utils/index.d.ts +41 -0
- package/dist/cache/utils/index.d.ts.map +1 -0
- package/dist/category/api/getCategory.d.ts.map +1 -1
- package/dist/category/api/queryCategories.d.ts +5 -4
- package/dist/category/api/queryCategories.d.ts.map +1 -1
- package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/addChannelMembersRole.d.ts.map +1 -1
- package/dist/channel/api/createChannel.d.ts +1 -1
- package/dist/channel/api/createChannel.d.ts.map +1 -1
- package/dist/channel/api/deleteChannel.d.ts +1 -1
- package/dist/channel/api/deleteChannel.d.ts.map +1 -1
- package/dist/channel/api/getChannel.d.ts +2 -2
- package/dist/channel/api/getChannel.d.ts.map +1 -1
- package/dist/channel/api/getChannels.d.ts +2 -2
- package/dist/channel/api/getChannels.d.ts.map +1 -1
- package/dist/channel/api/joinChannel.d.ts.map +1 -1
- package/dist/channel/api/leaveChannel.d.ts.map +1 -1
- package/dist/channel/api/queryChannelMembers.d.ts +1 -5
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/queryChannels.d.ts +1 -5
- package/dist/channel/api/queryChannels.d.ts.map +1 -1
- package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/removeChannelMembersRole.d.ts.map +1 -1
- package/dist/channel/api/updateChannel.d.ts +1 -1
- package/dist/channel/api/updateChannel.d.ts.map +1 -1
- package/dist/channel/events/onChannelDeleted.d.ts.map +1 -1
- package/dist/channel/events/onChannelJoined.d.ts.map +1 -1
- package/dist/channel/events/onChannelLeft.d.ts.map +1 -1
- package/dist/channel/events/onChannelUpdated.d.ts.map +1 -1
- package/dist/channel/events/onMemberAdded.d.ts.map +1 -1
- package/dist/channel/events/onMemberRemoved.d.ts.map +1 -1
- package/dist/channel/observers/observeChannel.d.ts +1 -3
- package/dist/channel/observers/observeChannel.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/client/api/disconnectClient.d.ts.map +1 -1
- package/dist/client/api/getToken.d.ts +3 -1
- package/dist/client/api/getToken.d.ts.map +1 -1
- package/dist/client/api/index.d.ts +0 -2
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/comment/api/createComment.d.ts +1 -1
- package/dist/comment/api/createComment.d.ts.map +1 -1
- package/dist/comment/api/deleteComment.d.ts +1 -37
- package/dist/comment/api/deleteComment.d.ts.map +1 -1
- package/dist/comment/api/getComment.d.ts +2 -2
- package/dist/comment/api/getComment.d.ts.map +1 -1
- package/dist/comment/api/getComments.d.ts +2 -2
- package/dist/comment/api/getComments.d.ts.map +1 -1
- package/dist/comment/api/queryComments.d.ts +4 -18
- package/dist/comment/api/queryComments.d.ts.map +1 -1
- package/dist/comment/api/updateComment.d.ts +1 -1
- package/dist/comment/api/updateComment.d.ts.map +1 -1
- package/dist/comment/events/onCommentCreated.d.ts +2 -2
- package/dist/comment/events/onCommentCreated.d.ts.map +1 -1
- package/dist/comment/events/onCommentDeleted.d.ts +2 -2
- package/dist/comment/events/onCommentDeleted.d.ts.map +1 -1
- package/dist/comment/events/onCommentFlagged.d.ts +2 -2
- package/dist/comment/events/onCommentFlagged.d.ts.map +1 -1
- package/dist/comment/events/onCommentReactionAdded.d.ts +2 -2
- package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -1
- package/dist/comment/events/onCommentReactionRemoved.d.ts +2 -2
- package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -1
- package/dist/comment/events/onCommentUnflagged.d.ts +2 -2
- package/dist/comment/events/onCommentUnflagged.d.ts.map +1 -1
- package/dist/comment/events/onCommentUpdated.d.ts +2 -2
- package/dist/comment/events/onCommentUpdated.d.ts.map +1 -1
- package/dist/comment/events/utils.d.ts +1 -1
- package/dist/comment/events/utils.d.ts.map +1 -1
- package/dist/comment/observers/observeComment.d.ts +1 -3
- package/dist/comment/observers/observeComment.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembersRole.d.ts.map +1 -1
- package/dist/community/api/createCommunity.d.ts +1 -1
- package/dist/community/api/createCommunity.d.ts.map +1 -1
- package/dist/community/api/deleteCommunity.d.ts.map +1 -1
- package/dist/community/api/getCommunities.d.ts +2 -2
- package/dist/community/api/getCommunities.d.ts.map +1 -1
- package/dist/community/api/getCommunity.d.ts +2 -2
- package/dist/community/api/getCommunity.d.ts.map +1 -1
- package/dist/community/api/joinCommunity.d.ts.map +1 -1
- package/dist/community/api/leaveCommunity.d.ts.map +1 -1
- package/dist/community/api/queryCommunities.d.ts +1 -5
- package/dist/community/api/queryCommunities.d.ts.map +1 -1
- package/dist/community/api/queryCommunityMembers.d.ts +1 -5
- package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembersRole.d.ts.map +1 -1
- package/dist/community/api/updateCommunity.d.ts +1 -1
- package/dist/community/api/updateCommunity.d.ts.map +1 -1
- package/dist/community/events/onCommunityCreated.d.ts +1 -1
- package/dist/community/events/onCommunityDeleted.d.ts +1 -1
- package/dist/community/events/onCommunityJoined.d.ts +3 -3
- package/dist/community/events/onCommunityJoined.d.ts.map +1 -1
- package/dist/community/events/onCommunityLeft.d.ts +3 -3
- package/dist/community/events/onCommunityLeft.d.ts.map +1 -1
- package/dist/community/events/onCommunityUpdated.d.ts +1 -1
- package/dist/community/events/onCommunityUserAdded.d.ts +3 -3
- package/dist/community/events/onCommunityUserAdded.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserBanned.d.ts +3 -3
- package/dist/community/events/onCommunityUserBanned.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserRemoved.d.ts +3 -3
- package/dist/community/events/onCommunityUserRemoved.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserUnbanned.d.ts +3 -3
- package/dist/community/events/onCommunityUserUnbanned.d.ts.map +1 -1
- package/dist/community/events/utils.d.ts +1 -0
- package/dist/community/events/utils.d.ts.map +1 -1
- package/dist/community/observers/observeCommunity.d.ts +1 -3
- package/dist/community/observers/observeCommunity.d.ts.map +1 -1
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts +9 -11
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/identifyModel.d.ts +1 -1
- package/dist/core/model/identifyModel.d.ts.map +1 -1
- package/dist/core/model/index.d.ts +6 -2
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/query/index.d.ts +0 -1
- package/dist/core/query/index.d.ts.map +1 -1
- package/dist/core/query/paging.d.ts +21 -3
- package/dist/core/query/paging.d.ts.map +1 -1
- package/dist/core/query/query.d.ts +9 -21
- package/dist/core/query/query.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +13 -2
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/core/transports/mqtt.d.ts +2 -1
- package/dist/core/transports/mqtt.d.ts.map +1 -1
- package/dist/core/transports/ws.d.ts.map +1 -1
- package/dist/feed/api/queryGlobalFeed.d.ts +1 -5
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/file/api/createFile.d.ts +1 -1
- package/dist/file/api/createFile.d.ts.map +1 -1
- package/dist/file/api/deleteFile.d.ts.map +1 -1
- package/dist/file/api/getFile.d.ts +2 -2
- package/dist/file/api/getFile.d.ts.map +1 -1
- package/dist/file/observers/observeFile.d.ts +1 -3
- package/dist/file/observers/observeFile.d.ts.map +1 -1
- package/dist/index.cjs.js +17428 -2854
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +17411 -2840
- package/dist/index.umd.js +6 -4
- package/dist/message/api/createMessage.d.ts +2 -2
- package/dist/message/api/createMessage.d.ts.map +1 -1
- package/dist/message/api/deleteMessage.d.ts +2 -2
- package/dist/message/api/deleteMessage.d.ts.map +1 -1
- package/dist/message/api/getMessage.d.ts +2 -2
- package/dist/message/api/getMessage.d.ts.map +1 -1
- package/dist/message/api/getMessages.d.ts +2 -2
- package/dist/message/api/getMessages.d.ts.map +1 -1
- package/dist/message/api/queryMessages.d.ts +2 -16
- package/dist/message/api/queryMessages.d.ts.map +1 -1
- package/dist/message/api/updateMessage.d.ts +2 -2
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/message/events/onMessageCreated.d.ts.map +1 -1
- package/dist/message/events/onMessageDeleted.d.ts.map +1 -1
- package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
- package/dist/message/observers/observeMessage.d.ts +1 -3
- package/dist/message/observers/observeMessage.d.ts.map +1 -1
- package/dist/message/observers/observeMessages.d.ts +1 -1
- package/dist/message/observers/observeMessages.d.ts.map +1 -1
- package/dist/post/api/createPost.d.ts +1 -1
- package/dist/post/api/createPost.d.ts.map +1 -1
- package/dist/post/api/deletePost.d.ts +1 -40
- package/dist/post/api/deletePost.d.ts.map +1 -1
- package/dist/post/api/getPost.d.ts +5 -5
- package/dist/post/api/getPost.d.ts.map +1 -1
- package/dist/post/api/getPosts.d.ts +4 -4
- package/dist/post/api/getPosts.d.ts.map +1 -1
- package/dist/post/api/queryPosts.d.ts +4 -8
- package/dist/post/api/queryPosts.d.ts.map +1 -1
- package/dist/post/api/updatePost.d.ts +1 -1
- package/dist/post/api/updatePost.d.ts.map +1 -1
- package/dist/post/events/onPostApproved.d.ts +1 -1
- package/dist/post/events/onPostCreated.d.ts +1 -1
- package/dist/post/events/onPostDeclined.d.ts +1 -1
- package/dist/post/events/onPostDeleted.d.ts +1 -1
- package/dist/post/events/onPostDeleted.d.ts.map +1 -1
- package/dist/post/events/onPostFlagged.d.ts +1 -1
- package/dist/post/events/onPostReactionAdded.d.ts +1 -1
- package/dist/post/events/onPostReactionAdded.d.ts.map +1 -1
- package/dist/post/events/onPostReactionRemoved.d.ts +1 -1
- package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -1
- package/dist/post/events/onPostUnflagged.d.ts +1 -1
- package/dist/post/events/onPostUpdated.d.ts +1 -1
- package/dist/post/events/utils.d.ts.map +1 -1
- package/dist/post/observers/observePost.d.ts +1 -3
- package/dist/post/observers/observePost.d.ts.map +1 -1
- package/dist/reaction/api/addReaction.d.ts +1 -1
- package/dist/reaction/api/addReaction.d.ts.map +1 -1
- package/dist/reaction/api/removeReaction.d.ts +1 -1
- package/dist/reaction/api/removeReaction.d.ts.map +1 -1
- package/dist/reaction/events/onReactionAdded.d.ts +4 -2
- package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reaction/events/onReactionRemoved.d.ts +4 -2
- package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -1
- package/dist/reaction/utils/fetchReference.d.ts +1 -1
- package/dist/reaction/utils/fetchReference.d.ts.map +1 -1
- package/dist/reaction/utils/index.d.ts +1 -0
- package/dist/reaction/utils/index.d.ts.map +1 -1
- package/dist/reaction/utils/preparePayloadForCache.d.ts +3 -0
- package/dist/reaction/utils/preparePayloadForCache.d.ts.map +1 -0
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/role/api/getRole.d.ts +2 -2
- package/dist/role/api/getRole.d.ts.map +1 -1
- package/dist/role/api/queryRoles.d.ts +1 -5
- package/dist/role/api/queryRoles.d.ts.map +1 -1
- package/dist/stream/api/createStream.d.ts +1 -1
- package/dist/stream/api/createStream.d.ts.map +1 -1
- package/dist/stream/api/deleteStream.d.ts.map +1 -1
- package/dist/stream/api/disposeStream.d.ts +1 -1
- package/dist/stream/api/disposeStream.d.ts.map +1 -1
- package/dist/stream/api/getStream.d.ts +2 -2
- package/dist/stream/api/getStream.d.ts.map +1 -1
- package/dist/stream/api/queryStreams.d.ts +1 -5
- package/dist/stream/api/queryStreams.d.ts.map +1 -1
- package/dist/stream/api/updateStream.d.ts +1 -1
- package/dist/stream/api/updateStream.d.ts.map +1 -1
- package/dist/stream/events/onStreamRecorded.d.ts.map +1 -1
- package/dist/stream/events/onStreamStarted.d.ts.map +1 -1
- package/dist/stream/events/onStreamStopped.d.ts.map +1 -1
- package/dist/user/api/getUser.d.ts +4 -4
- package/dist/user/api/getUser.d.ts.map +1 -1
- package/dist/user/api/getUsers.d.ts +4 -4
- package/dist/user/api/getUsers.d.ts.map +1 -1
- package/dist/user/api/queryUsers.d.ts +7 -11
- package/dist/user/api/queryUsers.d.ts.map +1 -1
- package/dist/user/api/updateUser.d.ts +1 -1
- package/dist/user/api/updateUser.d.ts.map +1 -1
- package/dist/user/events/onUserFlagCleared.d.ts +1 -1
- package/dist/user/events/onUserFlagged.d.ts +1 -1
- package/dist/user/events/onUserUnflagged.d.ts +1 -1
- package/dist/user/events/onUserUpdated.d.ts +1 -1
- package/dist/user/events/utils.d.ts.map +1 -1
- package/dist/user/observers/observeUser.d.ts +1 -3
- package/dist/user/observers/observeUser.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/@types/core/cache.ts +56 -9
- package/src/@types/core/events.ts +14 -11
- package/src/@types/core/model.ts +2 -0
- package/src/@types/core/paging.ts +75 -0
- package/src/@types/core/permissions.ts +0 -1
- package/src/@types/core/query.ts +14 -55
- package/src/@types/core/transport.ts +4 -2
- package/src/@types/domains/category.ts +0 -1
- package/src/@types/domains/channel.ts +0 -1
- package/src/@types/domains/client.ts +2 -0
- package/src/@types/domains/comment.ts +0 -1
- package/src/@types/domains/community.ts +0 -1
- package/src/@types/domains/content.ts +17 -15
- package/src/@types/domains/file.ts +0 -1
- package/src/@types/domains/group.ts +2 -3
- package/src/@types/domains/message.ts +0 -1
- package/src/@types/domains/post.ts +8 -8
- package/src/@types/domains/stream.ts +0 -1
- package/src/@types/domains/user.ts +1 -1
- package/src/@types/index.ts +1 -1
- package/src/@types/mqtt.d.ts +3 -0
- package/src/cache/api/backupCache.ts +53 -0
- package/src/cache/api/disableCache.ts +23 -0
- package/src/cache/api/dropFromCache.ts +44 -0
- package/src/cache/api/enableCache.ts +29 -0
- package/src/cache/api/index.ts +23 -0
- package/src/cache/api/ingestInCache.ts +33 -0
- package/src/cache/api/mergeInCache.ts +45 -0
- package/src/cache/api/pullFromCache.ts +33 -0
- package/src/cache/api/pushToCache.ts +40 -0
- package/src/cache/api/queryCache.ts +35 -0
- package/src/cache/api/restoreCache.ts +43 -0
- package/src/cache/api/snipeIdFromCollection.ts +53 -0
- package/src/cache/api/upsertInCache.ts +39 -0
- package/src/cache/api/wipeCache.ts +36 -0
- package/src/cache/utils/index.ts +84 -0
- package/src/category/api/getCategory.ts +3 -4
- package/src/category/api/queryCategories.ts +5 -6
- package/src/channel/api/addChannelMembers.ts +4 -5
- package/src/channel/api/addChannelMembersRole.ts +3 -5
- package/src/channel/api/createChannel.ts +16 -11
- package/src/channel/api/deleteChannel.ts +2 -2
- package/src/channel/api/getChannel.ts +22 -9
- package/src/channel/api/getChannels.ts +25 -12
- package/src/channel/api/joinChannel.ts +5 -6
- package/src/channel/api/leaveChannel.ts +5 -6
- package/src/channel/api/queryChannelMembers.ts +9 -11
- package/src/channel/api/queryChannels.ts +19 -12
- package/src/channel/api/removeChannelMembers.ts +4 -5
- package/src/channel/api/removeChannelMembersRole.ts +3 -5
- package/src/channel/api/updateChannel.ts +9 -7
- package/src/channel/events/onChannelDeleted.ts +1 -3
- package/src/channel/events/onChannelJoined.ts +1 -3
- package/src/channel/events/onChannelLeft.ts +1 -3
- package/src/channel/events/onChannelUpdated.ts +1 -3
- package/src/channel/events/onMemberAdded.ts +1 -3
- package/src/channel/events/onMemberRemoved.ts +1 -3
- package/src/channel/observers/observeChannel.ts +20 -14
- package/src/client/api/connectClient.ts +7 -7
- package/src/client/api/disconnectClient.ts +3 -0
- package/src/client/api/getToken.ts +3 -2
- package/src/client/api/index.ts +3 -2
- package/src/comment/api/createComment.ts +10 -7
- package/src/comment/api/deleteComment.ts +9 -8
- package/src/comment/api/getComment.ts +22 -10
- package/src/comment/api/getComments.ts +25 -12
- package/src/comment/api/queryComments.ts +35 -89
- package/src/comment/api/updateComment.ts +9 -6
- package/src/comment/events/onCommentCreated.ts +3 -3
- package/src/comment/events/onCommentDeleted.ts +3 -3
- package/src/comment/events/onCommentFlagged.ts +3 -3
- package/src/comment/events/onCommentReactionAdded.ts +40 -6
- package/src/comment/events/onCommentReactionRemoved.ts +40 -6
- package/src/comment/events/onCommentUnflagged.ts +3 -3
- package/src/comment/events/onCommentUpdated.ts +3 -3
- package/src/comment/events/utils.ts +30 -8
- package/src/comment/observers/observeComment.ts +20 -25
- package/src/community/api/addCommunityMembers.ts +5 -6
- package/src/community/api/addCommunityMembersRole.ts +3 -5
- package/src/community/api/createCommunity.ts +9 -6
- package/src/community/api/deleteCommunity.ts +3 -3
- package/src/community/api/getCommunities.ts +25 -12
- package/src/community/api/getCommunity.ts +23 -9
- package/src/community/api/joinCommunity.ts +7 -5
- package/src/community/api/leaveCommunity.ts +7 -5
- package/src/community/api/queryCommunities.ts +18 -12
- package/src/community/api/queryCommunityMembers.ts +10 -11
- package/src/community/api/removeCommunityMembers.ts +4 -5
- package/src/community/api/removeCommunityMembersRole.ts +3 -5
- package/src/community/api/updateCommunity.ts +10 -7
- package/src/community/events/onCommunityCreated.ts +1 -1
- package/src/community/events/onCommunityDeleted.ts +1 -1
- package/src/community/events/onCommunityJoined.ts +5 -5
- package/src/community/events/onCommunityLeft.ts +5 -5
- package/src/community/events/onCommunityUpdated.ts +1 -1
- package/src/community/events/onCommunityUserAdded.ts +5 -5
- package/src/community/events/onCommunityUserBanned.ts +5 -5
- package/src/community/events/onCommunityUserRemoved.ts +5 -5
- package/src/community/events/onCommunityUserUnbanned.ts +5 -5
- package/src/community/events/utils.ts +94 -4
- package/src/community/observers/observeCommunity.ts +21 -22
- package/src/core/model/idResolvers.ts +10 -40
- package/src/core/model/identifyModel.ts +37 -16
- package/src/core/model/index.ts +22 -2
- package/src/core/query/index.ts +0 -1
- package/src/core/query/paging.ts +43 -3
- package/src/core/query/query.ts +63 -115
- package/src/core/subscription.ts +66 -17
- package/src/core/transports/mqtt.ts +86 -20
- package/src/core/transports/ws.ts +1 -0
- package/src/feed/api/queryGlobalFeed.ts +7 -10
- package/src/file/api/createFile.ts +8 -6
- package/src/file/api/deleteFile.ts +5 -6
- package/src/file/api/getFile.ts +21 -9
- package/src/file/observers/observeFile.ts +5 -7
- package/src/index.ts +6 -6
- package/src/message/api/createMessage.ts +21 -17
- package/src/message/api/deleteMessage.ts +12 -11
- package/src/message/api/getMessage.ts +22 -10
- package/src/message/api/getMessages.ts +25 -12
- package/src/message/api/queryMessages.ts +34 -68
- package/src/message/api/updateMessage.ts +22 -12
- package/src/message/events/onMessageCreated.ts +1 -3
- package/src/message/events/onMessageDeleted.ts +1 -3
- package/src/message/events/onMessageUpdated.ts +1 -3
- package/src/message/observers/observeMessage.ts +8 -10
- package/src/message/observers/observeMessages.ts +6 -6
- package/src/post/api/createPost.ts +9 -6
- package/src/post/api/deletePost.ts +11 -9
- package/src/post/api/getPost.ts +26 -14
- package/src/post/api/getPosts.ts +27 -14
- package/src/post/api/queryPosts.ts +46 -19
- package/src/post/api/updatePost.ts +10 -6
- package/src/post/events/onPostApproved.ts +1 -1
- package/src/post/events/onPostCreated.ts +1 -1
- package/src/post/events/onPostDeclined.ts +1 -1
- package/src/post/events/onPostDeleted.ts +2 -2
- package/src/post/events/onPostFlagged.ts +1 -1
- package/src/post/events/onPostReactionAdded.ts +38 -4
- package/src/post/events/onPostReactionRemoved.ts +38 -4
- package/src/post/events/onPostUnflagged.ts +1 -1
- package/src/post/events/onPostUpdated.ts +1 -1
- package/src/post/events/utils.ts +39 -6
- package/src/post/observers/observePost.ts +22 -27
- package/src/reaction/api/addReaction.ts +30 -20
- package/src/reaction/api/removeReaction.ts +30 -20
- package/src/reaction/events/onReactionAdded.ts +37 -18
- package/src/reaction/events/onReactionRemoved.ts +38 -15
- package/src/reaction/utils/fetchReference.ts +1 -1
- package/src/reaction/utils/index.ts +1 -0
- package/src/reaction/utils/preparePayloadForCache.ts +45 -0
- package/src/report/api/createReport.ts +4 -5
- package/src/report/api/deleteReport.ts +4 -5
- package/src/role/api/getRole.ts +25 -9
- package/src/role/api/queryRoles.ts +10 -12
- package/src/stream/api/createStream.ts +9 -6
- package/src/stream/api/deleteStream.ts +10 -1
- package/src/stream/api/disposeStream.ts +10 -6
- package/src/stream/api/getStream.ts +23 -10
- package/src/stream/api/queryStreams.ts +10 -11
- package/src/stream/api/updateStream.ts +9 -6
- package/src/stream/events/onStreamRecorded.ts +1 -3
- package/src/stream/events/onStreamStarted.ts +1 -3
- package/src/stream/events/onStreamStopped.ts +1 -3
- package/src/user/api/getUser.ts +14 -11
- package/src/user/api/getUsers.ts +30 -14
- package/src/user/api/queryUsers.ts +40 -17
- package/src/user/api/updateUser.ts +10 -7
- package/src/user/events/onUserFlagCleared.ts +1 -1
- package/src/user/events/onUserFlagged.ts +1 -1
- package/src/user/events/onUserUnflagged.ts +1 -1
- package/src/user/events/onUserUpdated.ts +1 -1
- package/src/user/events/utils.ts +6 -4
- package/src/user/observers/observeUser.ts +9 -11
- package/dist/@types/core/store.d.ts +0 -46
- package/dist/@types/core/store.d.ts.map +0 -1
- package/dist/client/api/clearCache.d.ts +0 -15
- package/dist/client/api/clearCache.d.ts.map +0 -1
- package/dist/client/api/enableCache.d.ts +0 -15
- package/dist/client/api/enableCache.d.ts.map +0 -1
- package/dist/core/cache/drop.d.ts +0 -11
- package/dist/core/cache/drop.d.ts.map +0 -1
- package/dist/core/cache/index.d.ts +0 -19
- package/dist/core/cache/index.d.ts.map +0 -1
- package/dist/core/cache/ingest.d.ts +0 -10
- package/dist/core/cache/ingest.d.ts.map +0 -1
- package/dist/core/cache/merge.d.ts +0 -10
- package/dist/core/cache/merge.d.ts.map +0 -1
- package/dist/core/cache/mutate.d.ts +0 -10
- package/dist/core/cache/mutate.d.ts.map +0 -1
- package/dist/core/cache/pull.d.ts +0 -11
- package/dist/core/cache/pull.d.ts.map +0 -1
- package/dist/core/cache/push.d.ts +0 -10
- package/dist/core/cache/push.d.ts.map +0 -1
- package/dist/core/cache/sync.d.ts +0 -10
- package/dist/core/cache/sync.d.ts.map +0 -1
- package/dist/core/model/toRecord.d.ts +0 -10
- package/dist/core/model/toRecord.d.ts.map +0 -1
- package/dist/core/query/decorate.d.ts +0 -23
- package/dist/core/query/decorate.d.ts.map +0 -1
- package/dist/core/stores/index.d.ts +0 -3
- package/dist/core/stores/index.d.ts.map +0 -1
- package/dist/core/stores/memory.d.ts +0 -30
- package/dist/core/stores/memory.d.ts.map +0 -1
- package/dist/core/stores/persistent.d.ts +0 -13
- package/dist/core/stores/persistent.d.ts.map +0 -1
- package/src/@types/core/store.ts +0 -52
- package/src/client/api/clearCache.ts +0 -23
- package/src/client/api/enableCache.ts +0 -36
- package/src/core/cache/drop.ts +0 -24
- package/src/core/cache/index.ts +0 -24
- package/src/core/cache/ingest.ts +0 -24
- package/src/core/cache/merge.ts +0 -19
- package/src/core/cache/mutate.ts +0 -25
- package/src/core/cache/pull.ts +0 -31
- package/src/core/cache/push.ts +0 -41
- package/src/core/cache/sync.ts +0 -41
- package/src/core/model/toRecord.ts +0 -11
- package/src/core/query/decorate.ts +0 -64
- package/src/core/stores/index.ts +0 -2
- package/src/core/stores/memory.ts +0 -59
- 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
|
|
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 {
|
|
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
|
|
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.
|
|
19
|
-
|
|
18
|
+
export const onCommunityUserAdded = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
|
|
19
|
+
createCommunityMemberEventSubscriber('community.userAdded', callback)
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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.
|
|
19
|
-
|
|
18
|
+
export const onCommunityUserBanned = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
|
|
19
|
+
createCommunityMemberEventSubscriber('community.userBanned', callback)
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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.
|
|
19
|
-
|
|
18
|
+
export const onCommunityUserRemoved = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
|
|
19
|
+
createCommunityMemberEventSubscriber('community.userRemoved', callback)
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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.
|
|
19
|
-
|
|
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 {
|
|
3
|
-
import { ingestInCache } from '~/
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
45
|
+
result: Amity.Snapshot<Amity.Community | undefined>,
|
|
47
46
|
action: Events[number]
|
|
48
47
|
) => {
|
|
49
|
-
|
|
50
|
-
if (result.data?.communityId !== communityId) return
|
|
48
|
+
if (callback instanceof Function) return callback(result)
|
|
51
49
|
|
|
52
|
-
if (action
|
|
53
|
-
disposers.push(subscribe(getTopic(result.data)))
|
|
54
|
-
}
|
|
50
|
+
if (action !== 'onFetch') callback.onEvent?.(action, result)
|
|
55
51
|
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
callback[action]?.(result)
|
|
53
|
+
}
|
|
58
54
|
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
const realtimeRouter = (
|
|
56
|
+
result: Amity.Snapshot<Amity.Community>,
|
|
57
|
+
action: Events[number]
|
|
58
|
+
) => {
|
|
59
|
+
if (result.data?.communityId !== communityId) return
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
router(result, action)
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
const disposers: Amity.Unsubscriber[] = []
|
|
66
65
|
|
|
67
66
|
disposers.push(
|
|
68
|
-
onCommunityUpdated(data =>
|
|
69
|
-
onCommunityDeleted(data =>
|
|
70
|
-
onCommunityJoined(data =>
|
|
71
|
-
onCommunityLeft(data =>
|
|
72
|
-
onCommunityUserAdded(data =>
|
|
73
|
-
onCommunityUserRemoved(data =>
|
|
74
|
-
onCommunityUserBanned(data =>
|
|
75
|
-
onCommunityUserUnbanned(data =>
|
|
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
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
|
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]
|
|
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
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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:
|
|
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:
|
|
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
|
}
|
package/src/core/model/index.ts
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
-
export * from './identifyModel'
|
|
2
1
|
export * from './idResolvers'
|
|
3
|
-
export * from './
|
|
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
|
+
}
|
package/src/core/query/index.ts
CHANGED
package/src/core/query/paging.ts
CHANGED
|
@@ -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
|
|
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<
|
|
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
|
*
|