@amityco/ts-sdk 0.0.1-beta.16 → 0.0.1-beta.19
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/.eslintrc.json +51 -0
- package/dist/@types/core/cache.d.ts +11 -11
- package/dist/@types/core/cache.d.ts.map +1 -1
- package/dist/@types/core/errors.d.ts +1 -1
- package/dist/@types/core/errors.d.ts.map +1 -1
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/model.d.ts +31 -27
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/paging.d.ts +2 -2
- package/dist/@types/core/paging.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +6 -0
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/core/permissions.d.ts.map +1 -1
- package/dist/@types/core/query.d.ts +5 -5
- package/dist/@types/core/query.d.ts.map +1 -1
- package/dist/@types/core/transport.d.ts +1 -1
- package/dist/@types/core/transport.d.ts.map +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.map +1 -1
- package/dist/@types/domains/comment.d.ts +3 -2
- package/dist/@types/domains/comment.d.ts.map +1 -1
- package/dist/@types/domains/community.d.ts.map +1 -1
- package/dist/@types/domains/content.d.ts +4 -4
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/feed.d.ts +1 -1
- package/dist/@types/domains/feed.d.ts.map +1 -1
- package/dist/@types/domains/file.d.ts +5 -5
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/@types/domains/follow.d.ts.map +1 -1
- package/dist/@types/domains/group.d.ts +4 -4
- package/dist/@types/domains/group.d.ts.map +1 -1
- package/dist/@types/domains/mention.d.ts +6 -6
- package/dist/@types/domains/mention.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +2 -2
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/partials.d.ts.map +1 -1
- package/dist/@types/domains/poll.d.ts +27 -0
- package/dist/@types/domains/poll.d.ts.map +1 -0
- package/dist/@types/domains/post.d.ts +5 -5
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/reaction.d.ts +2 -2
- package/dist/@types/domains/reaction.d.ts.map +1 -1
- package/dist/@types/domains/stream.d.ts +3 -3
- package/dist/@types/domains/stream.d.ts.map +1 -1
- package/dist/@types/domains/user.d.ts +1 -0
- package/dist/@types/domains/user.d.ts.map +1 -1
- package/dist/@types/global.d.ts +2 -2
- package/dist/@types/global.d.ts.map +1 -1
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/cache/api/backupCache.d.ts.map +1 -1
- package/dist/cache/api/disableCache.d.ts.map +1 -1
- package/dist/cache/api/dropFromCache.d.ts.map +1 -1
- package/dist/cache/api/enableCache.d.ts.map +1 -1
- package/dist/cache/api/index.d.ts.map +1 -1
- package/dist/cache/api/ingestInCache.d.ts.map +1 -1
- package/dist/cache/api/mergeInCache.d.ts +1 -1
- package/dist/cache/api/mergeInCache.d.ts.map +1 -1
- package/dist/cache/api/pullFromCache.d.ts.map +1 -1
- package/dist/cache/api/pushToCache.d.ts.map +1 -1
- package/dist/cache/api/queryCache.d.ts.map +1 -1
- package/dist/cache/api/restoreCache.d.ts.map +1 -1
- package/dist/cache/api/snipeIdFromCollection.d.ts.map +1 -1
- package/dist/cache/api/upsertInCache.d.ts +1 -1
- package/dist/cache/api/upsertInCache.d.ts.map +1 -1
- package/dist/cache/api/wipeCache.d.ts.map +1 -1
- package/dist/cache/utils/index.d.ts.map +1 -1
- package/dist/category/api/getCategory.d.ts +18 -2
- package/dist/category/api/getCategory.d.ts.map +1 -1
- package/dist/category/api/index.d.ts.map +1 -1
- package/dist/category/api/queryCategories.d.ts +24 -12
- 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.map +1 -1
- package/dist/channel/api/deleteChannel.d.ts.map +1 -1
- package/dist/channel/api/getChannel.d.ts.map +1 -1
- package/dist/channel/api/getChannels.d.ts.map +1 -1
- package/dist/channel/api/index.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 +2 -2
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/queryChannels.d.ts +2 -0
- 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.map +1 -1
- package/dist/channel/events/index.d.ts.map +1 -1
- package/dist/channel/events/onChannelCreated.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/index.d.ts.map +1 -1
- package/dist/channel/observers/observeChannel.d.ts.map +1 -1
- package/dist/client/api/activeClient.d.ts.map +1 -1
- package/dist/client/api/activeUser.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts +1 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/disconnectClient.d.ts.map +1 -1
- package/dist/client/api/getToken.d.ts.map +1 -1
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/isConnected.d.ts.map +1 -1
- package/dist/client/events/index.d.ts.map +1 -1
- package/dist/client/events/onClientBanned.d.ts.map +1 -1
- package/dist/client/events/onClientDisconnected.d.ts.map +1 -1
- package/dist/client/events/onConnectionError.d.ts.map +1 -1
- package/dist/client/utils/endpoints.d.ts.map +1 -1
- package/dist/comment/api/createComment.d.ts.map +1 -1
- package/dist/comment/api/deleteComment.d.ts.map +1 -1
- package/dist/comment/api/getComment.d.ts.map +1 -1
- package/dist/comment/api/getComments.d.ts.map +1 -1
- package/dist/comment/api/index.d.ts.map +1 -1
- package/dist/comment/api/queryComments.d.ts.map +1 -1
- package/dist/comment/api/updateComment.d.ts.map +1 -1
- package/dist/comment/events/index.d.ts.map +1 -1
- package/dist/comment/events/onCommentCreated.d.ts.map +1 -1
- package/dist/comment/events/onCommentDeleted.d.ts.map +1 -1
- package/dist/comment/events/onCommentFlagged.d.ts.map +1 -1
- package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -1
- package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -1
- package/dist/comment/events/onCommentUnflagged.d.ts.map +1 -1
- package/dist/comment/events/onCommentUpdated.d.ts.map +1 -1
- package/dist/comment/events/utils.d.ts.map +1 -1
- package/dist/comment/observers/index.d.ts.map +1 -1
- package/dist/comment/observers/observeComment.d.ts.map +1 -1
- package/dist/comment/observers/observeComments.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/addCommunityMembersRoles.d.ts +18 -0
- package/dist/community/api/addCommunityMembersRoles.d.ts.map +1 -0
- 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.map +1 -1
- package/dist/community/api/getCommunity.d.ts.map +1 -1
- package/dist/community/api/getRecommendedCommunities.d.ts.map +1 -1
- package/dist/community/api/getTopTrendingCommunities.d.ts.map +1 -1
- package/dist/community/api/index.d.ts +2 -2
- package/dist/community/api/index.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.map +1 -1
- package/dist/community/api/queryCommunityMembers.d.ts +2 -2
- package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/removeCommunityMembersRoles.d.ts +18 -0
- package/dist/community/api/removeCommunityMembersRoles.d.ts.map +1 -0
- package/dist/community/api/updateCommunity.d.ts.map +1 -1
- package/dist/community/events/index.d.ts.map +1 -1
- package/dist/community/events/onCommunityCreated.d.ts.map +1 -1
- package/dist/community/events/onCommunityDeleted.d.ts.map +1 -1
- package/dist/community/events/onCommunityJoined.d.ts.map +1 -1
- package/dist/community/events/onCommunityLeft.d.ts.map +1 -1
- package/dist/community/events/onCommunityUpdated.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserAdded.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserBanned.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserRemoved.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserUnbanned.d.ts.map +1 -1
- package/dist/community/events/utils.d.ts.map +1 -1
- package/dist/community/observers/index.d.ts.map +1 -1
- package/dist/community/observers/observeCommunity.d.ts.map +1 -1
- package/dist/core/debug.d.ts.map +1 -1
- package/dist/core/device.d.ts.map +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/events.d.ts +1 -1
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/microtasks.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/identifyModel.d.ts.map +1 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/query/filtering.d.ts +1 -1
- package/dist/core/query/filtering.d.ts.map +1 -1
- package/dist/core/query/index.d.ts.map +1 -1
- package/dist/core/query/paging.d.ts +3 -3
- package/dist/core/query/paging.d.ts.map +1 -1
- package/dist/core/query/query.d.ts.map +1 -1
- package/dist/core/query/sorting.d.ts +1 -1
- package/dist/core/query/sorting.d.ts.map +1 -1
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/core/transports/http.d.ts.map +1 -1
- package/dist/core/transports/mqtt.d.ts.map +1 -1
- package/dist/core/transports/utils.d.ts.map +1 -1
- package/dist/core/transports/ws.d.ts +1 -1
- package/dist/core/transports/ws.d.ts.map +1 -1
- package/dist/core/uuid.d.ts.map +1 -1
- package/dist/external/api/createUserToken.d.ts +23 -0
- package/dist/external/api/createUserToken.d.ts.map +1 -0
- package/dist/external/api/index.d.ts +2 -0
- package/dist/external/api/index.d.ts.map +1 -0
- package/dist/feed/api/index.d.ts.map +1 -1
- package/dist/feed/api/queryGlobalFeed.d.ts +2 -2
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/file/api/createFile.d.ts +2 -1
- package/dist/file/api/createFile.d.ts.map +1 -1
- package/dist/file/api/createImage.d.ts +17 -0
- package/dist/file/api/createImage.d.ts.map +1 -0
- package/dist/file/api/createVideo.d.ts +17 -0
- package/dist/file/api/createVideo.d.ts.map +1 -0
- package/dist/file/api/deleteFile.d.ts.map +1 -1
- package/dist/file/api/fileUrlWithSize.d.ts.map +1 -1
- package/dist/file/api/getFile.d.ts +1 -1
- package/dist/file/api/getFile.d.ts.map +1 -1
- package/dist/file/api/index.d.ts +2 -0
- package/dist/file/api/index.d.ts.map +1 -1
- package/dist/file/observers/index.d.ts.map +1 -1
- package/dist/file/observers/observeFile.d.ts.map +1 -1
- package/dist/follow/api/acceptFollower.d.ts.map +1 -1
- package/dist/follow/api/declineFollower.d.ts.map +1 -1
- package/dist/follow/api/follow.d.ts.map +1 -1
- package/dist/follow/api/getFollowInfo.d.ts.map +1 -1
- package/dist/follow/api/index.d.ts.map +1 -1
- package/dist/follow/api/queryFollowers.d.ts.map +1 -1
- package/dist/follow/api/queryFollowings.d.ts.map +1 -1
- package/dist/follow/api/unfollow.d.ts.map +1 -1
- package/dist/follow/api/utils.d.ts.map +1 -1
- package/dist/follow/events/index.d.ts.map +1 -1
- package/dist/follow/events/onFollowInfoUpdated.d.ts.map +1 -1
- package/dist/follow/events/onFollowRequestAccepted.d.ts.map +1 -1
- package/dist/follow/events/onFollowRequestCanceled.d.ts.map +1 -1
- package/dist/follow/events/onFollowRequestDeclined.d.ts.map +1 -1
- package/dist/follow/events/onFollowerDeleted.d.ts.map +1 -1
- package/dist/follow/events/onFollowerRequested.d.ts.map +1 -1
- package/dist/follow/events/onUserFollowed.d.ts.map +1 -1
- package/dist/follow/events/onUserUnfollowed.d.ts.map +1 -1
- package/dist/follow/events/utils.d.ts.map +1 -1
- package/dist/follow/observers/index.d.ts.map +1 -1
- package/dist/follow/observers/observeFollowInfo.d.ts.map +1 -1
- package/dist/follow/observers/observeFollowers.d.ts.map +1 -1
- package/dist/follow/observers/observeFollowings.d.ts.map +1 -1
- package/dist/index.cjs.js +736 -219
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +725 -218
- package/dist/index.umd.js +5 -5
- 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.map +1 -1
- package/dist/message/api/getMessage.d.ts.map +1 -1
- package/dist/message/api/getMessages.d.ts.map +1 -1
- package/dist/message/api/index.d.ts.map +1 -1
- package/dist/message/api/queryMessages.d.ts.map +1 -1
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/message/events/index.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/index.d.ts.map +1 -1
- package/dist/message/observers/observeMessage.d.ts.map +1 -1
- package/dist/message/observers/observeMessages.d.ts +5 -1
- package/dist/message/observers/observeMessages.d.ts.map +1 -1
- package/dist/poll/api/closePoll.d.ts +16 -0
- package/dist/poll/api/closePoll.d.ts.map +1 -0
- package/dist/poll/api/createPoll.d.ts +25 -0
- package/dist/poll/api/createPoll.d.ts.map +1 -0
- package/dist/poll/api/deletePoll.d.ts +16 -0
- package/dist/poll/api/deletePoll.d.ts.map +1 -0
- package/dist/poll/api/getPoll.d.ts +32 -0
- package/dist/poll/api/getPoll.d.ts.map +1 -0
- package/dist/poll/api/index.d.ts +6 -0
- package/dist/poll/api/index.d.ts.map +1 -0
- package/dist/poll/api/votePoll.d.ts +17 -0
- package/dist/poll/api/votePoll.d.ts.map +1 -0
- 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.map +1 -1
- package/dist/post/api/getPost.d.ts +1 -1
- package/dist/post/api/getPost.d.ts.map +1 -1
- package/dist/post/api/getPosts.d.ts.map +1 -1
- package/dist/post/api/index.d.ts.map +1 -1
- 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/index.d.ts.map +1 -1
- package/dist/post/events/onPostApproved.d.ts.map +1 -1
- package/dist/post/events/onPostCreated.d.ts.map +1 -1
- package/dist/post/events/onPostDeclined.d.ts.map +1 -1
- package/dist/post/events/onPostDeleted.d.ts.map +1 -1
- package/dist/post/events/onPostFlagged.d.ts.map +1 -1
- package/dist/post/events/onPostReactionAdded.d.ts.map +1 -1
- package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -1
- package/dist/post/events/onPostUnflagged.d.ts.map +1 -1
- package/dist/post/events/onPostUpdated.d.ts.map +1 -1
- package/dist/post/events/utils.d.ts.map +1 -1
- package/dist/post/observers/index.d.ts.map +1 -1
- package/dist/post/observers/observePost.d.ts.map +1 -1
- package/dist/post/observers/observePosts.d.ts +11 -1
- package/dist/post/observers/observePosts.d.ts.map +1 -1
- package/dist/reaction/api/addReaction.d.ts +2 -2
- package/dist/reaction/api/addReaction.d.ts.map +1 -1
- package/dist/reaction/api/index.d.ts.map +1 -1
- package/dist/reaction/api/removeReaction.d.ts +2 -2
- package/dist/reaction/api/removeReaction.d.ts.map +1 -1
- package/dist/reaction/events/index.d.ts.map +1 -1
- package/dist/reaction/events/onReactionAdded.d.ts +1 -1
- package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reaction/events/onReactionRemoved.d.ts +1 -1
- package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -1
- package/dist/reaction/utils/dispatchReactable.d.ts.map +1 -1
- package/dist/reaction/utils/fetchReference.d.ts.map +1 -1
- package/dist/reaction/utils/index.d.ts.map +1 -1
- package/dist/reaction/utils/preparePayloadForCache.d.ts.map +1 -1
- package/dist/report/api/createReport.d.ts +1 -1
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/report/api/index.d.ts.map +1 -1
- package/dist/report/api/isReportedByMe.d.ts +1 -1
- package/dist/report/api/isReportedByMe.d.ts.map +1 -1
- package/dist/report/constants/referenceTypes.d.ts.map +1 -1
- package/dist/role/api/getRole.d.ts.map +1 -1
- package/dist/role/api/index.d.ts.map +1 -1
- package/dist/role/api/queryRoles.d.ts.map +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.map +1 -1
- package/dist/stream/api/getStream.d.ts.map +1 -1
- package/dist/stream/api/index.d.ts.map +1 -1
- package/dist/stream/api/queryStreams.d.ts.map +1 -1
- package/dist/stream/api/updateStream.d.ts.map +1 -1
- package/dist/stream/events/index.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.map +1 -1
- package/dist/user/api/getUsers.d.ts.map +1 -1
- package/dist/user/api/index.d.ts.map +1 -1
- 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/index.d.ts.map +1 -1
- package/dist/user/events/onUserFlagCleared.d.ts.map +1 -1
- package/dist/user/events/onUserFlagged.d.ts.map +1 -1
- package/dist/user/events/onUserUnflagged.d.ts.map +1 -1
- package/dist/user/events/onUserUpdated.d.ts.map +1 -1
- package/dist/user/events/utils.d.ts.map +1 -1
- package/dist/user/observers/index.d.ts.map +1 -1
- package/dist/user/observers/observeUser.d.ts.map +1 -1
- package/dist/utils/env.d.ts +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/rollup.config.js +11 -11
- package/src/@types/core/cache.ts +29 -28
- package/src/@types/core/errors.ts +3 -3
- package/src/@types/core/events.ts +95 -92
- package/src/@types/core/model.ts +39 -38
- package/src/@types/core/paging.ts +27 -27
- package/src/@types/core/payload.ts +85 -79
- package/src/@types/core/permissions.ts +6 -7
- package/src/@types/core/query.ts +38 -37
- package/src/@types/core/transport.ts +37 -28
- package/src/@types/domains/category.ts +7 -8
- package/src/@types/domains/channel.ts +29 -30
- package/src/@types/domains/client.ts +24 -24
- package/src/@types/domains/comment.ts +20 -20
- package/src/@types/domains/community.ts +22 -23
- package/src/@types/domains/content.ts +26 -22
- package/src/@types/domains/feed.ts +8 -9
- package/src/@types/domains/file.ts +28 -28
- package/src/@types/domains/follow.ts +13 -15
- package/src/@types/domains/group.ts +24 -26
- package/src/@types/domains/mention.ts +13 -12
- package/src/@types/domains/message.ts +15 -16
- package/src/@types/domains/partials.ts +29 -29
- package/src/@types/domains/poll.ts +32 -0
- package/src/@types/domains/post.ts +24 -24
- package/src/@types/domains/reaction.ts +17 -18
- package/src/@types/domains/stream.ts +37 -38
- package/src/@types/domains/user.ts +13 -13
- package/src/@types/global.ts +20 -17
- package/src/@types/index.ts +26 -24
- package/src/cache/api/backupCache.ts +14 -18
- package/src/cache/api/disableCache.ts +6 -6
- package/src/cache/api/dropFromCache.ts +13 -16
- package/src/cache/api/enableCache.ts +6 -6
- package/src/cache/api/index.ts +11 -11
- package/src/cache/api/ingestInCache.ts +15 -16
- package/src/cache/api/mergeInCache.ts +10 -12
- package/src/cache/api/pullFromCache.ts +9 -11
- package/src/cache/api/pushToCache.ts +14 -12
- package/src/cache/api/queryCache.ts +11 -12
- package/src/cache/api/restoreCache.ts +16 -15
- package/src/cache/api/snipeIdFromCollection.ts +19 -24
- package/src/cache/api/upsertInCache.ts +11 -13
- package/src/cache/api/wipeCache.ts +10 -12
- package/src/cache/utils/index.ts +15 -25
- package/src/category/api/getCategory.ts +50 -14
- package/src/category/api/index.ts +2 -2
- package/src/category/api/queryCategories.ts +88 -27
- package/src/channel/api/addChannelMembers.ts +14 -15
- package/src/channel/api/addChannelMembersRole.ts +12 -13
- package/src/channel/api/createChannel.ts +18 -13
- package/src/channel/api/deleteChannel.ts +9 -10
- package/src/channel/api/getChannel.ts +18 -19
- package/src/channel/api/getChannels.ts +22 -24
- package/src/channel/api/index.ts +13 -13
- package/src/channel/api/joinChannel.ts +12 -15
- package/src/channel/api/leaveChannel.ts +12 -15
- package/src/channel/api/queryChannelMembers.ts +35 -36
- package/src/channel/api/queryChannels.ts +46 -47
- package/src/channel/api/removeChannelMembers.ts +14 -15
- package/src/channel/api/removeChannelMembersRole.ts +12 -13
- package/src/channel/api/updateChannel.ts +12 -11
- package/src/channel/events/index.ts +6 -6
- package/src/channel/events/onChannelCreated.ts +9 -14
- package/src/channel/events/onChannelDeleted.ts +9 -14
- package/src/channel/events/onChannelJoined.ts +9 -14
- package/src/channel/events/onChannelLeft.ts +9 -14
- package/src/channel/events/onChannelUpdated.ts +9 -14
- package/src/channel/events/onMemberAdded.ts +9 -14
- package/src/channel/events/onMemberRemoved.ts +9 -14
- package/src/channel/observers/index.ts +1 -1
- package/src/channel/observers/observeChannel.ts +24 -30
- package/src/client/api/activeClient.ts +7 -7
- package/src/client/api/activeUser.ts +7 -7
- package/src/client/api/connectClient.ts +32 -30
- package/src/client/api/createClient.ts +22 -18
- package/src/client/api/disconnectClient.ts +14 -14
- package/src/client/api/getToken.ts +22 -17
- package/src/client/api/index.ts +5 -5
- package/src/client/api/isConnected.ts +8 -8
- package/src/client/events/index.ts +3 -3
- package/src/client/events/onClientBanned.ts +5 -7
- package/src/client/events/onClientDisconnected.ts +5 -7
- package/src/client/events/onConnectionError.ts +17 -24
- package/src/client/utils/endpoints.ts +3 -3
- package/src/comment/api/createComment.ts +19 -18
- package/src/comment/api/deleteComment.ts +21 -22
- package/src/comment/api/getComment.ts +22 -23
- package/src/comment/api/getComments.ts +24 -26
- package/src/comment/api/index.ts +6 -6
- package/src/comment/api/queryComments.ts +53 -50
- package/src/comment/api/updateComment.ts +14 -13
- package/src/comment/events/index.ts +7 -7
- package/src/comment/events/onCommentCreated.ts +3 -5
- package/src/comment/events/onCommentDeleted.ts +3 -5
- package/src/comment/events/onCommentFlagged.ts +3 -5
- package/src/comment/events/onCommentReactionAdded.ts +20 -20
- package/src/comment/events/onCommentReactionRemoved.ts +20 -20
- package/src/comment/events/onCommentUnflagged.ts +3 -5
- package/src/comment/events/onCommentUpdated.ts +3 -5
- package/src/comment/events/utils.ts +19 -20
- package/src/comment/observers/index.ts +2 -2
- package/src/comment/observers/observeComment.ts +48 -37
- package/src/comment/observers/observeComments.ts +34 -19
- package/src/community/api/addCommunityMembers.ts +14 -15
- package/src/community/api/addCommunityMembersRoles.ts +42 -0
- package/src/community/api/createCommunity.ts +26 -19
- package/src/community/api/deleteCommunity.ts +10 -12
- package/src/community/api/getCommunities.ts +24 -26
- package/src/community/api/getCommunity.ts +20 -21
- package/src/community/api/getRecommendedCommunities.ts +29 -28
- package/src/community/api/getTopTrendingCommunities.ts +29 -28
- package/src/community/api/index.ts +15 -16
- package/src/community/api/joinCommunity.ts +16 -16
- package/src/community/api/leaveCommunity.ts +16 -16
- package/src/community/api/queryCommunities.ts +48 -50
- package/src/community/api/queryCommunityMembers.ts +34 -35
- package/src/community/api/removeCommunityMembers.ts +14 -15
- package/src/community/api/removeCommunityMembersRoles.ts +42 -0
- package/src/community/api/updateCommunity.ts +18 -14
- package/src/community/events/index.ts +9 -9
- package/src/community/events/onCommunityCreated.ts +2 -2
- package/src/community/events/onCommunityDeleted.ts +2 -2
- package/src/community/events/onCommunityJoined.ts +4 -3
- package/src/community/events/onCommunityLeft.ts +4 -3
- package/src/community/events/onCommunityUpdated.ts +2 -2
- package/src/community/events/onCommunityUserAdded.ts +4 -3
- package/src/community/events/onCommunityUserBanned.ts +4 -3
- package/src/community/events/onCommunityUserRemoved.ts +4 -3
- package/src/community/events/onCommunityUserUnbanned.ts +4 -3
- package/src/community/events/utils.ts +46 -44
- package/src/community/observers/index.ts +1 -1
- package/src/community/observers/observeCommunity.ts +57 -39
- package/src/core/debug.ts +10 -12
- package/src/core/device.ts +11 -12
- package/src/core/errors.ts +16 -19
- package/src/core/events.ts +47 -47
- package/src/core/microtasks.ts +12 -11
- package/src/core/model/idResolvers.ts +7 -7
- package/src/core/model/identifyModel.ts +15 -12
- package/src/core/model/index.ts +7 -5
- package/src/core/query/filtering.ts +5 -3
- package/src/core/query/index.ts +4 -4
- package/src/core/query/paging.ts +44 -49
- package/src/core/query/query.ts +58 -64
- package/src/core/query/sorting.ts +21 -15
- package/src/core/subscription.ts +22 -20
- package/src/core/transports/http.ts +27 -25
- package/src/core/transports/mqtt.ts +70 -51
- package/src/core/transports/utils.ts +8 -7
- package/src/core/transports/ws.ts +16 -17
- package/src/core/uuid.ts +3 -2
- package/src/external/api/createUserToken.ts +43 -0
- package/src/external/api/index.ts +1 -0
- package/src/feed/api/index.ts +1 -1
- package/src/feed/api/queryGlobalFeed.ts +53 -43
- package/src/file/api/createFile.ts +23 -22
- package/src/file/api/createImage.ts +58 -0
- package/src/file/api/createVideo.ts +58 -0
- package/src/file/api/deleteFile.ts +9 -11
- package/src/file/api/fileUrlWithSize.ts +2 -2
- package/src/file/api/getFile.ts +19 -24
- package/src/file/api/index.ts +6 -4
- package/src/file/observers/index.ts +1 -1
- package/src/file/observers/observeFile.ts +17 -23
- package/src/follow/api/acceptFollower.ts +12 -10
- package/src/follow/api/declineFollower.ts +12 -10
- package/src/follow/api/follow.ts +16 -12
- package/src/follow/api/getFollowInfo.ts +28 -20
- package/src/follow/api/index.ts +7 -7
- package/src/follow/api/queryFollowers.ts +7 -10
- package/src/follow/api/queryFollowings.ts +7 -10
- package/src/follow/api/unfollow.ts +12 -10
- package/src/follow/api/utils.ts +40 -35
- package/src/follow/events/index.ts +8 -8
- package/src/follow/events/onFollowInfoUpdated.ts +15 -13
- package/src/follow/events/onFollowRequestAccepted.ts +4 -3
- package/src/follow/events/onFollowRequestCanceled.ts +4 -3
- package/src/follow/events/onFollowRequestDeclined.ts +4 -3
- package/src/follow/events/onFollowerDeleted.ts +4 -3
- package/src/follow/events/onFollowerRequested.ts +4 -3
- package/src/follow/events/onUserFollowed.ts +2 -2
- package/src/follow/events/onUserUnfollowed.ts +4 -3
- package/src/follow/events/utils.ts +15 -20
- package/src/follow/observers/index.ts +3 -3
- package/src/follow/observers/observeFollowInfo.ts +27 -31
- package/src/follow/observers/observeFollowers.ts +29 -30
- package/src/follow/observers/observeFollowings.ts +29 -30
- package/src/index.ts +45 -38
- package/src/message/api/createMessage.ts +31 -29
- package/src/message/api/deleteMessage.ts +22 -22
- package/src/message/api/getMessage.ts +18 -19
- package/src/message/api/getMessages.ts +22 -24
- package/src/message/api/index.ts +6 -6
- package/src/message/api/queryMessages.ts +55 -47
- package/src/message/api/updateMessage.ts +26 -25
- package/src/message/events/index.ts +3 -3
- package/src/message/events/onMessageCreated.ts +10 -17
- package/src/message/events/onMessageDeleted.ts +10 -17
- package/src/message/events/onMessageUpdated.ts +10 -17
- package/src/message/observers/index.ts +2 -2
- package/src/message/observers/observeMessage.ts +23 -29
- package/src/message/observers/observeMessages.ts +20 -22
- package/src/poll/api/closePoll.ts +39 -0
- package/src/poll/api/createPoll.ts +45 -0
- package/src/poll/api/deletePoll.ts +36 -0
- package/src/poll/api/getPoll.ts +64 -0
- package/src/poll/api/index.ts +7 -0
- package/src/poll/api/votePoll.ts +41 -0
- package/src/post/api/createPost.ts +20 -20
- package/src/post/api/deletePost.ts +22 -25
- package/src/post/api/getPost.ts +23 -28
- package/src/post/api/getPosts.ts +24 -28
- package/src/post/api/index.ts +6 -6
- package/src/post/api/queryPosts.ts +48 -50
- package/src/post/api/updatePost.ts +15 -15
- package/src/post/events/index.ts +9 -9
- package/src/post/events/onPostApproved.ts +2 -2
- package/src/post/events/onPostCreated.ts +2 -2
- package/src/post/events/onPostDeclined.ts +2 -2
- package/src/post/events/onPostDeleted.ts +2 -2
- package/src/post/events/onPostFlagged.ts +2 -2
- package/src/post/events/onPostReactionAdded.ts +15 -19
- package/src/post/events/onPostReactionRemoved.ts +15 -19
- package/src/post/events/onPostUnflagged.ts +2 -2
- package/src/post/events/onPostUpdated.ts +2 -2
- package/src/post/events/utils.ts +19 -24
- package/src/post/observers/index.ts +2 -2
- package/src/post/observers/observePost.ts +46 -34
- package/src/post/observers/observePosts.ts +47 -24
- package/src/reaction/api/addReaction.ts +32 -27
- package/src/reaction/api/index.ts +2 -2
- package/src/reaction/api/removeReaction.ts +30 -27
- package/src/reaction/events/index.ts +1 -1
- package/src/reaction/events/onReactionAdded.ts +26 -22
- package/src/reaction/events/onReactionRemoved.ts +26 -22
- package/src/reaction/utils/dispatchReactable.ts +5 -7
- package/src/reaction/utils/fetchReference.ts +8 -11
- package/src/reaction/utils/index.ts +3 -3
- package/src/reaction/utils/preparePayloadForCache.ts +27 -19
- package/src/report/api/createReport.ts +20 -19
- package/src/report/api/deleteReport.ts +20 -19
- package/src/report/api/index.ts +3 -3
- package/src/report/api/isReportedByMe.ts +13 -13
- package/src/report/constants/referenceTypes.ts +1 -1
- package/src/role/api/getRole.ts +19 -26
- package/src/role/api/index.ts +2 -2
- package/src/role/api/queryRoles.ts +29 -32
- package/src/stream/api/createStream.ts +11 -13
- package/src/stream/api/deleteStream.ts +14 -16
- package/src/stream/api/disposeStream.ts +11 -11
- package/src/stream/api/getStream.ts +21 -21
- package/src/stream/api/index.ts +6 -6
- package/src/stream/api/queryStreams.ts +36 -37
- package/src/stream/api/updateStream.ts +12 -12
- package/src/stream/events/index.ts +3 -3
- package/src/stream/events/onStreamRecorded.ts +10 -12
- package/src/stream/events/onStreamStarted.ts +10 -12
- package/src/stream/events/onStreamStopped.ts +10 -17
- package/src/user/api/getUser.ts +18 -22
- package/src/user/api/getUsers.ts +23 -27
- package/src/user/api/index.ts +4 -4
- package/src/user/api/queryUsers.ts +42 -46
- package/src/user/api/updateUser.ts +18 -13
- package/src/user/events/index.ts +4 -4
- package/src/user/events/onUserFlagCleared.ts +2 -2
- package/src/user/events/onUserFlagged.ts +2 -2
- package/src/user/events/onUserUnflagged.ts +2 -2
- package/src/user/events/onUserUpdated.ts +2 -2
- package/src/user/events/utils.ts +10 -15
- package/src/user/observers/index.ts +1 -1
- package/src/user/observers/observeUser.ts +25 -34
- package/src/utils/env.ts +9 -4
- package/src/version.ts +2 -2
- package/dist/community/api/addCommunityMembersRole.d.ts +0 -18
- package/dist/community/api/addCommunityMembersRole.d.ts.map +0 -1
- package/dist/community/api/removeCommunityMembersRole.d.ts +0 -18
- package/dist/community/api/removeCommunityMembersRole.d.ts.map +0 -1
- package/src/community/api/addCommunityMembersRole.ts +0 -41
- package/src/community/api/removeCommunityMembersRole.ts +0 -41
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* to avoid using any and give some typing security at the
|
|
5
5
|
* resolver's level.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
[K in T[number]]: (model: Amity.Minimal[K]) => string
|
|
9
|
-
}
|
|
7
|
+
type Resolvers<T extends Amity.Domain[] = Amity.Domain[]> = {
|
|
8
|
+
[K in T[number]]: (model: Amity.Minimal[K]) => string;
|
|
9
|
+
};
|
|
10
10
|
|
|
11
11
|
/** @hidden */
|
|
12
12
|
const idResolvers: Resolvers = {
|
|
@@ -19,15 +19,17 @@ const idResolvers: Resolvers = {
|
|
|
19
19
|
message: ({ messageId }) => messageId,
|
|
20
20
|
|
|
21
21
|
community: ({ communityId }) => communityId,
|
|
22
|
+
category: ({ categoryId }) => categoryId,
|
|
22
23
|
communityUsers: ({ communityId, userId }) => `${communityId}#${userId}`,
|
|
23
24
|
post: ({ postId }) => postId,
|
|
24
25
|
comment: ({ commentId }) => commentId,
|
|
26
|
+
poll: ({ pollId }) => pollId,
|
|
25
27
|
|
|
26
28
|
stream: ({ streamId }) => streamId,
|
|
27
29
|
|
|
28
30
|
follow: ({ from, to }) => `${from}#${to}`,
|
|
29
31
|
followCount: ({ userId }) => userId,
|
|
30
|
-
}
|
|
32
|
+
};
|
|
31
33
|
|
|
32
34
|
/**
|
|
33
35
|
* Retrieve the id resolver matching a domain name
|
|
@@ -35,6 +37,4 @@ const idResolvers: Resolvers = {
|
|
|
35
37
|
* @param name the domain name for the resolve
|
|
36
38
|
* @returns an idResolver function for the given domain name
|
|
37
39
|
*/
|
|
38
|
-
|
|
39
|
-
idResolvers[name]
|
|
40
|
-
)
|
|
40
|
+
export const getResolver = <T extends Amity.Domain>(name: T) => idResolvers[name];
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* adding new models.
|
|
6
6
|
* @hidden
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
[K in T[number]]: (keyof Amity.Model[K])[]
|
|
10
|
-
}
|
|
8
|
+
type Criterias<T extends Amity.Domain[] = Amity.Domain[]> = {
|
|
9
|
+
[K in T[number]]: (keyof Amity.Model[K])[];
|
|
10
|
+
};
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Identification criterias
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @hidden
|
|
21
21
|
*/
|
|
22
|
-
const CRITERIAS: Criterias
|
|
22
|
+
const CRITERIAS: Criterias = {
|
|
23
23
|
file: ['fileId', 'attributes'],
|
|
24
24
|
user: ['userId', 'avatarFileId'],
|
|
25
25
|
role: ['roleId'],
|
|
@@ -27,19 +27,21 @@ const CRITERIAS: Criterias = {
|
|
|
27
27
|
channelUsers: ['channelId', 'userId', 'membership'],
|
|
28
28
|
message: ['messageId'],
|
|
29
29
|
community: ['communityId', 'onlyAdminCanPost'],
|
|
30
|
+
category: ['categoryId'],
|
|
30
31
|
communityUsers: ['userId', 'communityId', 'communityMembership'],
|
|
31
32
|
post: ['postId', 'feedId'],
|
|
32
33
|
comment: ['commentId', 'referenceId'],
|
|
34
|
+
poll: ['pollId'],
|
|
33
35
|
stream: ['streamId'],
|
|
34
36
|
follow: ['from', 'to'],
|
|
35
|
-
followCount: ['userId', 'followerCount']
|
|
36
|
-
}
|
|
37
|
+
followCount: ['userId', 'followerCount'],
|
|
38
|
+
};
|
|
37
39
|
|
|
38
40
|
/** @hidden */
|
|
39
41
|
const hasKeys = (object: Record<string, unknown>, needles: string[]) => {
|
|
40
|
-
const haystack = Object.keys(object)
|
|
41
|
-
return needles.every(needle => haystack.includes(needle))
|
|
42
|
-
}
|
|
42
|
+
const haystack = Object.keys(object);
|
|
43
|
+
return needles.every(needle => haystack.includes(needle));
|
|
44
|
+
};
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
47
|
* Finds the name of the store for a given unknown model
|
|
@@ -50,6 +52,7 @@ const hasKeys = (object: Record<string, unknown>, needles: string[]) => {
|
|
|
50
52
|
export const identifyModel = (model: Record<string, unknown>) => {
|
|
51
53
|
// we cannot avoid "as" in here because Object.entries does not
|
|
52
54
|
// allow anything else than "string" as key in the iterator type
|
|
53
|
-
const criterias = Object.entries(CRITERIAS) as [Amity.Domain, string[]][]
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
const criterias = Object.entries(CRITERIAS) as [Amity.Domain, string[]][];
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
|
+
return criterias.find(([_, keys]) => hasKeys(model, keys))?.[0];
|
|
58
|
+
};
|
package/src/core/model/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from './idResolvers'
|
|
2
|
-
export * from './identifyModel'
|
|
1
|
+
export * from './idResolvers';
|
|
2
|
+
export * from './identifyModel';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* A map of v3 response keys to a store name.
|
|
6
6
|
* @hidden
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
export const PAYLOAD2MODEL: Record<string, Amity.Domain> = {
|
|
9
9
|
users: 'user',
|
|
10
10
|
files: 'file',
|
|
11
11
|
roles: 'role',
|
|
@@ -15,12 +15,14 @@ export * from './identifyModel'
|
|
|
15
15
|
messages: 'message',
|
|
16
16
|
|
|
17
17
|
communities: 'community',
|
|
18
|
+
categories: 'category',
|
|
18
19
|
communityUsers: 'communityUsers',
|
|
19
20
|
posts: 'post',
|
|
20
21
|
postChildren: 'post',
|
|
21
22
|
comments: 'comment',
|
|
23
|
+
polls: 'poll',
|
|
22
24
|
videoStreamings: 'stream',
|
|
23
25
|
|
|
24
26
|
follows: 'follow',
|
|
25
|
-
followCounts: 'followCount'
|
|
26
|
-
}
|
|
27
|
+
followCounts: 'followCount',
|
|
28
|
+
};
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @hidden
|
|
14
14
|
*/
|
|
15
|
-
export const filterByPropEquality = <T =
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export const filterByPropEquality = <T = Record<string, unknown>>(
|
|
16
|
+
collection: T[],
|
|
17
|
+
key: keyof T,
|
|
18
|
+
value: any,
|
|
19
|
+
) => (value !== undefined ? collection.filter(item => item[key] === value) : collection);
|
package/src/core/query/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './query'
|
|
2
|
-
export * from './filtering'
|
|
3
|
-
export * from './sorting'
|
|
4
|
-
export * from './paging'
|
|
1
|
+
export * from './query';
|
|
2
|
+
export * from './filtering';
|
|
3
|
+
export * from './sorting';
|
|
4
|
+
export * from './paging';
|
package/src/core/query/paging.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { encode, decode } from 'js-base64'
|
|
1
|
+
import { encode, decode } from 'js-base64';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Type guard to find if the a given decoded backend token uses "skip/limit" pagination style
|
|
@@ -8,9 +8,8 @@ import { encode, decode } from 'js-base64'
|
|
|
8
8
|
*
|
|
9
9
|
* @hidden
|
|
10
10
|
*/
|
|
11
|
-
export const isSkipLimit = (json:
|
|
12
|
-
['skip', 'limit'].some(prop => prop in json)
|
|
13
|
-
)
|
|
11
|
+
export const isSkipLimit = (json: Record<string, unknown>): json is Amity.SkipLimitPagination =>
|
|
12
|
+
['skip', 'limit'].some(prop => prop in json);
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* Type guard to find if the a given decoded backend token uses "after/before" pagination style
|
|
@@ -20,9 +19,8 @@ export const isSkipLimit = (json: Object): json is Amity.SkipLimitPagination =>
|
|
|
20
19
|
*
|
|
21
20
|
* @hidden
|
|
22
21
|
*/
|
|
23
|
-
export const isAfterBefore = (json:
|
|
24
|
-
['after', 'before', 'first', 'last', 'limit'].some(prop => prop in json)
|
|
25
|
-
)
|
|
22
|
+
export const isAfterBefore = (json: Record<string, unknown>): json is Amity.AfterBeforePagination =>
|
|
23
|
+
['after', 'before', 'first', 'last', 'limit'].some(prop => prop in json);
|
|
26
24
|
|
|
27
25
|
/**
|
|
28
26
|
* Type guard to find if the a given decoded backend token uses v4 or newer "after/before" pagination style
|
|
@@ -32,9 +30,9 @@ export const isAfterBefore = (json: Object): json is Amity.AfterBeforePagination
|
|
|
32
30
|
*
|
|
33
31
|
* @hidden
|
|
34
32
|
*/
|
|
35
|
-
export const isAfterBeforeRaw = (
|
|
36
|
-
|
|
37
|
-
)
|
|
33
|
+
export const isAfterBeforeRaw = (
|
|
34
|
+
json: Record<string, unknown>,
|
|
35
|
+
): json is Amity.AfterBeforeRawPagination => 'limit' in json;
|
|
38
36
|
|
|
39
37
|
/**
|
|
40
38
|
* Type guard to find if the a given object is wrapped around Amity.Paged<>
|
|
@@ -46,11 +44,11 @@ export const isAfterBeforeRaw = (json: Object): json is Amity.AfterBeforeRawPagi
|
|
|
46
44
|
*/
|
|
47
45
|
export const isPaged = <T extends unknown>(payload: any): payload is Amity.Paged<T, any> => {
|
|
48
46
|
return (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
)
|
|
53
|
-
}
|
|
47
|
+
payload?.hasOwnProperty('data') &&
|
|
48
|
+
payload?.hasOwnProperty('nextPage') &&
|
|
49
|
+
payload?.hasOwnProperty('prevPage')
|
|
50
|
+
);
|
|
51
|
+
};
|
|
54
52
|
|
|
55
53
|
/**
|
|
56
54
|
* Converts a paging object into a b64 string token
|
|
@@ -65,53 +63,48 @@ export const toToken = (
|
|
|
65
63
|
paging: Amity.Page | Amity.PageRaw | undefined,
|
|
66
64
|
style: Amity.PaginationStyles,
|
|
67
65
|
): Amity.Token | undefined => {
|
|
68
|
-
if (!paging || !Object.keys(paging).length)
|
|
69
|
-
return
|
|
66
|
+
if (!paging || !Object.keys(paging).length) return;
|
|
70
67
|
|
|
71
|
-
let payload = {}
|
|
68
|
+
let payload = {};
|
|
72
69
|
|
|
73
70
|
// TODO: refactor this clean
|
|
74
71
|
if (style === 'skiplimit') {
|
|
75
72
|
payload = {
|
|
76
73
|
skip: paging.after ?? 0,
|
|
77
74
|
limit: paging.limit,
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else if (style === 'afterbefore' && isAfterBefore(paging)) {
|
|
75
|
+
};
|
|
76
|
+
} else if (style === 'afterbefore' && isAfterBefore(paging)) {
|
|
81
77
|
/*
|
|
82
78
|
Caution: this testing style is only valid because
|
|
83
79
|
our backend expects nothing else than a number as
|
|
84
80
|
"before" or "after" value. if that would change,
|
|
85
81
|
we'd need to move toward a more simple: `!paging.before`
|
|
86
82
|
*/
|
|
87
|
-
if (!isNaN(paging?.before!)) {
|
|
83
|
+
if (!Number.isNaN(paging?.before!)) {
|
|
88
84
|
payload = {
|
|
89
85
|
before: paging.before,
|
|
90
86
|
last: paging.limit,
|
|
91
|
-
}
|
|
92
|
-
} else if (!isNaN(paging?.after!)) {
|
|
87
|
+
};
|
|
88
|
+
} else if (!Number.isNaN(paging?.after!)) {
|
|
93
89
|
payload = {
|
|
94
90
|
after: paging.after,
|
|
95
91
|
first: paging.limit,
|
|
96
|
-
}
|
|
97
|
-
} else if (!isNaN(paging?.limit!)) {
|
|
92
|
+
};
|
|
93
|
+
} else if (!Number.isNaN(paging?.limit!)) {
|
|
98
94
|
payload = {
|
|
99
95
|
last: paging.limit,
|
|
100
|
-
}
|
|
96
|
+
};
|
|
101
97
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
payload = paging
|
|
98
|
+
} else if (style === 'afterbeforeraw') {
|
|
99
|
+
payload = paging;
|
|
105
100
|
}
|
|
106
101
|
|
|
107
102
|
// avoid sending {} as it seems backend flips when we do
|
|
108
|
-
if (!Object.keys(payload).length)
|
|
109
|
-
return
|
|
103
|
+
if (!Object.keys(payload).length) return;
|
|
110
104
|
|
|
111
105
|
// don't try catch, let it throw
|
|
112
|
-
return encode(JSON.stringify(payload))
|
|
113
|
-
}
|
|
114
|
-
|
|
106
|
+
return encode(JSON.stringify(payload));
|
|
107
|
+
};
|
|
115
108
|
|
|
116
109
|
/**
|
|
117
110
|
* Converts a b64 string token into a paging object
|
|
@@ -122,32 +115,34 @@ export const toToken = (
|
|
|
122
115
|
* @hidden
|
|
123
116
|
*/
|
|
124
117
|
export const toPage = (token?: Amity.Token): Amity.Page | undefined => {
|
|
125
|
-
if (!token) return undefined
|
|
118
|
+
if (!token) return undefined;
|
|
126
119
|
|
|
127
120
|
// don't try catch, let it throw
|
|
128
|
-
const json = JSON.parse(decode(token))
|
|
121
|
+
const json = JSON.parse(decode(token));
|
|
129
122
|
|
|
130
123
|
if (isSkipLimit(json)) {
|
|
131
124
|
return {
|
|
132
125
|
after: json.skip,
|
|
133
126
|
limit: json.limit!,
|
|
134
|
-
} as Amity.NextPage<number
|
|
135
|
-
}
|
|
127
|
+
} as Amity.NextPage<number>;
|
|
128
|
+
}
|
|
129
|
+
if (isAfterBefore(json)) {
|
|
136
130
|
if ('before' in json) {
|
|
137
131
|
return {
|
|
138
132
|
before: json.before,
|
|
139
133
|
limit: json.last,
|
|
140
|
-
} as Amity.PrevPage<number
|
|
141
|
-
}
|
|
134
|
+
} as Amity.PrevPage<number>;
|
|
135
|
+
}
|
|
136
|
+
if ('after' in json) {
|
|
142
137
|
return {
|
|
143
138
|
after: json.after,
|
|
144
139
|
limit: json.first,
|
|
145
|
-
} as Amity.NextPage<number
|
|
140
|
+
} as Amity.NextPage<number>;
|
|
146
141
|
}
|
|
147
142
|
}
|
|
148
143
|
|
|
149
|
-
return undefined
|
|
150
|
-
}
|
|
144
|
+
return undefined;
|
|
145
|
+
};
|
|
151
146
|
|
|
152
147
|
/**
|
|
153
148
|
* Converts a b64 string token into a paging object
|
|
@@ -158,14 +153,14 @@ export const toPage = (token?: Amity.Token): Amity.Page | undefined => {
|
|
|
158
153
|
* @hidden
|
|
159
154
|
*/
|
|
160
155
|
export const toPageRaw = (token?: Amity.Token): Amity.PageRaw | undefined => {
|
|
161
|
-
if (!token) return undefined
|
|
156
|
+
if (!token) return undefined;
|
|
162
157
|
|
|
163
158
|
// don't try catch, let it throw
|
|
164
|
-
const json = JSON.parse(decode(token))
|
|
159
|
+
const json = JSON.parse(decode(token));
|
|
165
160
|
|
|
166
161
|
if (isAfterBeforeRaw(json)) {
|
|
167
|
-
return json as Amity.PageRaw
|
|
162
|
+
return json as Amity.PageRaw;
|
|
168
163
|
}
|
|
169
164
|
|
|
170
|
-
return undefined
|
|
171
|
-
}
|
|
165
|
+
return undefined;
|
|
166
|
+
};
|
package/src/core/query/query.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable no-use-before-define */
|
|
2
|
+
import { isPaged } from './paging';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Type guard to check and cast that a given async function is has the ".locally" property
|
|
@@ -9,10 +10,8 @@ import { isPaged } from './paging'
|
|
|
9
10
|
* @hidden
|
|
10
11
|
*/
|
|
11
12
|
export const isFetcher = <Args extends any[], Returned extends any>(
|
|
12
|
-
func: Amity.AsyncFunc<Args, Returned
|
|
13
|
-
): func is Amity.FetcherFunc<Args, Returned> =>
|
|
14
|
-
'locally' in func
|
|
15
|
-
)
|
|
13
|
+
func: Amity.AsyncFunc<Args, Returned>,
|
|
14
|
+
): func is Amity.FetcherFunc<Args, Returned> => 'locally' in func;
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
17
|
* Type guard to check and cast that a given async function is has the ".optimistically" property
|
|
@@ -23,10 +22,8 @@ export const isFetcher = <Args extends any[], Returned extends any>(
|
|
|
23
22
|
* @hidden
|
|
24
23
|
*/
|
|
25
24
|
export const isMutator = <Args extends any[], Returned extends any>(
|
|
26
|
-
func: Amity.AsyncFunc<Args, Returned
|
|
27
|
-
): func is Amity.MutatorFunc<Args, Returned> =>
|
|
28
|
-
'optimistically' in func
|
|
29
|
-
)
|
|
25
|
+
func: Amity.AsyncFunc<Args, Returned>,
|
|
26
|
+
): func is Amity.MutatorFunc<Args, Returned> => 'optimistically' in func;
|
|
30
27
|
|
|
31
28
|
/**
|
|
32
29
|
* Type guard to check and cast that a given async function is has
|
|
@@ -38,8 +35,8 @@ export const isMutator = <Args extends any[], Returned extends any>(
|
|
|
38
35
|
* @hidden
|
|
39
36
|
*/
|
|
40
37
|
export const isOffline = <Args extends any[], Returned extends any>(
|
|
41
|
-
func: Amity.AsyncFunc<Args, Returned
|
|
42
|
-
): func is Amity.OfflineFunc<Args, Returned> => isFetcher(func) || isMutator(func)
|
|
38
|
+
func: Amity.AsyncFunc<Args, Returned>,
|
|
39
|
+
): func is Amity.OfflineFunc<Args, Returned> => isFetcher(func) || isMutator(func);
|
|
43
40
|
|
|
44
41
|
/**
|
|
45
42
|
* Type guard to check and cast that a given object has the "cachedAt" property
|
|
@@ -49,9 +46,8 @@ export const isOffline = <Args extends any[], Returned extends any>(
|
|
|
49
46
|
*
|
|
50
47
|
* @hidden
|
|
51
48
|
*/
|
|
52
|
-
export const isCachable = (model: any): model is Amity.Cachable =>
|
|
53
|
-
model?.hasOwnProperty('cachedAt')
|
|
54
|
-
)
|
|
49
|
+
export const isCachable = (model: any): model is Amity.Cachable =>
|
|
50
|
+
model?.hasOwnProperty('cachedAt');
|
|
55
51
|
|
|
56
52
|
/**
|
|
57
53
|
* Checks if a model is considered local (cachedAt === -1)
|
|
@@ -62,8 +58,8 @@ export const isCachable = (model: any): model is Amity.Cachable => (
|
|
|
62
58
|
* @hidden
|
|
63
59
|
*/
|
|
64
60
|
export const isLocal = (model?: any): model is Amity.Local => {
|
|
65
|
-
return isCachable(model) && model?.cachedAt === -1
|
|
66
|
-
}
|
|
61
|
+
return isCachable(model) && model?.cachedAt === -1;
|
|
62
|
+
};
|
|
67
63
|
|
|
68
64
|
/**
|
|
69
65
|
* Checks if a model is considered fresh
|
|
@@ -74,9 +70,9 @@ export const isLocal = (model?: any): model is Amity.Local => {
|
|
|
74
70
|
*
|
|
75
71
|
* @hidden
|
|
76
72
|
*/
|
|
77
|
-
export const isFresh = (model?: Amity.Cachable, lifeSpan
|
|
78
|
-
return Date.now() - (model?.cachedAt ?? 0) <= lifeSpan
|
|
79
|
-
}
|
|
73
|
+
export const isFresh = (model?: Amity.Cachable, lifeSpan = 0) => {
|
|
74
|
+
return Date.now() - (model?.cachedAt ?? 0) <= lifeSpan;
|
|
75
|
+
};
|
|
80
76
|
|
|
81
77
|
/**
|
|
82
78
|
* ```js
|
|
@@ -97,8 +93,7 @@ export const isFresh = (model?: Amity.Cachable, lifeSpan: number = 0) => {
|
|
|
97
93
|
export const createQuery = <Args extends any[], Returned extends any>(
|
|
98
94
|
func: Amity.AsyncFunc<Args, Returned> | Amity.OfflineFunc<Args, Returned>,
|
|
99
95
|
...args: Args
|
|
100
|
-
) => ({ func, args })
|
|
101
|
-
|
|
96
|
+
) => ({ func, args });
|
|
102
97
|
|
|
103
98
|
/**
|
|
104
99
|
* ```js
|
|
@@ -114,15 +109,14 @@ export const createQuery = <Args extends any[], Returned extends any>(
|
|
|
114
109
|
* @category Query
|
|
115
110
|
*/
|
|
116
111
|
export const queryOptions = (
|
|
117
|
-
policy: Amity.QueryPolicy,
|
|
112
|
+
policy: Amity.QueryPolicy,
|
|
113
|
+
lifeSpan: number = 2 * 60 * 1000, // 2mn
|
|
118
114
|
): Amity.QueryOptions => {
|
|
119
|
-
if (policy === 'cache_only')
|
|
120
|
-
|
|
121
|
-
else if (policy === 'server_only')
|
|
122
|
-
return { lifeSpan: 0 }
|
|
115
|
+
if (policy === 'cache_only') return { lifeSpan: Infinity };
|
|
116
|
+
if (policy === 'server_only') return { lifeSpan: 0 };
|
|
123
117
|
|
|
124
|
-
return { lifeSpan }
|
|
125
|
-
}
|
|
118
|
+
return { lifeSpan };
|
|
119
|
+
};
|
|
126
120
|
|
|
127
121
|
/**
|
|
128
122
|
* Checks if an unknown shaped payload is considered empty or not.
|
|
@@ -136,20 +130,19 @@ export const queryOptions = (
|
|
|
136
130
|
*/
|
|
137
131
|
const isEmpty = (local: any) => {
|
|
138
132
|
// if it's supposed to be a single object, it'd be undefined
|
|
139
|
-
if (!local)
|
|
140
|
-
return true
|
|
133
|
+
if (!local) return true;
|
|
141
134
|
|
|
142
135
|
// it's a paged query, the 1st cell of the array would be empty
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
137
|
+
if (isPaged(local) && isEmpty(local.data)) {
|
|
138
|
+
return true;
|
|
145
139
|
}
|
|
146
140
|
|
|
147
141
|
// if it's a item collection, it'd have no keys
|
|
148
|
-
|
|
149
|
-
return true
|
|
142
|
+
if (!Object.keys(local).length) return true;
|
|
150
143
|
|
|
151
|
-
return false
|
|
152
|
-
}
|
|
144
|
+
return false;
|
|
145
|
+
};
|
|
153
146
|
|
|
154
147
|
/**
|
|
155
148
|
* ```js
|
|
@@ -171,53 +164,54 @@ const isEmpty = (local: any) => {
|
|
|
171
164
|
export const runQuery = <Args extends any[], Returned extends any>(
|
|
172
165
|
{ func, args }: Amity.Query<Args, Returned>,
|
|
173
166
|
callback?: (args: Amity.Snapshot<Returned>) => void,
|
|
174
|
-
options: Amity.QueryOptions = queryOptions('cache_then_server')
|
|
167
|
+
options: Amity.QueryOptions = queryOptions('cache_then_server'),
|
|
175
168
|
) => {
|
|
176
|
-
let local: Returned | undefined
|
|
169
|
+
let local: Returned | undefined;
|
|
177
170
|
|
|
178
171
|
// offline first
|
|
179
172
|
if (isOffline(func) && options.lifeSpan !== 0) {
|
|
180
173
|
try {
|
|
181
|
-
local = isMutator(func)
|
|
182
|
-
? func.optimistically(...args)
|
|
183
|
-
: func.locally(...args)
|
|
174
|
+
local = isMutator(func) ? func.optimistically(...args) : func.locally(...args);
|
|
184
175
|
} catch (error) {
|
|
185
176
|
callback?.(
|
|
186
177
|
createSnapshot<Returned>(undefined, {
|
|
187
178
|
origin: 'local',
|
|
188
179
|
loading: false,
|
|
189
180
|
error,
|
|
190
|
-
})
|
|
191
|
-
)
|
|
181
|
+
}),
|
|
182
|
+
);
|
|
192
183
|
}
|
|
193
184
|
|
|
194
|
-
const shouldAbort = isCachable(local) && isFresh(local, options.lifeSpan)
|
|
185
|
+
const shouldAbort = isCachable(local) && isFresh(local, options.lifeSpan);
|
|
195
186
|
|
|
196
|
-
callback?.(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
187
|
+
callback?.(
|
|
188
|
+
createSnapshot<Returned>(local, {
|
|
189
|
+
origin: 'local',
|
|
190
|
+
loading: !(isFetcher(func) && shouldAbort),
|
|
191
|
+
}),
|
|
192
|
+
);
|
|
200
193
|
|
|
201
|
-
if (shouldAbort)
|
|
202
|
-
return
|
|
194
|
+
if (shouldAbort) return;
|
|
203
195
|
} else {
|
|
204
|
-
callback?.(
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
196
|
+
callback?.(
|
|
197
|
+
createSnapshot<Returned>(undefined, {
|
|
198
|
+
origin: 'local',
|
|
199
|
+
loading: true,
|
|
200
|
+
}),
|
|
201
|
+
);
|
|
208
202
|
}
|
|
209
203
|
|
|
210
204
|
func(...args)
|
|
211
205
|
.then(fresh => {
|
|
212
206
|
// @ts-ignore i know.
|
|
213
|
-
//
|
|
207
|
+
// isLocal(local) && syncInCache(local, fresh)
|
|
214
208
|
|
|
215
209
|
callback?.(
|
|
216
210
|
createSnapshot<Returned>(fresh, {
|
|
217
211
|
origin: 'server',
|
|
218
212
|
loading: false,
|
|
219
|
-
})
|
|
220
|
-
)
|
|
213
|
+
}),
|
|
214
|
+
);
|
|
221
215
|
})
|
|
222
216
|
.catch(error => {
|
|
223
217
|
callback?.(
|
|
@@ -225,10 +219,10 @@ export const runQuery = <Args extends any[], Returned extends any>(
|
|
|
225
219
|
origin: 'server',
|
|
226
220
|
loading: false,
|
|
227
221
|
error,
|
|
228
|
-
})
|
|
229
|
-
)
|
|
230
|
-
})
|
|
231
|
-
}
|
|
222
|
+
}),
|
|
223
|
+
);
|
|
224
|
+
});
|
|
225
|
+
};
|
|
232
226
|
|
|
233
227
|
/**
|
|
234
228
|
* This is a TS hack around types
|
|
@@ -240,9 +234,9 @@ export const runQuery = <Args extends any[], Returned extends any>(
|
|
|
240
234
|
* @hidden
|
|
241
235
|
*/
|
|
242
236
|
function createSnapshot<T>(data: T | undefined, options?: Amity.SnapshotOptions): Amity.Snapshot<T>;
|
|
237
|
+
// eslint-disable-next-line no-redeclare
|
|
243
238
|
function createSnapshot(data: unknown, options?: Amity.SnapshotOptions): unknown {
|
|
244
|
-
if (isPaged(data) || isCachable(data))
|
|
245
|
-
return { ...options, ...data }
|
|
239
|
+
if (isPaged(data) || isCachable(data)) return { ...options, ...data };
|
|
246
240
|
|
|
247
|
-
return { ...options, data }
|
|
241
|
+
return { ...options, data };
|
|
248
242
|
}
|
|
@@ -2,49 +2,55 @@
|
|
|
2
2
|
// this file should contain a suite of sorting utilities to help the
|
|
3
3
|
// local version of the query functions.
|
|
4
4
|
|
|
5
|
-
type SortingFunc<T =
|
|
5
|
+
type SortingFunc<T = Record<string, unknown>> = (a: T, b: T) => number;
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Alphabetic sorting of objects having a displayName
|
|
9
9
|
*/
|
|
10
10
|
export const sortByDisplayName: SortingFunc<{ displayName: string }> = (
|
|
11
|
-
{ displayName: a },
|
|
11
|
+
{ displayName: a },
|
|
12
|
+
{ displayName: b },
|
|
12
13
|
) => {
|
|
13
|
-
if (a === b) return 0
|
|
14
|
-
return a < b ? -1 : 1
|
|
15
|
-
}
|
|
14
|
+
if (a === b) return 0;
|
|
15
|
+
return a < b ? -1 : 1;
|
|
16
|
+
};
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Sorting a collection by their apparition order (oldest first)
|
|
19
20
|
*/
|
|
20
21
|
export const sortByChannelSegment: SortingFunc<{ channelSegment: number }> = (
|
|
21
|
-
{ channelSegment: a },
|
|
22
|
-
|
|
22
|
+
{ channelSegment: a },
|
|
23
|
+
{ channelSegment: b },
|
|
24
|
+
) => a - b;
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
27
|
* Sorting a collection by their apparition order (oldest first)
|
|
26
28
|
*/
|
|
27
29
|
export const sortBySegmentNumber: SortingFunc<{ segmentNumber: number }> = (
|
|
28
|
-
{ segmentNumber: a },
|
|
29
|
-
|
|
30
|
+
{ segmentNumber: a },
|
|
31
|
+
{ segmentNumber: b },
|
|
32
|
+
) => a - b;
|
|
30
33
|
|
|
31
34
|
/**
|
|
32
35
|
* Sorting a collection by its oldest items
|
|
33
36
|
*/
|
|
34
37
|
export const sortByFirstCreated: SortingFunc<{ createdAt: Date | number | string }> = (
|
|
35
|
-
{ createdAt: a },
|
|
36
|
-
|
|
38
|
+
{ createdAt: a },
|
|
39
|
+
{ createdAt: b },
|
|
40
|
+
) => new Date(a).valueOf() - new Date(b).valueOf();
|
|
37
41
|
|
|
38
42
|
/**
|
|
39
43
|
* Sorting a collection by its newest items
|
|
40
44
|
*/
|
|
41
45
|
export const sortByLastCreated: SortingFunc<{ createdAt: Date | number | string }> = (
|
|
42
|
-
{ createdAt: a },
|
|
43
|
-
|
|
46
|
+
{ createdAt: a },
|
|
47
|
+
{ createdAt: b },
|
|
48
|
+
) => new Date(b).valueOf() - new Date(a).valueOf();
|
|
44
49
|
|
|
45
50
|
/**
|
|
46
51
|
* Sorting a collection by the items with most recent activity
|
|
47
52
|
*/
|
|
48
53
|
export const sortByLastActivity: SortingFunc<{ lastActivity: Date | number | string }> = (
|
|
49
|
-
{ lastActivity: a },
|
|
50
|
-
|
|
54
|
+
{ lastActivity: a },
|
|
55
|
+
{ lastActivity: b },
|
|
56
|
+
) => new Date(b).valueOf() - new Date(a).valueOf();
|