@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
package/dist/index.esm.js
CHANGED
|
@@ -7,7 +7,10 @@ import mitt from 'mitt';
|
|
|
7
7
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
8
8
|
|
|
9
9
|
var _a$1;
|
|
10
|
-
|
|
10
|
+
/* eslint-disable no-undef */
|
|
11
|
+
const theGlobal =
|
|
12
|
+
// eslint-disable-next-line no-nested-ternary
|
|
13
|
+
typeof globalThis === 'object' ? globalThis : typeof global === 'object' ? global : window;
|
|
11
14
|
const { process: safeProcess = {} } = theGlobal;
|
|
12
15
|
const isProduction = ((_a$1 = safeProcess.env) === null || _a$1 === void 0 ? void 0 : _a$1.NODE_ENV) === 'production';
|
|
13
16
|
|
|
@@ -22,7 +25,7 @@ const VERSION$1 = (_b = (_a = safeProcess.env) === null || _a === void 0 ? void
|
|
|
22
25
|
*
|
|
23
26
|
* @hidden
|
|
24
27
|
*/
|
|
25
|
-
const isSkipLimit = (json) =>
|
|
28
|
+
const isSkipLimit = (json) => ['skip', 'limit'].some(prop => prop in json);
|
|
26
29
|
/**
|
|
27
30
|
* Type guard to find if the a given decoded backend token uses "after/before" pagination style
|
|
28
31
|
*
|
|
@@ -31,7 +34,7 @@ const isSkipLimit = (json) => (['skip', 'limit'].some(prop => prop in json));
|
|
|
31
34
|
*
|
|
32
35
|
* @hidden
|
|
33
36
|
*/
|
|
34
|
-
const isAfterBefore = (json) =>
|
|
37
|
+
const isAfterBefore = (json) => ['after', 'before', 'first', 'last', 'limit'].some(prop => prop in json);
|
|
35
38
|
/**
|
|
36
39
|
* Type guard to find if the a given decoded backend token uses v4 or newer "after/before" pagination style
|
|
37
40
|
*
|
|
@@ -40,7 +43,7 @@ const isAfterBefore = (json) => (['after', 'before', 'first', 'last', 'limit'].s
|
|
|
40
43
|
*
|
|
41
44
|
* @hidden
|
|
42
45
|
*/
|
|
43
|
-
const isAfterBeforeRaw = (json) =>
|
|
46
|
+
const isAfterBeforeRaw = (json) => 'limit' in json;
|
|
44
47
|
/**
|
|
45
48
|
* Type guard to find if the a given object is wrapped around Amity.Paged<>
|
|
46
49
|
*
|
|
@@ -50,9 +53,9 @@ const isAfterBeforeRaw = (json) => ('limit' in json);
|
|
|
50
53
|
* @hidden
|
|
51
54
|
*/
|
|
52
55
|
const isPaged = (payload) => {
|
|
53
|
-
return ((payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('data'))
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
return ((payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('data')) &&
|
|
57
|
+
(payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('nextPage')) &&
|
|
58
|
+
(payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('prevPage')));
|
|
56
59
|
};
|
|
57
60
|
/**
|
|
58
61
|
* Converts a paging object into a b64 string token
|
|
@@ -82,19 +85,19 @@ const toToken = (paging, style) => {
|
|
|
82
85
|
"before" or "after" value. if that would change,
|
|
83
86
|
we'd need to move toward a more simple: `!paging.before`
|
|
84
87
|
*/
|
|
85
|
-
if (!isNaN(paging === null || paging === void 0 ? void 0 : paging.before)) {
|
|
88
|
+
if (!Number.isNaN(paging === null || paging === void 0 ? void 0 : paging.before)) {
|
|
86
89
|
payload = {
|
|
87
90
|
before: paging.before,
|
|
88
91
|
last: paging.limit,
|
|
89
92
|
};
|
|
90
93
|
}
|
|
91
|
-
else if (!isNaN(paging === null || paging === void 0 ? void 0 : paging.after)) {
|
|
94
|
+
else if (!Number.isNaN(paging === null || paging === void 0 ? void 0 : paging.after)) {
|
|
92
95
|
payload = {
|
|
93
96
|
after: paging.after,
|
|
94
97
|
first: paging.limit,
|
|
95
98
|
};
|
|
96
99
|
}
|
|
97
|
-
else if (!isNaN(paging === null || paging === void 0 ? void 0 : paging.limit)) {
|
|
100
|
+
else if (!Number.isNaN(paging === null || paging === void 0 ? void 0 : paging.limit)) {
|
|
98
101
|
payload = {
|
|
99
102
|
last: paging.limit,
|
|
100
103
|
};
|
|
@@ -128,14 +131,14 @@ const toPage = (token) => {
|
|
|
128
131
|
limit: json.limit,
|
|
129
132
|
};
|
|
130
133
|
}
|
|
131
|
-
|
|
134
|
+
if (isAfterBefore(json)) {
|
|
132
135
|
if ('before' in json) {
|
|
133
136
|
return {
|
|
134
137
|
before: json.before,
|
|
135
138
|
limit: json.last,
|
|
136
139
|
};
|
|
137
140
|
}
|
|
138
|
-
|
|
141
|
+
if ('after' in json) {
|
|
139
142
|
return {
|
|
140
143
|
after: json.after,
|
|
141
144
|
limit: json.first,
|
|
@@ -163,6 +166,7 @@ const toPageRaw = (token) => {
|
|
|
163
166
|
return undefined;
|
|
164
167
|
};
|
|
165
168
|
|
|
169
|
+
/* eslint-disable no-use-before-define */
|
|
166
170
|
/**
|
|
167
171
|
* Type guard to check and cast that a given async function is has the ".locally" property
|
|
168
172
|
*
|
|
@@ -171,7 +175,7 @@ const toPageRaw = (token) => {
|
|
|
171
175
|
*
|
|
172
176
|
* @hidden
|
|
173
177
|
*/
|
|
174
|
-
const isFetcher = (func) =>
|
|
178
|
+
const isFetcher = (func) => 'locally' in func;
|
|
175
179
|
/**
|
|
176
180
|
* Type guard to check and cast that a given async function is has the ".optimistically" property
|
|
177
181
|
*
|
|
@@ -180,7 +184,7 @@ const isFetcher = (func) => ('locally' in func);
|
|
|
180
184
|
*
|
|
181
185
|
* @hidden
|
|
182
186
|
*/
|
|
183
|
-
const isMutator = (func) =>
|
|
187
|
+
const isMutator = (func) => 'optimistically' in func;
|
|
184
188
|
/**
|
|
185
189
|
* Type guard to check and cast that a given async function is has
|
|
186
190
|
* the ".locally" or ".optimistically" property
|
|
@@ -199,7 +203,7 @@ const isOffline = (func) => isFetcher(func) || isMutator(func);
|
|
|
199
203
|
*
|
|
200
204
|
* @hidden
|
|
201
205
|
*/
|
|
202
|
-
const isCachable = (model) =>
|
|
206
|
+
const isCachable = (model) => model === null || model === void 0 ? void 0 : model.hasOwnProperty('cachedAt');
|
|
203
207
|
/**
|
|
204
208
|
* Checks if a model is considered local (cachedAt === -1)
|
|
205
209
|
*
|
|
@@ -257,7 +261,7 @@ const createQuery = (func, ...args) => ({ func, args });
|
|
|
257
261
|
const queryOptions = (policy, lifeSpan = 2 * 60 * 1000) => {
|
|
258
262
|
if (policy === 'cache_only')
|
|
259
263
|
return { lifeSpan: Infinity };
|
|
260
|
-
|
|
264
|
+
if (policy === 'server_only')
|
|
261
265
|
return { lifeSpan: 0 };
|
|
262
266
|
return { lifeSpan };
|
|
263
267
|
};
|
|
@@ -283,9 +287,7 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
283
287
|
// offline first
|
|
284
288
|
if (isOffline(func) && options.lifeSpan !== 0) {
|
|
285
289
|
try {
|
|
286
|
-
local = isMutator(func)
|
|
287
|
-
? func.optimistically(...args)
|
|
288
|
-
: func.locally(...args);
|
|
290
|
+
local = isMutator(func) ? func.optimistically(...args) : func.locally(...args);
|
|
289
291
|
}
|
|
290
292
|
catch (error) {
|
|
291
293
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(undefined, {
|
|
@@ -297,7 +299,7 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
297
299
|
const shouldAbort = isCachable(local) && isFresh(local, options.lifeSpan);
|
|
298
300
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(local, {
|
|
299
301
|
origin: 'local',
|
|
300
|
-
loading: !(isFetcher(func) && shouldAbort)
|
|
302
|
+
loading: !(isFetcher(func) && shouldAbort),
|
|
301
303
|
}));
|
|
302
304
|
if (shouldAbort)
|
|
303
305
|
return;
|
|
@@ -305,13 +307,13 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
305
307
|
else {
|
|
306
308
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(undefined, {
|
|
307
309
|
origin: 'local',
|
|
308
|
-
loading: true
|
|
310
|
+
loading: true,
|
|
309
311
|
}));
|
|
310
312
|
}
|
|
311
313
|
func(...args)
|
|
312
314
|
.then(fresh => {
|
|
313
315
|
// @ts-ignore i know.
|
|
314
|
-
//
|
|
316
|
+
// isLocal(local) && syncInCache(local, fresh)
|
|
315
317
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(fresh, {
|
|
316
318
|
origin: 'server',
|
|
317
319
|
loading: false,
|
|
@@ -325,6 +327,7 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
325
327
|
}));
|
|
326
328
|
});
|
|
327
329
|
};
|
|
330
|
+
// eslint-disable-next-line no-redeclare
|
|
328
331
|
function createSnapshot(data, options) {
|
|
329
332
|
if (isPaged(data) || isCachable(data))
|
|
330
333
|
return Object.assign(Object.assign({}, options), data);
|
|
@@ -378,6 +381,7 @@ const sortByLastCreated = ({ createdAt: a }, { createdAt: b }) => new Date(b).va
|
|
|
378
381
|
*/
|
|
379
382
|
const sortByLastActivity = ({ lastActivity: a }, { lastActivity: b }) => new Date(b).valueOf() - new Date(a).valueOf();
|
|
380
383
|
|
|
384
|
+
/* eslint-disable max-classes-per-file */
|
|
381
385
|
/**
|
|
382
386
|
* Generic ASC error
|
|
383
387
|
* @category Errors
|
|
@@ -407,6 +411,7 @@ class ASCApiError extends ASCError {
|
|
|
407
411
|
* @param code A normalized error code
|
|
408
412
|
* @param level A normalized failure level descriptor
|
|
409
413
|
*/
|
|
414
|
+
// eslint-disable-next-line no-useless-constructor
|
|
410
415
|
constructor(message, code, level) {
|
|
411
416
|
super(message, code, level);
|
|
412
417
|
}
|
|
@@ -433,7 +438,9 @@ class ASCConnectionError extends ASCError {
|
|
|
433
438
|
* @param message A custom error message
|
|
434
439
|
*/
|
|
435
440
|
constructor(event, message = 'SDK client is having connection issues') {
|
|
436
|
-
super(`${message} (${event})`, event === 'disconnected'
|
|
441
|
+
super(`${message} (${event})`, event === 'disconnected'
|
|
442
|
+
? 800211 /* DISCONNECTED */
|
|
443
|
+
: 800210 /* CONNECTION_ERROR */, "error" /* ERROR */);
|
|
437
444
|
this.event = event;
|
|
438
445
|
}
|
|
439
446
|
}
|
|
@@ -473,12 +480,12 @@ const setActiveClient = (client) => {
|
|
|
473
480
|
* @hidden
|
|
474
481
|
*/
|
|
475
482
|
const createLogger = (session) => {
|
|
476
|
-
const active =
|
|
477
|
-
&& !isProduction);
|
|
483
|
+
const active = `${session === null || session === void 0 ? void 0 : session.trim()}`.length > 0 && !isProduction;
|
|
478
484
|
const logger = debug(session);
|
|
479
485
|
const print = (topic, ...args) => {
|
|
480
486
|
active && logger(topic, args);
|
|
481
487
|
};
|
|
488
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
482
489
|
print.__instance__ = logger;
|
|
483
490
|
return print;
|
|
484
491
|
};
|
|
@@ -511,7 +518,7 @@ const unwrapPayload = (response) => {
|
|
|
511
518
|
if (response.status === 'success') {
|
|
512
519
|
return response.data;
|
|
513
520
|
}
|
|
514
|
-
|
|
521
|
+
if (response.status === 'fail') {
|
|
515
522
|
throw new ASCUnknownError(response.code);
|
|
516
523
|
}
|
|
517
524
|
else if (response.status === 'error') {
|
|
@@ -533,9 +540,10 @@ const stringify = (params, prefix) => {
|
|
|
533
540
|
if (Array.isArray(value)) {
|
|
534
541
|
return value.map(item => `${key}[]=${item}`).join('&');
|
|
535
542
|
}
|
|
536
|
-
|
|
543
|
+
if (typeof value !== 'object') {
|
|
537
544
|
return `${key}=${value}`;
|
|
538
545
|
}
|
|
546
|
+
// @ts-ignore
|
|
539
547
|
return stringify(value, prefix !== null && prefix !== void 0 ? prefix : name);
|
|
540
548
|
})
|
|
541
549
|
.join('&');
|
|
@@ -562,9 +570,10 @@ const createHttpTransport = (endpoint) => {
|
|
|
562
570
|
httpsAgent: new HttpsAgent(options),
|
|
563
571
|
paramsSerializer: stringify,
|
|
564
572
|
});
|
|
565
|
-
instance.interceptors.response.use(
|
|
573
|
+
instance.interceptors.response.use(response => response, error => {
|
|
566
574
|
var _a;
|
|
567
575
|
const { response } = error;
|
|
576
|
+
// eslint-disable-next-line no-console
|
|
568
577
|
console.error((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : error);
|
|
569
578
|
if (response)
|
|
570
579
|
unwrapPayload(response.data);
|
|
@@ -14582,6 +14591,7 @@ function extend() {
|
|
|
14582
14591
|
|
|
14583
14592
|
var mqtt = mqtt$1.exports;
|
|
14584
14593
|
|
|
14594
|
+
/* eslint-disable no-console */
|
|
14585
14595
|
const QOS_FAILURE_CODE = 128;
|
|
14586
14596
|
const RETRY_BASE_TIMEOUT = 1000;
|
|
14587
14597
|
const RETRY_COUNT_MAX = 10;
|
|
@@ -14596,7 +14606,7 @@ function getMqttOptions(params) {
|
|
|
14596
14606
|
topic: 'WillMsg',
|
|
14597
14607
|
payload: 'Connection Closed abnormally..!',
|
|
14598
14608
|
qos: 0,
|
|
14599
|
-
retain: false
|
|
14609
|
+
retain: false,
|
|
14600
14610
|
} }, params);
|
|
14601
14611
|
}
|
|
14602
14612
|
/**
|
|
@@ -14612,6 +14622,12 @@ const createMqttTransport = (endpoint) => {
|
|
|
14612
14622
|
let mqttClient;
|
|
14613
14623
|
let retryCount = 0;
|
|
14614
14624
|
let allowReconnection = true;
|
|
14625
|
+
const reconnect = () => {
|
|
14626
|
+
setTimeout(() => {
|
|
14627
|
+
retryCount += 1;
|
|
14628
|
+
mqttClient.reconnect();
|
|
14629
|
+
}, RETRY_BASE_TIMEOUT * 2 ** (retryCount > RETRY_COUNT_MAX ? RETRY_COUNT_MAX : retryCount));
|
|
14630
|
+
};
|
|
14615
14631
|
async function connect(params) {
|
|
14616
14632
|
if (mqttClient) {
|
|
14617
14633
|
mqttClient.removeAllListeners();
|
|
@@ -14623,6 +14639,7 @@ const createMqttTransport = (endpoint) => {
|
|
|
14623
14639
|
allowReconnection = true;
|
|
14624
14640
|
});
|
|
14625
14641
|
mqttClient.on('error', (error) => {
|
|
14642
|
+
// eslint-disable-next-line default-case
|
|
14626
14643
|
switch (error.code) {
|
|
14627
14644
|
case 2 /* IDENTIFIER_REJECTED */:
|
|
14628
14645
|
case 4 /* BAD_USERNAME_OR_PASSWORD */:
|
|
@@ -14637,12 +14654,6 @@ const createMqttTransport = (endpoint) => {
|
|
|
14637
14654
|
});
|
|
14638
14655
|
return new Promise(resolve => mqttClient.once('connect', () => resolve()));
|
|
14639
14656
|
}
|
|
14640
|
-
const reconnect = () => {
|
|
14641
|
-
setTimeout(() => {
|
|
14642
|
-
retryCount = retryCount + 1;
|
|
14643
|
-
mqttClient.reconnect();
|
|
14644
|
-
}, RETRY_BASE_TIMEOUT * Math.pow(2, retryCount > RETRY_COUNT_MAX ? RETRY_COUNT_MAX : retryCount));
|
|
14645
|
-
};
|
|
14646
14657
|
return {
|
|
14647
14658
|
connect,
|
|
14648
14659
|
async disconnect() {
|
|
@@ -14676,8 +14687,8 @@ const createMqttTransport = (endpoint) => {
|
|
|
14676
14687
|
if (error || granted[0].qos === QOS_FAILURE_CODE) {
|
|
14677
14688
|
const ascError = error
|
|
14678
14689
|
? new ASCError(error.message, 800000 /* UNKNOWN_ERROR */, "error" /* ERROR */)
|
|
14679
|
-
// TODO throw the actual error, once BE can tell us the actual error code
|
|
14680
|
-
|
|
14690
|
+
: // TODO throw the actual error, once BE can tell us the actual error code
|
|
14691
|
+
new ASCUnknownError(800000 /* UNKNOWN_ERROR */, "error" /* ERROR */);
|
|
14681
14692
|
console.error(`Failed to subscribe to topic ${topic}`, ascError);
|
|
14682
14693
|
callback === null || callback === void 0 ? void 0 : callback(ascError);
|
|
14683
14694
|
}
|
|
@@ -14696,10 +14707,11 @@ const createMqttTransport = (endpoint) => {
|
|
|
14696
14707
|
},
|
|
14697
14708
|
unsubscribe(topic) {
|
|
14698
14709
|
mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.unsubscribe(topic);
|
|
14699
|
-
}
|
|
14710
|
+
},
|
|
14700
14711
|
};
|
|
14701
14712
|
};
|
|
14702
14713
|
|
|
14714
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
14703
14715
|
let tasks = [];
|
|
14704
14716
|
let timer;
|
|
14705
14717
|
/**
|
|
@@ -14716,6 +14728,7 @@ const scheduleTask = (task) => {
|
|
|
14716
14728
|
}, 0);
|
|
14717
14729
|
};
|
|
14718
14730
|
|
|
14731
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
14719
14732
|
// need to sync up the list
|
|
14720
14733
|
const WS_EVENTS = [
|
|
14721
14734
|
'disconnected',
|
|
@@ -14742,7 +14755,7 @@ const MQTT_EVENTS = [
|
|
|
14742
14755
|
'error',
|
|
14743
14756
|
'close',
|
|
14744
14757
|
'end',
|
|
14745
|
-
'reconnect'
|
|
14758
|
+
'reconnect',
|
|
14746
14759
|
];
|
|
14747
14760
|
/** @hidden */
|
|
14748
14761
|
const createEventEmitter = () => {
|
|
@@ -14806,7 +14819,9 @@ const createEventSubscriber = (client, namespace, event, fn) => {
|
|
|
14806
14819
|
*/
|
|
14807
14820
|
const fireEvent = (event, payload) => {
|
|
14808
14821
|
const { emitter } = getActiveClient();
|
|
14809
|
-
scheduleTask(() => {
|
|
14822
|
+
scheduleTask(() => {
|
|
14823
|
+
emitter.emit(event, payload);
|
|
14824
|
+
});
|
|
14810
14825
|
};
|
|
14811
14826
|
|
|
14812
14827
|
/**
|
|
@@ -14823,7 +14838,7 @@ const fireEvent = (event, payload) => {
|
|
|
14823
14838
|
* @returns A {@link Amity.Client} instance
|
|
14824
14839
|
*
|
|
14825
14840
|
* @category Client API
|
|
14826
|
-
|
|
14841
|
+
* */
|
|
14827
14842
|
const createClient = (apiKey, apiRegion = API_REGIONS.SG, debugSession = 'amity') => {
|
|
14828
14843
|
const log = createLogger(debugSession);
|
|
14829
14844
|
log('client/api/createClient', {
|
|
@@ -14951,8 +14966,8 @@ const getToken = async (params) => {
|
|
|
14951
14966
|
client.log('client/api/getToken', params);
|
|
14952
14967
|
const deviceInfo = await getDeviceInfo();
|
|
14953
14968
|
const { data } = await client.http.post('/v1/device', Object.assign(Object.assign({}, params), { deviceInfo }), {
|
|
14954
|
-
|
|
14955
|
-
headers: { 'X-API-Key': client.apiKey }
|
|
14969
|
+
// @ts-ignore
|
|
14970
|
+
headers: { 'X-API-Key': client.apiKey },
|
|
14956
14971
|
});
|
|
14957
14972
|
return data;
|
|
14958
14973
|
};
|
|
@@ -14981,12 +14996,12 @@ const EVENTS = [
|
|
|
14981
14996
|
*/
|
|
14982
14997
|
const onConnectionError = (callback) => {
|
|
14983
14998
|
const client = getActiveClient();
|
|
14984
|
-
const subscribers = EVENTS.map(event =>
|
|
14999
|
+
const subscribers = EVENTS.map(event => createEventSubscriber(client, `client/onConnectionError(${event})`, event, response => {
|
|
14985
15000
|
const error = (response === null || response === void 0 ? void 0 : response.code)
|
|
14986
15001
|
? new ASCError(response.message, response.code, "fatal" /* FATAL */)
|
|
14987
15002
|
: new ASCConnectionError(event);
|
|
14988
15003
|
callback(error);
|
|
14989
|
-
}))
|
|
15004
|
+
}));
|
|
14990
15005
|
return () => {
|
|
14991
15006
|
subscribers.forEach(fn => fn());
|
|
14992
15007
|
};
|
|
@@ -15034,6 +15049,7 @@ const onClientBanned = (callback) => {
|
|
|
15034
15049
|
});
|
|
15035
15050
|
};
|
|
15036
15051
|
|
|
15052
|
+
/* eslint-disable no-param-reassign */
|
|
15037
15053
|
/**
|
|
15038
15054
|
* ```js
|
|
15039
15055
|
* import { connectClient } from '@amityco/ts-sdk/client/api'
|
|
@@ -15064,7 +15080,7 @@ const connectClient = async (params) => {
|
|
|
15064
15080
|
// ignored since we enforce default values just before.
|
|
15065
15081
|
const { accessToken, users } = await getToken(params);
|
|
15066
15082
|
// manually setup the token for http transport
|
|
15067
|
-
client.http.defaults.headers.common
|
|
15083
|
+
client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
|
|
15068
15084
|
// manually setup the token for ws transport
|
|
15069
15085
|
client.ws.io.opts.query = { token: accessToken };
|
|
15070
15086
|
// FIXME: events are duplicated if connectClient is called few times without disconnectClient
|
|
@@ -15102,9 +15118,9 @@ const isConnected = () => {
|
|
|
15102
15118
|
var _a, _b;
|
|
15103
15119
|
const client = getActiveClient();
|
|
15104
15120
|
client.log('client/api/isConnected', client);
|
|
15105
|
-
return !!(client.userId
|
|
15106
|
-
|
|
15107
|
-
|
|
15121
|
+
return !!(client.userId &&
|
|
15122
|
+
((_b = (_a = client.http.defaults.headers.common) === null || _a === void 0 ? void 0 : _a.Authorization) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
15123
|
+
client.ws.connected);
|
|
15108
15124
|
};
|
|
15109
15125
|
|
|
15110
15126
|
var SubscriptionLevels;
|
|
@@ -15115,7 +15131,7 @@ var SubscriptionLevels;
|
|
|
15115
15131
|
SubscriptionLevels["POST_AND_COMMENT"] = "post_and_comment";
|
|
15116
15132
|
SubscriptionLevels["USER"] = "user";
|
|
15117
15133
|
})(SubscriptionLevels || (SubscriptionLevels = {}));
|
|
15118
|
-
const getCommunityUserTopic = (
|
|
15134
|
+
const getCommunityUserTopic = (path, level) => {
|
|
15119
15135
|
switch (level) {
|
|
15120
15136
|
case 'post':
|
|
15121
15137
|
return `${path}/post/+`;
|
|
@@ -15127,8 +15143,8 @@ const getCommunityUserTopic = ({ path }, level) => {
|
|
|
15127
15143
|
return path;
|
|
15128
15144
|
}
|
|
15129
15145
|
};
|
|
15130
|
-
const getCommunityTopic = ({ path }, level = SubscriptionLevels.COMMUNITY) => getCommunityUserTopic(
|
|
15131
|
-
const getUserTopic = ({ path }, level = SubscriptionLevels.USER) => getCommunityUserTopic(
|
|
15146
|
+
const getCommunityTopic = ({ path }, level = SubscriptionLevels.COMMUNITY) => getCommunityUserTopic(path, level);
|
|
15147
|
+
const getUserTopic = ({ path }, level = SubscriptionLevels.USER) => getCommunityUserTopic(level === SubscriptionLevels.USER ? path : path.replace(/^(\w*)/, '$1/social'), level);
|
|
15132
15148
|
const getPostTopic = ({ path }, level = SubscriptionLevels.POST) => {
|
|
15133
15149
|
switch (level) {
|
|
15134
15150
|
case 'comment':
|
|
@@ -15240,12 +15256,15 @@ const restoreCache = async (storageKey = 'amitySdk') => {
|
|
|
15240
15256
|
try {
|
|
15241
15257
|
cache = JSON.parse(serializedData);
|
|
15242
15258
|
}
|
|
15243
|
-
catch (err) {
|
|
15259
|
+
catch (err) {
|
|
15260
|
+
//
|
|
15261
|
+
}
|
|
15244
15262
|
// current cache should override. in case there's something fresher.
|
|
15245
15263
|
client.cache.data = Object.assign(Object.assign({}, cache), client.cache.data);
|
|
15246
15264
|
return true;
|
|
15247
15265
|
};
|
|
15248
15266
|
|
|
15267
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
15249
15268
|
/**
|
|
15250
15269
|
* ```js
|
|
15251
15270
|
* import { backupCache } from '@amityco/ts-sdk'
|
|
@@ -15275,8 +15294,7 @@ const backupCache = async (storageKey = 'amitySdk', persistIf = (entry) => entry
|
|
|
15275
15294
|
log('cache/api/backupCache', { storageKey });
|
|
15276
15295
|
// prepare a subset of the cache where only
|
|
15277
15296
|
// objects to backup are there
|
|
15278
|
-
const offlineEntries = Object.fromEntries(Object.entries(cache.data)
|
|
15279
|
-
.filter(([_, entry]) => persistIf(entry)));
|
|
15297
|
+
const offlineEntries = Object.fromEntries(Object.entries(cache.data).filter(([_, entry]) => persistIf(entry)));
|
|
15280
15298
|
// nothing to backup, abort
|
|
15281
15299
|
if (!Object.keys(offlineEntries).length)
|
|
15282
15300
|
return false;
|
|
@@ -15322,9 +15340,9 @@ const wipeCache = async (storageKey = 'amitySdk') => {
|
|
|
15322
15340
|
* @category Cache
|
|
15323
15341
|
* @hidden
|
|
15324
15342
|
*/
|
|
15325
|
-
const normalize = (source) =>
|
|
15343
|
+
const normalize = (source) => Object.keys(source)
|
|
15326
15344
|
.sort()
|
|
15327
|
-
.reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: source[key] })), {})
|
|
15345
|
+
.reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: source[key] })), {});
|
|
15328
15346
|
/**
|
|
15329
15347
|
* Encodes a given {@link Amity.CacheKey} to a plain string
|
|
15330
15348
|
*
|
|
@@ -15334,7 +15352,7 @@ const normalize = (source) => (Object.keys(source)
|
|
|
15334
15352
|
* @category Cache
|
|
15335
15353
|
* @hidden
|
|
15336
15354
|
*/
|
|
15337
|
-
const encodeKey = (key) =>
|
|
15355
|
+
const encodeKey = (key) => JSON.stringify(key, (_, val) => (typeof val === 'object' ? normalize(val) : val));
|
|
15338
15356
|
/**
|
|
15339
15357
|
* Decodes a string back into a {@link Amity.CacheKey}
|
|
15340
15358
|
|
|
@@ -15359,14 +15377,14 @@ const partialMatch = (predicate, candidate) => {
|
|
|
15359
15377
|
if (predicate === candidate)
|
|
15360
15378
|
return true;
|
|
15361
15379
|
// if one or the other is nullish, there can't be equality
|
|
15362
|
-
|
|
15380
|
+
if (!predicate || !candidate)
|
|
15363
15381
|
return false;
|
|
15364
15382
|
// we only perform recursive check on objects
|
|
15365
|
-
|
|
15383
|
+
if (typeof predicate !== 'object') {
|
|
15366
15384
|
return false;
|
|
15367
15385
|
}
|
|
15368
15386
|
// recursively call for partial match based on the predicate
|
|
15369
|
-
return Object.keys(predicate).every(
|
|
15387
|
+
return Object.keys(predicate).every(key => partialMatch(predicate[key], candidate[key]));
|
|
15370
15388
|
};
|
|
15371
15389
|
|
|
15372
15390
|
/**
|
|
@@ -15389,8 +15407,7 @@ const queryCache = (key) => {
|
|
|
15389
15407
|
if (!cache)
|
|
15390
15408
|
return;
|
|
15391
15409
|
log('cache/api/queryCache', { key });
|
|
15392
|
-
return Object
|
|
15393
|
-
.keys(cache.data)
|
|
15410
|
+
return Object.keys(cache.data)
|
|
15394
15411
|
.filter(stringKey => {
|
|
15395
15412
|
const decodedKey = decodeKey(stringKey);
|
|
15396
15413
|
return partialMatch(key, decodedKey);
|
|
@@ -15419,9 +15436,7 @@ const pullFromCache = (key) => {
|
|
|
15419
15436
|
return;
|
|
15420
15437
|
log('cache/api/pullFromCache', key);
|
|
15421
15438
|
const str = encodeKey(key);
|
|
15422
|
-
return
|
|
15423
|
-
? cache.data[str]
|
|
15424
|
-
: undefined;
|
|
15439
|
+
return cache.data[str] ? cache.data[str] : undefined;
|
|
15425
15440
|
};
|
|
15426
15441
|
|
|
15427
15442
|
/**
|
|
@@ -15447,8 +15462,10 @@ const pushToCache = (key, data, options = { cachedAt: Date.now() }) => {
|
|
|
15447
15462
|
// if consumer did not pass offline but a offline policy is
|
|
15448
15463
|
// defined, use the fn to determine if the object needs to
|
|
15449
15464
|
// be saved in persistent storage or not.
|
|
15450
|
-
if (!(options === null || options === void 0 ? void 0 : options.hasOwnProperty('offline')) && cache.persistIf)
|
|
15465
|
+
if (!(options === null || options === void 0 ? void 0 : options.hasOwnProperty('offline')) && cache.persistIf) {
|
|
15466
|
+
// eslint-disable-next-line no-param-reassign
|
|
15451
15467
|
options.offline = cache.persistIf(key, data);
|
|
15468
|
+
}
|
|
15452
15469
|
const encodedKey = encodeKey(key);
|
|
15453
15470
|
cache.data[encodedKey] = Object.assign({ key, data }, options);
|
|
15454
15471
|
return true;
|
|
@@ -15480,9 +15497,7 @@ const mergeInCache = (key, mutation, options) => {
|
|
|
15480
15497
|
const oldVal = pullFromCache(key);
|
|
15481
15498
|
if (!oldVal)
|
|
15482
15499
|
return false;
|
|
15483
|
-
const newVal = typeof mutation === 'function'
|
|
15484
|
-
? mutation(oldVal.data)
|
|
15485
|
-
: Object.assign(Object.assign({}, oldVal.data), mutation);
|
|
15500
|
+
const newVal = typeof mutation === 'function' ? mutation(oldVal.data) : Object.assign(Object.assign({}, oldVal.data), mutation);
|
|
15486
15501
|
pushToCache(key, newVal, options);
|
|
15487
15502
|
return true;
|
|
15488
15503
|
};
|
|
@@ -15510,9 +15525,7 @@ const upsertInCache = (key, data, options = { cachedAt: Date.now() }) => {
|
|
|
15510
15525
|
return false;
|
|
15511
15526
|
log('cache/api/upsertInCache', { key, data, options });
|
|
15512
15527
|
const cached = pullFromCache(key);
|
|
15513
|
-
return cached
|
|
15514
|
-
? mergeInCache(key, data, options)
|
|
15515
|
-
: pushToCache(key, data, options);
|
|
15528
|
+
return cached ? mergeInCache(key, data, options) : pushToCache(key, data, options);
|
|
15516
15529
|
};
|
|
15517
15530
|
|
|
15518
15531
|
/**
|
|
@@ -15536,7 +15549,7 @@ const dropFromCache = (key, exact = false) => {
|
|
|
15536
15549
|
return false;
|
|
15537
15550
|
log('cache/api/dropFromCache', { key, exact });
|
|
15538
15551
|
if (!exact) {
|
|
15539
|
-
return
|
|
15552
|
+
return Object.keys(cache.data)
|
|
15540
15553
|
.map(stringKey => decodeKey(stringKey))
|
|
15541
15554
|
.filter(candidate => partialMatch(key, candidate))
|
|
15542
15555
|
.map(filteredKey => dropFromCache(filteredKey, true))
|
|
@@ -15559,9 +15572,11 @@ const idResolvers = {
|
|
|
15559
15572
|
channelUsers: ({ channelId, userId }) => `${channelId}#${userId}`,
|
|
15560
15573
|
message: ({ messageId }) => messageId,
|
|
15561
15574
|
community: ({ communityId }) => communityId,
|
|
15575
|
+
category: ({ categoryId }) => categoryId,
|
|
15562
15576
|
communityUsers: ({ communityId, userId }) => `${communityId}#${userId}`,
|
|
15563
15577
|
post: ({ postId }) => postId,
|
|
15564
15578
|
comment: ({ commentId }) => commentId,
|
|
15579
|
+
poll: ({ pollId }) => pollId,
|
|
15565
15580
|
stream: ({ streamId }) => streamId,
|
|
15566
15581
|
follow: ({ from, to }) => `${from}#${to}`,
|
|
15567
15582
|
followCount: ({ userId }) => userId,
|
|
@@ -15572,7 +15587,7 @@ const idResolvers = {
|
|
|
15572
15587
|
* @param name the domain name for the resolve
|
|
15573
15588
|
* @returns an idResolver function for the given domain name
|
|
15574
15589
|
*/
|
|
15575
|
-
const getResolver = (name) =>
|
|
15590
|
+
const getResolver = (name) => idResolvers[name];
|
|
15576
15591
|
|
|
15577
15592
|
/**
|
|
15578
15593
|
* A map of v3 response keys to a store name.
|
|
@@ -15586,13 +15601,15 @@ const PAYLOAD2MODEL = {
|
|
|
15586
15601
|
channelUsers: 'channelUsers',
|
|
15587
15602
|
messages: 'message',
|
|
15588
15603
|
communities: 'community',
|
|
15604
|
+
categories: 'category',
|
|
15589
15605
|
communityUsers: 'communityUsers',
|
|
15590
15606
|
posts: 'post',
|
|
15591
15607
|
postChildren: 'post',
|
|
15592
15608
|
comments: 'comment',
|
|
15609
|
+
polls: 'poll',
|
|
15593
15610
|
videoStreamings: 'stream',
|
|
15594
15611
|
follows: 'follow',
|
|
15595
|
-
followCounts: 'followCount'
|
|
15612
|
+
followCounts: 'followCount',
|
|
15596
15613
|
};
|
|
15597
15614
|
|
|
15598
15615
|
/**
|
|
@@ -15605,8 +15622,7 @@ const PAYLOAD2MODEL = {
|
|
|
15605
15622
|
* @hidden
|
|
15606
15623
|
*/
|
|
15607
15624
|
const ingestInCache = (payload = {}, options) => {
|
|
15608
|
-
Object.entries(payload)
|
|
15609
|
-
.forEach(([key, models]) => {
|
|
15625
|
+
Object.entries(payload).forEach(([key, models]) => {
|
|
15610
15626
|
const type = PAYLOAD2MODEL[key];
|
|
15611
15627
|
if (!type)
|
|
15612
15628
|
return;
|
|
@@ -15686,13 +15702,15 @@ const getUsers = async (userIds) => {
|
|
|
15686
15702
|
client.log('user/getUsers', userIds);
|
|
15687
15703
|
const encodedUserIds = userIds.map(userId => encodeURIComponent(userId));
|
|
15688
15704
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
15689
|
-
const { data } = await client.http.get(`/api/v3/users/list`, {
|
|
15705
|
+
const { data } = await client.http.get(`/api/v3/users/list`, {
|
|
15706
|
+
params: { userIds: encodedUserIds },
|
|
15707
|
+
});
|
|
15690
15708
|
const cachedAt = client.cache && Date.now();
|
|
15691
15709
|
if (client.cache)
|
|
15692
15710
|
ingestInCache(data, { cachedAt });
|
|
15693
15711
|
return {
|
|
15694
15712
|
data: data.users,
|
|
15695
|
-
cachedAt
|
|
15713
|
+
cachedAt,
|
|
15696
15714
|
};
|
|
15697
15715
|
};
|
|
15698
15716
|
/**
|
|
@@ -15718,7 +15736,7 @@ getUsers.locally = (userIds) => {
|
|
|
15718
15736
|
.map(userId => pullFromCache(['user', 'get', userId]))
|
|
15719
15737
|
.filter(Boolean);
|
|
15720
15738
|
const users = cached.map(({ data }) => data);
|
|
15721
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
15739
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
15722
15740
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < userIds.length)
|
|
15723
15741
|
return;
|
|
15724
15742
|
return {
|
|
@@ -15772,14 +15790,14 @@ function __rest(s, e) {
|
|
|
15772
15790
|
const queryUsers = async (query = {}) => {
|
|
15773
15791
|
const client = getActiveClient();
|
|
15774
15792
|
client.log('user/queryUsers', query);
|
|
15775
|
-
const { page, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query
|
|
15776
|
-
// API-FIX: parameters should be querystring.
|
|
15777
|
-
, ["page", "displayName", "filter", "sortBy"]);
|
|
15793
|
+
const { page, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query, ["page", "displayName", "filter", "sortBy"]);
|
|
15778
15794
|
// API-FIX: parameters should be querystring.
|
|
15779
|
-
const { data } = await client.http.get(`/api/v3/users`, {
|
|
15795
|
+
const { data } = await client.http.get(`/api/v3/users`, {
|
|
15796
|
+
params: Object.assign(Object.assign({}, params), { keyword: displayName, filter,
|
|
15780
15797
|
sortBy, options: {
|
|
15781
15798
|
token: toToken(page, 'skiplimit'),
|
|
15782
|
-
} })
|
|
15799
|
+
} }),
|
|
15800
|
+
});
|
|
15783
15801
|
// unpacking
|
|
15784
15802
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
15785
15803
|
const { users } = payload;
|
|
@@ -15985,7 +16003,7 @@ const observeUser = (userId, callback) => {
|
|
|
15985
16003
|
*
|
|
15986
16004
|
* Fetches a {@link Amity.File} object
|
|
15987
16005
|
*
|
|
15988
|
-
* @param
|
|
16006
|
+
* @param fileId the ID of the {@link Amity.File} to fetch
|
|
15989
16007
|
* @returns the associated {@link Amity.File} object
|
|
15990
16008
|
*
|
|
15991
16009
|
* @category File API
|
|
@@ -16041,6 +16059,7 @@ getFile.locally = (fileId) => {
|
|
|
16041
16059
|
* Creates an {@link Amity.File}
|
|
16042
16060
|
*
|
|
16043
16061
|
* @param formData The data necessary to create a new {@link Amity.File}
|
|
16062
|
+
* @param onProgress The callback to track the upload progress
|
|
16044
16063
|
* @returns The newly created {@link Amity.File}
|
|
16045
16064
|
*
|
|
16046
16065
|
* @category File API
|
|
@@ -16049,15 +16068,16 @@ getFile.locally = (fileId) => {
|
|
|
16049
16068
|
const createFile = async (formData, onProgress) => {
|
|
16050
16069
|
const client = getActiveClient();
|
|
16051
16070
|
client.log('file/createFile', formData);
|
|
16052
|
-
if (!formData.getAll('
|
|
16053
|
-
throw new Error('The formData object must have a `
|
|
16071
|
+
if (!formData.getAll('files').length)
|
|
16072
|
+
throw new Error('The formData object must have a `files` key.');
|
|
16054
16073
|
const headers = 'getHeaders' in formData
|
|
16055
16074
|
? formData.getHeaders()
|
|
16056
16075
|
: { 'content-type': 'multipart/form-data' };
|
|
16057
|
-
const { data } = await client.http.post('/api/
|
|
16058
|
-
headers,
|
|
16076
|
+
const { data } = await client.http.post('/api/v4/files', formData, {
|
|
16077
|
+
headers,
|
|
16078
|
+
onUploadProgress({ loaded, total }) {
|
|
16059
16079
|
onProgress && onProgress(Math.round((loaded * 100) / total));
|
|
16060
|
-
}
|
|
16080
|
+
},
|
|
16061
16081
|
});
|
|
16062
16082
|
// API-FIX: payload should be serialized properly
|
|
16063
16083
|
// const { files } = data
|
|
@@ -16065,7 +16085,7 @@ const createFile = async (formData, onProgress) => {
|
|
|
16065
16085
|
if (client.cache)
|
|
16066
16086
|
ingestInCache({ files: data }, { cachedAt });
|
|
16067
16087
|
return {
|
|
16068
|
-
data
|
|
16088
|
+
data,
|
|
16069
16089
|
cachedAt,
|
|
16070
16090
|
};
|
|
16071
16091
|
};
|
|
@@ -16105,6 +16125,88 @@ const fileUrlWithSize = (fileUrl, size) => {
|
|
|
16105
16125
|
return `${fileUrl}?size=${size}`;
|
|
16106
16126
|
};
|
|
16107
16127
|
|
|
16128
|
+
/**
|
|
16129
|
+
* ```js
|
|
16130
|
+
* import { createVideo } from '@amityco/ts-sdk'
|
|
16131
|
+
* const created = await createVideo(formData)
|
|
16132
|
+
* ```
|
|
16133
|
+
*
|
|
16134
|
+
* Creates an {@link Amity.File<'video'>}
|
|
16135
|
+
*
|
|
16136
|
+
* @param formData The data necessary to create a new {@link Amity.File<'video'>}
|
|
16137
|
+
* @param onProgress The callback to track the upload progress
|
|
16138
|
+
* @returns The newly created {@link Amity.File<'video'>}
|
|
16139
|
+
*
|
|
16140
|
+
* @category File API
|
|
16141
|
+
* @async
|
|
16142
|
+
*/
|
|
16143
|
+
const createVideo = async (formData, onProgress) => {
|
|
16144
|
+
const client = getActiveClient();
|
|
16145
|
+
client.log('file/createVideo', formData);
|
|
16146
|
+
if (!formData.getAll('files').length)
|
|
16147
|
+
throw new Error('The formData object must have a `files` key.');
|
|
16148
|
+
const headers = 'getHeaders' in formData
|
|
16149
|
+
? formData.getHeaders()
|
|
16150
|
+
: { 'content-type': 'multipart/form-data' };
|
|
16151
|
+
const { data } = await client.http.post('/api/v4/videos', formData, {
|
|
16152
|
+
headers,
|
|
16153
|
+
onUploadProgress({ loaded, total }) {
|
|
16154
|
+
onProgress && onProgress(Math.round((loaded * 100) / total));
|
|
16155
|
+
},
|
|
16156
|
+
});
|
|
16157
|
+
// API-FIX: payload should be serialized properly
|
|
16158
|
+
// const { files } = data
|
|
16159
|
+
const cachedAt = client.cache && Date.now();
|
|
16160
|
+
if (client.cache)
|
|
16161
|
+
ingestInCache({ files: data }, { cachedAt });
|
|
16162
|
+
return {
|
|
16163
|
+
data,
|
|
16164
|
+
cachedAt,
|
|
16165
|
+
};
|
|
16166
|
+
};
|
|
16167
|
+
// TODO: consider doing local creation with URL.createObjectURL()
|
|
16168
|
+
|
|
16169
|
+
/**
|
|
16170
|
+
* ```js
|
|
16171
|
+
* import { createImage } from '@amityco/ts-sdk'
|
|
16172
|
+
* const created = await createImage(formData)
|
|
16173
|
+
* ```
|
|
16174
|
+
*
|
|
16175
|
+
* Creates an {@link Amity.File<'image'>}
|
|
16176
|
+
*
|
|
16177
|
+
* @param formData The data necessary to create a new {@link Amity.File<'image'>}
|
|
16178
|
+
* @param onProgress The callback to track the upload progress
|
|
16179
|
+
* @returns The newly created {@link Amity.File<'image'>}
|
|
16180
|
+
*
|
|
16181
|
+
* @category File API
|
|
16182
|
+
* @async
|
|
16183
|
+
*/
|
|
16184
|
+
const createImage = async (formData, onProgress) => {
|
|
16185
|
+
const client = getActiveClient();
|
|
16186
|
+
client.log('file/createImage', formData);
|
|
16187
|
+
if (!formData.getAll('files').length)
|
|
16188
|
+
throw new Error('The formData object must have a `files` key.');
|
|
16189
|
+
const headers = 'getHeaders' in formData
|
|
16190
|
+
? formData.getHeaders()
|
|
16191
|
+
: { 'content-type': 'multipart/form-data' };
|
|
16192
|
+
const { data } = await client.http.post('/api/v4/images', formData, {
|
|
16193
|
+
headers,
|
|
16194
|
+
onUploadProgress({ loaded, total }) {
|
|
16195
|
+
onProgress && onProgress(Math.round((loaded * 100) / total));
|
|
16196
|
+
},
|
|
16197
|
+
});
|
|
16198
|
+
// API-FIX: payload should be serialized properly
|
|
16199
|
+
// const { files } = data
|
|
16200
|
+
const cachedAt = client.cache && Date.now();
|
|
16201
|
+
if (client.cache)
|
|
16202
|
+
ingestInCache({ files: data }, { cachedAt });
|
|
16203
|
+
return {
|
|
16204
|
+
data,
|
|
16205
|
+
cachedAt,
|
|
16206
|
+
};
|
|
16207
|
+
};
|
|
16208
|
+
// TODO: consider doing local creation with URL.createObjectURL()
|
|
16209
|
+
|
|
16108
16210
|
/**
|
|
16109
16211
|
* ```js
|
|
16110
16212
|
* import { observeFile } from '@amityco/ts-sdk'
|
|
@@ -16336,13 +16438,15 @@ const getMessages = async (messageIds) => {
|
|
|
16336
16438
|
const client = getActiveClient();
|
|
16337
16439
|
client.log('message/getMessages', messageIds);
|
|
16338
16440
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
16339
|
-
const { data } = await client.http.get(`/api/v3/messages/list`, {
|
|
16441
|
+
const { data } = await client.http.get(`/api/v3/messages/list`, {
|
|
16442
|
+
params: { messageIds },
|
|
16443
|
+
});
|
|
16340
16444
|
const cachedAt = client.cache && Date.now();
|
|
16341
16445
|
if (client.cache)
|
|
16342
16446
|
ingestInCache(data, { cachedAt });
|
|
16343
16447
|
return {
|
|
16344
16448
|
data: data.messages,
|
|
16345
|
-
cachedAt
|
|
16449
|
+
cachedAt,
|
|
16346
16450
|
};
|
|
16347
16451
|
};
|
|
16348
16452
|
/**
|
|
@@ -16368,7 +16472,7 @@ getMessages.locally = (messageIds) => {
|
|
|
16368
16472
|
.map(messageId => pullFromCache(['message', 'get', messageId]))
|
|
16369
16473
|
.filter(Boolean);
|
|
16370
16474
|
const messages = cached.map(({ data }) => data);
|
|
16371
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
16475
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
16372
16476
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < messageIds.length)
|
|
16373
16477
|
return;
|
|
16374
16478
|
return {
|
|
@@ -16394,19 +16498,16 @@ getMessages.locally = (messageIds) => {
|
|
|
16394
16498
|
const queryMessages = async (query) => {
|
|
16395
16499
|
const client = getActiveClient();
|
|
16396
16500
|
client.log('message/queryMessages', query);
|
|
16397
|
-
const { page = { limit: 10 } } = query, params = __rest(query
|
|
16398
|
-
// API-FIX: parameters should be querystring. (1)
|
|
16399
|
-
// API-FIX: backend should answer Amity.Response (2)
|
|
16400
|
-
// API-FIX: pagination should not be indexed on channelSegment (3)
|
|
16401
|
-
// const { data } = await client.http.get<Amity.Response<Amity.Paged<Amity.MessagePayload>>>(
|
|
16402
|
-
, ["page"]);
|
|
16501
|
+
const { page = { limit: 10 } } = query, params = __rest(query, ["page"]);
|
|
16403
16502
|
// API-FIX: parameters should be querystring. (1)
|
|
16404
16503
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16405
16504
|
// API-FIX: pagination should not be indexed on channelSegment (3)
|
|
16406
16505
|
// const { data } = await client.http.get<Amity.Response<Amity.Paged<Amity.MessagePayload>>>(
|
|
16407
|
-
const { data } = await client.http.get(`/api/v3/messages`, {
|
|
16506
|
+
const { data } = await client.http.get(`/api/v3/messages`, {
|
|
16507
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
16408
16508
|
token: toToken(page, 'afterbefore'),
|
|
16409
|
-
} }),
|
|
16509
|
+
} }),
|
|
16510
|
+
});
|
|
16410
16511
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16411
16512
|
// const { paging, messages } = unwrapPayload(data)
|
|
16412
16513
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
@@ -16414,7 +16515,11 @@ const queryMessages = async (query) => {
|
|
|
16414
16515
|
const cachedAt = client.cache && Date.now();
|
|
16415
16516
|
if (client.cache) {
|
|
16416
16517
|
ingestInCache(payload, { cachedAt });
|
|
16417
|
-
const cacheKey = [
|
|
16518
|
+
const cacheKey = [
|
|
16519
|
+
'message',
|
|
16520
|
+
'query',
|
|
16521
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
16522
|
+
];
|
|
16418
16523
|
pushToCache(cacheKey, { messages: messages.map(getResolver('message')), paging });
|
|
16419
16524
|
}
|
|
16420
16525
|
const nextPage = toPage(paging.next);
|
|
@@ -16516,7 +16621,7 @@ createMessage.optimistically = (bundle) => {
|
|
|
16516
16621
|
fireEvent('v3.message.didCreate', { messages: [message] });
|
|
16517
16622
|
return {
|
|
16518
16623
|
data: message,
|
|
16519
|
-
cachedAt: -1
|
|
16624
|
+
cachedAt: -1,
|
|
16520
16625
|
};
|
|
16521
16626
|
};
|
|
16522
16627
|
|
|
@@ -16580,7 +16685,7 @@ updateMessage.optimistically = (messageId, patch) => {
|
|
|
16580
16685
|
fireEvent('v3.message.didUpdate', { messages: [updated] });
|
|
16581
16686
|
return {
|
|
16582
16687
|
data: updated,
|
|
16583
|
-
cachedAt
|
|
16688
|
+
cachedAt,
|
|
16584
16689
|
};
|
|
16585
16690
|
};
|
|
16586
16691
|
|
|
@@ -16632,7 +16737,7 @@ deleteMessage.optimistically = (messageId) => {
|
|
|
16632
16737
|
fireEvent('v3.message.didDelete', { messages: [deleted] });
|
|
16633
16738
|
return {
|
|
16634
16739
|
data: deleted,
|
|
16635
|
-
cachedAt
|
|
16740
|
+
cachedAt,
|
|
16636
16741
|
};
|
|
16637
16742
|
};
|
|
16638
16743
|
|
|
@@ -16653,17 +16758,15 @@ deleteMessage.optimistically = (messageId) => {
|
|
|
16653
16758
|
const queryPosts = async (query) => {
|
|
16654
16759
|
const client = getActiveClient();
|
|
16655
16760
|
client.log('post/queryPosts', query);
|
|
16656
|
-
const { page = { limit: 10 } } = query, params = __rest(query
|
|
16657
|
-
// API-FIX: parameters should be querystring. (1)
|
|
16658
|
-
// API-FIX: backend should answer Amity.Response (2)
|
|
16659
|
-
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
|
|
16660
|
-
, ["page"]);
|
|
16761
|
+
const { page = { limit: 10 } } = query, params = __rest(query, ["page"]);
|
|
16661
16762
|
// API-FIX: parameters should be querystring. (1)
|
|
16662
16763
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16663
16764
|
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
|
|
16664
|
-
const { data } = await client.http.get(`/api/v4/posts`, {
|
|
16765
|
+
const { data } = await client.http.get(`/api/v4/posts`, {
|
|
16766
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
16665
16767
|
token: toToken(page, 'afterbeforeraw'),
|
|
16666
|
-
} }),
|
|
16768
|
+
} }),
|
|
16769
|
+
});
|
|
16667
16770
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16668
16771
|
// const { paging, posts } = unwrapPayload(data)
|
|
16669
16772
|
// unpacking
|
|
@@ -16733,13 +16836,15 @@ const getPosts = async (postIds) => {
|
|
|
16733
16836
|
client.log('post/getPosts', postIds);
|
|
16734
16837
|
const encodedPostIds = postIds.map(postId => encodeURIComponent(postId));
|
|
16735
16838
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
16736
|
-
const { data } = await client.http.get(`/api/v3/posts/list`, {
|
|
16839
|
+
const { data } = await client.http.get(`/api/v3/posts/list`, {
|
|
16840
|
+
params: { postIds: encodedPostIds },
|
|
16841
|
+
});
|
|
16737
16842
|
const cachedAt = client.cache && Date.now();
|
|
16738
16843
|
if (client.cache)
|
|
16739
16844
|
ingestInCache(data, { cachedAt });
|
|
16740
16845
|
return {
|
|
16741
16846
|
data: data.posts,
|
|
16742
|
-
cachedAt
|
|
16847
|
+
cachedAt,
|
|
16743
16848
|
};
|
|
16744
16849
|
};
|
|
16745
16850
|
/**
|
|
@@ -16765,7 +16870,7 @@ getPosts.locally = (postIds) => {
|
|
|
16765
16870
|
.map(postId => pullFromCache(['post', 'get', postId]))
|
|
16766
16871
|
.filter(Boolean);
|
|
16767
16872
|
const posts = cached.map(({ data }) => data);
|
|
16768
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
16873
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
16769
16874
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < postIds.length)
|
|
16770
16875
|
return;
|
|
16771
16876
|
return {
|
|
@@ -16816,7 +16921,7 @@ const getPost = async (postId) => {
|
|
|
16816
16921
|
/**
|
|
16817
16922
|
* ```js
|
|
16818
16923
|
* import { getPost } from '@amityco/ts-sdk'
|
|
16819
|
-
* const { data
|
|
16924
|
+
* const { data: post } = getPost.locally('foobar')
|
|
16820
16925
|
* ```
|
|
16821
16926
|
*
|
|
16822
16927
|
* Fetches a {@link Amity.Post} object from cache
|
|
@@ -16862,8 +16967,10 @@ const createPost = async (bundle) => {
|
|
|
16862
16967
|
const client = getActiveClient();
|
|
16863
16968
|
client.log('post/createPost', bundle);
|
|
16864
16969
|
// API-FIX: backend rejects that we pass the dataType manually T_T
|
|
16865
|
-
if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType))
|
|
16970
|
+
if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType)) {
|
|
16971
|
+
// eslint-disable-next-line no-param-reassign
|
|
16866
16972
|
delete bundle.dataType;
|
|
16973
|
+
}
|
|
16867
16974
|
const { data } = await client.http.post('/api/v4/posts', bundle);
|
|
16868
16975
|
const cachedAt = client.cache && Date.now();
|
|
16869
16976
|
if (client.cache)
|
|
@@ -16931,15 +17038,21 @@ const queryCommunities = async (query) => {
|
|
|
16931
17038
|
// API-FIX: parameters should be querystring.
|
|
16932
17039
|
// API-FIX: backend doesnt answer Amity.Response
|
|
16933
17040
|
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<CommunityPayload>>>(
|
|
16934
|
-
const { data } = await client.http.get(`/api/v3/communities`, {
|
|
16935
|
-
|
|
16936
|
-
|
|
17041
|
+
const { data } = await client.http.get(`/api/v3/communities`, {
|
|
17042
|
+
params: Object.assign(Object.assign({}, params), { keyword: displayName, filter: membership, options: {
|
|
17043
|
+
token: toToken(page, 'skiplimit'),
|
|
17044
|
+
} }),
|
|
17045
|
+
});
|
|
16937
17046
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
16938
17047
|
const { communities } = payload;
|
|
16939
17048
|
const cachedAt = client.cache && Date.now();
|
|
16940
17049
|
if (client.cache) {
|
|
16941
17050
|
ingestInCache(payload, { cachedAt });
|
|
16942
|
-
const cacheKey = [
|
|
17051
|
+
const cacheKey = [
|
|
17052
|
+
'community',
|
|
17053
|
+
'query',
|
|
17054
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
17055
|
+
];
|
|
16943
17056
|
pushToCache(cacheKey, { communities: communities.map(getResolver('community')), paging });
|
|
16944
17057
|
}
|
|
16945
17058
|
const nextPage = toPage(paging.next);
|
|
@@ -16983,13 +17096,15 @@ const getCommunities = async (communityIds) => {
|
|
|
16983
17096
|
const client = getActiveClient();
|
|
16984
17097
|
client.log('community/getCommunities', communityIds);
|
|
16985
17098
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
16986
|
-
const { data } = await client.http.get(`/api/v3/communities/list`, {
|
|
17099
|
+
const { data } = await client.http.get(`/api/v3/communities/list`, {
|
|
17100
|
+
params: { communityIds },
|
|
17101
|
+
});
|
|
16987
17102
|
const cachedAt = client.cache && Date.now();
|
|
16988
17103
|
if (client.cache)
|
|
16989
17104
|
ingestInCache(data, { cachedAt });
|
|
16990
17105
|
return {
|
|
16991
17106
|
data: data.communities,
|
|
16992
|
-
cachedAt
|
|
17107
|
+
cachedAt,
|
|
16993
17108
|
};
|
|
16994
17109
|
};
|
|
16995
17110
|
/**
|
|
@@ -17015,7 +17130,7 @@ getCommunities.locally = (communityIds) => {
|
|
|
17015
17130
|
.map(communityId => pullFromCache(['community', 'get', communityId]))
|
|
17016
17131
|
.filter(Boolean);
|
|
17017
17132
|
const communities = cached.map(({ data }) => data);
|
|
17018
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
17133
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
17019
17134
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < communityIds.length)
|
|
17020
17135
|
return;
|
|
17021
17136
|
return {
|
|
@@ -17185,8 +17300,7 @@ const joinCommunity = async (communityId) => {
|
|
|
17185
17300
|
ingestInCache(data, { cachedAt });
|
|
17186
17301
|
fireEvent('community.joined', data);
|
|
17187
17302
|
const { communityUsers } = data;
|
|
17188
|
-
return !!communityUsers.find(communityUser =>
|
|
17189
|
-
&& communityUser.communityMembership === 'member'));
|
|
17303
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership === 'member');
|
|
17190
17304
|
};
|
|
17191
17305
|
|
|
17192
17306
|
/**
|
|
@@ -17212,8 +17326,7 @@ const leaveCommunity = async (communityId) => {
|
|
|
17212
17326
|
ingestInCache(data, { cachedAt });
|
|
17213
17327
|
fireEvent('community.left', data);
|
|
17214
17328
|
const { communityUsers } = data;
|
|
17215
|
-
return !!communityUsers.find(communityUser =>
|
|
17216
|
-
&& communityUser.communityMembership !== 'member'));
|
|
17329
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership !== 'member');
|
|
17217
17330
|
};
|
|
17218
17331
|
|
|
17219
17332
|
/**
|
|
@@ -17229,7 +17342,7 @@ const leaveCommunity = async (communityId) => {
|
|
|
17229
17342
|
*
|
|
17230
17343
|
* @category Community API
|
|
17231
17344
|
* @async
|
|
17232
|
-
|
|
17345
|
+
* */
|
|
17233
17346
|
const queryCommunityMembers = async (query) => {
|
|
17234
17347
|
const client = getActiveClient();
|
|
17235
17348
|
client.log('community/queryCommunityMembers', query);
|
|
@@ -17291,8 +17404,7 @@ const addCommunityMembers = async (communityId, userIds) => {
|
|
|
17291
17404
|
ingestInCache(data);
|
|
17292
17405
|
fireEvent('community.userAdded', data);
|
|
17293
17406
|
const { communityUsers } = data;
|
|
17294
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17295
|
-
communityUser.communityMembership === 'member');
|
|
17407
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership === 'member');
|
|
17296
17408
|
};
|
|
17297
17409
|
|
|
17298
17410
|
/**
|
|
@@ -17318,60 +17430,61 @@ const removeCommunityMembers = async (communityId, userIds) => {
|
|
|
17318
17430
|
ingestInCache(data);
|
|
17319
17431
|
fireEvent('community.userRemoved', data);
|
|
17320
17432
|
const { communityUsers } = data;
|
|
17321
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17322
|
-
communityUser.communityMembership !== 'member');
|
|
17433
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership !== 'member');
|
|
17323
17434
|
};
|
|
17324
17435
|
|
|
17325
17436
|
/**
|
|
17326
17437
|
* ```js
|
|
17327
|
-
* import {
|
|
17328
|
-
* const updated = await
|
|
17438
|
+
* import { addCommunityMembersRoles } from '@amityco/ts-sdk'
|
|
17439
|
+
* const updated = await addCommunityMembersRoles(communityId, ['foo'], ['bar'])
|
|
17329
17440
|
* ```
|
|
17330
17441
|
*
|
|
17331
|
-
* Adds
|
|
17442
|
+
* Adds a list of {@link Amity.Role} to a list of {@link Amity.User} on a {@link Amity.Community}
|
|
17332
17443
|
*
|
|
17333
17444
|
* @param communityId The ID of the {@link Amity.Community} to perform
|
|
17334
|
-
* @param
|
|
17445
|
+
* @param roleIds Array of IDs of the {@link Amity.Role} to apply
|
|
17335
17446
|
* @param userId Array of IDs of the {@link Amity.User} to perform
|
|
17336
17447
|
* @returns A success boolean if the {@link Amity.Role} were added to list of {@link Amity.User} in the {@link Amity.Community}
|
|
17337
17448
|
*
|
|
17338
17449
|
* @category Community API
|
|
17339
17450
|
* @async
|
|
17340
17451
|
*/
|
|
17341
|
-
const
|
|
17452
|
+
const addCommunityMembersRoles = async (communityId, roleIds, userIds) => {
|
|
17342
17453
|
const client = getActiveClient();
|
|
17343
|
-
client.log('community/
|
|
17344
|
-
const { data } = await client.http.post(`/api/
|
|
17454
|
+
client.log('community/addCommunityMembersRoles', communityId, roleIds, userIds);
|
|
17455
|
+
const { data } = await client.http.post(`/api/v4/communities/${communityId}/users/roles`, { communityId, roles: roleIds, userIds });
|
|
17345
17456
|
if (client.cache)
|
|
17346
17457
|
ingestInCache(data);
|
|
17347
17458
|
const { communityUsers } = data;
|
|
17348
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17459
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17460
|
+
roleIds.some(role => communityUser.roles.includes(role)));
|
|
17349
17461
|
};
|
|
17350
17462
|
|
|
17351
17463
|
/**
|
|
17352
17464
|
* ```js
|
|
17353
|
-
* import {
|
|
17354
|
-
* const updated = await
|
|
17465
|
+
* import { removeCommunityMembersRoles } from '@amityco/ts-sdk'
|
|
17466
|
+
* const updated = await removeCommunityMembersRoles(communityId, ['foo'], ['bar'])
|
|
17355
17467
|
* ```
|
|
17356
17468
|
*
|
|
17357
|
-
* Removes
|
|
17469
|
+
* Removes a list of {@link Amity.Role} from a list of {@link Amity.User} on a {@link Amity.Community}
|
|
17358
17470
|
*
|
|
17359
17471
|
* @param communityId The ID of the {@link Amity.Community} to perform
|
|
17360
|
-
* @param
|
|
17472
|
+
* @param roleIds Array of IDs of the {@link Amity.Role} to apply
|
|
17361
17473
|
* @param userId Array of IDs of the {@link Amity.User} to perform
|
|
17362
17474
|
* @returns A success boolean if the {@link Amity.Role} were removed from list of {@link Amity.User} in the {@link Amity.Community}
|
|
17363
17475
|
*
|
|
17364
17476
|
* @category Community API
|
|
17365
17477
|
* @async
|
|
17366
17478
|
*/
|
|
17367
|
-
const
|
|
17479
|
+
const removeCommunityMembersRoles = async (communityId, roleIds, userIds) => {
|
|
17368
17480
|
const client = getActiveClient();
|
|
17369
|
-
client.log('community/
|
|
17370
|
-
const { data } = await client.http.delete(`/api/
|
|
17481
|
+
client.log('community/removeCommunityMembersRoles', communityId, roleIds, userIds);
|
|
17482
|
+
const { data } = await client.http.delete(`/api/v4/communities/${communityId}/users/roles`, { data: { communityId, roles: roleIds, userIds } });
|
|
17371
17483
|
if (client.cache)
|
|
17372
17484
|
ingestInCache(data);
|
|
17373
17485
|
const { communityUsers } = data;
|
|
17374
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17486
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17487
|
+
!roleIds.some(role => communityUser.roles.includes(role)));
|
|
17375
17488
|
};
|
|
17376
17489
|
|
|
17377
17490
|
/**
|
|
@@ -17517,7 +17630,7 @@ getRecommendedCommunities.locally = (query) => {
|
|
|
17517
17630
|
const deletePost = async (postId, permanent = false) => {
|
|
17518
17631
|
const client = getActiveClient();
|
|
17519
17632
|
client.log('post/deletePost', postId);
|
|
17520
|
-
|
|
17633
|
+
const post = await getPost(postId);
|
|
17521
17634
|
// API-FIX: This endpoint has not been implemented yet.
|
|
17522
17635
|
await client.http.delete(`/api/v4/posts/${encodeURIComponent(postId)}`, {
|
|
17523
17636
|
params: {
|
|
@@ -17564,12 +17677,7 @@ const deletePost = async (postId, permanent = false) => {
|
|
|
17564
17677
|
const queryComments = async (query) => {
|
|
17565
17678
|
const client = getActiveClient();
|
|
17566
17679
|
client.log('comment/queryComments', query);
|
|
17567
|
-
const { page = { limit: 10 } } = query, params = __rest(query
|
|
17568
|
-
// const filterByParentId = query.parentId !== undefined
|
|
17569
|
-
// API-FIX: parameters should be querystring. (1)
|
|
17570
|
-
// API-FIX: backend should answer Amity.Response (2)
|
|
17571
|
-
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.CommentPayload>>>(
|
|
17572
|
-
, ["page"]);
|
|
17680
|
+
const { page = { limit: 10 } } = query, params = __rest(query, ["page"]);
|
|
17573
17681
|
// const filterByParentId = query.parentId !== undefined
|
|
17574
17682
|
// API-FIX: parameters should be querystring. (1)
|
|
17575
17683
|
// API-FIX: backend should answer Amity.Response (2)
|
|
@@ -17588,7 +17696,11 @@ const queryComments = async (query) => {
|
|
|
17588
17696
|
const cachedAt = client.cache && Date.now();
|
|
17589
17697
|
if (client.cache) {
|
|
17590
17698
|
ingestInCache(payload, { cachedAt });
|
|
17591
|
-
const cacheKey = [
|
|
17699
|
+
const cacheKey = [
|
|
17700
|
+
'comment',
|
|
17701
|
+
'query',
|
|
17702
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
17703
|
+
];
|
|
17592
17704
|
pushToCache(cacheKey, { comments: comments.map(getResolver('comment')), paging });
|
|
17593
17705
|
}
|
|
17594
17706
|
const nextPage = toPage(paging.next);
|
|
@@ -17649,13 +17761,15 @@ const getComments = async (commentIds) => {
|
|
|
17649
17761
|
client.log('comment/getComments', commentIds);
|
|
17650
17762
|
const encodedCommentIds = commentIds.map(commentId => encodeURIComponent(commentId));
|
|
17651
17763
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
17652
|
-
const { data } = await client.http.get(`/api/v3/comments/list`, {
|
|
17764
|
+
const { data } = await client.http.get(`/api/v3/comments/list`, {
|
|
17765
|
+
params: { commentIds: encodedCommentIds },
|
|
17766
|
+
});
|
|
17653
17767
|
const cachedAt = client.cache && Date.now();
|
|
17654
17768
|
if (client.cache)
|
|
17655
17769
|
ingestInCache(data, { cachedAt });
|
|
17656
17770
|
return {
|
|
17657
17771
|
data: data.comments,
|
|
17658
|
-
cachedAt
|
|
17772
|
+
cachedAt,
|
|
17659
17773
|
};
|
|
17660
17774
|
};
|
|
17661
17775
|
/**
|
|
@@ -17681,7 +17795,7 @@ getComments.locally = (commentIds) => {
|
|
|
17681
17795
|
.map(commentId => pullFromCache(['comment', 'get', commentId]))
|
|
17682
17796
|
.filter(Boolean);
|
|
17683
17797
|
const comments = cached.map(({ data }) => data);
|
|
17684
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
17798
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
17685
17799
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < commentIds.length)
|
|
17686
17800
|
return;
|
|
17687
17801
|
return {
|
|
@@ -17864,9 +17978,9 @@ const deleteComment = async (commentId, permanent = false) => {
|
|
|
17864
17978
|
const fetchReference = async (referenceType, referenceId) => {
|
|
17865
17979
|
if (referenceType === 'message')
|
|
17866
17980
|
return getMessage(referenceId);
|
|
17867
|
-
|
|
17981
|
+
if (referenceType === 'post')
|
|
17868
17982
|
return getPost(referenceId);
|
|
17869
|
-
|
|
17983
|
+
if (referenceType === 'comment')
|
|
17870
17984
|
return getComment(referenceId);
|
|
17871
17985
|
throw new Error(`Incorrect referenceType: ${referenceType}`);
|
|
17872
17986
|
};
|
|
@@ -17903,7 +18017,9 @@ const preparePayloadForCache = (event, payload) => {
|
|
|
17903
18017
|
if (!cached.myReactions.includes(payload.reactor.reactionName)) {
|
|
17904
18018
|
return;
|
|
17905
18019
|
}
|
|
17906
|
-
Object.assign(model, {
|
|
18020
|
+
Object.assign(model, {
|
|
18021
|
+
myReactions: cached.myReactions.filter(x => x !== payload.reactor.reactionName),
|
|
18022
|
+
});
|
|
17907
18023
|
}
|
|
17908
18024
|
};
|
|
17909
18025
|
|
|
@@ -17922,7 +18038,7 @@ const preparePayloadForCache = (event, payload) => {
|
|
|
17922
18038
|
*
|
|
17923
18039
|
* @category Reaction API
|
|
17924
18040
|
* @async
|
|
17925
|
-
|
|
18041
|
+
* */
|
|
17926
18042
|
const addReaction = async (referenceType, referenceId, reactionName) => {
|
|
17927
18043
|
var _a, _b;
|
|
17928
18044
|
const client = getActiveClient();
|
|
@@ -17931,7 +18047,11 @@ const addReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
17931
18047
|
referenceType,
|
|
17932
18048
|
reactionName,
|
|
17933
18049
|
});
|
|
17934
|
-
await client.http.post('/api/v2/reactions', {
|
|
18050
|
+
await client.http.post('/api/v2/reactions', {
|
|
18051
|
+
referenceId,
|
|
18052
|
+
referenceType,
|
|
18053
|
+
reactionName,
|
|
18054
|
+
});
|
|
17935
18055
|
const model = await fetchReference(referenceType, referenceId);
|
|
17936
18056
|
dispatchReactable(referenceType, model.data);
|
|
17937
18057
|
return (_b = (_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)) !== null && _b !== void 0 ? _b : false;
|
|
@@ -17950,7 +18070,7 @@ const addReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
17950
18070
|
* @returns The added result.
|
|
17951
18071
|
*
|
|
17952
18072
|
* @category Reaction API
|
|
17953
|
-
|
|
18073
|
+
* */
|
|
17954
18074
|
addReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
17955
18075
|
var _a, _b, _c, _d, _e;
|
|
17956
18076
|
const client = getActiveClient();
|
|
@@ -17961,7 +18081,11 @@ addReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
17961
18081
|
});
|
|
17962
18082
|
if (!client.cache)
|
|
17963
18083
|
return;
|
|
17964
|
-
const model = pullFromCache([
|
|
18084
|
+
const model = pullFromCache([
|
|
18085
|
+
referenceType,
|
|
18086
|
+
'get',
|
|
18087
|
+
referenceId,
|
|
18088
|
+
]);
|
|
17965
18089
|
if (!(model === null || model === void 0 ? void 0 : model.data) || ((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)))
|
|
17966
18090
|
return;
|
|
17967
18091
|
const reaction = Object.assign(Object.assign({}, model.data), { reactionsCount: model.data.reactionsCount + 1, myReactions: [...((_b = model.data.myReactions) !== null && _b !== void 0 ? _b : []), reactionName], reactions: Object.assign(Object.assign({}, model.data.reactions), { [reactionName]: ((_c = model.data.reactions[reactionName]) !== null && _c !== void 0 ? _c : 0) + 1 }) });
|
|
@@ -17985,7 +18109,7 @@ addReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
17985
18109
|
*
|
|
17986
18110
|
* @category Reaction API
|
|
17987
18111
|
* @async
|
|
17988
|
-
|
|
18112
|
+
* */
|
|
17989
18113
|
const removeReaction = async (referenceType, referenceId, reactionName) => {
|
|
17990
18114
|
var _a, _b;
|
|
17991
18115
|
const client = getActiveClient();
|
|
@@ -17994,7 +18118,9 @@ const removeReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
17994
18118
|
referenceType,
|
|
17995
18119
|
reactionName,
|
|
17996
18120
|
});
|
|
17997
|
-
await client.http.delete(`/api/v2/reactions`, {
|
|
18121
|
+
await client.http.delete(`/api/v2/reactions`, {
|
|
18122
|
+
data: { referenceId, referenceType, reactionName },
|
|
18123
|
+
});
|
|
17998
18124
|
const model = await fetchReference(referenceType, referenceId);
|
|
17999
18125
|
dispatchReactable(referenceType, model.data);
|
|
18000
18126
|
return (_b = !((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName))) !== null && _b !== void 0 ? _b : false;
|
|
@@ -18013,7 +18139,7 @@ const removeReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
18013
18139
|
* @returns The added result.
|
|
18014
18140
|
*
|
|
18015
18141
|
* @category Reaction API
|
|
18016
|
-
|
|
18142
|
+
* */
|
|
18017
18143
|
removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
18018
18144
|
var _a, _b, _c, _d, _e;
|
|
18019
18145
|
const client = getActiveClient();
|
|
@@ -18024,7 +18150,11 @@ removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
18024
18150
|
});
|
|
18025
18151
|
if (!client.cache)
|
|
18026
18152
|
return;
|
|
18027
|
-
const model = pullFromCache([
|
|
18153
|
+
const model = pullFromCache([
|
|
18154
|
+
referenceType,
|
|
18155
|
+
'get',
|
|
18156
|
+
referenceId,
|
|
18157
|
+
]);
|
|
18028
18158
|
if (!(model === null || model === void 0 ? void 0 : model.data) || !((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)))
|
|
18029
18159
|
return;
|
|
18030
18160
|
const reaction = Object.assign(Object.assign({}, model.data), { reactionsCount: Math.max(0, model.data.reactionsCount - 1), myReactions: ((_b = model.data.myReactions) !== null && _b !== void 0 ? _b : []).filter(item => item !== reactionName), reactions: Object.assign(Object.assign({}, model.data.reactions), { [reactionName]: Math.max(0, ((_c = model.data.reactions[reactionName]) !== null && _c !== void 0 ? _c : 0) - 1) }) });
|
|
@@ -18203,6 +18333,7 @@ const onPostReactionAdded = (callback) => {
|
|
|
18203
18333
|
}
|
|
18204
18334
|
else {
|
|
18205
18335
|
preparePayloadForCache('post.addReaction', payload);
|
|
18336
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18206
18337
|
const postPayload = __rest(payload, ["reactor"]);
|
|
18207
18338
|
ingestInCache(postPayload);
|
|
18208
18339
|
const post = pullFromCache(['post', 'get', payload.posts[0].postId]);
|
|
@@ -18235,6 +18366,7 @@ const onPostReactionRemoved = (callback) => {
|
|
|
18235
18366
|
}
|
|
18236
18367
|
else {
|
|
18237
18368
|
preparePayloadForCache('post.removeReaction', payload);
|
|
18369
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18238
18370
|
const postPayload = __rest(payload, ["reactor"]);
|
|
18239
18371
|
ingestInCache(postPayload);
|
|
18240
18372
|
const post = pullFromCache(['post', 'get', payload.posts[0].postId]);
|
|
@@ -18254,7 +18386,11 @@ const createCommentEventSubscriber = (event, callback) => {
|
|
|
18254
18386
|
}
|
|
18255
18387
|
else {
|
|
18256
18388
|
ingestInCache(payload);
|
|
18257
|
-
const comment = pullFromCache([
|
|
18389
|
+
const comment = pullFromCache([
|
|
18390
|
+
'comment',
|
|
18391
|
+
'get',
|
|
18392
|
+
payload.comments[0].commentId,
|
|
18393
|
+
]);
|
|
18258
18394
|
if (['comment.created'].includes(event)) {
|
|
18259
18395
|
const queries = (_a = queryCache(['comment', 'query'])) === null || _a === void 0 ? void 0 : _a.filter(({ key }) => { var _a; return ((_a = key[2]) === null || _a === void 0 ? void 0 : _a.referenceId) === comment.data.referenceId; });
|
|
18260
18396
|
queries === null || queries === void 0 ? void 0 : queries.map(({ key, data }) => upsertInCache(key, data, { cachedAt: -1 }));
|
|
@@ -18373,9 +18509,14 @@ const onCommentReactionAdded = (callback) => {
|
|
|
18373
18509
|
}
|
|
18374
18510
|
else {
|
|
18375
18511
|
preparePayloadForCache('comment.addReaction', payload);
|
|
18512
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18376
18513
|
const commentPayload = __rest(payload, ["reactor"]);
|
|
18377
18514
|
ingestInCache(commentPayload);
|
|
18378
|
-
const comment = pullFromCache([
|
|
18515
|
+
const comment = pullFromCache([
|
|
18516
|
+
'comment',
|
|
18517
|
+
'get',
|
|
18518
|
+
payload.comments[0].commentId,
|
|
18519
|
+
]);
|
|
18379
18520
|
callback(comment.data);
|
|
18380
18521
|
}
|
|
18381
18522
|
};
|
|
@@ -18405,9 +18546,14 @@ const onCommentReactionRemoved = (callback) => {
|
|
|
18405
18546
|
}
|
|
18406
18547
|
else {
|
|
18407
18548
|
preparePayloadForCache('comment.removeReaction', payload);
|
|
18549
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18408
18550
|
const commentPayload = __rest(payload, ["reactor"]);
|
|
18409
18551
|
ingestInCache(commentPayload);
|
|
18410
|
-
const comment = pullFromCache([
|
|
18552
|
+
const comment = pullFromCache([
|
|
18553
|
+
'comment',
|
|
18554
|
+
'get',
|
|
18555
|
+
payload.comments[0].commentId,
|
|
18556
|
+
]);
|
|
18411
18557
|
callback(comment.data);
|
|
18412
18558
|
}
|
|
18413
18559
|
};
|
|
@@ -18430,7 +18576,7 @@ const onCommentReactionRemoved = (callback) => {
|
|
|
18430
18576
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
18431
18577
|
*
|
|
18432
18578
|
* @category Message Events
|
|
18433
|
-
|
|
18579
|
+
* */
|
|
18434
18580
|
const onReactionRemoved = (referenceType, referenceId, callback) => {
|
|
18435
18581
|
const callbackWrapper = (model) => {
|
|
18436
18582
|
if (getResolver(referenceType)(model) === referenceId) {
|
|
@@ -18441,7 +18587,11 @@ const onReactionRemoved = (referenceType, referenceId, callback) => {
|
|
|
18441
18587
|
const client = getActiveClient();
|
|
18442
18588
|
const filter = (payload) => {
|
|
18443
18589
|
var _a;
|
|
18444
|
-
const cached = pullFromCache([
|
|
18590
|
+
const cached = pullFromCache([
|
|
18591
|
+
'message',
|
|
18592
|
+
'get',
|
|
18593
|
+
payload.messages[0].messageId,
|
|
18594
|
+
]);
|
|
18445
18595
|
const isReactionEvent = ((_a = cached === null || cached === void 0 ? void 0 : cached.data) === null || _a === void 0 ? void 0 : _a.reactionsCount) !== payload.messages[0].reactionsCount;
|
|
18446
18596
|
ingestInCache(payload);
|
|
18447
18597
|
if (isReactionEvent) {
|
|
@@ -18491,12 +18641,12 @@ var REFERENCE_TYPES = {
|
|
|
18491
18641
|
*
|
|
18492
18642
|
* @category Report API
|
|
18493
18643
|
* @async
|
|
18494
|
-
|
|
18644
|
+
* */
|
|
18495
18645
|
const createReport = async (referenceType, referenceId) => {
|
|
18496
18646
|
const client = getActiveClient();
|
|
18497
18647
|
client.log('report/createReport', { referenceType, referenceId });
|
|
18498
18648
|
const { domainName } = REFERENCE_TYPES[referenceType];
|
|
18499
|
-
const { data } = await client.http.post(`/api/v3/${domainName}/${
|
|
18649
|
+
const { data } = await client.http.post(`/api/v3/${domainName}/${encodeURIComponent(referenceId)}/flag`);
|
|
18500
18650
|
if (client.cache)
|
|
18501
18651
|
ingestInCache(data);
|
|
18502
18652
|
const event = referenceType === 'message'
|
|
@@ -18518,7 +18668,7 @@ const createReport = async (referenceType, referenceId) => {
|
|
|
18518
18668
|
*
|
|
18519
18669
|
* @category Report API
|
|
18520
18670
|
* @async
|
|
18521
|
-
|
|
18671
|
+
* */
|
|
18522
18672
|
const deleteReport = async (referenceType, referenceId) => {
|
|
18523
18673
|
const client = getActiveClient();
|
|
18524
18674
|
client.log('report/deleteReport', { referenceType, referenceId });
|
|
@@ -18545,7 +18695,7 @@ const deleteReport = async (referenceType, referenceId) => {
|
|
|
18545
18695
|
*
|
|
18546
18696
|
* @category Report API
|
|
18547
18697
|
* @async
|
|
18548
|
-
|
|
18698
|
+
* */
|
|
18549
18699
|
const isReportedByMe = async (referenceType, referenceId) => {
|
|
18550
18700
|
var _a, _b;
|
|
18551
18701
|
const client = getActiveClient();
|
|
@@ -18580,15 +18730,21 @@ const queryChannels = async (query) => {
|
|
|
18580
18730
|
// API-FIX: parameters should be querystring.
|
|
18581
18731
|
// API-FIX: backend doesnt answer Amity.Response
|
|
18582
18732
|
// const { data } = await client.http.get<Amity.Response<Amity.Paged<ChannelPayload>>>(
|
|
18583
|
-
const { data } = await client.http.get(`/api/v3/channels`, {
|
|
18733
|
+
const { data } = await client.http.get(`/api/v3/channels`, {
|
|
18734
|
+
params: Object.assign(Object.assign({}, params), { keyword: displayName, filter: membership, options: {
|
|
18584
18735
|
token: toToken(page, 'skiplimit'),
|
|
18585
|
-
} })
|
|
18736
|
+
} }),
|
|
18737
|
+
});
|
|
18586
18738
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
18587
18739
|
const { channels } = payload;
|
|
18588
18740
|
const cachedAt = client.cache && Date.now();
|
|
18589
18741
|
if (client.cache) {
|
|
18590
18742
|
ingestInCache(payload, { cachedAt });
|
|
18591
|
-
const cacheKey = [
|
|
18743
|
+
const cacheKey = [
|
|
18744
|
+
'channel',
|
|
18745
|
+
'query',
|
|
18746
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
18747
|
+
];
|
|
18592
18748
|
pushToCache(cacheKey, { channels: channels.map(getResolver('channel')), paging });
|
|
18593
18749
|
}
|
|
18594
18750
|
const nextPage = toPage(paging.next);
|
|
@@ -18633,13 +18789,15 @@ const getChannels = async (channelIds) => {
|
|
|
18633
18789
|
client.log('channel/getChannels', channelIds);
|
|
18634
18790
|
const encodedChannelIds = channelIds.map(channelId => encodeURIComponent(channelId));
|
|
18635
18791
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
18636
|
-
const { data } = await client.http.get(`/api/v3/channels/list`, {
|
|
18792
|
+
const { data } = await client.http.get(`/api/v3/channels/list`, {
|
|
18793
|
+
params: { channelIds: encodedChannelIds },
|
|
18794
|
+
});
|
|
18637
18795
|
const cachedAt = client.cache && Date.now();
|
|
18638
18796
|
if (client.cache)
|
|
18639
18797
|
ingestInCache(data, { cachedAt });
|
|
18640
18798
|
return {
|
|
18641
18799
|
data: data.channels,
|
|
18642
|
-
cachedAt
|
|
18800
|
+
cachedAt,
|
|
18643
18801
|
};
|
|
18644
18802
|
};
|
|
18645
18803
|
/**
|
|
@@ -18665,7 +18823,7 @@ getChannels.locally = (channelIds) => {
|
|
|
18665
18823
|
.map(channelId => pullFromCache(['channel', 'get', channelId]))
|
|
18666
18824
|
.filter(Boolean);
|
|
18667
18825
|
const channels = cached.map(({ data }) => data);
|
|
18668
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
18826
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
18669
18827
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < channelIds.length)
|
|
18670
18828
|
return;
|
|
18671
18829
|
return {
|
|
@@ -18809,7 +18967,6 @@ const updateChannel = async (channelId, patch) => {
|
|
|
18809
18967
|
const deleteChannel = async (channelId) => {
|
|
18810
18968
|
const client = getActiveClient();
|
|
18811
18969
|
client.log('channel/deleteChannel', channelId);
|
|
18812
|
-
// API-FIX: This endpoint has not been implemented yet.
|
|
18813
18970
|
await client.http.delete(`/api/v3/channels/${encodeURIComponent(channelId)}`);
|
|
18814
18971
|
const deleted = await getChannel(channelId);
|
|
18815
18972
|
// no need for event, fired by server
|
|
@@ -18837,8 +18994,7 @@ const joinChannel = async (channelId) => {
|
|
|
18837
18994
|
if (client.cache)
|
|
18838
18995
|
ingestInCache(data);
|
|
18839
18996
|
const { channelUsers } = data;
|
|
18840
|
-
return !!channelUsers.find(channelUser =>
|
|
18841
|
-
&& channelUser.membership === 'member'));
|
|
18997
|
+
return !!channelUsers.find(channelUser => channelUser.channelId === channelId && channelUser.membership === 'member');
|
|
18842
18998
|
};
|
|
18843
18999
|
|
|
18844
19000
|
/**
|
|
@@ -18862,8 +19018,7 @@ const leaveChannel = async (channelId) => {
|
|
|
18862
19018
|
if (client.cache)
|
|
18863
19019
|
ingestInCache(data);
|
|
18864
19020
|
const { channelUsers } = data;
|
|
18865
|
-
return !!channelUsers.find(channelUser =>
|
|
18866
|
-
&& channelUser.membership !== 'member'));
|
|
19021
|
+
return !!channelUsers.find(channelUser => channelUser.channelId === channelId && channelUser.membership !== 'member');
|
|
18867
19022
|
};
|
|
18868
19023
|
|
|
18869
19024
|
/**
|
|
@@ -18879,7 +19034,7 @@ const leaveChannel = async (channelId) => {
|
|
|
18879
19034
|
*
|
|
18880
19035
|
* @category Channel API
|
|
18881
19036
|
* @async
|
|
18882
|
-
|
|
19037
|
+
* */
|
|
18883
19038
|
const queryChannelMembers = async (query) => {
|
|
18884
19039
|
const client = getActiveClient();
|
|
18885
19040
|
client.log('channel/queryChannelMembers', query);
|
|
@@ -19375,7 +19530,11 @@ const createCommunityEventSubscriber = (event, callback) => {
|
|
|
19375
19530
|
}
|
|
19376
19531
|
else {
|
|
19377
19532
|
ingestInCache(payload);
|
|
19378
|
-
const community = pullFromCache([
|
|
19533
|
+
const community = pullFromCache([
|
|
19534
|
+
'community',
|
|
19535
|
+
'get',
|
|
19536
|
+
payload.communities[0].communityId,
|
|
19537
|
+
]);
|
|
19379
19538
|
callback(community.data);
|
|
19380
19539
|
}
|
|
19381
19540
|
};
|
|
@@ -19385,8 +19544,8 @@ function hasPermission(member, payload, permission) {
|
|
|
19385
19544
|
if (member.permissions.some(x => x === permission)) {
|
|
19386
19545
|
return true;
|
|
19387
19546
|
}
|
|
19388
|
-
return payload
|
|
19389
|
-
.find(user => user.userId === member.userId)
|
|
19547
|
+
return payload
|
|
19548
|
+
.users.find(user => user.userId === member.userId)
|
|
19390
19549
|
.permissions.some(x => x === permission);
|
|
19391
19550
|
}
|
|
19392
19551
|
function getEventRelatedMember(event, payload) {
|
|
@@ -19416,11 +19575,15 @@ const createCommunityMemberEventSubscriber = (event, callback) => {
|
|
|
19416
19575
|
}
|
|
19417
19576
|
else {
|
|
19418
19577
|
ingestInCache(payload);
|
|
19419
|
-
const community = pullFromCache([
|
|
19578
|
+
const community = pullFromCache([
|
|
19579
|
+
'community',
|
|
19580
|
+
'get',
|
|
19581
|
+
payload.communities[0].communityId,
|
|
19582
|
+
]);
|
|
19420
19583
|
const member = pullFromCache([
|
|
19421
19584
|
'communityUsers',
|
|
19422
19585
|
'get',
|
|
19423
|
-
getResolver('communityUsers')(getEventRelatedMember(event, payload))
|
|
19586
|
+
getResolver('communityUsers')(getEventRelatedMember(event, payload)),
|
|
19424
19587
|
]);
|
|
19425
19588
|
callback(community.data, member.data);
|
|
19426
19589
|
}
|
|
@@ -19625,6 +19788,134 @@ const observeCommunity = (communityId, callback) => {
|
|
|
19625
19788
|
};
|
|
19626
19789
|
};
|
|
19627
19790
|
|
|
19791
|
+
/**
|
|
19792
|
+
* ```js
|
|
19793
|
+
* import { queryCategories } from '@amityco/ts-sdk'
|
|
19794
|
+
* const { data: categories, prevPage, nextPage } = await queryCategories()
|
|
19795
|
+
* ```
|
|
19796
|
+
*
|
|
19797
|
+
* Queries a paginable list of {@link Amity.Category} objects
|
|
19798
|
+
*
|
|
19799
|
+
* @param query The query parameters
|
|
19800
|
+
* @returns A page of {@link Amity.Category} objects
|
|
19801
|
+
*
|
|
19802
|
+
* @category Category API
|
|
19803
|
+
* @async
|
|
19804
|
+
* */
|
|
19805
|
+
const queryCategories = async (query) => {
|
|
19806
|
+
const client = getActiveClient();
|
|
19807
|
+
client.log('category/queryCategories', query);
|
|
19808
|
+
const _a = query !== null && query !== void 0 ? query : {}, { page = { limit: 10 } } = _a, params = __rest(_a, ["page"]);
|
|
19809
|
+
const { data } = await client.http.get(`/api/v3/community-categories`, {
|
|
19810
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
19811
|
+
token: toToken(page, 'skiplimit'),
|
|
19812
|
+
} }),
|
|
19813
|
+
});
|
|
19814
|
+
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
19815
|
+
const { categories } = payload;
|
|
19816
|
+
const cachedAt = client.cache && Date.now();
|
|
19817
|
+
if (client.cache) {
|
|
19818
|
+
ingestInCache(payload, { cachedAt });
|
|
19819
|
+
const cacheKey = [
|
|
19820
|
+
'category',
|
|
19821
|
+
'query',
|
|
19822
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
19823
|
+
];
|
|
19824
|
+
pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
|
|
19825
|
+
}
|
|
19826
|
+
const nextPage = toPage(paging.next);
|
|
19827
|
+
const prevPage = toPage(paging.previous);
|
|
19828
|
+
return { data: categories, cachedAt, prevPage, nextPage };
|
|
19829
|
+
};
|
|
19830
|
+
/**
|
|
19831
|
+
* ```js
|
|
19832
|
+
* import { queryCategories } from '@amityco/ts-sdk'
|
|
19833
|
+
* const { data: categories, prevPage, nextPage } = queryCategories.locally()
|
|
19834
|
+
* ```
|
|
19835
|
+
*
|
|
19836
|
+
* Queries a paginable list of {@link Amity.Category} objects from cache
|
|
19837
|
+
*
|
|
19838
|
+
* @param query The query parameters
|
|
19839
|
+
* @returns categories
|
|
19840
|
+
*
|
|
19841
|
+
* @category category API
|
|
19842
|
+
*/
|
|
19843
|
+
queryCategories.locally = (query) => {
|
|
19844
|
+
var _a, _b;
|
|
19845
|
+
const client = getActiveClient();
|
|
19846
|
+
client.log('category/queryCategories.locally', query);
|
|
19847
|
+
if (!client.cache)
|
|
19848
|
+
return;
|
|
19849
|
+
const _c = query !== null && query !== void 0 ? query : {}, { page = { limit: 10 } } = _c, params = __rest(_c, ["page"]);
|
|
19850
|
+
const queryKey = ['category', 'query', Object.assign(Object.assign({}, params), { options: Object.assign({}, page) })];
|
|
19851
|
+
const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
|
|
19852
|
+
if (!(data === null || data === void 0 ? void 0 : data.categories.length))
|
|
19853
|
+
return;
|
|
19854
|
+
const categories = data.categories
|
|
19855
|
+
.map(categoryId => pullFromCache(['category', 'get', categoryId]))
|
|
19856
|
+
.filter(Boolean)
|
|
19857
|
+
.map(({ data }) => data);
|
|
19858
|
+
const prevPage = toPage(data === null || data === void 0 ? void 0 : data.paging.previous);
|
|
19859
|
+
const nextPage = toPage(data === null || data === void 0 ? void 0 : data.paging.next);
|
|
19860
|
+
return categories.length === ((_b = data === null || data === void 0 ? void 0 : data.categories) === null || _b === void 0 ? void 0 : _b.length)
|
|
19861
|
+
? { data: categories, cachedAt, prevPage, nextPage }
|
|
19862
|
+
: undefined;
|
|
19863
|
+
};
|
|
19864
|
+
|
|
19865
|
+
/**
|
|
19866
|
+
* ```js
|
|
19867
|
+
* import { getCategory } from '@amityco/ts-sdk'
|
|
19868
|
+
* const { data: category } = await getCategory('foo')
|
|
19869
|
+
* ```
|
|
19870
|
+
*
|
|
19871
|
+
* Fetches a {@link Amity.Category} object
|
|
19872
|
+
*
|
|
19873
|
+
* @param categoryId the ID of the {@link Amity.Category} to fetch
|
|
19874
|
+
* @returns the associated {@link Amity.Category} object
|
|
19875
|
+
*
|
|
19876
|
+
* @category Category API
|
|
19877
|
+
* @async
|
|
19878
|
+
*/
|
|
19879
|
+
const getCategory = async (categoryId) => {
|
|
19880
|
+
const client = getActiveClient();
|
|
19881
|
+
client.log('category/getCategory', categoryId);
|
|
19882
|
+
const { data } = await client.http.get(`/api/v3/community-categories/${encodeURIComponent(categoryId)}`);
|
|
19883
|
+
const cachedAt = client.cache && Date.now();
|
|
19884
|
+
if (client.cache)
|
|
19885
|
+
ingestInCache(data, { cachedAt });
|
|
19886
|
+
const { categories } = data;
|
|
19887
|
+
return {
|
|
19888
|
+
data: categories.find(category => category.categoryId === categoryId),
|
|
19889
|
+
cachedAt,
|
|
19890
|
+
};
|
|
19891
|
+
};
|
|
19892
|
+
/**
|
|
19893
|
+
* ```js
|
|
19894
|
+
* import { getCategory } from '@amityco/ts-sdk'
|
|
19895
|
+
* const { data: category } = getCategory.locally('foobar')
|
|
19896
|
+
* ```
|
|
19897
|
+
*
|
|
19898
|
+
* Fetches a {@link Amity.Category} object from cache
|
|
19899
|
+
*
|
|
19900
|
+
* @param categoryId the ID of the {@link Amity.Category} to fetch
|
|
19901
|
+
* @returns the associated {@link Amity.Category} object
|
|
19902
|
+
*
|
|
19903
|
+
* @category Category API
|
|
19904
|
+
*/
|
|
19905
|
+
getCategory.locally = (categoryId) => {
|
|
19906
|
+
const client = getActiveClient();
|
|
19907
|
+
client.log('category/getCategory.locally', categoryId);
|
|
19908
|
+
if (!client.cache)
|
|
19909
|
+
return;
|
|
19910
|
+
const cached = pullFromCache(['category', 'get', categoryId]);
|
|
19911
|
+
if (!cached)
|
|
19912
|
+
return;
|
|
19913
|
+
return {
|
|
19914
|
+
data: cached.data,
|
|
19915
|
+
cachedAt: cached.cachedAt,
|
|
19916
|
+
};
|
|
19917
|
+
};
|
|
19918
|
+
|
|
19628
19919
|
/**
|
|
19629
19920
|
* ```js
|
|
19630
19921
|
* import { queryGlobalFeed } from '@amityco/ts-sdk'
|
|
@@ -19638,20 +19929,26 @@ const observeCommunity = (communityId, callback) => {
|
|
|
19638
19929
|
*
|
|
19639
19930
|
* @category Feed API
|
|
19640
19931
|
* @async
|
|
19641
|
-
|
|
19932
|
+
* */
|
|
19642
19933
|
const queryGlobalFeed = async (query) => {
|
|
19643
19934
|
const client = getActiveClient();
|
|
19644
19935
|
client.log('feed/queryGlobalFeed', query);
|
|
19645
19936
|
const _a = query !== null && query !== void 0 ? query : {}, { useCustomRanking, page } = _a, params = __rest(_a, ["useCustomRanking", "page"]);
|
|
19646
|
-
const { data } = await client.http.get(useCustomRanking ? `/api/v5/me/global-feeds` : `/api/v4/me/global-feeds`, {
|
|
19647
|
-
|
|
19648
|
-
|
|
19937
|
+
const { data } = await client.http.get(useCustomRanking ? `/api/v5/me/global-feeds` : `/api/v4/me/global-feeds`, {
|
|
19938
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
19939
|
+
token: toToken(page, 'skiplimit'),
|
|
19940
|
+
} }),
|
|
19941
|
+
});
|
|
19649
19942
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
19650
19943
|
const { posts } = payload;
|
|
19651
19944
|
const cachedAt = client.cache && Date.now();
|
|
19652
19945
|
if (client.cache) {
|
|
19653
19946
|
ingestInCache(payload);
|
|
19654
|
-
const cacheKey = [
|
|
19947
|
+
const cacheKey = [
|
|
19948
|
+
'globalFeed',
|
|
19949
|
+
'query',
|
|
19950
|
+
Object.assign(Object.assign({}, params), { useCustomRanking, options: Object.assign({}, page) }),
|
|
19951
|
+
];
|
|
19655
19952
|
pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
|
|
19656
19953
|
}
|
|
19657
19954
|
const nextPage = toPage(paging.next);
|
|
@@ -19671,7 +19968,7 @@ const queryGlobalFeed = async (query) => {
|
|
|
19671
19968
|
*
|
|
19672
19969
|
* @category Feed API
|
|
19673
19970
|
* @async
|
|
19674
|
-
|
|
19971
|
+
* */
|
|
19675
19972
|
queryGlobalFeed.locally = (query) => {
|
|
19676
19973
|
var _a, _b;
|
|
19677
19974
|
const client = getActiveClient();
|
|
@@ -19679,7 +19976,11 @@ queryGlobalFeed.locally = (query) => {
|
|
|
19679
19976
|
if (!client.cache)
|
|
19680
19977
|
return;
|
|
19681
19978
|
const _c = query !== null && query !== void 0 ? query : {}, { useCustomRanking, page } = _c, params = __rest(_c, ["useCustomRanking", "page"]);
|
|
19682
|
-
const queryKey = [
|
|
19979
|
+
const queryKey = [
|
|
19980
|
+
'globalFeed',
|
|
19981
|
+
'query',
|
|
19982
|
+
Object.assign(Object.assign({}, params), { useCustomRanking, options: Object.assign({}, page) }),
|
|
19983
|
+
];
|
|
19683
19984
|
const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
|
|
19684
19985
|
if (!(data === null || data === void 0 ? void 0 : data.posts.length))
|
|
19685
19986
|
return;
|
|
@@ -19706,7 +20007,11 @@ const queryFollows = async (key, query) => {
|
|
|
19706
20007
|
const cachedAt = client.cache && Date.now();
|
|
19707
20008
|
if (client.cache) {
|
|
19708
20009
|
ingestInCache(payload, { cachedAt });
|
|
19709
|
-
const cacheKey = [
|
|
20010
|
+
const cacheKey = [
|
|
20011
|
+
key,
|
|
20012
|
+
'query',
|
|
20013
|
+
Object.assign(Object.assign({}, params), { userId, options: Object.assign({}, page) }),
|
|
20014
|
+
];
|
|
19710
20015
|
pushToCache(cacheKey, { follows: follows.map(getResolver('follow')), paging });
|
|
19711
20016
|
}
|
|
19712
20017
|
const nextPage = toPage(paging.next);
|
|
@@ -19796,7 +20101,11 @@ const queryFollowings = async (query) => queryFollows('following', query);
|
|
|
19796
20101
|
*/
|
|
19797
20102
|
queryFollowings.locally = (query) => queryFollows.locally('following', query);
|
|
19798
20103
|
|
|
19799
|
-
const getCacheKey = (userId) => [
|
|
20104
|
+
const getCacheKey = (userId) => [
|
|
20105
|
+
'followInfo',
|
|
20106
|
+
'get',
|
|
20107
|
+
`${getActiveClient().userId}#${userId}`,
|
|
20108
|
+
];
|
|
19800
20109
|
/**
|
|
19801
20110
|
* ```js
|
|
19802
20111
|
* import { getFollowInfo } from '@amityco/ts-sdk'
|
|
@@ -19969,8 +20278,8 @@ const createFollowEventSubscriber = (event, callback) => {
|
|
|
19969
20278
|
else {
|
|
19970
20279
|
ingestInCache({ follows: [payload] });
|
|
19971
20280
|
const queries = [
|
|
19972
|
-
...(_a = queryCache(['followers', 'query'])) !== null && _a !== void 0 ? _a : [],
|
|
19973
|
-
...(_b = queryCache(['followings', 'query'])) !== null && _b !== void 0 ? _b : [],
|
|
20281
|
+
...((_a = queryCache(['followers', 'query'])) !== null && _a !== void 0 ? _a : []),
|
|
20282
|
+
...((_b = queryCache(['followings', 'query'])) !== null && _b !== void 0 ? _b : []),
|
|
19974
20283
|
];
|
|
19975
20284
|
queries
|
|
19976
20285
|
// @ts-ignore
|
|
@@ -20118,7 +20427,10 @@ const onFollowRequestDeclined = (callback) => createFollowEventSubscriber('follo
|
|
|
20118
20427
|
*/
|
|
20119
20428
|
const onFollowInfoUpdated = (callback) => {
|
|
20120
20429
|
const handler = async (payload) => {
|
|
20121
|
-
const [{ data: followInfoFrom }, { data: followInfoTo }
|
|
20430
|
+
const [{ data: followInfoFrom }, { data: followInfoTo }] = await Promise.all([
|
|
20431
|
+
getFollowInfo(payload.from),
|
|
20432
|
+
getFollowInfo(payload.to),
|
|
20433
|
+
]);
|
|
20122
20434
|
callback(followInfoFrom);
|
|
20123
20435
|
callback(followInfoTo);
|
|
20124
20436
|
};
|
|
@@ -20284,8 +20596,7 @@ const observePosts = (params, callback) => {
|
|
|
20284
20596
|
const disposers = [];
|
|
20285
20597
|
const router = (post, action) => {
|
|
20286
20598
|
var _a, _b;
|
|
20287
|
-
if (params.targetId !== post.targetId
|
|
20288
|
-
|| params.targetType !== post.targetType)
|
|
20599
|
+
if (params.targetId !== post.targetId || params.targetType !== post.targetType)
|
|
20289
20600
|
return;
|
|
20290
20601
|
if (callback instanceof Function)
|
|
20291
20602
|
return callback(post);
|
|
@@ -20424,6 +20735,178 @@ const observeComment = (commentId, callback, policy = 'cache_then_server') => {
|
|
|
20424
20735
|
};
|
|
20425
20736
|
};
|
|
20426
20737
|
|
|
20738
|
+
/**
|
|
20739
|
+
* ```js
|
|
20740
|
+
* import { getPoll } from '@amityco/ts-sdk'
|
|
20741
|
+
* const poll = await getPoll('foobar')
|
|
20742
|
+
* ```
|
|
20743
|
+
*
|
|
20744
|
+
* Fetches a {@link Amity.Poll} object
|
|
20745
|
+
*
|
|
20746
|
+
* @param pollId the ID of the {@link Amity.Poll} to fetch
|
|
20747
|
+
* @returns the associated {@link Amity.Poll} object
|
|
20748
|
+
*
|
|
20749
|
+
* @category Poll API
|
|
20750
|
+
* @async
|
|
20751
|
+
*/
|
|
20752
|
+
const getPoll = async (pollId) => {
|
|
20753
|
+
const client = getActiveClient();
|
|
20754
|
+
client.log('poll/getPoll', pollId);
|
|
20755
|
+
const { data } = await client.http.get(`/api/v3/polls/${pollId}`);
|
|
20756
|
+
const cachedAt = client.cache && Date.now();
|
|
20757
|
+
if (client.cache)
|
|
20758
|
+
ingestInCache(data, { cachedAt });
|
|
20759
|
+
const { polls } = data;
|
|
20760
|
+
return {
|
|
20761
|
+
data: polls.find(poll => poll.pollId === pollId),
|
|
20762
|
+
cachedAt,
|
|
20763
|
+
};
|
|
20764
|
+
};
|
|
20765
|
+
/**
|
|
20766
|
+
* ```js
|
|
20767
|
+
* import { getPoll } from '@amityco/ts-sdk'
|
|
20768
|
+
* const poll = getPoll.locally('foobar')
|
|
20769
|
+
* ```
|
|
20770
|
+
*
|
|
20771
|
+
* Fetches a {@link Amity.Poll} object
|
|
20772
|
+
*
|
|
20773
|
+
* @param pollId the ID of the {@link Amity.Poll} to fetch
|
|
20774
|
+
* @returns the associated {@link Amity.Poll} object
|
|
20775
|
+
*
|
|
20776
|
+
* @category Poll API
|
|
20777
|
+
*/
|
|
20778
|
+
getPoll.locally = (pollId) => {
|
|
20779
|
+
const client = getActiveClient();
|
|
20780
|
+
client.log('poll/getPoll', pollId);
|
|
20781
|
+
if (!client.cache)
|
|
20782
|
+
return;
|
|
20783
|
+
const cached = pullFromCache(['poll', 'get', pollId]);
|
|
20784
|
+
if (!cached)
|
|
20785
|
+
return;
|
|
20786
|
+
return {
|
|
20787
|
+
data: cached.data,
|
|
20788
|
+
cachedAt: cached.cachedAt,
|
|
20789
|
+
};
|
|
20790
|
+
};
|
|
20791
|
+
|
|
20792
|
+
/**
|
|
20793
|
+
* ```js
|
|
20794
|
+
* import { createPoll } from '@amityco/ts-sdk'
|
|
20795
|
+
* const created = await createPoll({
|
|
20796
|
+
* question: 'question',
|
|
20797
|
+
* answers: [
|
|
20798
|
+
* { dataType: 'text', data: 'answer1' },
|
|
20799
|
+
* { dataType: 'text', data: 'answer2' },
|
|
20800
|
+
* ],
|
|
20801
|
+
* closedIn: 1649136484
|
|
20802
|
+
* }))
|
|
20803
|
+
* ```
|
|
20804
|
+
*
|
|
20805
|
+
* Creates an {@link Amity.Poll}
|
|
20806
|
+
*
|
|
20807
|
+
* @param bundle The data necessary to create a new {@link Amity.Poll}
|
|
20808
|
+
* @returns The newly created {@link Amity.Poll}
|
|
20809
|
+
*
|
|
20810
|
+
* @category Poll API
|
|
20811
|
+
* @async
|
|
20812
|
+
*/
|
|
20813
|
+
const createPoll = async (bundle) => {
|
|
20814
|
+
const client = getActiveClient();
|
|
20815
|
+
client.log('post/createPoll', bundle);
|
|
20816
|
+
const { data } = await client.http.post('/api/v3/polls', bundle);
|
|
20817
|
+
const cachedAt = client.cache && Date.now();
|
|
20818
|
+
if (client.cache)
|
|
20819
|
+
ingestInCache(data, { cachedAt });
|
|
20820
|
+
const { polls } = data;
|
|
20821
|
+
return {
|
|
20822
|
+
data: polls[0],
|
|
20823
|
+
cachedAt,
|
|
20824
|
+
};
|
|
20825
|
+
};
|
|
20826
|
+
|
|
20827
|
+
/**
|
|
20828
|
+
* ```js
|
|
20829
|
+
* import { closePoll } from '@amityco/ts-sdk'
|
|
20830
|
+
* const updated = await closePoll(pollId)
|
|
20831
|
+
* ```
|
|
20832
|
+
*
|
|
20833
|
+
* Updates an {@link Amity.Poll}
|
|
20834
|
+
*
|
|
20835
|
+
* @param pollId The ID of the {@link Amity.Poll} to close
|
|
20836
|
+
* @returns the updated {@link Amity.Poll} object
|
|
20837
|
+
*
|
|
20838
|
+
* @category Poll API
|
|
20839
|
+
* @async
|
|
20840
|
+
*/
|
|
20841
|
+
const closePoll = async (pollId) => {
|
|
20842
|
+
const client = getActiveClient();
|
|
20843
|
+
client.log('user/closePoll', pollId);
|
|
20844
|
+
const { data } = await client.http.put(`/api/v3/polls/${encodeURIComponent(pollId)}`, { status: 'closed' });
|
|
20845
|
+
const cachedAt = client.cache && Date.now();
|
|
20846
|
+
if (client.cache)
|
|
20847
|
+
ingestInCache(data, { cachedAt });
|
|
20848
|
+
const { polls } = data;
|
|
20849
|
+
return {
|
|
20850
|
+
data: polls.find(poll => poll.pollId === pollId),
|
|
20851
|
+
cachedAt,
|
|
20852
|
+
};
|
|
20853
|
+
};
|
|
20854
|
+
|
|
20855
|
+
/**
|
|
20856
|
+
* ```js
|
|
20857
|
+
* import { deletePoll } from '@amityco/ts-sdk'
|
|
20858
|
+
* const success = await deletePoll(pollId)
|
|
20859
|
+
* ```
|
|
20860
|
+
*
|
|
20861
|
+
* Deletes a {@link Amity.Poll}
|
|
20862
|
+
*
|
|
20863
|
+
* @param pollId The {@link Amity.Poll} ID to delete
|
|
20864
|
+
* @return A success boolean if the {@link Amity.Poll} was deleted
|
|
20865
|
+
*
|
|
20866
|
+
* @category Poll API
|
|
20867
|
+
* @async
|
|
20868
|
+
*/
|
|
20869
|
+
const deletePoll = async (pollId) => {
|
|
20870
|
+
const client = getActiveClient();
|
|
20871
|
+
client.log('poll/deletePoll', pollId);
|
|
20872
|
+
const poll = await getPoll(pollId);
|
|
20873
|
+
// API-FIX: it returns { success: boolean } but seems it should be Amity.Response<{ success: boolean }
|
|
20874
|
+
const { data } = await client.http.delete(`/api/v3/polls/${pollId}`);
|
|
20875
|
+
const { success } = data; // unwrapPayload(data)
|
|
20876
|
+
const deleted = Object.assign(Object.assign({}, poll.data), { isDeleted: true });
|
|
20877
|
+
upsertInCache(['poll', 'get', pollId], deleted);
|
|
20878
|
+
return success;
|
|
20879
|
+
};
|
|
20880
|
+
|
|
20881
|
+
/**
|
|
20882
|
+
* ```js
|
|
20883
|
+
* import { votePoll } from '@amityco/ts-sdk'
|
|
20884
|
+
* const voted = await votePoll(pollId)
|
|
20885
|
+
* ```
|
|
20886
|
+
*
|
|
20887
|
+
* Votes for an {@link Amity.Poll}
|
|
20888
|
+
*
|
|
20889
|
+
* @param pollId The ID of the {@link Amity.Poll} to vote
|
|
20890
|
+
* @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}
|
|
20891
|
+
* @returns the updated {@link Amity.Poll} object
|
|
20892
|
+
*
|
|
20893
|
+
* @category Poll API
|
|
20894
|
+
* @async
|
|
20895
|
+
*/
|
|
20896
|
+
const votePoll = async (pollId, answerIds) => {
|
|
20897
|
+
const client = getActiveClient();
|
|
20898
|
+
client.log('user/votePoll', pollId);
|
|
20899
|
+
const { data } = await client.http.post(`/api/v3/polls/${encodeURIComponent(pollId)}/votes`, { pollId, answerIds });
|
|
20900
|
+
const cachedAt = client.cache && Date.now();
|
|
20901
|
+
if (client.cache)
|
|
20902
|
+
ingestInCache(data, { cachedAt });
|
|
20903
|
+
const { polls } = data;
|
|
20904
|
+
return {
|
|
20905
|
+
data: polls.find(poll => poll.pollId === pollId),
|
|
20906
|
+
cachedAt,
|
|
20907
|
+
};
|
|
20908
|
+
};
|
|
20909
|
+
|
|
20427
20910
|
/**
|
|
20428
20911
|
* ```js
|
|
20429
20912
|
* import { getStream } from '@amityco/ts-sdk'
|
|
@@ -20496,9 +20979,11 @@ const queryStreams = async (query) => {
|
|
|
20496
20979
|
const client = getActiveClient();
|
|
20497
20980
|
client.log('stream/queryStreams', query);
|
|
20498
20981
|
const _a = query !== null && query !== void 0 ? query : {}, { page } = _a, params = __rest(_a, ["page"]);
|
|
20499
|
-
const { data } = await client.http.get(`/api/v3/video-streaming`, {
|
|
20982
|
+
const { data } = await client.http.get(`/api/v3/video-streaming`, {
|
|
20983
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
20500
20984
|
token: toToken(page, 'skiplimit'),
|
|
20501
|
-
} })
|
|
20985
|
+
} }),
|
|
20986
|
+
});
|
|
20502
20987
|
// API-FIX: backend to response Amity.Response: const { paging, videoStreamings } = unwrapPayload(data)
|
|
20503
20988
|
// API-FIX: seems returned data has a results identifier on top of data, like no other apis, and this is beautiful
|
|
20504
20989
|
const { paging, results: payload } = data;
|
|
@@ -20604,7 +21089,7 @@ const updateStream = async (streamId, patch) => {
|
|
|
20604
21089
|
const deleteStream = async (streamId) => {
|
|
20605
21090
|
const client = getActiveClient();
|
|
20606
21091
|
client.log('stream/deleteStream', streamId);
|
|
20607
|
-
|
|
21092
|
+
const stream = await getStream(streamId);
|
|
20608
21093
|
// API-FIX: it returns { success: boolean } but seems it should be Amity.Response<{ success: boolean }
|
|
20609
21094
|
// API-FIX: swagger docs are wrong!
|
|
20610
21095
|
const { data } = await client.http.delete(`/api/v3/video-streaming/${streamId}`);
|
|
@@ -20715,4 +21200,26 @@ const onStreamRecorded = (callback) => {
|
|
|
20715
21200
|
return createEventSubscriber(client, 'stream/onStreamRecorded', 'video-streaming.didRecord', filter);
|
|
20716
21201
|
};
|
|
20717
21202
|
|
|
20718
|
-
|
|
21203
|
+
/**
|
|
21204
|
+
* Retrieves accessToken info to use in Beta services
|
|
21205
|
+
*
|
|
21206
|
+
* @param apiKey for the Http Client instance
|
|
21207
|
+
* @param apiRegion endpoint to connect to
|
|
21208
|
+
* @param params The token parameters
|
|
21209
|
+
* @param params.userId The userId to use to issue a token
|
|
21210
|
+
* @param params.displayName The user's displayName
|
|
21211
|
+
* @param params.authToken The authentication token - necessary when network option is set to secure
|
|
21212
|
+
* @return An accessToken info object for the given userId
|
|
21213
|
+
*
|
|
21214
|
+
* @category External API
|
|
21215
|
+
* @hidden
|
|
21216
|
+
*/
|
|
21217
|
+
const createUserToken = async (apiKey, apiRegion, params) => {
|
|
21218
|
+
const deviceId = getDeviceId();
|
|
21219
|
+
const deviceInfo = await getDeviceInfo();
|
|
21220
|
+
const http = createHttpTransport(computeUrl('http', apiRegion));
|
|
21221
|
+
const { data } = await http.post('/api/v3/sessions', Object.assign(Object.assign({}, params), { deviceId, deviceInfo: Object.assign(Object.assign({}, deviceInfo), { model: 'token management API on TS-SDK' }) }), { headers: { 'X-API-Key': apiKey } });
|
|
21222
|
+
return { accessToken: data.accessToken };
|
|
21223
|
+
};
|
|
21224
|
+
|
|
21225
|
+
export { API_REGIONS, SubscriptionLevels, VERSION$1 as VERSION, acceptFollower, addChannelMembers, addChannelMembersRole, addCommunityMembers, addCommunityMembersRoles, addReaction, backupCache, closePoll, connectClient, createChannel, createClient, createComment, createCommunity, createFile, createImage, createMessage, createPoll, createPost, createQuery, createReport, createStream, createUserToken, createVideo, declineFollower, deleteChannel, deleteComment, deleteCommunity, deleteFile, deleteMessage, deletePoll, deletePost, deleteReport, deleteStream, disableCache, disconnectClient, disposeStream, dropFromCache, enableCache, fileUrlWithSize, filterByPropEquality, follow, getActiveClient, getCategory, getChannel, getChannels, getComment, getCommentTopic, getComments, getCommunities, getCommunity, getCommunityTopic, getFile, getFollowInfo, getMessage, getMessages, getMyFollowersTopic, getMyFollowingsTopic, getPoll, getPost, getPostTopic, getPosts, getRecommendedCommunities, getRole, getStream, getTopTrendingCommunities, getUser, getUserTopic, getUsers, isAfterBefore, isAfterBeforeRaw, isCachable, isConnected, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkipLimit, joinChannel, joinCommunity, leaveChannel, leaveCommunity, mergeInCache, observeChannel, observeComment, observeComments, observeCommunity, observeFile, observeFollowInfo, observeFollowers, observeFollowings, observeMessage, observeMessages, observePost, observePosts, observeUser, onChannelDeleted, onChannelJoined, onChannelLeft, onChannelUpdated, onClientBanned, onClientDisconnected, onCommentCreated, onCommentDeleted, onCommentFlagged, onCommentReactionAdded, onCommentReactionRemoved, onCommentUnflagged, onCommentUpdated, onCommunityCreated, onCommunityDeleted, onCommunityJoined, onCommunityLeft, onCommunityUpdated, onCommunityUserAdded, onCommunityUserBanned, onCommunityUserRemoved, onCommunityUserUnbanned, onConnectionError, onFollowInfoUpdated, onFollowRequestAccepted, onFollowRequestCanceled, onFollowRequestDeclined, onFollowerDeleted, onFollowerRequested, onMemberAdded, onMemberRemoved, onMessageCreated, onMessageDeleted, onMessageUpdated, onPostApproved, onPostCreated, onPostDeclined, onPostDeleted, onPostFlagged, onPostReactionAdded, onPostReactionRemoved, onPostUnflagged, onPostUpdated, onReactionRemoved, onStreamRecorded, onStreamStarted, onStreamStopped, onUserFlagCleared, onUserFlagged, onUserFollowed, onUserUnflagged, onUserUnfollowed, onUserUpdated, pullFromCache, pushToCache, queryCache, queryCategories, queryChannelMembers, queryChannels, queryComments, queryCommunities, queryCommunityMembers, queryFollowers, queryFollowings, queryGlobalFeed, queryMessages, queryOptions, queryPosts, queryRoles, queryStreams, queryUsers, removeChannelMembers, removeChannelMembersRole, removeCommunityMembers, removeCommunityMembersRoles, removeReaction, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByLastActivity, sortByLastCreated, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, unfollow, updateChannel, updateComment, updateCommunity, updateMessage, updatePost, updateStream, updateUser, upsertInCache, votePoll, wipeCache };
|